diff --git a/doc/guix.texi b/doc/guix.texi index 7169e03516..891e2693f6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2203,6 +2203,18 @@ ping -c 3 gnu.org Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed. +@cindex proxy, during system installation +If you need HTTP and HTTPS access to go through a proxy, run the +following command: + +@example +herd set-http-proxy guix-daemon @var{URL} +@end example + +@noindent +where @var{URL} is the proxy URL, for example +@code{http://example.org:8118}. + @cindex installing over SSH If you want to, you can continue the installation remotely by starting an SSH server: diff --git a/etc/news.scm b/etc/news.scm index ba15f12ce6..61fc6b6255 100644 --- a/etc/news.scm +++ b/etc/news.scm @@ -11,12 +11,18 @@ (version 0) (entry (commit "0468455e7d279c89ea3ad1b51935efb2b785ec47") - (title (en "Rottlog service added to @code{%base-services}")) + (title (en "Rottlog service added to @code{%base-services}") + (de "Rottlog-Dienst ist nun Teil der @code{%base-services}")) (body (en "An instance of @code{rottlog-service-type}, the system service responsible for log rotation, has been added to @code{%base-services}. If your operating system configuration for Guix System is explicitly adding @code{rottlog-service-type} to the services, you should now remove it. See -the ``Log Rotation'' section of the manual for more information."))) +the ``Log Rotation'' section of the manual for more information.") + (de "Eine Instanz des @code{rottlog-service-type} für +Log-Rotation wurde zu den @code{%base-services} hinzugefügt. Wenn der +Systemdienst bereits in Ihrer Konfiguration für Guix System ausdrücklich +genannt wurde, sollten Sie ihn jetzt daraus entfernen. Siehe den Abschnitt +„Log-Rotation“ im Handbuch für weitere Informationen."))) (entry (commit "b6bee63bed4f013064c0d902e7c8b83ed7514ade") (title (en "@code{guile} package now refers to version 3.0")) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 79eed48c1f..9caa110463 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2017 Marius Bakke ;;; Copyright © 2018 Chris Marusich +;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -533,6 +534,24 @@ (define items ;; Set all timestamps to 1. "-volume_date" "all_file_dates" "=1" + ;; ‘zisofs’ compression reduces the total image size by ~60%. + "-zisofs" "level=9:block_size=128k" ; highest compression + ;; It's transparent to our Linux-Libre kernel but not to GRUB. + ;; Don't compress the kernel, initrd, and other files read by + ;; grub.cfg, as well as common already-compressed file names. + "-find" "/" "-type" "f" + ;; XXX Even after "--" above, and despite documentation claiming + ;; otherwise, "-or" is stolen by grub-mkrescue which then chokes + ;; on it (as ‘-o …’) and dies. Don't use "-or". + "-not" "-wholename" "/boot/*" + "-not" "-wholename" "/System/*" + "-not" "-name" "unicode.pf2" + "-not" "-name" "bzImage" + "-not" "-name" "*.gz" ; initrd & all man pages + "-not" "-name" "*.png" ; includes grub-image.png + "-exec" "set_filter" "--zisofs" + "--" + "-volid" (string-upcase volume-id) (if volume-uuid `("-volume_date" "uuid" diff --git a/gnu/installer.scm b/gnu/installer.scm index 1060611672..8fbfc29261 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; Copyright © 2019, 2020 Ludovic Courtès ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2020 Florian Pelz ;;; ;;; This file is part of GNU Guix. ;;; @@ -170,9 +171,9 @@ (define (compiled-file-loader file name) (define apply-keymap ;; Apply the specified keymap. Use the default keyboard model. #~(match-lambda - ((layout variant) + ((layout variant options) (kmscon-update-keymap (default-keyboard-model) - layout variant)))) + layout variant options)))) (define* (compute-keymap-step context) "Return a gexp that runs the keymap-page of INSTALLER and install the @@ -235,12 +236,13 @@ (define (installer-steps) ;; The installer runs in a kmscon virtual terminal where loadkeys ;; won't work. kmscon uses libxkbcommon as a backend for keyboard - ;; input. It is possible to update kmscon current keymap by sending it - ;; a keyboard model, layout and variant, in a somehow similar way as - ;; what is done with setxkbmap utility. + ;; input. It is possible to update kmscon current keymap by sending + ;; it a keyboard model, layout, variant and options, in a somehow + ;; similar way as what is done with setxkbmap utility. ;; ;; So ask for a keyboard model, layout and variant to update the - ;; current kmscon keymap. + ;; current kmscon keymap. For non-Latin layouts, we add an + ;; appropriate second layout and toggle via Alt+Shift. (installer-step (id 'keymap) (description (G_ "Keyboard mapping selection")) diff --git a/gnu/installer/keymap.scm b/gnu/installer/keymap.scm index df9fc5e441..c42b308009 100644 --- a/gnu/installer/keymap.scm +++ b/gnu/installer/keymap.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe +;;; Copyright © 2020 Florian Pelz ;;; ;;; This file is part of GNU Guix. ;;; @@ -154,8 +155,8 @@ (define (layout l) ((models layouts) (values models layouts))))) -(define (kmscon-update-keymap model layout variant) - "Update kmscon keymap with the provided MODEL, LAYOUT and VARIANT." +(define (kmscon-update-keymap model layout variant options) + "Update kmscon keymap with the provided MODEL, LAYOUT, VARIANT and OPTIONS." (and=> (getenv "KEYMAP_UPDATE") (lambda (keymap-file) @@ -174,5 +175,8 @@ (define (kmscon-update-keymap model layout variant) (format port layout) (put-u8 port 0) - (format port variant) + (format port (or variant "")) + (put-u8 port 0) + + (format port (or options "")) (put-u8 port 0)))))) diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm index 8625afaa03..1b3af2f158 100644 --- a/gnu/installer/newt/keymap.scm +++ b/gnu/installer/newt/keymap.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2020 Florian Pelz ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,10 +41,12 @@ (define (run-layout-page layouts layout->text context) #:info-text (case context ((param) (G_ "Please choose your keyboard layout. \ -It will only be used during the installation process.")) +It will only be used during the installation process. \ +Non-Latin layouts can be toggled with Alt+Shift.")) (else (G_ "Please choose your keyboard layout. \ It will be used during the install process, and for the installed system. \ -You can switch to different layout at any time from the parameters menu."))) +Non-Latin layouts can be toggled with Alt+Shift. You can switch to a \ +different layout at any time from the parameters menu."))) #:listbox-items layouts #:listbox-item->text layout->text #:sort-listbox-items? #f @@ -101,21 +104,66 @@ (define preferred (append (sort main layout <>))) +(define %non-latin-layouts + ;; List of keyboard layouts marked as $nonlatin in xkeyboard-config. + ;; See comments in xkeyboard-config file /share/X11/xkb/rules/base. + ;; We ignore layouts that support Latin input: "kr" + '("am" "ara" "ben" "bd" "bg" "bt" "by" "cs" "deva" "ge" "gh" + "gr" "guj" "guru" "il" "in" "ir" "iku" "jp" "kan" "kh" + "la" "lao" "lk" "mk" "mm" "mn" "mv" "mal" "olck" "ori" "pk" + "ru" "scc" "sy" "syr" "tel" "th" "tj" "tam" "ua" "uz" + ;; The list from xkeyboard-config is incomplete. Add more layouts when + ;; noticed: + "et" "kz")) + +(define %non-latin-variants + '("cyrillic")) + +(define %latin-layout+variants + ;; These layout+variant combinations are Latin after all. + '(("ir" "ku"))) + +(define (toggleable-latin-layout layout variant) + "If LAYOUT is a non-Latin layout, return a new combined layout, +a variant, and options that allow the user to switch between the +non-Latin and the Latin layout. Otherwise, return LAYOUT, VARIANT, +and #f." + (if (and (not (equal? variant "latin")) + (not (member (list layout variant) %latin-layout+variants)) + (or (member layout %non-latin-layouts) + (member variant %non-latin-variants))) + (let ((latin-layout (if (equal? variant "azerty") "fr" "us"))) + (list + (string-append layout "," latin-layout) + ;; Comma to use variant only for non-Latin: + (and variant (string-append variant ",")) + "grp:alt_shift_toggle")) + (list layout variant #f))) + (define* (run-keymap-page layouts #:key (context #f)) "Run a page asking the user to select a keyboard layout and variant. LAYOUTS -is a list of supported X11-KEYMAP-LAYOUT. Return a list of two elements, the -names of the selected keyboard layout and variant." +is a list of supported X11-KEYMAP-LAYOUT. For non-Latin keyboard layouts, a +second layout and toggle options will be added automatically. Return a list +of three elements, the names of the selected keyboard layout, variant and +options." (define keymap-steps (list (installer-step @@ -139,10 +187,14 @@ (define keymap-steps ;; Return #f if the layout does not have any variant. (and (not (null? variants)) (run-variant-page - (sort-variants variants) + (sort-variants (add-empty-variant variants)) (lambda (variant) - (gettext (x11-keymap-variant-description variant) - "xkeyboard-config")))))))))) + (if variant + (gettext (x11-keymap-variant-description variant) + "xkeyboard-config") + ;; Text to opt for no variant at all: + (gettext (x11-keymap-layout-description layout) + "xkeyboard-config"))))))))))) (define (format-result result) (let ((layout (x11-keymap-layout-name @@ -151,14 +203,20 @@ (define (format-result result) (lambda (variant) (gettext (x11-keymap-variant-name variant) "xkeyboard-config"))))) - (list layout (or variant "")))) + (toggleable-latin-layout layout variant))) (format-result (run-installer-steps #:steps keymap-steps))) (define (keyboard-layout->configuration keymap) "Return the operating system configuration snippet to install KEYMAP." (match keymap - ((name "") + ((name #f "grp:alt_shift_toggle") + `((keyboard-layout (keyboard-layout ,name + #:options '("grp:alt_shift_toggle"))))) + ((name #f _) `((keyboard-layout (keyboard-layout ,name)))) - ((name variant) + ((name variant "grp:alt_shift_toggle") + `((keyboard-layout (keyboard-layout ,name ,variant + #:options '("grp:alt_shift_toggle"))))) + ((name variant _) `((keyboard-layout (keyboard-layout ,name ,variant)))))) diff --git a/gnu/installer/record.scm b/gnu/installer/record.scm index 7bc22e90e0..6ebd87f6a6 100644 --- a/gnu/installer/record.scm +++ b/gnu/installer/record.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Mathieu Othacehe +;;; Copyright © 2020 Florian Pelz ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,7 +64,7 @@ (define-record-type* (exit-error installer-exit-error) ;; procedure void -> void (final-page installer-final-page) - ;; procedure (layouts context) -> (list layout variant) + ;; procedure (layouts context) -> (list layout variant options) (keymap-page installer-keymap-page) ;; procedure: (#:key supported-locales iso639-languages iso3166-territories) ;; -> glibc-locale diff --git a/gnu/installer/tests.scm b/gnu/installer/tests.scm index 8ae80e4d7e..58bf0a2700 100644 --- a/gnu/installer/tests.scm +++ b/gnu/installer/tests.scm @@ -296,8 +296,13 @@ (define* (choose-partitioning port encrypted not-encrypted)) ((list-selection (title "Disk") (multiple-choices? #f) - (items (,disk _ ...))) - disk) + (items (,disks ...))) + ;; When running the installation from an ISO image, the CD/DVD drive + ;; shows up in the list. Avoid it. + (find (lambda (disk) + (not (or (string-contains disk "DVD") + (string-contains disk "CD-ROM")))) + disks)) ;; The "Partition table" dialog pops up only if there's not already a ;; partition table. diff --git a/gnu/installer/utils.scm b/gnu/installer/utils.scm index 0a91ae1e4a..5f8fe8ca01 100644 --- a/gnu/installer/utils.scm +++ b/gnu/installer/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe +;;; Copyright © 2018, 2020 Mathieu Othacehe ;;; Copyright © 2019, 2020 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. @@ -93,7 +93,8 @@ (define (pause) (setenv "LC_ALL" locale) (setenv "LANGUAGE" (string-take locale - (string-index locale #\_)))))) + (or (string-index locale #\_) + (string-length locale))))))) (guard (c ((invoke-error? c) (newline) diff --git a/gnu/local.mk b/gnu/local.mk index b10c856721..e7e5d00baf 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -569,6 +569,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/getmail.scm \ %D%/services/guix.scm \ %D%/services/kerberos.scm \ + %D%/services/linux.scm \ %D%/services/lirc.scm \ %D%/services/virtualization.scm \ %D%/services/mail.scm \ @@ -726,7 +727,7 @@ dist_patch_DATA = \ %D%/packages/patches/aegisub-make43.patch \ %D%/packages/patches/agg-am_c_prototype.patch \ %D%/packages/patches/akonadi-paths.patch \ - %D%/packages/patches/akonadi-Revert-Make-installation-properly-relo.patch \ + %D%/packages/patches/akonadi-not-relocatable.patch \ %D%/packages/patches/akonadi-timestamps.patch \ %D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \ %D%/packages/patches/amule-crypto-6.patch \ @@ -776,8 +777,8 @@ dist_patch_DATA = \ %D%/packages/patches/bidiv-update-fribidi.patch \ %D%/packages/patches/binutils-boot-2.20.1a.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ - %D%/packages/patches/binutils-mingw-w64-specify-timestamp.patch \ - %D%/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch \ + %D%/packages/patches/binutils-mingw-w64-timestamp.patch \ + %D%/packages/patches/binutils-mingw-w64-deterministic.patch \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ %D%/packages/patches/blender-2.79-python-3.7-fix.patch \ %D%/packages/patches/bluez-CVE-2020-0556.patch \ @@ -1303,7 +1304,7 @@ dist_patch_DATA = \ %D%/packages/patches/sdl-pango-api_additions.patch \ %D%/packages/patches/sdl-pango-blit_overflow.patch \ %D%/packages/patches/sdl-pango-fillrect_crash.patch \ - %D%/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch \ + %D%/packages/patches/sdl-pango-header-guard.patch \ %D%/packages/patches/sdl-pango-matrix_declarations.patch \ %D%/packages/patches/sdl-pango-sans-serif.patch \ %D%/packages/patches/patchutils-test-perms.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index c7f55bb07e..65d467ad63 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2019 Hartmt Goebel ;;; Copyright © 2019 Nicolas Goaziou ;;; Copyright © 2020 Vincent Legoll +;;; Copyright © 2020 Guillaume Le Vaillant ;;; ;;; This file is part of GNU Guix. ;;; @@ -99,6 +100,7 @@ (define-module (gnu packages audio) #:use-module (gnu packages telephony) #:use-module (gnu packages linphone) #:use-module (gnu packages tls) + #:use-module (gnu packages valgrind) #:use-module (gnu packages video) #:use-module (gnu packages vim) ;xxd #:use-module (gnu packages webkit) @@ -4199,3 +4201,37 @@ (define-public ztoolkit-rsvg `(("librsvg" ,librsvg) ,@(package-inputs ztoolkit))) (synopsis "ZToolkit with SVG support"))) + +(define-public codec2 + (package + (name "codec2") + (version "0.9.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/drowe67/codec2.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jpvr7bra8srz8jvnlbmhf8andbaavq5v01qjnp2f61za93rzwba")))) + (build-system cmake-build-system) + (native-inputs + `(("bc" ,bc) + ("octave" ,octave) + ("valgrind" ,valgrind))) + (arguments + `(#:tests? #f ; TODO: Fix tests (paths, graphic toolkit, octave modules). + #:phases + (modify-phases %standard-phases + (add-before 'check 'set-test-environment + (lambda _ + (setenv "HOME" "/tmp") + #t))))) + (synopsis "Speech codec") + (description + "Codec 2 is a speech codec designed for communications quality speech +between 700 and 3200 bit/s. The main application is low bandwidth HF/VHF +digital radio.") + (home-page "https://www.rowetel.com/?page_id=452") + (license license:lgpl2.1))) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 6b680d818b..97c7be48ca 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014, 2015 Eric Bavier ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2015, 2016, 2017 Leo Famulari -;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2017 Thomas Danckaert ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017 Kei Kebreau @@ -990,15 +990,25 @@ (define-public restic (define-public burp (package (name "burp") - (version "2.3.20") + (version "2.3.24") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/burp/burp-" version "/burp-" version ".tar.bz2")) (sha256 (base32 - "0dm2y76z7pg17kfv6ahmh4mf2r3pg7mlwd69lvmjwssnd9vs1nn5")))) + "0dmahqx8ldqdrx9b47r7ag3m801n7h3kclcqja1cc1jzhfhfq27w")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'extend-test-time-outs + ;; The defaults are far too low for busy boxes & spinning storage. + (lambda _ + (substitute* (find-files "utest" "\\.c$") + (("(tcase_set_timeout\\(tc_core,)[ 0-9]*(\\);.*)$" _ prefix suffix) + (string-append prefix " 3600" suffix "\n"))) + #t))))) (inputs `(("librsync" ,librsync) ("openssl" ,openssl) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index f1f6a3eb6d..4c3d2b793b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -13173,7 +13173,7 @@ (define-public minimap2 ((or (string-prefix? "armhf" system) (string-prefix? "aarch64" system)) "arm_neon=1") - (_ "sse2only=1")))) + (else "sse2only=1")))) #:phases (modify-phases %standard-phases (delete 'configure) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index cdc98d9b76..e1cded55e2 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Paul van der Walt -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2017 John Darrington @@ -66,6 +66,7 @@ (define-module (gnu packages cdrom) #:use-module (gnu packages python) #:use-module (gnu packages image) #:use-module (gnu packages photo) + #:use-module (gnu packages tcl) #:use-module (gnu packages video) #:use-module (gnu packages wget) #:use-module (gnu packages xiph)) @@ -156,6 +157,7 @@ (define-public xorriso (package (name "xorriso") (version "1.5.2") + (outputs '("out" "gui")) (source (origin (method url-fetch) (uri (string-append "mirror://gnu/xorriso/xorriso-" @@ -172,10 +174,26 @@ (define-public xorriso (let* ((out (assoc-ref outputs "out")) (out-bin (string-append out "/bin"))) (install-file "frontend/grub-mkrescue-sed.sh" out-bin) + #t))) + (add-after 'install 'move-gui-to-separate-output + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gui (assoc-ref outputs "gui"))) + (for-each + (lambda (file) + (mkdir-p (string-append gui (dirname file))) + (rename-file (string-append out file) + (string-append gui file))) + (list "/bin/xorriso-tcltk" + "/share/info/xorriso-tcltk.info" + "/share/man/man1/xorriso-tcltk.1")) + (wrap-program (string-append gui "/bin/xorriso-tcltk") + `("PATH" ":" prefix (,(string-append out "/bin")))) #t)))))) (inputs `(("acl" ,acl) ("readline" ,readline) + ("tk" ,tk) ("zlib" ,zlib))) (home-page "https://www.gnu.org/software/xorriso/") (synopsis "Create, manipulate, burn ISO-9660 file systems") diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 84a7e68b88..2248ebfc4b 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -47,18 +47,18 @@ (define-module (gnu packages cpp) (define-public libzen (package (name "libzen") - (version "0.4.37") + (version "0.4.38") (source (origin (method url-fetch) ;; Warning: This source has proved unreliable 1 time at least. ;; Consider an alternate source or report upstream if this ;; happens again. (uri (string-append "https://mediaarea.net/download/source/" - name "/" version "/" - name "_" version ".tar.bz2")) + "libzen/" version "/" + "libzen_" version ".tar.bz2")) (sha256 (base32 - "1dkqbgabzpa6bd7dkqrvd35sdxrhr6qxalb88f3dw0afk65xqb0k")))) + "1nkygc17sndznpcf71fdrhwpm8z9a3hc9csqlafwswh49axhfkjr")))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -66,7 +66,7 @@ (define-public libzen (build-system gnu-build-system) (arguments '(#:phases - ;; build scripts not in root of archive + ;; The build scripts are not at the root of the archive. (modify-phases %standard-phases (add-after 'unpack 'pre-configure (lambda _ diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 2bf94eb8da..59bfd8833a 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -1905,14 +1905,13 @@ (define-public r-circlize (define-public r-powerlaw (package (name "r-powerlaw") - (version "0.70.2") + (version "0.70.4") (source (origin (method url-fetch) (uri (cran-uri "poweRlaw" version)) (sha256 - (base32 - "1asr6ikr7hmj78jyg8r1gwvcjg14addkxdiz92nh06lv71a183r4")))) + (base32 "19zah9mx93az5lh9vicn3c8q1xb12g0w46dh5p901fbyimc32vwk")))) (properties `((upstream-name . "poweRlaw"))) (build-system r-build-system) (propagated-inputs diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 58e3f774df..df4570dafc 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -102,9 +102,8 @@ (define* (cross-binutils target #:optional (binutils binutils)) ((target-mingw? target) (package-with-extra-patches binutils - (search-patches - "binutils-mingw-w64-specify-timestamp.patch" - "binutils-mingw-w64-reproducible-import-libraries.patch"))) + (search-patches "binutils-mingw-w64-timestamp.patch" + "binutils-mingw-w64-deterministic.patch"))) (else binutils)) target))) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index f6c5ec90d7..8e61c4afd2 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -225,15 +225,15 @@ (define-public go-gopkg.in-mgo.v2 (define-public ephemeralpg (package (name "ephemeralpg") - (version "2.8") + (version "2.9") (source (origin (method url-fetch) (uri (string-append - "http://eradman.com/ephemeralpg/code/ephemeralpg-" + "https://eradman.com/ephemeralpg/code/ephemeralpg-" version ".tar.gz")) (sha256 - (base32 "1dpfxsd8a52psx3zlfbqkw53m35w28qwyb87a8anz143x6gnkkr4")))) + (base32 "1ghp3kya4lxvfwz3c022cx9vqf55jbf9sjw60bxjcb5sszklyc89")))) (build-system gnu-build-system) (arguments '(#:make-flags (list "CC=gcc" @@ -243,20 +243,7 @@ (define-public ephemeralpg (delete 'configure) (replace 'check (lambda* (#:key inputs #:allow-other-keys) - ;; The intention for one test is to test without PostgreSQL on - ;; the $PATH, so replace the test $PATH with just the util-linux - ;; bin, which contains getopt. It will hopefully be possible to - ;; remove this for releases after 2.8. - (substitute* "test.rb" - (("/bin:/usr/bin") - (string-append (assoc-ref inputs "util-linux") - "/bin"))) - ;; Set the LC_ALL=C as some tests use sort, and the locale - ;; affects the order. It will hopefully be possible to remove - ;; this for releases after 2.8. - (setenv "LC_ALL" "C") - (invoke "ruby" "test.rb") - #t)) + (invoke "ruby" "test.rb"))) (add-after 'install 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -266,15 +253,16 @@ (define-public ephemeralpg "/bin") ,(string-append (assoc-ref inputs "postgresql") "/bin") - ;; For getsocket + ;; For getsocket. ,(string-append out "/bin"))))) #t))))) (inputs `(("postgresql" ,postgresql) ("util-linux" ,util-linux))) (native-inputs - `(("ruby" ,ruby))) - (home-page "http://eradman.com/ephemeralpg/") + `(("ruby" ,ruby) + ("which" ,which))) + (home-page "https://eradman.com/ephemeralpg/") (synopsis "Run temporary PostgreSQL databases") (description "@code{pg_tmp} creates temporary PostgreSQL databases, suitable for tasks diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 07ea1c93cd..756c9ad2af 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2019 Pierre Langlois ;;; Copyright © 2020 Pkill -9 ;;; Copyright © 2020 Vincent Legoll +;;; Copyright © 2020 Raghav Gururajan ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,10 +47,12 @@ (define-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages elf) + #:use-module (gnu packages fontutils) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) + #:use-module (gnu packages graphics) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages linux) @@ -70,6 +73,7 @@ (define-module (gnu packages disk) #:use-module (gnu packages w3m) #:use-module (gnu packages web) #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system python) @@ -858,3 +862,49 @@ (define-public lf extra features. Some of the missing features are deliberately omitted since they are better handled by external tools.") (license license:expat))) + +(define-public xfe + (package + (name "xfe") + (version "1.43.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://sourceforge.net/projects/xfe/files/xfe/" + version + "/xfe-" version ".tar.gz")) + (sha256 + (base32 "1fl51k5jm2vrfc2g66agbikzirmp0yb0lqhmsssixfb4mky3hpzs")))) + (build-system gnu-build-system) + (native-inputs + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (inputs + `(("fox" ,fox) + ("freetype" ,freetype) + ("x11" ,libx11) + ("xcb" ,libxcb) + ("xcb-util" ,xcb-util) + ("xft" ,libxft) + ("xrandr" ,libxrandr))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-xferc-path + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (xferc (string-append out "/share/xfe/xferc"))) + (substitute* "src/XFileExplorer.cpp" + (("/usr/share/xfe/xferc") xferc)) + #t)))) + #:make-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append "BASH_COMPLETION_DIR=" out + "/share/bash-completion/completions"))))) + (synopsis "File Manager for X-Based Graphical Systems") + (description"XFE (X File Explorer) is a file manager for X. It is based on +the popular but discontinued, X Win Commander. It aims to be the file manager +of choice for all light thinking Unix addicts!") + (home-page "http://roland65.free.fr/xfe/") + (license license:gpl2+))) diff --git a/gnu/packages/distributed.scm b/gnu/packages/distributed.scm index e1e6636219..d861484d22 100644 --- a/gnu/packages/distributed.scm +++ b/gnu/packages/distributed.scm @@ -44,7 +44,7 @@ (define-module (gnu packages distributed) (define-public boinc-client (package (name "boinc-client") - (version "7.16.5") + (version "7.16.6") (source (origin (method git-fetch) (uri (git-reference @@ -55,7 +55,7 @@ (define-public boinc-client (file-name (git-file-name "boinc" version)) (sha256 (base32 - "107rpw9qd5x4pyxm9jd1lqxva5nxwb01dm5h61d6msv2vgiy0r8n")))) + "00xpzxxnki9hsf2vg9p67dk9ilw9ychpgm09fp3c41zyylb33ml5")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-server"))) (inputs `(("openssl" ,openssl) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 58999d6611..1d530573a5 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5976,33 +5976,30 @@ (define-public emacs-avy (license license:gpl3+))) (define-public emacs-ace-window - ;; last release version is from 2015 - (let ((commit "a5344925e399e1f015721cda6cf5db03c90ab87a") - (revision "1")) - (package - (name "emacs-ace-window") - (version (git-version "0.9.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/ace-window.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "18jm8gfgnf6ja9aarws5650lw2zfi3wdwc5j8r5ijn5fcqhfy7rc")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-avy" ,emacs-avy))) - (home-page "https://github.com/abo-abo/ace-window") - (synopsis "Quickly switch windows in Emacs") - (description - "@code{ace-window} is meant to replace @code{other-window}. + (package + (name "emacs-ace-window") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abo-abo/ace-window.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-avy" ,emacs-avy))) + (home-page "https://github.com/abo-abo/ace-window") + (synopsis "Quickly switch windows in Emacs") + (description + "@code{ace-window} is meant to replace @code{other-window}. In fact, when there are only two windows present, @code{other-window} is called. If there are more, each window will have its first character highlighted. Pressing that character will switch to that window.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-iedit ;; Last release version was in 2016. @@ -8406,24 +8403,23 @@ (define-public emacs-monroe (define-public emacs-orgalist (package (name "emacs-orgalist") - (version "1.11") + (version "1.12") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "orgalist-" version ".el")) (sha256 - (base32 - "0zbqkk540rax32s8szp5zgz3a02zw88fc1dmjmyw6h3ls04m91kl")))) + (base32 "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/orgalist.html") (synopsis "Manage Org-like lists in non-Org buffers") - (description "Write Org mode's plain lists in non-Org buffers. More -specifically, Orgalist supports the syntax of Org mode for numbered, -unnumbered, description items, checkboxes, and counter cookies. + (description "Orgalist writes and manages Org mode's plain lists in +non-Org buffers. More specifically, it supports the syntax of Org mode for +numbered, unnumbered, description items, checkboxes, and counter cookies. -The library also implements radio lists, i.e., lists written in Org -syntax later translated into the host format, e.g., LaTeX or HTML.") +The library also implements radio lists, i.e., lists written in Org syntax +later translated into the host format, e.g., LaTeX or HTML.") (license license:gpl3+))) (define-public emacs-writegood-mode @@ -9178,6 +9174,31 @@ (define-public emacs-helm-org-rifle in Org buffers and displays matching entries.") (license license:gpl3+))) +(define-public emacs-dired-git-info + ;; Upstream has no proper release. The base version is extracted from the + ;; "Version" keyword in the main file. + (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176") + (revision "0")) + (package + (name "emacs-dired-git-info") + (version (git-version "0.3.1" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/clemera/dired-git-info") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik")))) + (build-system emacs-build-system) + (home-page "https://github.com/clemera/dired-git-info/") + (synopsis "Show git info in Emacs Dired") + (description "This Emacs package provides a minor mode which shows git +information inside the Dired buffer.") + (license license:gpl3+)))) + (define-public emacs-dired-toggle-sudo (package (name "emacs-dired-toggle-sudo") @@ -9202,6 +9223,28 @@ (define-public emacs-dired-toggle-sudo @code{sudo} privileges.") (license license:wtfpl2))) +(define-public emacs-diredfl + (package + (name "emacs-diredfl") + (version "0.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/purcell/diredfl") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z")))) + (build-system emacs-build-system) + (home-page "https://github.com/purcell/diredfl/") + (synopsis "Extra Emacs font lock rules for a more colourful Dired") + (description "This library enables additional font locking in Dired mode. +This is adapted from the extra font lock rules provided by Drew Adams' Dired+ +package.") + (license license:gpl3+))) + (define-public emacs-memoize (package (name "emacs-memoize") diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index ea1fcbe9d4..c639a9a562 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2019 Sebastian Schott ;;; Copyright © 2020 Kei Kebreau ;;; Copyright © 2020 Christopher Lemmer Webber +;;; Copyright © 2020 Tom Zander ;;; ;;; This file is part of GNU Guix. ;;; @@ -1401,6 +1402,44 @@ (define-public bitcoin-unlimited a Qt GUI.") (license license:expat))) +(define-public fulcrum + (package + (name "fulcrum") + (version "1.0.5b") + (source + (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/FloweeTheHub/fulcrum/-/archive/v" + version "/fulcrum-v" version ".tar.gz")) + (sha256 + (base32 "1c1hkik8avill8ha33g76rk4b03j5ac8wiml69q4jav7a63ywgfy")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Call qmake instead of configure to create a Makefile. + (replace 'configure + (lambda _ + (invoke + "qmake" + (string-append "PREFIX=" %output) + "features=")))))) + (native-inputs + `(("qttools" ,qttools))) + (inputs + `(("python" ,python) + ("qtbase" ,qtbase) + ("rocksdb" ,rocksdb) + ("zlib" ,zlib))) + (home-page "https://gitlab.com/FloweeTheHub/fulcrum/") + (synopsis "Fast and nimble SPV server for Bitcoin Cash") + (description + "Flowee Fulcrum is a server that is the back-end for @acronym{SPV, +Simplified Payment Verification} wallets, it provides the full API for those +walets in a fast and small server. The full data is stored in a full node, +like Flowee the Hub, which Fulcrum connects to over RPC.") + (license license:gpl3+))) + (define-public beancount (package (name "beancount") diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 7b22dfc052..e66db17d93 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -398,61 +398,61 @@ (define-public bastet (license license:gpl3+))) (define-public cataclysm-dda - (let ((commit "9c732a5de48928691ab863d3ab275ca7b0e522fc")) - (package - (name "cataclysm-dda") - (version "0.D") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/CleverRaven/Cataclysm-DDA.git") - (commit commit))) - (sha256 - (base32 - "00zzhx1mh1qjq668cga5nbrxp2qk6b82j5ak65skhgnlr6ii4ysc")) - (file-name (git-file-name name version)))) - (build-system gnu-build-system) - (arguments - '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - "USE_HOME_DIR=1" "DYNAMIC_LINKING=1" "RELEASE=1" - "LOCALIZE=1" "LANGUAGES=all") - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-after 'build 'build-tiles - (lambda* (#:key make-flags outputs #:allow-other-keys) - ;; Change prefix directory and enable tile graphics and sound. - (apply invoke "make" "TILES=1" "SOUND=1" - (string-append "PREFIX=" - (assoc-ref outputs "tiles")) - (cdr make-flags)))) - (add-after 'install 'install-tiles - (lambda* (#:key make-flags outputs #:allow-other-keys) - (apply invoke "make" "install" "TILES=1" "SOUND=1" - (string-append "PREFIX=" - (assoc-ref outputs "tiles")) - (cdr make-flags))))) - ;; TODO: Add libtap++ from https://github.com/cbab/libtappp as a native - ;; input in order to support tests. - #:tests? #f)) - (outputs '("out" - "tiles")) ; For tile graphics and sound support. - (native-inputs - `(("gettext" ,gettext-minimal) - ("pkg-config" ,pkg-config))) - (inputs - `(("freetype" ,freetype) - ("libogg" ,libogg) - ("libvorbis" ,libvorbis) - ("ncurses" ,ncurses) - ("sdl2" ,sdl2) - ("sdl2-image" ,sdl2-image) - ("sdl2-ttf" ,sdl2-ttf) - ("sdl2-mixer" ,sdl2-mixer))) - (home-page "https://cataclysmdda.org/") - (synopsis "Survival horror roguelike video game") - (description - "Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set + (package + (name "cataclysm-dda") + (version "0.E") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/CleverRaven/Cataclysm-DDA.git") + (commit version))) + (sha256 + (base32 "0pbi0fw37zimzdklfj58s1ql0wlqq7dy6idkcsib3hn910ajaxan")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + '(#:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + "USE_HOME_DIR=1" "DYNAMIC_LINKING=1" "RELEASE=1" + "LOCALIZE=1" "LANGUAGES=all") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'build 'build-tiles + (lambda* (#:key make-flags outputs #:allow-other-keys) + ;; Change prefix directory and enable tile graphics and sound. + (apply invoke "make" "TILES=1" "SOUND=1" + (string-append "PREFIX=" + (assoc-ref outputs "tiles")) + (cdr make-flags)))) + (add-after 'install 'install-tiles + (lambda* (#:key make-flags outputs #:allow-other-keys) + (apply invoke "make" "install" "TILES=1" "SOUND=1" + (string-append "PREFIX=" + (assoc-ref outputs "tiles")) + (cdr make-flags))))) + ;; TODO: Add libtap++ from https://github.com/cbab/libtappp as a native + ;; input in order to support tests. + #:tests? #f)) + (outputs '("out" + "tiles")) ;for tile graphics and sound support + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) + (inputs + `(("freetype" ,freetype) + ("libogg" ,libogg) + ("libvorbis" ,libvorbis) + ("ncurses" ,ncurses) + ("sdl2" ,sdl2) + ("sdl2-image" ,sdl2-image) + ("sdl2-ttf" ,sdl2-ttf) + ("sdl2-mixer" ,sdl2-mixer))) + (home-page "https://cataclysmdda.org/") + (synopsis "Survival horror roguelike video game") + (description + "Cataclysm: Dark Days Ahead (or \"DDA\" for short) is a roguelike set in a post-apocalyptic world. Struggle to survive in a harsh, persistent, procedurally generated world. Scavenge the remnants of a dead civilization for food, equipment, or, if you are lucky, a vehicle with a full tank of gas @@ -460,7 +460,7 @@ (define-public cataclysm-dda powerful monstrosities, from zombies to giant insects to killer robots and things far stranger and deadlier, and against the others like yourself, that want what you have.") - (license license:cc-by-sa3.0)))) + (license license:cc-by-sa3.0))) (define-public corsix-th (package @@ -6066,7 +6066,7 @@ (define-public crispy-doom (package (inherit chocolate-doom) (name "crispy-doom") - (version "5.7.1") + (version "5.7.2") (source (origin (method git-fetch) (uri (git-reference @@ -6074,7 +6074,7 @@ (define-public crispy-doom (commit (string-append "crispy-doom-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1gqivy4pxasy7phyznixsagylf9f70bk33b0knpfzzlks6cc6zzj")))) + (base32 "002aqbgsksrgzqridwdlkrjincaxh0dkvwlrbb8d2f3kwk7lj4fq")))) (native-inputs (append (package-native-inputs chocolate-doom) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 7f56d26804..16ab9d20a4 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2019 Tanguy Le Carrour ;;; Copyright © 2020 Jakub Kądziołka ;;; Copyright © 2020 Nicolas Goaziou +;;; Copyright © 2020 Raghav Gururajan ;;; ;;; This file is part of GNU Guix. ;;; @@ -87,6 +88,61 @@ (define-module (gnu packages graphics) #:use-module (guix packages) #:use-module (guix utils)) +(define-public fox + (package + (name "fox") + (version "1.6.57") + (source + (origin + (method url-fetch) + (uri + (string-append "https://fox-toolkit.org/ftp/fox-" version ".tar.gz")) + (sha256 + (base32 "08w98m6wjadraw1pi13igzagly4b2nfa57kdqdnkjfhgkvg1bvv5")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* "configure" + (("-I/usr/include/freetype2") + (string-append "-I" + (string-append + (assoc-ref %build-inputs "freetype") + "/include/freetype2")))) + #t))))) + (native-inputs + `(("doxygen" ,doxygen))) + (inputs + `(("bzip2" ,lbzip2) + ("freetype" ,freetype) + ("gl" ,mesa) + ("glu" ,glu) + ("jpeg" ,libjpeg-turbo) + ("png" ,libpng) + ("tiff" ,libtiff) + ("x11" ,libx11) + ("xcursor" ,libxcursor) + ("xext" ,libxext) + ("xfixes" ,libxfixes) + ("xft" ,libxft) + ("xinput" ,libxi) + ("xrandr" ,libxrandr) + ("xrender" ,libxrender) + ("xshm" ,libxshmfence) + ("zlib" ,zlib))) + (synopsis "Widget Toolkit for building GUI") + (description"FOX (Free Objects for X) is a C++ based Toolkit for developing +Graphical User Interfaces easily and effectively. It offers a wide, and +growing, collection of Controls, and provides state of the art facilities such +as drag and drop, selection, as well as OpenGL widgets for 3D graphical +manipulation. FOX also implements icons, images, and user-convenience features +such as status line help, and tooltips. Tooltips may even be used for 3D +objects!") + (home-page "http://www.fox-toolkit.org") + (license license:lgpl2.1+))) + (define-public blender (package (name "blender") diff --git a/gnu/packages/ham-radio.scm b/gnu/packages/ham-radio.scm index 376191af54..56a9719414 100644 --- a/gnu/packages/ham-radio.scm +++ b/gnu/packages/ham-radio.scm @@ -1,6 +1,9 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2018, 2019 Arun Isaac ;;; Copyright © 2019, 2020 Evan Straw +;;; Copyright © 2020 Guillaume Le Vaillant +;;; Copyright © 2020 Danny Milosavljevic +;;; Copyright © 2020 Charlie Ritter ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,20 +25,43 @@ (define-module (gnu packages ham-radio) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (gnu packages algebra) + #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages boost) + #:use-module (gnu packages check) + #:use-module (gnu packages documentation) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages glib) + #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages libusb) + #:use-module (gnu packages linux) + #:use-module (gnu packages logging) + #:use-module (gnu packages maths) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages networking) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages python-science) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) #:use-module (gnu packages sdr) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages swig) + #:use-module (gnu packages tex) + #:use-module (gnu packages version-control) #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) #:use-module (guix build-system cmake) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) - #:use-module (guix build-system python)) + #:use-module (guix build-system python) + #:use-module (guix build-system qt)) (define-public rtl-sdr (package @@ -176,3 +202,283 @@ (define-public redsea csdr, for example. It can also decode raw ASCII bitstream, the hex format used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).") (license license:expat))) + +(define-public gnuradio + (package + (name "gnuradio") + (version "3.8.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.gnuradio.org/releases/gnuradio/" + "gnuradio-" version ".tar.xz")) + (sha256 + (base32 "0aw55gf5549b0fz2qdi7vplcmaf92bj34h40s34b2ycnqasv900r")))) + (build-system cmake-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("git" ,git-minimal) + ("ghostscript" ,ghostscript) + ("orc" ,orc) + ("pkg-config" ,pkg-config) + ("python" ,python) + ("python-cheetah" ,python-cheetah) + ("python-mako" ,python-mako) + ("python-pyzmq" ,python-pyzmq) + ("python-scipy" ,python-scipy) + ("python-sphinx" ,python-sphinx) + ("swig" ,swig) + ("texlive" ,(texlive-union (list texlive-amsfonts + texlive-latex-amsmath + ;; TODO: Add newunicodechar. + texlive-latex-graphics))) + ("xorg-server" ,xorg-server-for-tests))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("boost" ,boost) + ("cairo" ,cairo) + ("codec2" ,codec2) + ("cppzmq" ,cppzmq) + ("fftwf" ,fftwf) + ("gmp" ,gmp) + ("gsl" ,gsl) + ("gsm" ,gsm) + ("gtk+" ,gtk+) + ("jack" ,jack-1) + ("log4cpp" ,log4cpp) + ("pango" ,pango) + ("portaudio" ,portaudio) + ("python-click" ,python-click) + ("python-click-plugins" ,python-click-plugins) + ("python-lxml" ,python-lxml) + ("python-numpy" ,python-numpy) + ("python-pycairo" ,python-pycairo) + ("python-pygobject" ,python-pygobject) + ("python-pyqt" ,python-pyqt) + ("python-pyyaml" ,python-pyyaml) + ("qtbase" ,qtbase) + ("qwt" ,qwt) + ("zeromq" ,zeromq))) + (arguments + `(#:modules ((guix build cmake-build-system) + ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) + ((guix build python-build-system) #:prefix python:) + (guix build utils) + (ice-9 match)) + #:imported-modules (,@%cmake-build-system-modules + (guix build glib-or-gtk-build-system) + (guix build python-build-system)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((qwt (assoc-ref inputs "qwt"))) + (substitute* "cmake/Modules/FindQwt.cmake" + (("/usr/include") + (string-append qwt "/include")) + (("/usr/lib") + (string-append qwt "/lib")) + (("qwt6-\\$\\{QWT_QT_VERSION\\}") + "qwt"))) + (substitute* "cmake/Modules/GrPython.cmake" + (("dist-packages") + "site-packages")) + (substitute* '("gr-vocoder/swig/vocoder_swig.i" + "gr-vocoder/include/gnuradio/vocoder/codec2.h" + "gr-vocoder/include/gnuradio/vocoder/freedv_api.h") + ((" ;;; Copyright © 2020 Peng Mei Yu ;;; Copyright © 2020 R Veera Kumar +;;; Copyright © 2020 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,7 @@ (define-module (gnu packages image-viewers) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (guix build-system meson) @@ -419,44 +421,95 @@ (define-public luminance-hdr (license license:gpl2+))) ;; CBR and RAR are currently unsupported, due to non-free dependencies. -;; For optional PDF support, you can install the mupdf package. (define-public mcomix - (package - (name "mcomix") - (version "1.2.1") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/mcomix/MComix-" version - "/mcomix-" version ".tar.bz2")) - (sha256 - (base32 - "0fzsf9pklhfs1rzwzj64c0v30b74nk94p93h371rpg45qnfiahvy")))) - (build-system python-build-system) - (inputs - `(("p7zip" ,p7zip) - ("python2-pillow" ,python2-pillow) - ("python2-pygtk" ,python2-pygtk))) - (arguments - ;; Python 2.5 or newer (Python 3 and up is not supported) - `(#:python ,python-2 - #:tests? #f ; there are no tests - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((p7zip (assoc-ref inputs "p7zip"))) - ;; insert absolute path to 7z executable - (substitute* "mcomix/archive/sevenzip_external.py" - (("_7z_executable = -1") - (string-append "_7z_executable = u'" p7zip "/bin/7z'")))) - #t))))) - (home-page "https://sourceforge.net/p/mcomix/wiki/Home/") - (synopsis "Image viewer for comics") - (description "MComix is a customizable image viewer that specializes as + ;; Official mcomix hasn't been updated since 2016, it's broken with + ;; python-pillow 6+ and only supports Python 2. We use fork instead. + (let ((commit "fea55a7a9369569eefed72209eed830409c4af98")) + (package + (name "mcomix") + (version (git-version "1.2.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/multiSnow/mcomix3") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05zl0dkjwbdcm2zlk4nz9w33amlqj8pbf32a8ymshc2356fqhhi5")))) + (build-system python-build-system) + (inputs + `(("p7zip" ,p7zip) + ("python-pillow" ,python-pillow) + ("python-pygobject" ,python-pygobject) + ("python-pycairo" ,python-pycairo))) + (arguments + `(#:tests? #f ; FIXME: How do we run tests? + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((p7zip (assoc-ref inputs "p7zip"))) + ;; insert absolute path to 7z executable + (substitute* "mcomix/mcomix/archive/sevenzip_external.py" + (("_7z_executable = -1") + (string-append "_7z_executable = u'" p7zip "/bin/7z'")))) + #t)) + (replace 'build + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (pyver ,(version-major+minor (package-version python))) + (lib (string-append out "/lib/python" pyver))) + (invoke (which "python") "installer.py" "--srcdir=mcomix" + (string-append "--target=" lib)) + (rename-file (string-append lib "/mcomix") + (string-append lib "/site-packages")) + #t))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (bin (string-append out "/bin")) + (pyver ,(version-major+minor (package-version python))) + (lib (string-append out "/lib/python" pyver "/site-packages"))) + (mkdir-p bin) + (rename-file (string-append lib "/mcomixstarter.py") + (string-append bin "/mcomix")) + (rename-file (string-append lib "/comicthumb.py") + (string-append bin "/comicthumb")) + (install-file "mime/mcomix.desktop" + (string-append share "/applications")) + (install-file "mime/mcomix.appdata.xml" + (string-append share "/metainfo")) + (install-file "mime/mcomix.xml" + (string-append share "/mime/packages")) + (install-file "mime/comicthumb.thumbnailer" + (string-append share "/thumbnailers")) + (install-file "man/mcomix.1" (string-append share "/man/man1")) + (install-file "man/comicthumb.1" (string-append share "/man/man1")) + (for-each + (lambda (size) + (install-file + (format #f "mcomix/mcomix/images/~sx~s/mcomix.png" size size) + (format #f "~a/icons/hicolor/~sx~s/apps/" share size size)) + (for-each + (lambda (ext) + (install-file + (format #f "mime/icons/~sx~s/application-x-~a.png" size size ext) + (format #f "~a/icons/hicolor/~sx~s/mimetypes/" + share size size))) + '("cb7" "cbr" "cbt" "cbz"))) + '(16 22 24 32 48)) + #t)))))) + (home-page "https://sourceforge.net/p/mcomix/wiki/Home/") + (synopsis "Image viewer for comics") + (description "MComix is a customizable image viewer that specializes as a comic and manga reader. It supports a variety of container formats -including CBZ, CB7, CBT, LHA.") - (license license:gpl2+))) +including CBZ, CB7, CBT, LHA. + +For PDF support, install the @emph{mupdf} package.") + (license license:gpl2+)))) (define-public qview (package diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm index 1b99ae1de4..fea6dd3068 100644 --- a/gnu/packages/kde-pim.scm +++ b/gnu/packages/kde-pim.scm @@ -53,7 +53,7 @@ (define-public akonadi (patches (search-patches "akonadi-paths.patch" "akonadi-timestamps.patch" - "akonadi-Revert-Make-installation-properly-relo.patch")))) + "akonadi-not-relocatable.patch")))) (build-system qt-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index fa47789d5c..886b67d580 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -369,18 +369,18 @@ (define (%upstream-linux-source version hash) (sha256 hash))) -(define-public linux-libre-5.6-version "5.6.2") +(define-public linux-libre-5.6-version "5.6.3") (define-public linux-libre-5.6-pristine-source (let ((version linux-libre-5.6-version) - (hash (base32 "1fdmcx5fk9wq9yx6vvnw76nvdysbvm83cik1dj1d67lw6bc92k9d"))) + (hash (base32 "1ajh1iw3bplm6ckcycg45wfmmqkvfiqmh6i3m1895dfapfd6h4qx"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.6))) -(define-public linux-libre-5.4-version "5.4.30") +(define-public linux-libre-5.4-version "5.4.31") (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "1vwx6j87pkfyq68chng1hy0c85hpc2byabiv1pcikrmw07vpip8i"))) + (hash (base32 "1svf4wf4j1vqhdpgx63ry4c99fc54d9nfi4d1xm7z209z3w86451"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) @@ -4391,7 +4391,7 @@ (define-public gpm (define-public btrfs-progs (package (name "btrfs-progs") - (version "5.4.1") + (version "5.6") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -4399,7 +4399,7 @@ (define-public btrfs-progs "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "0scxg9p6z0wss92gmv5a8yxdmr8x449kb5v3bfnvs26n92r7zq7k")))) + "0srg276yccfmqz0skmmga3vbqx4wiqsk1l6h86n6ryhxa9viqcm1")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 783cceec48..41f323ee78 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -26,6 +26,7 @@ ;;; Copyright © 2019 David Wilson ;;; Copyright © 2019, 2020 Alexandros Theodotou ;;; Copyright © 2020 Vincent Legoll +;;; Copyright © 2020 Lars-Dominik Braun ;;; ;;; This file is part of GNU Guix. ;;; @@ -2671,7 +2672,7 @@ (define-public curseradio (define-public pianobar (package (name "pianobar") - (version "2019.02.14") + (version "2020.04.05") (source (origin (method git-fetch) (uri (git-reference @@ -2680,7 +2681,7 @@ (define-public pianobar (file-name (git-file-name name version)) (sha256 (base32 - "1bfabkj3m9kmhxl64w4azmi0xf7w52fmqfbw2ag28hbb5yy01k1m")))) + "1gq8kpks6nychqz4gf0rpy7mrhz5vjw48a60x56j6y9flmazmypw")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index bdc73a91f7..099a953989 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -30,13 +30,13 @@ (define-module (gnu packages nano) (define-public nano (package (name "nano") - (version "4.9") + (version "4.9.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz")) (sha256 - (base32 "19ik88b3g0d9xwav4hkai2h1acmjy5fdnh21gdc1mjq5s4lrff8f")))) + (base32 "1xifbn1xaklrrf7knxvqif0hy0wgnas7w0wfggay5kifjkm5x8nq")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index dfcdb58de4..e37bf30a7d 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015, 2018 Ludovic Courtès ;;; Copyright © 2016, 2017, 2018 Efraim Flashner -;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2019 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. @@ -28,7 +28,9 @@ (define-module (gnu packages ntp) #:use-module (gnu packages base) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) + #:use-module (gnu packages nettle) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) #:use-module (gnu packages tls) #:use-module (guix build-system gnu) #:use-module (guix download) @@ -38,6 +40,70 @@ (define-module (gnu packages ntp) #:use-module (guix utils) #:use-module (srfi srfi-1)) +(define-public chrony + (package + (name "chrony") + (version "3.5") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.tuxfamily.org/chrony/" + "chrony-" version ".tar.gz")) + (sha256 + (base32 "1d9r2dhslll4kzdmxrj0qfgwq1b30d4l3s5cwr8yr93029dpj0jf")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((srfi srfi-26) + (guix build utils) + (guix build gnu-build-system)) + #:configure-flags + (list "--enable-scfilter" + "--with-sendmail=sendmail" + "--with-user=chrony") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'stay-inside-out + ;; Simply setting CHRONYVARDIR to something nonsensical at install + ;; time would result in nonsense file names in man pages. + (lambda _ + (substitute* "Makefile.in" + (("mkdir -p \\$\\(DESTDIR\\)\\$\\(CHRONYVARDIR\\)") ":")) + #t)) + (add-after 'install 'install-more-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (for-each (cut install-file <> doc) + (list "README" "FAQ")) + (copy-recursively "examples" (string-append doc "/examples")) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libcap" ,libcap) + ("libseccomp" ,libseccomp) + ("nettle" ,nettle))) + (home-page "https://chrony.tuxfamily.org/") + (synopsis "System clock synchronisation service that speaks NTP") + (description + "Chrony keeps your system time accurate. It synchronises your computer's +clock with @acronym{NTP, Network Time Protocol} servers, reference clocks such +as GPS receivers, or even manual input of the correct time from a wristwatch. + +Chrony will determine the rate at which the computer gains or loses time, and +compensate for it. It can also operate as an NTPv4 (RFC 5905) server and peer +to tell time to other computers on the network. + +It's designed to perform well even under adverse conditions: congested +networks, unreliable clocks drifting with changes in temperature, and devices +or virtual machines that are frequently turned off and connect to the Internet +for only a few minutes at a time. + +Typical accuracy when synchronised over the Internet is several milliseconds. +On a local network this can reach tens of microseconds. With hardware +time-stamping or reference clock, sub-microsecond accuracy is possible.") + (license l:gpl2))) + (define-public ntp (package (name "ntp") @@ -103,7 +169,7 @@ (define-public openntpd (source (origin (method url-fetch) (uri (string-append - "mirror://openbsd/OpenNTPD/" name "-" version ".tar.gz")) + "mirror://openbsd/OpenNTPD/openntpd-" version ".tar.gz")) (sha256 (base32 "0fn12i4kzsi0zkr4qp3dp9bycmirnfapajqvdfx02zhr4hanj0kv")))) diff --git a/gnu/packages/patches/akonadi-Revert-Make-installation-properly-relo.patch b/gnu/packages/patches/akonadi-not-relocatable.patch similarity index 100% rename from gnu/packages/patches/akonadi-Revert-Make-installation-properly-relo.patch rename to gnu/packages/patches/akonadi-not-relocatable.patch diff --git a/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch b/gnu/packages/patches/binutils-mingw-w64-deterministic.patch similarity index 100% rename from gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch rename to gnu/packages/patches/binutils-mingw-w64-deterministic.patch diff --git a/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch b/gnu/packages/patches/binutils-mingw-w64-timestamp.patch similarity index 100% rename from gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch rename to gnu/packages/patches/binutils-mingw-w64-timestamp.patch diff --git a/gnu/packages/patches/kmscon-runtime-keymap-switch.patch b/gnu/packages/patches/kmscon-runtime-keymap-switch.patch index 656c76fa40..deb5688daf 100644 --- a/gnu/packages/patches/kmscon-runtime-keymap-switch.patch +++ b/gnu/packages/patches/kmscon-runtime-keymap-switch.patch @@ -1,14 +1,5 @@ -From 360d44d67e7be46108bec982ff2e79b89f04a9a3 Mon Sep 17 00:00:00 2001 -From: Mathieu Othacehe -Date: Thu, 15 Nov 2018 14:34:40 +0900 -Subject: [PATCH] add runtime keymap switch support. - ---- - src/pty.c | 23 ++++++++++- - src/uterm_input.c | 2 + - src/uterm_input_internal.h | 5 +++ - src/uterm_input_uxkb.c | 83 ++++++++++++++++++++++++++++++++++++++ - 4 files changed, 111 insertions(+), 2 deletions(-) +By Mathieu Othacehe . +Modified by Florian Pelz . diff --git a/src/pty.c b/src/pty.c index 1443f4a..f64cb5b 100644 @@ -124,7 +115,7 @@ index 04e6cc9..ec44459 100644 uint16_t key_state, uint16_t code); diff --git a/src/uterm_input_uxkb.c b/src/uterm_input_uxkb.c -index 925c755..4760972 100644 +index 925c755..5d5c22e 100644 --- a/src/uterm_input_uxkb.c +++ b/src/uterm_input_uxkb.c @@ -31,6 +31,9 @@ @@ -137,7 +128,7 @@ index 925c755..4760972 100644 #include #include "shl_hook.h" #include "shl_llog.h" -@@ -178,6 +181,86 @@ static void timer_event(struct ev_timer *timer, uint64_t num, void *data) +@@ -178,6 +181,87 @@ static void timer_event(struct ev_timer *timer, uint64_t num, void *data) shl_hook_call(dev->input->hook, dev->input, &dev->repeat_event); } @@ -145,11 +136,11 @@ index 925c755..4760972 100644 +{ + struct uterm_input_dev *dev = data; + char in; -+ char keymap[3][255]; ++ char keymap[4][255]; + int pos = 0; + int curr_keymap = 0; + int ret; -+ char *model, *layout, *variant; ++ char *model, *layout, *variant, *options; + + if (!(mask & EV_READABLE)) + return; @@ -159,6 +150,7 @@ index 925c755..4760972 100644 + model = keymap[0]; + layout = keymap[1]; + variant = keymap[2]; ++ options = keymap[3]; + + do { + ret = read(dev->rupdate_fd, &in, sizeof(in)); @@ -175,7 +167,7 @@ index 925c755..4760972 100644 + + llog_info(dev->input, "HANDLER CALLED %s|%s|%s\n", + model, layout, variant); -+ uxkb_desc_init(dev->input, model, layout, variant, NULL, NULL); ++ uxkb_desc_init(dev->input, model, layout, variant, options, NULL); + + dev->state = xkb_state_new(dev->input->keymap); + if (!dev->state) { @@ -224,6 +216,3 @@ index 925c755..4760972 100644 int uxkb_dev_init(struct uterm_input_dev *dev) { int ret; --- -2.17.1 - diff --git a/gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch b/gnu/packages/patches/sdl-pango-header-guard.patch similarity index 100% rename from gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch rename to gnu/packages/patches/sdl-pango-header-guard.patch diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 4b3db6d5e0..530a2478f3 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -195,9 +195,6 @@ (define-public python-scikit-image "Scikit-image is a collection of algorithms for image processing.") (license license:bsd-3))) -(define-public python2-scikit-image - (package-with-python2 python-scikit-image)) - (define-public python-pandas (package (name "python-pandas") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index b26399c646..e9284d9342 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015 Omar Radwan ;;; Copyright © 2015 Pierre-Antoine Rault ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus -;;; Copyright © 2015, 2016 Christopher Allan Webber +;;; Copyright © 2015, 2016, 2020 Christopher Allan Webber ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2015, 2016 David Thompson ;;; Copyright © 2015, 2016, 2017, 2019 Leo Famulari @@ -982,8 +982,17 @@ (define-public python-serpent Because only safe literals are encoded, it is safe to send serpent data to other machines, such as over the network.") + (properties `((python2-variant . ,(delay python2-serpent)))) (license license:expat))) +(define-public python2-serpent + (let ((base (package-with-python2 (strip-python2-variant python-serpent)))) + (package + (inherit base) + (propagated-inputs + `(("python-enum34" ,python2-enum34) + ,@(package-propagated-inputs base)))))) + (define-public python-setuptools (package (name "python-setuptools") @@ -6805,14 +6814,14 @@ (define-public python2-networkx (define-public python-datrie (package (name "python-datrie") - (version "0.8") + (version "0.8.2") (source (origin (method url-fetch) (uri (pypi-uri "datrie" version)) (sha256 (base32 - "0338r8xgmpy78556jhms0h6qkvyjr10p8bpgdvcpqzm9lrmxmmdx")))) + "0pbn32flkrpjiwfcknmj6398qa81ba783kbcvwan3kym73v0hnsj")))) (build-system python-build-system) (native-inputs `(("python-cython" ,python-cython) @@ -17222,26 +17231,35 @@ (define-public python2-sortedcontainers (define-public python-cloudpickle (package (name "python-cloudpickle") - (version "0.6.1") + (version "1.3.0") (source (origin (method url-fetch) (uri (pypi-uri "cloudpickle" version)) (sha256 (base32 - "1wdw89mlm7fqa3fm3ymskx05jrys66n8m1z1a8s0mss0799ahsgi")))) + "0lx7gy9clp427qwcm7b23zdsldpr03gy3vxxhyi8fpbhwz859brq")))) (build-system python-build-system) - ;; FIXME: there are 5 errors in 122 tests: - ;; ERROR: test_function_pickle_compat_0_4_0 (tests.cloudpickle_test.CloudPickleTest) - ;; ERROR: test_function_pickle_compat_0_4_1 (tests.cloudpickle_test.CloudPickleTest) - ;; ERROR: test_function_pickle_compat_0_4_0 (tests.cloudpickle_test.Protocol2CloudPickleTest) - ;; ERROR: test_function_pickle_compat_0_4_1 (tests.cloudpickle_test.Protocol2CloudPickleTest) - ;; ERROR: test_temp_file (tests.cloudpickle_file_test.CloudPickleFileTests) - ;; TypeError: cannot serialize '_io.BufferedRandom' object - (arguments '(#:tests? #f)) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'check 'do-not-override-PYTHONPATH + (lambda _ + ;; Append to PYTHONPATH instead of overriding it so + ;; that dependencies from Guix can be found. + (substitute* "tests/testutils.py" + (("env\\['PYTHONPATH'\\] = pythonpath") + "env['PYTHONPATH'] += os.pathsep + pythonpath")) + #t)) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (invoke "pytest" "-s" "-vv") + (format #t "test suite not run~%")) + #t))))) (native-inputs - `(("python-pytest" ,python-pytest) - ("python-mock" ,python-mock) + `(;; For tests. + ("python-psutil" ,python-psutil) + ("python-pytest" ,python-pytest) ("python-tornado" ,python-tornado))) (home-page "https://github.com/cloudpipe/cloudpickle") (synopsis "Extended pickling support for Python objects") @@ -17251,10 +17269,19 @@ (define-public python-cloudpickle is especially useful for cluster computing where Python expressions are shipped over the network to execute on remote hosts, possibly close to the data.") + (properties `((python2-variant . ,(delay python2-cloudpickle)))) (license license:bsd-3))) (define-public python2-cloudpickle - (package-with-python2 python-cloudpickle)) + (let ((base (package-with-python2 (strip-python2-variant python-cloudpickle)))) + (package + (inherit base) + (native-inputs + `(("python-mock" ,python2-mock) + ,@(package-native-inputs base))) + (propagated-inputs + `(("python-futures" ,python2-futures) + ,@(package-propagated-inputs base)))))) (define-public python-locket (package @@ -17365,13 +17392,13 @@ (define-public python-fsspec (define-public python-dask (package (name "python-dask") - (version "2.9.0") + (version "2.14.0") (source (origin (method url-fetch) (uri (pypi-uri "dask" version)) (sha256 - (base32 "1w1hqr8vyx6ygwflj2737dcy0mmgvrc0s602gnny8pzlcbs9m76b")))) + (base32 "031j0j26s0675v0isyps2dphm03330n7dy8ifdy70jgvf78d119q")))) (build-system python-build-system) (arguments `(#:phases @@ -18836,6 +18863,29 @@ (define-public offlate an upload option to send your work back to the platform.") (license license:gpl3+))) +(define-public python-titlecase + (package + (name "python-titlecase") + (version "0.12.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "titlecase" version)) + (sha256 + (base32 + "0486i99wf8ssa7sgn81fn6fv6i4rhhq6n751bc740b3hzfbpmpl4")))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose))) + (home-page "https://github.com/ppannuto/python-titlecase") + (synopsis "Capitalize strings similar to book titles") + (description + "Python-Titlecase is a Python port of John Gruber's titlecase.pl. +It capitalizes (predominantly English) strings in a way that is similar to +book titles, using the New York Times Manual of Style to leave certain words +lowercase.") + (license license:expat))) + (define-public python-pypng (package (name "python-pypng") @@ -19559,3 +19609,24 @@ (define-public python-pysaml2 This package was originally written to work in a WSGI environment, but there are extensions that allow you to use it with other frameworks.") (license license:asl2.0))) + +(define-public python-click-plugins + (package + (name "python-click-plugins") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "click-plugins" version)) + (sha256 + (base32 "0jr6bxj67vg988vkm6nz8jj98v9lg46bn49lkhak3n598jbrkas6")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-click" ,python-click))) + (synopsis "Extension for Click to register external CLI commands") + (description "This package provides n extension module for Click to +register external CLI commands via setuptools entry-points.") + (home-page "https://github.com/click-contrib/click-plugins") + (license license:bsd-3))) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 6f634f78cc..6d91727809 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -339,14 +339,12 @@ (define-public sdl-pango "SDL_Pango-" version ".tar.gz")) (sha256 (base32 "197baw1dsg0p4pljs5k0fshbyki00r4l49m1drlpqw6ggawx6xbz")) - (patches - (search-patches - "sdl-pango-api_additions.patch" - "sdl-pango-blit_overflow.patch" - "sdl-pango-fillrect_crash.patch" - "sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch" - "sdl-pango-matrix_declarations.patch" - "sdl-pango-sans-serif.patch")))) + (patches (search-patches "sdl-pango-api_additions.patch" + "sdl-pango-blit_overflow.patch" + "sdl-pango-fillrect_crash.patch" + "sdl-pango-header-guard.patch" + "sdl-pango-matrix_declarations.patch" + "sdl-pango-sans-serif.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--disable-static") diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index bfcf3d39ef..506ea06bc8 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -72,7 +72,7 @@ (define-module (gnu packages ssh) (define-public libssh (package (name "libssh") - (version "0.9.3") + (version "0.9.4") (source (origin (method git-fetch) (uri (git-reference @@ -80,7 +80,7 @@ (define-public libssh (commit (string-append "libssh-" version)))) (sha256 (base32 - "175i3xybg69d5lb078334v6dd3njm743kww8f67ix9w33969rmzf")) + "0qr4vi3k1wv69c95d9j26fiv78pzyksaq8ccd76b8nxar5z1fbj6")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (outputs '("out" "debug")) @@ -415,10 +415,10 @@ (define-public mosh (home-page "https://mosh.org/") (synopsis "Remote shell tolerant to intermittent connectivity") (description - "Remote terminal application that allows roaming, supports intermittent -connectivity, and provides intelligent local echo and line editing of user -keystrokes. Mosh is a replacement for SSH. It's more robust and responsive, -especially over Wi-Fi, cellular, and long-distance links.") + "Mosh is a remote terminal application that allows client roaming, supports +intermittent connectivity, and provides intelligent local echo and line editing +of user keystrokes. It's a replacement for SSH that's more robust and +responsive, especially over Wi-Fi, cellular, and long-distance links.") (license license:gpl3+))) (define-public et @@ -448,7 +448,7 @@ (define-public et without interrupting the session. Unlike SSH sessions, ET sessions will survive even network outages and IP changes. ET uses a custom protocol over TCP, not the SSH protocol.") - (home-page "https://mistertea.github.io/EternalTCP/") + (home-page "https://eternalterminal.dev/") (license license:asl2.0))) (define-public dropbear diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 16fd93415b..287211777f 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -214,14 +214,14 @@ (define-public aalib (define-public celluloid (package (name "celluloid") - (version "0.18") + (version "0.19") (source (origin (method url-fetch) (uri (string-append "https://github.com/celluloid-player/celluloid/releases" "/download/v" version "/celluloid-" version ".tar.xz")) (sha256 - (base32 "0gmscx9zb8ppfjlnmgbcmhknhawa05sdhxi7dv5wjapjq0glq481")))) + (base32 "1s3qkism96gi44incvsb6rqg255qcvjvw61ya7nw30md0sapj4sl")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 87c2ae7718..f13a3fd253 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -854,7 +854,7 @@ (define-public xfce ("shared-mime-info" ,shared-mime-info) ("thunar" ,thunar) ("thunar-volman" ,thunar-volman) - ("tumlber" ,tumbler) + ("tumbler" ,tumbler) ("xfce4-appfinder" ,xfce4-appfinder) ("xfce4-panel" ,xfce4-panel) ("xfce4-power-manager" ,xfce4-power-manager) @@ -868,7 +868,7 @@ (define-public xfce ("xfce4-battery-plugin" ,xfce4-battery-plugin) ("xfce4-clipman-plugin" ,xfce4-clipman-plugin) ("xfce4-pulseaudio-plugin" ,xfce4-pulseaudio-plugin) - ("xfce4-xkb-plugin" ,xfce4-xkb-plugin))) + ("xfce4-xkb-plugin" ,xfce4-xkb-plugin))) (native-search-paths ;; For finding panel plugins. (package-native-search-paths xfce4-panel)) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 7300ff5f4a..8663243256 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017, 2019 Christopher Baines ;;; Copyright © 2019 Tim Gesthuizen ;;; Copyright © 2019 David Wilson +;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -892,7 +893,7 @@ (define sane-service-type (define-record-type* gnome-desktop-configuration make-gnome-desktop-configuration gnome-desktop-configuration? - (gnome-package gnome-package (default gnome))) + (gnome gnome-package (default gnome))) (define (gnome-polkit-settings config) "Return the list of GNOME dependencies that provide polkit actions and diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 9ae84ddbc4..dcbe6ee16f 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2018 Pierre-Antoine Rouby ;;; Copyright © 2017, 2018, 2019 Christopher Baines ;;; Copyright © 2018 Marius Bakke -;;; Copyright © 2019 Florian Pelz +;;; Copyright © 2019, 2020 Florian Pelz ;;; Copyright © 2020 Ricardo Wurmus ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; @@ -652,8 +652,8 @@ (define (default-nginx-config config) "user nginx nginx;\n" "pid " run-directory "/pid;\n" "error_log " log-directory "/error.log info;\n" - (map emit-global-directive global-directives) (map emit-load-module modules) + (map emit-global-directive global-directives) "http {\n" " client_body_temp_path " run-directory "/client_body_temp;\n" " proxy_temp_path " run-directory "/proxy_temp;\n" diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index c6ec25a895..04d84b5220 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -158,7 +158,9 @@ (define* (expression->derivation-in-linux-vm name exp (references-graphs #f) (memory-size 256) (disk-image-format "qcow2") - (disk-image-size 'guess)) + (disk-image-size 'guess) + + (substitutable? #t)) "Evaluate EXP in a QEMU virtual machine running LINUX with INITRD (a derivation). The virtual machine runs with MEMORY-SIZE MiB of memory. In the virtual machine, EXP has access to FILE-SYSTEMS, which, by default, includes a @@ -175,7 +177,10 @@ (define* (expression->derivation-in-linux-vm name exp When REFERENCES-GRAPHS is true, it must be a list of file name/store path pairs, as for `derivation'. The files containing the reference graphs are -made available under the /xchg CIFS share." +made available under the /xchg CIFS share. + +SUBSTITUTABLE? determines whether the returned derivation should be marked as +substitutable." (define user-builder (program-file "builder-in-linux-vm" exp)) @@ -257,7 +262,8 @@ (define builder #:target target #:env-vars env-vars #:guile-for-build guile-for-build - #:references-graphs references-graphs))) + #:references-graphs references-graphs + #:substitutable? substitutable?))) (define (has-guix-service-type? os) "Return true if OS contains a service of the type GUIX-SERVICE-TYPE." @@ -277,7 +283,8 @@ (define* (iso9660-image #:key bootloader (register-closures? (has-guix-service-type? os)) (inputs '()) - (grub-mkrescue-environment '())) + (grub-mkrescue-environment '()) + (substitutable? #t)) "Return a bootable, stand-alone iso9660 image. INPUTS is a list of inputs (as for packages)." @@ -348,6 +355,7 @@ (define schema #:make-disk-image? #f #:single-file-output? #t #:references-graphs inputs + #:substitutable? substitutable? ;; Xorriso seems to be quite memory-hungry, so increase the VM's RAM size. #:memory-size 512)) @@ -367,7 +375,8 @@ (define* (qemu-image #:key bootloader (register-closures? (has-guix-service-type? os)) (inputs '()) - copy-inputs?) + copy-inputs? + (substitutable? #t)) "Return a bootable, stand-alone QEMU image of type DISK-IMAGE-FORMAT (e.g., 'qcow2' or 'raw'), with a root partition of type FILE-SYSTEM-TYPE. Optionally, FILE-SYSTEM-LABEL can be specified as the volume name for the root @@ -495,7 +504,8 @@ (define schema #:make-disk-image? #t #:disk-image-size disk-image-size #:disk-image-format disk-image-format - #:references-graphs inputs)) + #:references-graphs inputs + #:substitutable? substitutable?)) (define* (system-docker-image os #:key @@ -650,11 +660,15 @@ (define* (system-disk-image os (name "disk-image") (file-system-type "ext4") (disk-image-size (* 900 (expt 2 20))) - (volatile? #t)) + (volatile? #t) + (substitutable? #t)) "Return the derivation of a disk image of DISK-IMAGE-SIZE bytes of the system described by OS. Said image can be copied on a USB stick as is. When VOLATILE? is true, the root file system is made volatile; this is useful -to USB sticks meant to be read-only." +to USB sticks meant to be read-only. + +SUBSTITUTABLE? determines whether the returned derivation should be marked as +substitutable." (define normalize-label ;; ISO labels are all-caps (case-insensitive), but since ;; 'find-partition-by-label' is case-sensitive, make it all-caps here. @@ -723,7 +737,8 @@ (define file-systems-to-keep #:inputs `(("system" ,os) ("bootcfg" ,bootcfg)) #:grub-mkrescue-environment - '(("MKRESCUE_SED_MODE" . "mbr_hfs"))) + '(("MKRESCUE_SED_MODE" . "mbr_hfs")) + #:substitutable? substitutable?) (qemu-image #:name name #:os os #:bootcfg-drv bootcfg @@ -736,7 +751,8 @@ (define file-systems-to-keep #:file-system-uuid uuid #:copy-inputs? #t #:inputs `(("system" ,os) - ("bootcfg" ,bootcfg)))))) + ("bootcfg" ,bootcfg)) + #:substitutable? substitutable?)))) (define* (system-qemu-image os #:key @@ -925,6 +941,7 @@ (define (virtfs-option fs) '()) "-no-reboot" + "-nic" "user,model=virtio-net-pci" "-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng" "-device" "virtio-rng-pci,rng=guixsd-vm-rng" diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index b0b40f2764..713e03194b 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -232,7 +232,9 @@ (define* (run-install target-os target-os-source os (list target)) #:disk-image-size install-size #:file-system-type - installation-disk-image-file-system-type))) + installation-disk-image-file-system-type + ;; Don't provide substitutes; too big. + #:substitutable? #f))) (define install (with-imported-modules '((guix build utils) (gnu build marionette)) @@ -296,7 +298,8 @@ (define marionette (exit #$(and gui-test (gui-test #~marionette))))))) - (gexp->derivation "installation" install))) + (gexp->derivation "installation" install + #:substitutable? #f))) ;too big (define* (qemu-command/writable-image image #:key (memory-size 256)) "Return as a monadic value the command to run QEMU on a writable copy of @@ -1122,6 +1125,8 @@ (define* (guided-installation-test name #:os installation-os-for-gui-tests #:install-size install-size #:target-size target-size + #:installation-disk-image-file-system-type + "iso9660" #:gui-test (lambda (marionette) (gui-test-program diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm index e90b247883..ca18b2f452 100644 --- a/gnu/tests/networking.scm +++ b/gnu/tests/networking.scm @@ -205,7 +205,8 @@ (define marionette ;; Make sure the bridge is created. (test-assert "br0 exists" (marionette-eval - '(zero? (system* "ovs-vsctl" "br-exists" "br0")) + '(zero? (system* #$(file-append openvswitch "/bin/ovs-vsctl") + "br-exists" "br0")) marionette)) ;; Make sure eth0 is connected to the bridge. diff --git a/guix/download.scm b/guix/download.scm index 91a2b4ce5f..c3dc5a208c 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -531,7 +531,8 @@ (define tar (string-append "tarbomb-" (or name file-name)) #:system system - #:guile guile))) + #:guile guile)) + (guile (package->derivation guile system))) ;; Take the tar bomb, and simply unpack it as a directory. ;; Use ungrafted tar/gzip so that the resulting tarball doesn't depend on ;; whether grafts are enabled. @@ -544,6 +545,8 @@ (define tar (chdir #$output) (invoke (string-append #$tar "/bin/tar") "xf" #$drv))) + #:system system + #:guile-for-build guile #:graft? #f #:local-build? #t))) @@ -566,7 +569,8 @@ (define unzip (string-append "zipbomb-" (or name file-name)) #:system system - #:guile guile))) + #:guile guile)) + (guile (package->derivation guile system))) ;; Take the zip bomb, and simply unpack it as a directory. ;; Use ungrafted unzip so that the resulting tarball doesn't depend on ;; whether grafts are enabled. @@ -578,6 +582,8 @@ (define unzip (chdir #$output) (invoke (string-append #$unzip "/bin/unzip") #$drv))) + #:system system + #:guile-for-build guile #:graft? #f #:local-build? #t))) diff --git a/guix/lint.scm b/guix/lint.scm index 72582cfffb..e192f292a4 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017 Alex Kost ;;; Copyright © 2017 Tobias Geerinckx-Rice -;;; Copyright © 2017, 2018 Efraim Flashner +;;; Copyright © 2017, 2018, 2020 Efraim Flashner ;;; Copyright © 2018, 2019 Arun Isaac ;;; ;;; This file is part of GNU Guix. @@ -286,7 +286,8 @@ (define (package-input-intersection inputs-to-check input-names) (define (check-inputs-should-be-native package) ;; Emit a warning if some inputs of PACKAGE are likely to belong to its ;; native inputs. - (let ((inputs (package-inputs package)) + (let ((inputs (append (package-inputs package) + (package-propagated-inputs package))) (input-names '("pkg-config" "autoconf" @@ -685,7 +686,7 @@ (define patches ;; Check whether we're reaching tar's maximum file name length. (let ((prefix (string-length (%distro-directory))) - (margin (string-length "guix-0.13.0-10-123456789/")) + (margin (string-length "guix-2.0.0rc3-10000-1234567890/")) (max 99)) (filter-map (match-lambda ((? string? patch)