;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Julien Lepiller ;;; Copyright © 2019 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages poedit) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages enchant) #:use-module (gnu packages gettext) #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages pkg-config) #:use-module (gnu packages rdf) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml)) (define-public poedit (package (name "poedit") (version "2.2.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/vslavik/poedit") (commit (string-append "v" version "-oss")))) (file-name (git-file-name name version)) (sha256 (base32 "147jiiab4n0nbhzp1vw1jn8ykhy7qh6zf02654ppi0imdfvfnjss")) (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "deps") #t)))) (build-system gnu-build-system) (arguments `(#:configure-flags (list (string-append "--with-boost-libdir=" (assoc-ref %build-inputs "boost") "/lib")))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("gettext-minimal" ,gettext-minimal) ("pkg-config" ,pkg-config))) (inputs `(("boost" ,boost) ("enchant" ,enchant) ("gtk+" ,gtk+) ("gtkspell3" ,gtkspell3) ("icu4c" ,icu4c) ("lucene++" ,lucene++) ("pugixml" ,pugixml) ("wxwidgets" ,wxwidgets))) (home-page "https://poedit.net/") (synopsis "Gettext catalog editing tool") (description "Poedit is a GUI frontend to the GNU gettext utilities and a catalog editor/source code parser. It helps with translating applications into other languages.") (license license:expat))) e-module (gnu installer newt page) #:use-module (guix i18n) #:use-module (ice-9 format) #:use-module (ice-9 match) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:export (run-ethernet-page)) (define (ethernet-services) "Return all the connman services of ethernet type." (let ((services (connman-services))) (filter (lambda (service) (and (string=? (service-type service) "ethernet") (not (string-null? (service-name service))))) services))) (define (ethernet-service->text service) "Return a string describing the given ethernet SERVICE." (let* ((name (service-name service)) (path (service-path service)) (full-name (string-append name "-" path)) (state (service-state service)) (connected? (or (string=? state "online") (string=? state "ready")))) (format #f "~c ~a~%" (if connected? #\* #\ ) full-name))) (define (connect-ethernet-service service) "Connect to the given ethernet SERVICE. Display a connecting page while the connection is pending." (let* ((service-name (service-name service)) (form (draw-connecting-page service-name))) (connman-connect service) (destroy-form-and-pop form) service)) (define (run-ethernet-page) (match (ethernet-services) (() (run-error-page (G_ "No ethernet service available, please try again.") (G_ "No service")) (abort-to-prompt 'installer-step 'abort)) ((service) ;; Only one service is available so return it directly. service) ((services ...) (run-listbox-selection-page #:info-text (G_ "Please select an ethernet network.") #:title (G_ "Ethernet connection") #:listbox-items services #:listbox-item->text ethernet-service->text #:listbox-height (min (+ (length services) 2) 5) #:button-text (G_ "Exit") #:button-callback-procedure (lambda _ (abort-to-prompt 'installer-step 'abort)) #:listbox-callback-procedure connect-ethernet-service))))