diff options
Diffstat (limited to 'gnu')
142 files changed, 6611 insertions, 1450 deletions
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 0b723e824f..3f61b4a963 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -241,7 +241,11 @@ the 'share/X11/xkb/symbols/' directory of 'xkeyboard-config'." "-i" #+(keyboard-layout->console-keymap layout) "-o" #$output)))) - (computed-file (string-append "grub-keymap." (keyboard-layout-name layout)) + (computed-file (string-append "grub-keymap." + (string-map (match-lambda + (#\, #\-) + (chr chr)) + (keyboard-layout-name layout))) builder)) (define (grub-setup-io config) diff --git a/gnu/ci.scm b/gnu/ci.scm index cd418363fb..af58450a94 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -132,7 +132,6 @@ SYSTEM." (define %cross-targets '("mips64el-linux-gnu" - "mips64el-linux-gnuabi64" "arm-linux-gnueabihf" "aarch64-linux-gnu" "powerpc-linux-gnu" diff --git a/gnu/installer.scm b/gnu/installer.scm index 625b7a9ca4..1060611672 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -113,8 +113,10 @@ version of this file." (setlocale LC_ALL locale)) ;; Restart the documentation viewer so it displays the manual in - ;; language that corresponds to LOCALE. - (with-error-to-port (%make-void-port "w") + ;; language that corresponds to LOCALE. Make sure that nothing is + ;; printed on the console. + (parameterize ((shepherd-message-port + (%make-void-port "w"))) (lambda () (stop-service 'term-tty2) (start-service 'term-tty2 (list locale))))))) @@ -172,7 +174,7 @@ been performed at build time." (kmscon-update-keymap (default-keyboard-model) layout variant)))) -(define* (compute-keymap-step) +(define* (compute-keymap-step context) "Return a gexp that runs the keymap-page of INSTALLER and install the selected keymap." #~(lambda (current-installer) @@ -184,7 +186,7 @@ selected keymap." "/share/X11/xkb/rules/base.xml"))) (lambda (models layouts) ((installer-keymap-page current-installer) - layouts))))) + layouts '#$context))))) (#$apply-keymap result) result))) @@ -193,10 +195,15 @@ selected keymap." #:locales-name "locales" #:iso639-languages-name "iso639-languages" #:iso3166-territories-name "iso3166-territories")) - (keymap-step (compute-keymap-step)) (timezone-data #~(string-append #$tzdata "/share/zoneinfo/zone.tab"))) #~(lambda (current-installer) + ((installer-parameters-menu current-installer) + (lambda () + ((installer-parameters-page current-installer) + (lambda _ + (#$(compute-keymap-step 'param) + current-installer))))) (list ;; Ask the user to choose a locale among those supported by ;; the glibc. Install the selected locale right away, so that @@ -238,7 +245,8 @@ selected keymap." (id 'keymap) (description (G_ "Keyboard mapping selection")) (compute (lambda _ - (#$keymap-step current-installer))) + (#$(compute-keymap-step 'default) + current-installer))) (configuration-formatter keyboard-layout->configuration)) ;; Ask the user to input a hostname for the system. @@ -271,7 +279,7 @@ selected keymap." (description (G_ "Services")) (compute (lambda _ ((installer-services-page current-installer)))) - (configuration-formatter system-services->configuration)) + (configuration-formatter system-services->configuration)) ;; Run a partitioning tool allowing the user to modify ;; partition tables, partitions and their mount points. @@ -284,7 +292,7 @@ selected keymap." ((installer-partition-page current-installer)))) (configuration-formatter user-partitions->configuration)) - (installer-step + (installer-step (id 'final) (description (G_ "Configuration file")) (compute @@ -295,8 +303,8 @@ selected keymap." (define guile-newt ;; Guile-Newt with 'form-watch-fd'. ;; TODO: Remove once a new release is out. - (let ((commit "b3c885d42cfac327d3531c9d064939514ce6bf12") - (revision "1")) + (let ((commit "c3cdeb0b53ac71aedabee669f57d44563c662446") + (revision "2")) (package (inherit (@ (gnu packages guile-xyz) guile-newt)) (name "guile-newt") @@ -309,7 +317,7 @@ selected keymap." (file-name (git-file-name name version)) (sha256 (base32 - "02p0bi6c05699idgx6gfkljhqgi8zf09clhzx81i8wa064s70r1y"))))))) + "1gksd1lzgjjh1p9vczghg8jw995d22hm34kbsiv8rcryirv2xy09"))))))) (define (installer-program) "Return a file-like object that runs the given INSTALLER." diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm index 6c44b4acf6..a24a152984 100644 --- a/gnu/installer/newt.scm +++ b/gnu/installer/newt.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +21,7 @@ #:use-module (gnu installer utils) #:use-module (gnu installer newt ethernet) #:use-module (gnu installer newt final) + #:use-module (gnu installer newt parameters) #:use-module (gnu installer newt hostname) #:use-module (gnu installer newt keymap) #:use-module (gnu installer newt locale) @@ -44,7 +45,9 @@ (define (init) (newt-init) (clear-screen) - (set-screen-size!)) + (set-screen-size!) + (push-help-line + (format #f (G_ "Press <F1> for installation parameters.")))) (define (exit) (newt-finish) @@ -91,8 +94,8 @@ problem. The backtrace is displayed below. Please report it by email to \ (define (menu-page steps) (run-menu-page steps)) -(define* (keymap-page layouts) - (run-keymap-page layouts)) +(define* (keymap-page layouts context) + (run-keymap-page layouts #:context context)) (define (network-page) (run-network-page)) @@ -109,6 +112,12 @@ problem. The backtrace is displayed below. Please report it by email to \ (define (services-page) (run-services-page)) +(define (parameters-menu menu-proc) + (newt-set-help-callback menu-proc)) + +(define (parameters-page keyboard-layout-selection) + (run-parameters-page keyboard-layout-selection)) + (define newt-installer (installer (name 'newt) @@ -125,4 +134,6 @@ problem. The backtrace is displayed below. Please report it by email to \ (user-page user-page) (partition-page partition-page) (services-page services-page) - (welcome-page welcome-page))) + (welcome-page welcome-page) + (parameters-menu parameters-menu) + (parameters-page parameters-page))) diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm index 2908ba7f0e..8625afaa03 100644 --- a/gnu/installer/newt/keymap.scm +++ b/gnu/installer/newt/keymap.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -33,20 +33,32 @@ #:export (run-keymap-page keyboard-layout->configuration)) -(define (run-layout-page layouts layout->text) +(define (run-layout-page layouts layout->text context) (let ((title (G_ "Layout"))) (run-listbox-selection-page #:title title - #:info-text (G_ "Please choose your keyboard layout.") + #:info-text + (case context + ((param) (G_ "Please choose your keyboard layout. \ +It will only be used during the installation process.")) + (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."))) #:listbox-items layouts #:listbox-item->text layout->text #:sort-listbox-items? #f - #:button-text (G_ "Exit") + #:button-text + (case context + ((param) (G_ "Continue")) + (else (G_ "Exit"))) #:button-callback-procedure - (lambda _ - (raise - (condition - (&installer-step-abort))))))) + (case context + ((param) (const #t)) + (else + (lambda _ + (raise + (condition + (&installer-step-abort))))))))) (define (run-variant-page variants variant->text) (let ((title (G_ "Variant"))) @@ -100,7 +112,7 @@ variants)) (cut append <> <>))) -(define* (run-keymap-page layouts) +(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." @@ -114,7 +126,8 @@ names of the selected keyboard layout and variant." (sort-layouts layouts) (lambda (layout) (gettext (x11-keymap-layout-description layout) - "xkeyboard-config")))))) + "xkeyboard-config")) + context)))) ;; Propose the user to select a variant among those supported by the ;; previously selected layout. (installer-step diff --git a/gnu/installer/newt/page.scm b/gnu/installer/newt/page.scm index 9031c7d4ba..1d6b9979b4 100644 --- a/gnu/installer/newt/page.scm +++ b/gnu/installer/newt/page.scm @@ -231,7 +231,7 @@ input box, such as FLAG-PASSWORD." (add-component-callback input-visible-cb - (lambda (component) + (lambda () (set-entry-flags input-entry FLAG-PASSWORD FLAG-ROLE-TOGGLE))) @@ -486,7 +486,7 @@ the current listbox item has to be selected by key." ;; do nothing. (add-component-callback listbox - (lambda (component) + (lambda () (let* ((current-key (current-listbox-entry listbox)) (listbox-keys (map car keys)) (last-key (last-listbox-key)) diff --git a/gnu/installer/newt/parameters.scm b/gnu/installer/newt/parameters.scm new file mode 100644 index 0000000000..95112b5780 --- /dev/null +++ b/gnu/installer/newt/parameters.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu installer newt parameters) + #:use-module (gnu installer proxy) + #:use-module (gnu installer steps) + #:use-module (gnu installer newt page) + #:use-module (guix i18n) + #:use-module (ice-9 match) + #:use-module (newt) + #:export (run-parameters-page)) + +(define (run-proxy-page) + (define proxy + (run-input-page (G_ "Please enter the HTTP proxy URL. If you enter an \ +empty string, proxy usage will be disabled.") + (G_ "HTTP proxy configuration") + #:allow-empty-input? #t)) + (if (string=? proxy "") + (clear-http-proxy) + (set-http-proxy proxy))) + +(define (run-parameters-page keyboard-layout-selection) + "Run a parameters page allowing to change the keyboard layout" + (let* ((items + (list + (cons (G_ "Change keyboard layout") keyboard-layout-selection) + (cons (G_ "Configure HTTP proxy") run-proxy-page))) + (result + (run-listbox-selection-page + #:info-text (G_ "Please choose one of the following parameters or \ +press ‘Back’ to go back to the installation process.") + #:title (G_ "Installation parameters") + #:listbox-items items + #:listbox-item->text car + #:sort-listbox-items? #f + #:listbox-height 6 + #:button-text (G_ "Back")))) + (match result + ((_ . proc) + (proc)) + (_ #f)))) diff --git a/gnu/installer/newt/user.scm b/gnu/installer/newt/user.scm index ad711d665a..58bb86bf96 100644 --- a/gnu/installer/newt/user.scm +++ b/gnu/installer/newt/user.scm @@ -89,7 +89,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form." (add-component-callback entry-name - (lambda (component) + (lambda () (set-entry-text entry-home-directory (string-append "/home/" (entry-value entry-name))) @@ -99,7 +99,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form." (add-component-callback password-visible-cb - (lambda (component) + (lambda () (set-entry-flags entry-password FLAG-PASSWORD FLAG-ROLE-TOGGLE))) diff --git a/gnu/installer/proxy.scm b/gnu/installer/proxy.scm new file mode 100644 index 0000000000..befaf3ab0a --- /dev/null +++ b/gnu/installer/proxy.scm @@ -0,0 +1,45 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu installer proxy) + #:use-module (gnu services herd) + #:export (set-http-proxy + clear-http-proxy)) + +(define-syntax-rule (with-silent-shepherd exp ...) + (parameterize ((shepherd-message-port + (%make-void-port "w"))) + exp ...)) + +(define (set-http-proxy proxy) + (with-silent-shepherd + (with-shepherd-action 'guix-daemon + ('set-http-proxy proxy) + result + result))) + +(define (clear-http-proxy) + (with-silent-shepherd + (with-shepherd-action 'guix-daemon + ('set-http-proxy) + result + result))) + +;; Local Variables: +;; eval: (put 'with-silent-shepherd 'scheme-indent-function 0) +;; End: diff --git a/gnu/installer/record.scm b/gnu/installer/record.scm index edf73b6215..7bc22e90e0 100644 --- a/gnu/installer/record.scm +++ b/gnu/installer/record.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +37,9 @@ installer-user-page installer-partition-page installer-services-page - installer-welcome-page)) + installer-welcome-page + installer-parameters-menu + installer-parameters-page)) ;;; @@ -61,7 +63,7 @@ (exit-error installer-exit-error) ;; procedure void -> void (final-page installer-final-page) - ;; procedure (layouts) -> (list layout variant) + ;; procedure (layouts context) -> (list layout variant) (keymap-page installer-keymap-page) ;; procedure: (#:key supported-locales iso639-languages iso3166-territories) ;; -> glibc-locale @@ -81,4 +83,8 @@ ;; procedure void -> void (services-page installer-services-page) ;; procedure (logo) -> void - (welcome-page installer-welcome-page)) + (welcome-page installer-welcome-page) + ;; procedure (menu-proc) -> void + (parameters-menu installer-parameters-menu) + ;; procedure (keyboard-layout-selection) -> void + (parameters-page installer-parameters-page)) diff --git a/gnu/local.mk b/gnu/local.mk index f5ca0e3d8d..2197ae5775 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -28,6 +28,8 @@ # Copyright © 2019 Amin Bandali <bandali@gnu.org> # Copyright © 2020 Brendan Tildesley <mail@brendan.scot> # Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +# Copyright © 2020 R Veera Kumar <vkor@vkten.in> +# Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz # # This file is part of GNU Guix. # @@ -319,6 +321,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/libusb.scm \ %D%/packages/libunwind.scm \ %D%/packages/lighting.scm \ + %D%/packages/linphone.scm \ %D%/packages/linux.scm \ %D%/packages/lirc.scm \ %D%/packages/lisp.scm \ @@ -343,6 +346,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/marst.scm \ %D%/packages/mate.scm \ %D%/packages/maths.scm \ + %D%/packages/matrix.scm \ %D%/packages/maven.scm \ %D%/packages/mc.scm \ %D%/packages/mcrypt.scm \ @@ -658,6 +662,7 @@ INSTALLER_MODULES = \ %D%/installer/locale.scm \ %D%/installer/newt.scm \ %D%/installer/parted.scm \ + %D%/installer/proxy.scm \ %D%/installer/record.scm \ %D%/installer/services.scm \ %D%/installer/steps.scm \ @@ -668,6 +673,7 @@ INSTALLER_MODULES = \ \ %D%/installer/newt/ethernet.scm \ %D%/installer/newt/final.scm \ + %D%/installer/newt/parameters.scm \ %D%/installer/newt/hostname.scm \ %D%/installer/newt/keymap.scm \ %D%/installer/newt/locale.scm \ @@ -761,6 +767,7 @@ dist_patch_DATA = \ %D%/packages/patches/bastet-change-source-of-unordered_set.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/bc-fix-cross-compilation.patch \ + %D%/packages/patches/beancount-disable-googleapis-fonts.patch \ %D%/packages/patches/beets-werkzeug-compat.patch \ %D%/packages/patches/beignet-correct-file-names.patch \ %D%/packages/patches/benchmark-unbundle-googletest.patch \ @@ -768,10 +775,13 @@ 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/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 \ %D%/packages/patches/byobu-writable-status.patch \ + %D%/packages/patches/calibre-msgpack-compat.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-remove-test-bs4.patch \ %D%/packages/patches/calibre-remove-test-sqlite.patch \ @@ -1035,7 +1045,6 @@ dist_patch_DATA = \ %D%/packages/patches/hdf-eos5-remove-gctp.patch \ %D%/packages/patches/hdf-eos5-fix-szip.patch \ %D%/packages/patches/hdf-eos5-fortrantests.patch \ - %D%/packages/patches/higan-remove-march-native-flag.patch \ %D%/packages/patches/hubbub-sort-entities.patch \ %D%/packages/patches/hurd-cross.patch \ %D%/packages/patches/hplip-remove-imageprocessor.patch \ @@ -1070,6 +1079,7 @@ dist_patch_DATA = \ %D%/packages/patches/jfsutils-add-sysmacros.patch \ %D%/packages/patches/jfsutils-include-systypes.patch \ %D%/packages/patches/jsoncpp-fix-inverted-case.patch \ + %D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/libnftnl-dont-check-NFTNL_FLOWTABLE_SIZE.patch \ %D%/packages/patches/libvirt-create-machine-cgroup.patch \ @@ -1201,12 +1211,15 @@ dist_patch_DATA = \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \ %D%/packages/patches/mcrypt-CVE-2012-4527.patch \ %D%/packages/patches/libmemcached-build-with-gcc7.patch \ + %D%/packages/patches/mediastreamer2-srtp2.patch \ %D%/packages/patches/mesa-skip-disk-cache-test.patch \ %D%/packages/patches/mescc-tools-boot.patch \ %D%/packages/patches/meson-for-build-rpath.patch \ %D%/packages/patches/metabat-fix-compilation.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \ %D%/packages/patches/mingw-w64-6.0.0-gcc.patch \ + %D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch \ + %D%/packages/patches/mingw-w64-reproducible-gendef.patch \ %D%/packages/patches/minisat-friend-declaration.patch \ %D%/packages/patches/minisat-install.patch \ %D%/packages/patches/mit-krb5-hurd.patch \ @@ -1282,6 +1295,7 @@ dist_patch_DATA = \ %D%/packages/patches/p7zip-CVE-2016-9296.patch \ %D%/packages/patches/p7zip-CVE-2017-17969.patch \ %D%/packages/patches/p7zip-remove-unused-code.patch \ + %D%/packages/patches/pam-krb5-CVE-2020-10595.patch \ %D%/packages/patches/pam-mount-luks2-support.patch \ %D%/packages/patches/pango-skip-libthai-test.patch \ %D%/packages/patches/pciutils-hurd-configure.patch \ @@ -1351,6 +1365,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-3-fix-tests.patch \ %D%/packages/patches/python-3.8-fix-tests.patch \ %D%/packages/patches/python-CVE-2018-14647.patch \ + %D%/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch \ %D%/packages/patches/python-alembic-exceptions-cause.patch \ %D%/packages/patches/python-axolotl-AES-fix.patch \ %D%/packages/patches/python-cairocffi-dlopen-path.patch \ @@ -1404,7 +1419,6 @@ dist_patch_DATA = \ %D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \ - %D%/packages/patches/reprotest-support-guix.patch \ %D%/packages/patches/ri-li-modernize_cpp.patch \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \ @@ -1429,7 +1443,6 @@ dist_patch_DATA = \ %D%/packages/patches/scotch-integer-declarations.patch \ %D%/packages/patches/screen-hurd-path-max.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ - %D%/packages/patches/sdl2-mesa-compat.patch \ %D%/packages/patches/seahorse-gkr-use-0-on-empty-flags.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \ @@ -1544,6 +1557,10 @@ dist_patch_DATA = \ %D%/packages/patches/xmoto-utf8.patch \ %D%/packages/patches/xmoto-remove-glext.patch \ %D%/packages/patches/xmoto-reproducible.patch \ + %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \ + %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \ + %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \ + %D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch \ %D%/packages/patches/xsane-fix-memory-leak.patch \ %D%/packages/patches/xsane-fix-pdf-floats.patch \ %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 4e1f9afc7e..e4f9808231 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -33,6 +33,7 @@ ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1291,9 +1292,10 @@ system administrator.") ;; XXX: The 'testsudoers' test series expects user 'root' to exist, but ;; the chroot's /etc/passwd doesn't have it. Turn off the tests. #:tests? #f)) + (native-inputs + `(("groff" ,groff))) (inputs - `(("groff" ,groff) - ("linux-pam" ,linux-pam) + `(("linux-pam" ,linux-pam) ("zlib" ,zlib) ("coreutils" ,coreutils))) (home-page "https://www.sudo.ws/") @@ -2647,6 +2649,7 @@ shortcut syntax and completion options.") (uri (string-append "https://archives.eyrie.org/software/kerberos/" "pam-krb5-" version ".tar.xz")) + (patches (search-patches "pam-krb5-CVE-2020-10595.patch")) (sha256 (base32 "1qjp8i1s9bz7g6kiqrkzzkxn5pfspa4sy53b6z40fqmdf9przdfb")))) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 4ff766eef1..81f644a37a 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -228,7 +228,7 @@ the real span of the lattice.") (define-public pari-gp (package (name "pari-gp") - (version "2.11.2") + (version "2.11.3") (source (origin (method url-fetch) (uri (string-append @@ -236,7 +236,7 @@ the real span of the lattice.") version ".tar.gz")) (sha256 (base32 - "0fck8ssmirl8fy7s4mspgrxjs5sag76xbshqlqzkcl3kqyrk4raa")))) + "1jd65h2psrmba2dx7rkf5qidf9ka0cwbsg20pd18k45ggr30l467")))) (build-system gnu-build-system) (native-inputs `(("texlive" ,(texlive-union @@ -270,7 +270,7 @@ PARI is also available as a C library to allow for faster computations.") (define-public gp2c (package (name "gp2c") - (version "0.0.11pl2") + (version "0.0.11pl3") (source (origin (method url-fetch) (uri (string-append @@ -278,7 +278,7 @@ PARI is also available as a C library to allow for faster computations.") version ".tar.gz")) (sha256 (base32 - "0wqsf05wgkqvmmsx7jinvzdqav6rl56sr8haibgs31nzz4x9xz9g")))) + "0yymbrgyjw500hqgmkj5m4nmscd7c9rs9w2c96lxgrcyab8krhrm")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (inputs `(("pari-gp" ,pari-gp))) diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 9ebfe834bf..c775603445 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -259,7 +259,7 @@ runtime") (define-public rgbds (package (name "rgbds") - (version "0.3.10") + (version "0.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -268,7 +268,7 @@ runtime") (file-name (git-file-name name version)) (sha256 (base32 - "0752fbffxgxyf3jw2iij88l05dqhppgcxy7dvk82hp4wdg4cflpq")))) + "15680964nlsa83nqgxk7knxajn98lddz2hg6jnn8ffmnms5wdam7")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 2ac41e17a0..076a03e5a9 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -3,6 +3,8 @@ ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 by Amar Singh <nly@disroot.org> +;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> +;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,22 +27,28 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) - #:use-module (gnu packages image) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages fontutils) #:use-module (gnu packages gettext) - #:use-module (gnu packages version-control) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages xiph) - #:use-module (gnu packages pretty-print) - #:use-module (gnu packages algebra) - #:use-module (gnu packages lua) - #:use-module (gnu packages perl) #:use-module (gnu packages gl) - #:use-module (gnu packages qt) - #:use-module (gnu packages gtk) + #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages lua) #:use-module (gnu packages maths) + #:use-module (gnu packages netpbm) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pretty-print) + #:use-module (gnu packages qt) + #:use-module (gnu packages version-control) + #:use-module (gnu packages xiph) + #:use-module (gnu packages xorg) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (srfi srfi-1)) @@ -289,3 +297,95 @@ Mechanics, Astrometry and Astrodynamics library.") (license (list license:lgpl2.0+ license:gpl2+)))) ; examples/transforms.c & lntest/*.c +(define-public xplanet + (package + (name "xplanet") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri + (string-append + "mirror://sourceforge/xplanet/xplanet/" + version "/xplanet-" version ".tar.gz")) + (sha256 + (base32 "1rzc1alph03j67lrr66499zl0wqndiipmj99nqgvh9xzm1qdb023")) + (patches + (search-patches + "xplanet-1.3.1-cxx11-eof.patch" + "xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch" + "xplanet-1.3.1-libimage_gif.c.patch" + "xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libx11" ,libx11) + ("libxscrnsaver" ,libxscrnsaver) + ("libice" ,libice) + ("freetype" ,freetype) + ("pango" ,pango) + ("giflib" ,giflib) + ("libjpeg", libjpeg-turbo) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("netpbm" ,netpbm) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags + (let ((netpbm (assoc-ref %build-inputs "netpbm"))) + (append (list + ;; Give correct path for pnm.h header to configure script + (string-append "CPPFLAGS=-I" netpbm "/include/netpbm") + ;; no nasa jpl cspice support + "--without-cspice" ))))) + (home-page "http://xplanet.sourceforge.net/") + (synopsis "Planetary body renderer") + (description + "Xplanet renders an image of a planet into an X window or file. +All of the major planets and most satellites can be drawn and different map +projections are also supported, including azimuthal, hemisphere, Lambert, +Mercator, Mollweide, Peters, polyconic, orthographic and rectangular.") + (license license:gpl2+))) + +(define-public gpredict + (package + (name "gpredict") + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/csete/gpredict/releases" + "/download/v" version + "/gpredict-" version ".tar.bz2")) + (sha256 + (base32 "0hwf97kng1zy8rxyglw04x89p0bg07zq30hgghm20yxiw2xc8ng7")))) + (build-system gnu-build-system) + (native-inputs + `(("intltool" ,intltool) + ("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) + (inputs + `(("curl" ,curl) + ("glib" ,glib) + ("goocanvas" ,goocanvas) + ("gtk+" ,gtk+))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + ;; Remove reference to non-existent file. + (substitute* "po/POTFILES.in" + (("src/gtk-sat-tree\\.c") + "")) + #t))))) + (synopsis "Satellite tracking and orbit prediction application") + (description + "Gpredict is a real-time satellite tracking and orbit prediction +application. It can track a large number of satellites and display their +position and other data in lists, tables, maps, and polar plots (radar view). +Gpredict can also predict the time of future passes for a satellite, and +provide you with detailed information about each pass.") + (home-page "http://gpredict.oz9aec.net/index.php") + (license license:gpl2+))) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 0913bb4fd3..c7f55bb07e 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 okapi <okapi@firemail.cc> -;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com> @@ -28,6 +28,7 @@ ;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> ;;; Copyright © 2019 Hartmt Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -96,6 +97,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages telephony) + #:use-module (gnu packages linphone) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages vim) ;xxd @@ -119,6 +121,45 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26)) +(define-public vo-amrwbenc + (package + (name "vo-amrwbenc") + (version "0.1.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://sourceforge.net/projects/opencore-amr/files/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0klx3nkidc6b8aawchpk19n3xlrzgnc046w4gd0rdqphw28v6ljn")))) + (build-system gnu-build-system) + (synopsis "Adaptive Multi Rate Codec") + (description "VO-AMR is a library of VisualOn implementation of +Adaptive Multi Rate Narrowband and Wideband (AMR-NB and AMR-WB) speech codec.") + (home-page "https://sourceforge.net/projects/opencore-amr/") + (license license:asl2.0))) + +(define-public opencore-amr + (package + (name "opencore-amr") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri + (string-append "https://sourceforge.net/projects/opencore-amr/files/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0hfk9khz3by0119h3jdwgdfd7jgkdbzxnmh1wssvylgnsnwnq01c")))) + (build-system gnu-build-system) + (synopsis "Adaptive Multi Rate Codec") + (description "OpenCore-AMR is a library of OpenCORE Framework +implementation of Adaptive Multi Rate Narrowband and Wideband +(AMR-NB and AMR-WB) speech codec.") + (home-page "https://sourceforge.net/projects/opencore-amr/") + (license license:asl2.0))) + (define-public alsa-modular-synth (package (name "alsa-modular-synth") @@ -153,10 +194,10 @@ ("jack" ,jack-1) ("ladspa" ,ladspa) ("liblo" ,liblo) - ("qtbase" ,qtbase) - ("qttools" ,qttools))) + ("qtbase" ,qtbase))) (native-inputs `(("pkg-config" ,pkg-config) + ("qttools" ,qttools) ("gcc" ,gcc-5))) (home-page "http://alsamodular.sourceforge.net/") (synopsis "Realtime modular synthesizer and effect processor") @@ -3335,7 +3376,7 @@ code, used in @code{libtoxcore}.") (define-public gsm (package (name "gsm") - (version "1.0.18") + (version "1.0.19") (source (origin (method url-fetch) @@ -3344,18 +3385,24 @@ code, used in @code{libtoxcore}.") "-" version ".tar.gz")) (sha256 (base32 - "041amvpz8cvxykl3pwqldrzxligmmzcg8ncdnxbg32rlqf3q1xh4")))) + "1xkha9ss5g5qnfaybi8il0mcvp8knwg9plgh8404vh58d0pna0s9")))) (build-system gnu-build-system) (arguments `(#:test-target "tst" + #:make-flags (list (string-append "INSTALL_ROOT=" %output)) #:phases (modify-phases %standard-phases + (add-after 'unpack 'add-fpic-ccflag + (lambda _ + ;; The -fPIC compiler option is needed when building + ;; mediastreamer. + (substitute* "Makefile" + (("^CCFLAGS.*" all) + (string-append all "CCFLAGS += -fPIC\n"))) + #t)) (add-before 'install 'pre-install (lambda _ (let ((out (assoc-ref %outputs "out"))) - (substitute* "Makefile" - (("INSTALL_ROOT\t=") - (string-append "INSTALL_ROOT\t=\t" out))) (mkdir-p (string-append out "/inc")) (mkdir-p (string-append out "/man")) (mkdir-p (string-append out "/man/man1")) @@ -3874,7 +3921,7 @@ stream to one or more IceCast and/or ShoutCast servers.") (define-public redkite (package (name "redkite") - (version "0.6.2") + (version "0.8.0") (source (origin (method git-fetch) @@ -3884,7 +3931,7 @@ stream to one or more IceCast and/or ShoutCast servers.") (file-name (git-file-name name version)) (sha256 (base32 - "1i874izajbdhlfacwwj84qrsxf7g4y6nblzxalrkzaap9sa7d1r6")))) + "1747w1kg8y9jbl11xi018d85dm38xk7843pz26sh0k5fdv87a10q")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;no tests included diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 28522e7c13..2fbfdba2d8 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -1958,14 +1958,14 @@ experiments.") (define-public r-genomicinteractions (package (name "r-genomicinteractions") - (version "1.20.1") + (version "1.20.2") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomicInteractions" version)) (sha256 (base32 - "140bp7c8p079xh5wwxmrq3a73pm6mdc9czq5w2gzjml7dgrca38a")))) + "0mqb899wah5n7bp2lajhwy2zpqqhi18plza3i3m51rfl9n62smph")))) (properties `((upstream-name . "GenomicInteractions"))) (build-system r-build-system) @@ -1986,6 +1986,8 @@ experiments.") ("r-rtracklayer" ,r-rtracklayer) ("r-s4vectors" ,r-s4vectors) ("r-stringr" ,r-stringr))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/ComputationalRegulatoryGenomicsICL/GenomicInteractions/") (synopsis "R package for handling genomic interaction data") (description @@ -4077,14 +4079,14 @@ footprints.") (define-public r-gofuncr (package (name "r-gofuncr") - (version "1.6.0") + (version "1.6.1") (source (origin (method url-fetch) (uri (bioconductor-uri "GOfuncR" version)) (sha256 (base32 - "0hmi13pz923fm95asys615rih63b1i2nvynfczr1zcsc9fzn4h35")))) + "1wk7ja6f5il8jx8v05ijzcs9pijp3b953h566ya66xp7dz5jg9rb")))) (properties `((upstream-name . "GOfuncR"))) (build-system r-build-system) (propagated-inputs @@ -4095,6 +4097,8 @@ footprints.") ("r-mapplots" ,r-mapplots) ("r-rcpp" ,r-rcpp) ("r-vioplot" ,r-vioplot))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://bioconductor.org/packages/GOfuncR/") (synopsis "Gene ontology enrichment using FUNC") (description @@ -5829,14 +5833,14 @@ sequential way to mimic the manual gating strategy.") (define-public r-cytoml (package (name "r-cytoml") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (bioconductor-uri "CytoML" version)) (sha256 (base32 - "0m8x18wkvis85cawv7j07pk59w76wnzy93ia99gd24j82z4h97p1")))) + "0wgi8rwb4spxzd5xvs5amfr5g82ny2nad57j3nmhnhnj1cpirjxz")))) (properties `((upstream-name . "CytoML"))) (build-system r-build-system) (inputs @@ -5866,6 +5870,8 @@ sequential way to mimic the manual gating strategy.") ("r-runit" ,r-runit) ("r-xml" ,r-xml) ("r-yaml" ,r-yaml))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/RGLab/CytoML") (synopsis "GatingML interface for cross platform cytometry data sharing") (description @@ -5906,14 +5912,14 @@ self-organizing map clustering and minimal spanning trees.") (define-public r-mixomics (package (name "r-mixomics") - (version "6.10.8") + (version "6.10.9") (source (origin (method url-fetch) (uri (bioconductor-uri "mixOmics" version)) (sha256 (base32 - "0307vhx9ck24rxqbvq15815ssxcc226sl2la060n204b51wi9jaa")))) + "0b457yg8mwqlrn5l344w8qcj8v2ghlj1wdx1ysxbncqvqx7nvgig")))) (properties `((upstream-name . "mixOmics"))) (build-system r-build-system) (propagated-inputs @@ -5930,6 +5936,8 @@ self-organizing map clustering and minimal spanning trees.") ("r-rcolorbrewer" ,r-rcolorbrewer) ("r-reshape2" ,r-reshape2) ("r-tidyr" ,r-tidyr))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "http://www.mixOmics.org") (synopsis "Multivariate methods for exploration of biological datasets") (description @@ -7490,14 +7498,14 @@ accessing web references for elements/sets are also available in BiocSet.") (define-public r-biocworkflowtools (package (name "r-biocworkflowtools") - (version "1.12.0") + (version "1.12.1") (source (origin (method url-fetch) (uri (bioconductor-uri "BiocWorkflowTools" version)) (sha256 (base32 - "1v4bhnpdkmllm7aghms9b7369hkrgz7mn69wbrqg1x42pgkf30ad")))) + "0z28s572wg9qxv52dmixxz1xf1z3fyp2j7kzk0k32fp628918wr6")))) (properties `((upstream-name . "BiocWorkflowTools"))) (build-system r-build-system) @@ -7511,6 +7519,8 @@ accessing web references for elements/sets are also available in BiocSet.") ("r-rstudioapi" ,r-rstudioapi) ("r-stringr" ,r-stringr) ("r-usethis" ,r-usethis))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://bioconductor.org/packages/BiocWorkflowTools/") (synopsis "Tools to aid the development of Bioconductor Workflow packages") (description diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 11d123b605..f1f6a3eb6d 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -7580,13 +7581,13 @@ ID and species. It is used by functions in the GenomeInfoDb package.") (define-public r-genomeinfodb (package (name "r-genomeinfodb") - (version "1.22.0") + (version "1.22.1") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomeInfoDb" version)) (sha256 (base32 - "07zljs2mfi8rf31g903f43v2f7767xbnflfrx9qjnmgf7bm039x0")))) + "0phadr67yb4l25x41a9wg4pjy1wbxlk14jhidhz6g5n4z6x45qbm")))) (properties `((upstream-name . "GenomeInfoDb"))) (build-system r-build-system) @@ -7596,6 +7597,8 @@ ID and species. It is used by functions in the GenomeInfoDb package.") ("r-iranges" ,r-iranges) ("r-rcurl" ,r-rcurl) ("r-s4vectors" ,r-s4vectors))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://bioconductor.org/packages/GenomeInfoDb") (synopsis "Utilities for manipulating chromosome identifiers") (description @@ -7808,13 +7811,13 @@ annotation data packages using SQLite data storage.") (define-public r-biomart (package (name "r-biomart") - (version "2.42.0") + (version "2.42.1") (source (origin (method url-fetch) (uri (bioconductor-uri "biomaRt" version)) (sha256 (base32 - "0difh4dsccjzhpfkvajy2adh98ym9164gd6clnsnic6qr6sk86ss")))) + "0676s8aq9xj2pdrfk28kf5j69fmssn900k4vxrp11ghwjr8z24h7")))) (properties `((upstream-name . "biomaRt"))) (build-system r-build-system) @@ -7827,6 +7830,8 @@ annotation data packages using SQLite data storage.") ("r-rappdirs" ,r-rappdirs) ("r-stringr" ,r-stringr) ("r-xml" ,r-xml))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://bioconductor.org/packages/biomaRt") (synopsis "Interface to BioMart databases") (description @@ -13549,17 +13554,27 @@ allowing the insertion of arbitrary types into the tree.") (define-public python-intervaltree (package (name "python-intervaltree") - (version "2.1.0") + (version "3.0.2") (source (origin (method url-fetch) (uri (pypi-uri "intervaltree" version)) (sha256 (base32 - "02w191m9zxkcjqr1kv2slxvhymwhj3jnsyy3a28b837pi15q19dc")))) + "0wz234g6irlm4hivs2qzmnywk0ss06ckagwh15nflkyb3p462kyb")))) (build-system python-build-system) - ;; FIXME: error when collecting tests - (arguments '(#:tests? #f)) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; pytest seems to have a check to make sure the user is testing + ;; their checked-out code and not an installed, potentially + ;; out-of-date copy. This is harmless here, since we just installed + ;; the package, so we disable the check to avoid skipping tests + ;; entirely. + (add-before 'check 'import-mismatch-error-workaround + (lambda _ + (setenv "PY_IGNORE_IMPORTMISMATCH" "1") + #t))))) (propagated-inputs `(("python-sortedcontainers" ,python-sortedcontainers))) (native-inputs diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 56f645739b..14f3815b52 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -94,10 +94,13 @@ (string-append gui "/bin/transmission-gtk")) - ;; Move the '.desktop' file as well. + ;; Move the '.desktop' and icon files as well. (mkdir (string-append gui "/share")) - (rename-file (string-append out "/share/applications") - (string-append gui "/share/applications"))) + (for-each + (lambda (dir) + (rename-file (string-append out "/share/" dir) + (string-append gui "/share/" dir))) + '("applications" "icons" "pixmaps"))) #t))))) (inputs `(("inotify-tools" ,inotify-tools) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index de8d089333..cdc98d9b76 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -466,7 +466,7 @@ capacity is user-selectable.") ("flex" ,flex) ("python" ,python-2) ("xmlto" ,xmlto) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("docbook-xml" ,docbook-xml) ("docbook-xsl" ,docbook-xsl) ("zip" ,zip))) diff --git a/gnu/packages/cedille.scm b/gnu/packages/cedille.scm index d9cf66c501..d3dd576323 100644 --- a/gnu/packages/cedille.scm +++ b/gnu/packages/cedille.scm @@ -51,17 +51,24 @@ (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-cedille-path-el + (add-after 'unpack 'patch-cedille-paths (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* "cedille-mode.el" (("/usr/share/emacs/site-lisp/cedille-mode") - (string-append out "/share/emacs/site-lisp"))) + (string-append + out "/share/emacs/site-lisp/cedille"))) + (substitute* "cedille-mode/cedille-mode-info.el" + (("\\(concat cedille-path-el \"cedille-info-main.info\"\\)") + (string-append + "\"" out "/share/info/cedille-info-main.info.gz\""))) #t))) - (add-after 'unpack 'copy-cedille-mode + (add-after 'patch-cedille-paths 'copy-cedille-mode (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (lisp (string-append out "/share/emacs/site-lisp"))) + (lisp + (string-append + out "/share/emacs/site-lisp/cedille/"))) (mkdir-p (string-append lisp "cedille-mode")) (copy-recursively "cedille-mode" @@ -104,6 +111,8 @@ (install-file "cedille" (string-append out "/bin")) (install-file "core/cedille-core" (string-append out "/bin")) + (install-file "docs/info/cedille-info-main.info" + (string-append out "/share/info")) #t)))))) (home-page "https://cedille.github.io/") (synopsis diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index c84a682e75..b7267e14ec 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -30,6 +30,7 @@ ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com> +;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1075,6 +1076,31 @@ result back.") timeout has been exceeded.") (license license:expat))) +(define-public python-pytest-forked + (package + (name "python-pytest-forked") + (version "1.1.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-forked" version)) + (sha256 + (base32 + "000i4q7my2fq4l49n8idx2c812dql97qv6qpm2vhrrn9v6g6j18q")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pytest" ,python-pytest))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm))) + (home-page + "https://github.com/pytest-dev/pytest-forked") + (synopsis + "Run tests in isolated forked subprocesses") + (description + "Pytest plugin which will run each test in a subprocess and will report if +a test crashed the process.") + (license license:expat))) + (define-public python-scripttest (package (name "python-scripttest") @@ -2590,3 +2616,25 @@ system. The code under test requires no modification to work with pyfakefs.") (arguments `(#:python ,python-2 #:tests? #f))))) + +(define-public python-aiounittest + (package + (name "python-aiounittest") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aiounittest" version)) + (sha256 + (base32 + "1q4bhmi80smaa1lknvdna0sx3915naczlfna1fp435nf6cjyrjl1")))) + (build-system python-build-system) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) + (home-page + "https://github.com/kwarunek/aiounittest") + (synopsis "Test asyncio code more easily") + (description "Aiounittest is a library that helps write tests using +asynchronous code in Python (asyncio).") + (license license:expat))) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 611f99c5a3..fb8a813b7a 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -247,7 +247,7 @@ from forcing GEXP-PROMISE." #:system system #:guile-for-build guile))) -(define %chromium-version "80.0.3987.149") +(define %chromium-version "80.0.3987.163") (define %ungoogled-revision "516e2d990a50a4bbeb8c583e56333c2935e2af95") (define %debian-revision "debian/80.0.3987.116-1") (define package-revision "0") @@ -263,7 +263,7 @@ from forcing GEXP-PROMISE." %chromium-version ".tar.xz")) (sha256 (base32 - "07icl3hgg1wjkmz88lbpjf6ll4xyi64spki1nmsy6899jgkxvgjh")))) + "0ikk4cgz3jgjhyncsvlqvlc03y7jywjpa6v34fwsjxs88flyzpdn")))) (define %ungoogled-origin (origin diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index f883c2f690..13243578b1 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -132,15 +132,17 @@ It is developed using Objective Caml and Camlp5.") (define-public proof-general (package (name "proof-general") - (version "4.2") + (version "4.4") (source (origin - (method url-fetch) - (uri (string-append - "http://proofgeneral.inf.ed.ac.uk/releases/" - "ProofGeneral-" version ".tgz")) + (method git-fetch) + (uri (git-reference + (url (string-append + "https://github.com/ProofGeneral/PG")) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "09qb0myq66fw17v4ziz401ilsb5xlxz1nl2wsp69d0vrfy0bcrrm")))) + "0bdfk91wf71z80mdfnl8hpinripndcjgdkz854zil6521r84nqk8")))) (build-system gnu-build-system) (native-inputs `(("which" ,which) @@ -175,10 +177,6 @@ It is developed using Objective Caml and Camlp5.") (emacs (assoc-ref inputs "host-emacs"))) (define (coq-prog name) (string-append coq "/bin/" name)) - (emacs-substitute-variables "coq/coq.el" - ("coq-prog-name" (coq-prog "coqtop")) - ("coq-compiler" (coq-prog "coqc")) - ("coq-dependency-analyzer" (coq-prog "coqdep"))) (substitute* "Makefile" (("/sbin/install-info") "install-info")) (substitute* "bin/proofgeneral" @@ -198,7 +196,7 @@ It is developed using Objective Caml and Camlp5.") (substitute* "Makefile" ((" [^ ]*\\.pdf") "")) (apply invoke "make" "install-doc" make-flags)))))) - (home-page "http://proofgeneral.inf.ed.ac.uk/") + (home-page "https://proofgeneral.github.io/ ") (synopsis "Generic front-end for proof assistants based on Emacs") (description "Proof General is a major mode to turn Emacs into an interactive proof diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index 9d71502017..2bf94eb8da 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -19,6 +19,8 @@ ;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com> ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz> ;;; Copyright © 2020 Todor Kondić <tk.code@protonmail.com> +;;; Copyright © 2020 Danjela Lura <danielaluraa@gmail.com> +;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -100,6 +102,31 @@ the system clipboards.") (license license:gpl3))) +(define-public r-oenb + (package + (name "r-oenb") + (version "0.0.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "oenb" version)) + (sha256 + (base32 + "1x1jlqp6r27c4gb7wafzpmh5rq6yq61a2d395r5lsmv2g5jb4biz")))) + (properties `((upstream-name . "oenb"))) + (build-system r-build-system) + (propagated-inputs + `(("r-dplyr" ,r-dplyr) + ("r-xml" ,r-xml))) + (native-inputs `(("r-knitr" ,r-knitr))) + (home-page "https://github.com/franzmohr/oenb") + (synopsis "Tools for the OeNB Data Web Service") + (description + "Tools to access data from the data web service of the +@acronym{OeNB, Oesterreichische Nationalbank}, +@url{https://www.oenb.at/en/Statistics/User-Defined-Tables/webservice.html}.") + (license license:gpl2+))) + (define-public r-scales (package (name "r-scales") @@ -425,14 +452,14 @@ such as copy/paste from an R session.") (define-public r-callr (package (name "r-callr") - (version "3.4.2") + (version "3.4.3") (source (origin (method url-fetch) (uri (cran-uri "callr" version)) (sha256 (base32 - "0bdlp0labwyfl36jqslj2g7zmw7zwr58v9gam435kiblhjimb8fc")))) + "1dc20gdawy9mhnc452qlshv2p4krs6c2gymvpv365mn141zjgdq1")))) (build-system r-build-system) (propagated-inputs `(("r-r6" ,r-r6) @@ -3645,14 +3672,14 @@ modeling for empirical income distributions.") (define-public r-vcd (package (name "r-vcd") - (version "1.4-6") + (version "1.4-7") (source (origin (method url-fetch) (uri (cran-uri "vcd" version)) (sha256 (base32 - "0rjz49py5l6wnaimw6k8rcyzlvs8cyz5g2xwqj2qis92ly0l103z")))) + "16aj688nhlcvdxzfsqh4s375v8f8vl8997dl8h1xg29b42nv52gc")))) (build-system r-build-system) (propagated-inputs `(("r-colorspace" ,r-colorspace) @@ -4160,14 +4187,14 @@ terminals.") (define-public r-tinytex (package (name "r-tinytex") - (version "0.20") + (version "0.21") (source (origin (method url-fetch) (uri (cran-uri "tinytex" version)) (sha256 (base32 - "0n8v8inpsc99r0snvqbjhqlc6nm9hxjsw120hrxc2mw03pa5fvkg")))) + "088zzc2v0izbcs45p19v547pi78vkr08ibpvvi1g9bkbya4x3mq9")))) (build-system r-build-system) (propagated-inputs `(("r-xfun" ,r-xfun))) @@ -4435,14 +4462,14 @@ Fisher's method), and Sidak correction.") (define-public r-quantmod (package (name "r-quantmod") - (version "0.4-16") + (version "0.4.17") (source (origin (method url-fetch) (uri (cran-uri "quantmod" version)) (sha256 (base32 - "12l5br8abr1yagxqjnjvqzp79sqsv5vx56cxs37gk73r474f4vc2")))) + "1ss441rwlr88kz212m0wgx0hwgwi41rhy1jncg2lgqzqfvr5dzqa")))) (build-system r-build-system) (propagated-inputs `(("r-curl" ,r-curl) @@ -4801,14 +4828,14 @@ functions to enforce symmetric scales or add tags to facetted plots.") (define-public r-heatmaply (package (name "r-heatmaply") - (version "1.0.0") + (version "1.1.0") (source (origin (method url-fetch) (uri (cran-uri "heatmaply" version)) (sha256 (base32 - "0576gml3bcl7r1biigzj1rag2xzz422knbw7arc8d2gsakjj757g")))) + "133q8ir45vhfxs2lnd96k97g21ihg2arfhp349kmk339pk32fcxz")))) (build-system r-build-system) (propagated-inputs `(("r-assertthat" ,r-assertthat) @@ -5776,14 +5803,14 @@ obtain a better initial configuration in non-metric MDS.") (define-public r-reticulate (package (name "r-reticulate") - (version "1.14") + (version "1.15") (source (origin (method url-fetch) (uri (cran-uri "reticulate" version)) (sha256 (base32 - "0icb9zl9zlx75njv7y1dr450k0yw2n3q2jkr4nicnphdyfn69gkn")))) + "03dmnx9jhxx6vfbv2i5n6sln38kb9zkshz982pg3l9i4jjf3xns7")))) (build-system r-build-system) (inputs `(("python" ,python))) (propagated-inputs @@ -5791,6 +5818,8 @@ obtain a better initial configuration in non-metric MDS.") ("r-jsonlite" ,r-jsonlite) ("r-matrix" ,r-matrix) ("r-rcpp" ,r-rcpp))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/rstudio/reticulate") (synopsis "R interface to Python") (description @@ -6013,14 +6042,14 @@ structured in groups, etc. and hierarchical cluster analysis.") (define-public r-factoextra (package (name "r-factoextra") - (version "1.0.6") + (version "1.0.7") (source (origin (method url-fetch) (uri (cran-uri "factoextra" version)) (sha256 (base32 - "0bpsbcmp6jpa9qk53dhfzghrz98dh0h0n68brl7rjz724yjbvhn8")))) + "1allvdjhd3pq8xz30b1cymwcik5iaahghrjrlnn54cwkfhfg0kv2")))) (build-system r-build-system) (propagated-inputs `(("r-abind" ,r-abind) @@ -7176,13 +7205,13 @@ and coverage methods to tune the choice of threshold.") (define-public r-ggstance (package (name "r-ggstance") - (version "0.3.3") + (version "0.3.4") (source (origin (method url-fetch) (uri (cran-uri "ggstance" version)) (sha256 - (base32 "0kdksay61hyb6612b07r84chh7a9aibjyclk3qcypvr9aang8hkh")))) + (base32 "0aqz3dn02cgij018a4sglqwrwr9dzzj12l8xr1064q7hfd4f64m1")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) @@ -8545,14 +8574,14 @@ ROPE percentage and pd).") (define-public r-performance (package (name "r-performance") - (version "0.4.4") + (version "0.4.5") (source (origin (method url-fetch) (uri (cran-uri "performance" version)) (sha256 (base32 - "18h9y66cpsb3k6xnaya87vnpv2s3chf4bzsc4ym3n5sxhh41j7la")))) + "0j6wmnwhfdd3v1a17qmg491q50579knjzscmyr4yk3xr0jbsbg8x")))) (build-system r-build-system) (propagated-inputs `(("r-bayestestr" ,r-bayestestr) @@ -8716,19 +8745,18 @@ back to file after modifications.") (define-public r-fs (package (name "r-fs") - (version "1.3.2") + (version "1.4.0") (source (origin (method url-fetch) (uri (cran-uri "fs" version)) (sha256 (base32 - "1w30bflx4d7a6f3dn96bf7s7v6aqpvz2yzzxal6qz9jyhb16bxaz")))) + "1ishdxrxy88w1lrn657a573wdra5v7xf1yfa1c4kss07rlynwrj7")))) (build-system r-build-system) - (propagated-inputs - `(("r-rcpp" ,r-rcpp))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("r-knitr" ,r-knitr))) (home-page "https://fs.r-lib.org") (synopsis "Cross-platform file system operations based on libuv") (description @@ -9121,14 +9149,14 @@ analysing multivariate abundance data in community ecology.") (define-public r-afex (package (name "r-afex") - (version "0.26-0") + (version "0.27-2") (source (origin (method url-fetch) (uri (cran-uri "afex" version)) (sha256 (base32 - "0h3p1svgk1ap3lj08fi8nzdb3710h99bv150krf1x8wci1a0r1if")))) + "0qsmcddy4449qjj3ajmqvdiqdkhkswmz5dqf150wxwq897p3bvf2")))) (build-system r-build-system) (propagated-inputs `(("r-car" ,r-car) @@ -9136,6 +9164,8 @@ analysing multivariate abundance data in community ecology.") ("r-lmertest" ,r-lmertest) ("r-pbkrtest" ,r-pbkrtest) ("r-reshape2" ,r-reshape2))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://afex.singmann.science/") (synopsis "Analysis of factorial experiments") (description @@ -9866,13 +9896,13 @@ maps.") (define-public r-tidytree (package (name "r-tidytree") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) (uri (cran-uri "tidytree" version)) (sha256 - (base32 "0dx9jn19mfykn20camsmq1amlgg0w6z5hn5rdqygs1fk1l5aazad")))) + (base32 "05b53dap0f784kl6s1wgck6m7brwmy6ifqp7v5l06s1spfspagl6")))) (build-system r-build-system) (propagated-inputs `(("r-ape" ,r-ape) @@ -11570,13 +11600,13 @@ regression coefficients can be conducted via jackknifing.") (define-public r-huge (package (name "r-huge") - (version "1.3.4") + (version "1.3.4.1") (source (origin (method url-fetch) (uri (cran-uri "huge" version)) (sha256 - (base32 "07n3j1va2z4v30rj22cww72khgzbz2xsp0yc0qswlrwyxi4my5i3")))) + (base32 "11m80dnaxqw5v006q6kvhndl2y5ih5553fcqg4jcaljd8sp9xvvq")))) (build-system r-build-system) (propagated-inputs `(("r-igraph" ,r-igraph) @@ -12712,14 +12742,14 @@ R, enabling interactive analysis and visualization of genome-scale data.") (define-public r-rematch2 (package (name "r-rematch2") - (version "2.1.0") + (version "2.1.1") (source (origin (method url-fetch) (uri (cran-uri "rematch2" version)) (sha256 (base32 - "00cznm6rk33b53w7zybkz7549bnydc66znpi5mb0xd24pmqp0rvq")))) + "13siaa8s2ji9q6hykhb2r34ag76335ypmbqr90xaqilbir0klhnh")))) (build-system r-build-system) (propagated-inputs `(("r-tibble" ,r-tibble))) @@ -19351,14 +19381,14 @@ Raftery, Appl.Statistics, 1989); it includes inference and basic methods.") (define-public r-forecast (package (name "r-forecast") - (version "8.11") + (version "8.12") (source (origin (method url-fetch) (uri (cran-uri "forecast" version)) (sha256 (base32 - "0ayidhnk9cxav2qi83jrvqlg2jh4zlf4lki4xw48gdqsmjvih9x1")))) + "1ycj5z4wd5a16nlcjy07dqm8jkih240xa02cn4wvysnnhkapyq7b")))) (properties `((upstream-name . "forecast"))) (build-system r-build-system) (propagated-inputs @@ -19503,14 +19533,14 @@ processing} (NLP) library @code{spaCy}, from @url{http://spacy.io}.") (define-public r-snowballc (package (name "r-snowballc") - (version "0.6.0") + (version "0.7.0") (source (origin (method url-fetch) (uri (cran-uri "SnowballC" version)) (sha256 (base32 - "0b7pqdavf5jbf8si4ybnii5fff39p3b1rb5rym05j8s48hs7sqb1")))) + "1wwm71mp4b2mjb5985x782p6xj519dfrpd40qli7lmig6afyw3xi")))) (properties `((upstream-name . "SnowballC"))) (build-system r-build-system) (home-page "https://r-forge.r-project.org/projects/r-temis/") @@ -21027,3 +21057,26 @@ where tcltk is present are supported.") with R, controlling a remote R session (the server) from a local one (the client).") (license license:bsd-2))) + +(define-public r-asd + (package + (name "r-asd") + (version "2.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "asd" version)) + (sha256 + (base32 + "0p3r4qjam3sl3rpcilb0pgx4xx3ly71xqnvkv31vzjs885lgxz4l")))) + (properties `((upstream-name . "asd"))) + (build-system r-build-system) + (propagated-inputs + `(("r-mvtnorm" ,r-mvtnorm))) + (home-page "https://cran.r-project.org/web/packages/asd") + (synopsis "Simulations for Adaptive Seamless Designs") + (description + "This package provdes means to run simulations for adaptive seamless +designs with and without early outcomes for treatment selection and +subpopulation type designs.") + (license license:gpl3))) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 64c170df73..a42661e3f8 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -1476,7 +1476,7 @@ UTF-8.") (define-public rust-bumpalo-3 (package (name "rust-bumpalo") - (version "3.2.0") + (version "3.2.1") (source (origin (method url-fetch) @@ -1485,7 +1485,7 @@ UTF-8.") (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0hpp4wfcn04gnl1ji4a80b85xwknsci81xqyllq174gq9z0rsd8z")))) + "11silgpsnfv6ir7j2nh7a69564f92vq20k9ha7zcbynpiav9vbhj")))) (build-system cargo-build-system) (arguments `(#:tests? #f ; cargo_readme_up_to_date test fails diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 6c971d0eb1..58e3f774df 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -74,12 +74,6 @@ `(cons ,(string-append "--target=" target) ,flags)))))) -(define (package-with-patch original patch) - "Return package ORIGINAL with PATCH applied." - (package (inherit original) - (source (origin (inherit (package-source original)) - (patches (list patch)))))) - (define* (cross-binutils target #:optional (binutils binutils)) "Return a cross-Binutils for TARGET using BINUTILS." (let ((binutils (package (inherit binutils) @@ -101,11 +95,17 @@ `(cons "--with-sysroot=/" ,flags))))))) ;; For Xtensa, apply Qualcomm's patch. - (cross (if (string-prefix? "xtensa-" target) - (package-with-patch binutils - (search-patch - "ath9k-htc-firmware-binutils.patch")) - binutils) + (cross (cond ((string-prefix? "xtensa-" target) + (package-with-patches binutils + (search-patches + "ath9k-htc-firmware-binutils.patch"))) + ((target-mingw? target) + (package-with-extra-patches + binutils + (search-patches + "binutils-mingw-w64-specify-timestamp.patch" + "binutils-mingw-w64-reproducible-import-libraries.patch"))) + (else binutils)) target))) (define (cross-gcc-arguments target xgcc libc) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 4ed181021f..b969b8f081 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -41,6 +41,7 @@ ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> +;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2205,6 +2206,41 @@ can autogenerate peewee models using @code{pwiz}, a model generator.") (define-public python2-peewee (package-with-python2 python-peewee)) +(define-public python-tortoise-orm + (package + (name "python-tortoise-orm") + (version "0.16.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tortoise-orm" version)) + (sha256 + (base32 + "01hbvfyxs2qd1mjc96aipwsdxxhydw8ww686r4gsf87bl6f98dvz")))) + (build-system python-build-system) + ;; Disable tests for now. They pull in a lot of dependencies. + (arguments `(#:tests? #f)) + (native-inputs + `(("python-ciso8601" ,python-ciso8601) + ("python-asynctest" ,python-asynctest) + ("python-nose2" ,python-nose2))) + (propagated-inputs + `(("python-aiosqlite" ,python-aiosqlite) + ("python-pypika" ,python-pypika) + ("python-typing-extensions" + ,python-typing-extensions))) + (home-page + "https://github.com/tortoise/tortoise-orm") + (synopsis + "Easy async ORM for python, built with relations in mind") + (description + "Tortoise ORM is an easy-to-use asyncio ORM (Object Relational Mapper) +inspired by Django. Tortoise ORM was build with relations in mind and +admiration for the excellent and popular Django ORM. It’s engraved in its +design that you are working not with just tables, you work with relational +data.") + (license license:asl2.0))) + (define-public sqlcipher (package (name "sqlcipher") @@ -2716,6 +2752,29 @@ translate the complete SQLite API into Python.") (define-public python2-apsw (package-with-python2 python-apsw)) +(define-public python-aiosqlite + (package + (name "python-aiosqlite") + (version "0.11.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aiosqlite" version)) + (sha256 + (base32 + "1f3zdldp9zgrw6qz5fsp3wa5zw73cjf139pj4vf24ryv895320jg")))) + (build-system python-build-system) + (native-inputs + `(("python-aiounittest" ,python-aiounittest))) + (home-page "https://github.com/jreese/aiosqlite") + (synopsis + "Asyncio bridge for sqlite3") + (description + "The package aiosqlite replicates the standard sqlite3 module, but with +async versions of all the standard connection and cursor methods, and context +managers for automatically closing connections.") + (license license:expat))) + (define-public python2-neo4j-driver (package (name "python2-neo4j-driver") @@ -3024,6 +3083,27 @@ transforms idiomatic python function calls to well-formed SQL queries.") (define-public python2-sql (package-with-python2 python-sql)) +(define-public python-pypika + (package + (name "python-pypika") + (version "0.36.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "PyPika" version)) + (sha256 + (base32 + "0qzn5vygirg52dlizm6ayzdc5llq8p2krrx0kymr236lrz89wqp8")))) + (build-system python-build-system) + (native-inputs + `(("python-parameterized" ,python-parameterized))) + (home-page "https://github.com/kayak/pypika") + (synopsis "SQL query builder API for Python") + (description + "PyPika is a python SQL query builder that exposes the full richness of +the SQL language using a syntax that reflects the resulting query.") + (license license:asl2.0))) + (define-public mongo-tools (package (name "mongo-tools") diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 75dd94d868..4a264427c2 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -119,11 +120,11 @@ program to exhibit a bug.") (sha256 (base32 "0qx0zq8jxzx2as2zf0740g7kvgq163ayn3041di4vwk77490y76v")))) (build-system gnu-build-system) + (native-inputs `(("flex" ,flex))) (inputs `(("astyle" ,astyle) ("llvm" ,llvm) ("clang" ,clang) - ("flex" ,flex) ("indent" ,indent) ("perl" ,perl) ("exporter-lite" ,perl-exporter-lite) diff --git a/gnu/packages/dico.scm b/gnu/packages/dico.scm index f6ab56887c..44a7a21b6b 100644 --- a/gnu/packages/dico.scm +++ b/gnu/packages/dico.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,13 +64,13 @@ (lambda _ ;; Test '71: append + dooffs + env' fails if $V is not 2. (invoke "make" "check" "V=2")))))) + (native-inputs `(("groff" ,groff))) (inputs `(("m4" ,m4) ;used at run time ("pcre" ,pcre) ("python" ,python-2) ("guile" ,guile-2.2) ("gsasl" ,gsasl) - ("groff" ,groff) ("readline" ,readline) ("zlib" ,zlib) ("wordnet" ,wordnet) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 0e452d6df8..b835fb4510 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -68,7 +68,7 @@ #:use-module (ice-9 match)) (define-public diffoscope - (let ((version "137")) + (let ((version "138")) (package (name "diffoscope") (version version) @@ -80,7 +80,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "11llnh2h2mx3xygj4482ld1rnjnhszk4828pmcbi75kanxfrqzq6")))) + "1lsxwyqaaxmin8h06l0352f0kh0l9brbqfn0zv8hmb64bp5r20nr")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -228,7 +228,7 @@ install.") (define-public reprotest (package (name "reprotest") - (version "0.7.13") + (version "0.7.14") (source (origin (method git-fetch) @@ -236,10 +236,9 @@ install.") (url "https://salsa.debian.org/reproducible-builds/reprotest.git") (commit version))) (file-name (git-file-name name version)) - (patches (search-patches "reprotest-support-guix.patch")) (sha256 (base32 - "0jj9sqxbdpypnc0y8md352wwzh1by6nyhmx5fwqnvrbznrng332f")))) + "12d07xq5zx5dfbsgakm6zcn7hgf0h9f5kvfjqkiyak4ix5aa6xkf")))) (inputs `(("python-debian" ,python-debian) ("python-distro" ,python-distro) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 0a9283a526..07ea1c93cd 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2019 Leo Famulari <leo@famulari.name> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020 Pkill -9 <pkill9@runbox.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -370,12 +371,12 @@ and can dramatically shorten the lifespan of the drive if left unchecked.") ("parted" ,parted) ("glib" ,glib) ("gtkmm" ,gtkmm) - ("libxml2" ,libxml2) - ("yelp-tools" ,yelp-tools))) + ("libxml2" ,libxml2))) (native-inputs `(("intltool" ,intltool) ("itstool" ,itstool) ("lvm2" ,lvm2) ; for tests + ("yelp-tools" ,yelp-tools) ("pkg-config" ,pkg-config))) (home-page "https://gparted.org/") (synopsis "Partition editor to graphically manage disk partitions") diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 69dee2b856..c95ca3f9d7 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -503,6 +503,7 @@ built-in registry server of Docker.") (replace 'configure (lambda _ (setenv "DOCKER_GITCOMMIT" (string-append "v" ,%docker-version)) + (setenv "VERSION" (string-append ,%docker-version "-ce")) ;; Automatically use bundled dependencies. ;; TODO: Unbundle - see file "vendor.conf". (setenv "AUTO_GOPATH" "1") @@ -540,7 +541,9 @@ built-in registry server of Docker.") (let* ((out (assoc-ref outputs "out")) (out-bin (string-append out "/bin"))) (install-file "bundles/dynbinary-daemon/dockerd" out-bin) - (install-file "bundles/dynbinary-daemon/dockerd-dev" out-bin) + (install-file (string-append "bundles/dynbinary-daemon/dockerd-" + (getenv "VERSION")) + out-bin) #t)))))) (inputs `(("btrfs-progs" ,btrfs-progs) diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 22b6c4ba12..48879df1bd 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -104,6 +104,7 @@ (delete-file "resources/calibre-portable.sh") #t)) (patches (search-patches "calibre-no-updates-dialog.patch" + "calibre-msgpack-compat.patch" "calibre-remove-test-bs4.patch" ; TODO: fix test. "calibre-remove-test-sqlite.patch" ; TODO: fix test. "calibre-remove-test-unrar.patch")))) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index feea43b500..58999d6611 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -65,6 +65,8 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc> +;;; Copyright © 2020 John Soo <jsoo1@asu.edu> +;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -212,6 +214,32 @@ implementation, Emacs and, ultimately, the schemer, giving them access to live metadata.") (license license:bsd-3))) +(define-public emacs-ac-geiser + (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05") + (revision "0")) + (package + (name "emacs-ac-geiser") + (version (git-version "0.1" revision commit)) + (source + (origin + (uri (git-reference + (url "https://github.com/xiaohanyu/ac-geiser.git") + (commit commit))) + (method git-fetch) + (sha256 + (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + `(("geiser" ,emacs-geiser) + ("auto-complete" ,emacs-auto-complete))) + (synopsis "Auto-complete backend for geiser") + (description + "This package provides an auto-complete source for Scheme projects +using geiser.") + (license license:bsd-3) + (home-page "https://github.com/xiaohanyu/ac-geiser")))) + (define-public emacs-paredit (package (name "emacs-paredit") @@ -1484,6 +1512,65 @@ always indented. It reindents after every change, making it more reliable than @code{electric-indent-mode}.") (license license:gpl2+))) +(define-public emacs-ctrlf + (package + (name "emacs-ctrlf") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/raxod502/ctrlf.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10gnhafas54zj3z9173h1g7b519ac4i26afclmw3w1pk6qyyb03z")))) + (build-system emacs-build-system) + (home-page "https://github.com/raxod502/ctrlf/") + (synopsis "Single-buffer text search in Emacs") + (description "CTRLF (pronounced @emph{control F}) is an intuitive and +efficient solution for single-buffer text search in Emacs, replacing packages +such as Isearch, Swiper, and helm-swoop. It takes inspiration from the +widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as +web browsers, but follows the flow and keybindings of Isearch.") + (license license:expat))) + +(define-public emacs-dhall-mode + ;; There is no proper release. The base version is extracted from the + ;; "Version" keyword in the main file. + (let ((revision "0") + (commit "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2")) + (package + (name "emacs-dhall-mode") + (version (git-version "0.1.3" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/psibi/dhall-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-reformatter" ,emacs-reformatter))) + (home-page "https://github.com/psibi/dhall-mode") + (synopsis "Major mode for working with Dhall configuration language") + (description + "Dhall-mode provides an Emacs Major mode for working with the Dhall +configuration language. It features: + +@itemize +@item Syntax highlighting +@item Multiline support for String +@item Basic indendation, commenting +@item Automatic formatting on save using dhall-format. +@item Error highlighting. +@end itemize") + (license license:gpl3+)))) + (define-public emacs-link-hint ;; Last release was in 2015. (let ((commit "d74a483652486260c052941fedeadddb1ea71f88") @@ -1704,6 +1791,25 @@ searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.") Emacs buffer.") (license license:gpl3+))) +(define-public emacs-caps-lock + (package + (name "emacs-caps-lock") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "caps-lock-" version ".el")) + (sha256 + (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva")))) + (build-system emacs-build-system) + (home-page "http://elpa.gnu.org/packages/caps-lock.html") + (synopsis "Caps Lock as a minor mode") + (description + "This package provides a minor mode to emulate the behavior of a Caps +Lock key.") + (license license:gpl3+))) + (define-public emacs-chronometrist (package (name "emacs-chronometrist") @@ -1768,6 +1874,50 @@ Using emacs-direnv means that programs started from Emacs will use the environment set through Direnv.") (license license:gpl3+))) +(define-public emacs-elf-mode + (package + (name "emacs-elf-mode") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/abo-abo/elf-mode") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k")))) + (build-system emacs-build-system) + (home-page "https://github.com/abo-abo/elf-mode") + (synopsis "Show symbol list when opening a binary file in Emacs") + (description "This Emacs package provides a command showing the symbols +that the binary uses instead of the actual binary contents.") + (license license:gpl3+))) + +(define-public emacs-form-feed + (package + (name "emacs-form-feed") + (version "0.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wasamasa/form-feed.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2")))) + (build-system emacs-build-system) + (home-page "https://github.com/wasamasa/form-feed") + (synopsis "Display ^L glyphs as horizontal lines") + (description + "This package provides a minor mode @code{form-feed-mode} to display page +delimiters which usually appear as ^L glyphs on a single line as horizontal +lines spanning the entire window. The minor mode is suitable for inclusion +into mode hooks and is intended to be used that way.") + (license license:gpl3+))) + (define-public emacs-ggtags (package (name "emacs-ggtags") @@ -1874,53 +2024,76 @@ Maps directly inside Emacs.") (license license:gpl3+))) (define-public emacs-graphviz-dot-mode - (let ((commit "1574c504d9810f34a85e2ff49b6f7648c2be5f27") - (revision "1")) - (package - (name "emacs-graphviz-dot-mode") - (version (string-append "0.4.1-" revision "." - (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ppareit/graphviz-dot-mode.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "03l6zkkxhbcxj5i13hzjv6ypmzaw70zqqagh7ix1kdn33kpp37jj")))) - (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'install 'make-info - (lambda* (#:key inputs #:allow-other-keys) - (with-directory-excursion "texinfo" - (substitute* "Makefile" - (("\\/usr\\/bin\\/gzip") - (string-append (assoc-ref inputs "gzip") "/bin/gzip"))) - (invoke "make" - "clean" - "info" - (string-append "TEXINFODIR=" - (assoc-ref inputs "texinfo") - "/bin"))))) - (add-after 'install 'install-info - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (info (string-append out "/share/info"))) - (install-file "texinfo/graphviz-dot-mode.info.gz" info) - #t)))))) - (native-inputs - `(("texinfo" ,texinfo) - ("gzip" ,gzip))) - (home-page "http://ppareit.github.com/graphviz-dot-mode") - (synopsis "Major mode for editing Graphviz Dot files") - (description - "This Emacs packages helps you to create @file{.dot} or @file{.gv} -files using the dot syntax, and use Graphviz to convert these files to -diagrams.") - (license license:gpl2+)))) + (package + (name "emacs-graphviz-dot-mode") + (version "0.4.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ppareit/graphviz-dot-mode.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'make-info + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "texinfo" + (substitute* "Makefile" + (("\\/usr\\/bin\\/gzip") + (string-append (assoc-ref inputs "gzip") "/bin/gzip"))) + (invoke "make" + "clean" + "info" + (string-append "TEXINFODIR=" + (assoc-ref inputs "texinfo") + "/bin"))))) + (add-after 'install 'install-info + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (info (string-append out "/share/info"))) + (install-file "texinfo/graphviz-dot-mode.info.gz" info) + #t)))))) + (native-inputs + `(("gzip" ,gzip) + ("texinfo" ,texinfo))) + (propagated-inputs + `(("emacs-company" ,emacs-company))) + (home-page "http://ppareit.github.com/graphviz-dot-mode") + (synopsis "Major mode for editing Graphviz DOT files") + (description + "This Emacs package helps you to create @file{.dot} or @file{.gv} files +using the DOT syntax, and use Graphviz to convert these files to diagrams.") + (license license:gpl2+))) + +(define-public emacs-imenu-list + (package + (name "emacs-imenu-list") + (version "0.8") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/bmag/imenu-list") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx")))) + (build-system emacs-build-system) + (home-page "https://github.com/bmag/imenu-list") + (synopsis + "Automatically tracks the current buffer's imenu entries") + (description + "This Emacs minor mode creates an automatically updated buffer called +@code{*Ilist*} that is populated with the current buffer's imenu entries. +This buffer is typically shown as a sidebar (Emacs vertically splits the +window).") + (license license:gpl3+))) (define-public emacs-mmm-mode (package @@ -3286,6 +3459,30 @@ the speedbar window.") "This package provides a macro that writes your namespaces for you.") (license license:gpl3+)))) +(define-public emacs-evil-leader + (package + (name "emacs-evil-leader") + (version "0.4.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/cofi/evil-leader") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5")))) + (inputs + `(("emacs-evil" ,emacs-evil))) + (build-system emacs-build-system) + (home-page "https://github.com/cofi/evil-leader") + (synopsis "Implement <leader> feature from Vim") + (description + "Evil Leader provides the @code{<leader>} feature from Vim that provides +an easy way to bind keys under a configurable prefix key.") + (license license:gpl3+))) + (define-public emacs-evil-textobj-syntax (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3") (version "0") @@ -3396,10 +3593,36 @@ It also provides an easy way to find synonyms and antonyms for a given word (to avoid repetitions for example).") (license license:gpl3+))) +(define-public emacs-flycheck-rust + (package + (name "emacs-flycheck-rust") + (version "1.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/flycheck/flycheck-rust") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r")))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-flycheck" ,emacs-flycheck) + ("emacs-let-alist" ,emacs-let-alist))) + (build-system emacs-build-system) + (home-page "https://github.com/flycheck/flycheck-rust") + (synopsis "Rust/Cargo support for Flycheck") + (description + "This Flycheck extension configures Flycheck automatically for +the current Cargo project.") + (license license:gpl3+))) + (define-public emacs-elisp-demos (package (name "emacs-elisp-demos") - (version "2019.12.01") + (version "2020.02.19") (source (origin (method git-fetch) @@ -3409,7 +3632,7 @@ word (to avoid repetitions for example).") (file-name (git-file-name name version)) (sha256 (base32 - "097d8xhvq0770z96wlhiv4gz98cq89pwx5fa42zpfh4p85qj4q9z")))) + "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc")))) (build-system emacs-build-system) (arguments `(#:include '("\\.el$" "\\.org$") @@ -3878,6 +4101,43 @@ completion candidate when using the Company text completion framework.") @code{company-math}.") (license license:gpl3+)))) +(define-public emacs-company-coq + (package + (name "emacs-company-coq") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/cpitclaudel/company-coq") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b")))) + (inputs + `(("emacs-company" ,emacs-company) + ("emacs-company-math" ,emacs-company-math) + ("emacs-dash" ,emacs-dash) + ("emacs-yasnippet" ,emacs-yasnippet))) + (build-system emacs-build-system) + (home-page "https://github.com/cpitclaudel/company-coq") + (synopsis "Emacs extensions for Proof General's Coq mode") + (description "This package includes a collection of Company mode backends +for Proof-General's Coq mode, and many useful extensions to Proof-General. It +features: + +@itemize +@item Prettification of operators, types, and subscripts, +@item Auto-completion, +@item Insertion of cases, +@item Fully explicit intros, +@item Outlines, code folding, and jumping to definition, +@item Help with errors, +@item and more. +@end itemize") + (license license:gpl3+))) + (define-public emacs-company-math (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9") (revision "1")) @@ -4655,7 +4915,7 @@ number.") (define-public emacs-org-superstar (package (name "emacs-org-superstar") - (version "1.0.0") + (version "1.1.0") (source (origin (method git-fetch) @@ -4664,7 +4924,7 @@ number.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0q6180qwjpha10zsiw0ni6lanyjwlj8141a6qivfcs8nwczz7nvz")))) + (base32 "14aafqw8rnbmiy3kcw1a58vjxdyamrbmlldnlw018wgk0qqv0xpx")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-org" ,emacs-org))) @@ -5109,33 +5369,55 @@ them easier to distinguish from other, less important buffers.") (license license:expat))) (define-public emacs-prescient - ;; XXX: emacs-ivy introduced a commit that disables sorting for counsel-M-x - ;; by default, so we use a non-release version ahead by one commit - (let ((commit "95056580ed743da92b05aaf86f943ee05600c28d") - (revision "1")) - (package - (name "emacs-prescient") - (version (git-version "3.3" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/raxod502/prescient.el/") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "06qxs8p66jr4gg9m1gd27v5may32f3n28la56cv4f4prinqyyfj7")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-company" ,emacs-company) - ("emacs-ivy" ,emacs-ivy))) - (home-page "https://github.com/raxod502/prescient.el/") - (synopsis "Library that sorts and filters lists of candidates") - (description - "This package provides a library for sorting and filtering, as well as -extensions for @code{ivy-mode} and @code{company-mode} that make use of the -library.") - (license license:gpl3+)))) + (package + (name "emacs-prescient") + (version "4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/raxod502/prescient.el.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-company" ,emacs-company) + ("emacs-ivy" ,emacs-ivy) + ("emacs-selectrum" ,emacs-selectrum))) + (home-page "https://github.com/raxod502/prescient.el/") + (synopsis "Emacs library for sorting and filtering candidates") + (description + "Prescient is a library for sorting and filtering, as well as extensions +for Ivy and Company that make use of the library.") + (license license:expat))) + +(define-public emacs-selectrum + (package + (name "emacs-selectrum") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/raxod502/selectrum.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "105zl102dwbzvk50xh6b824nq6p24kxhky18ghdnk5yi5sv620lm")))) + (build-system emacs-build-system) + (home-page "https://github.com/raxod502/selectrum/") + (synopsis "Incremental narrowing in Emacs") + (description "Selectrum is a solution for incremental narrowing in +Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based +on choosing the right abstractions and prioritizing consistency and +predictability over special-cased improvements for particular cases. +As such, Selectrum follows existing Emacs conventions where they exist +and are reasonable, and it declines to implement features which have +marginal benefit compared to the additional complexity of a new +interface.") + (license license:expat))) (define-public emacs-smartparens (package @@ -6670,6 +6952,35 @@ functions to assist in reviewing changes on files.") environments (virtualenv) inside Emacs.") (license license:gpl3+))) +(define-public emacs-highlight-indent-guides + (let ((version "0.8.5") ; from package metadata + (revision "0") + (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c")) + (package + (name "emacs-highlight-indent-guides") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DarthFennec/highlight-indent-guides.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2")))) + (build-system emacs-build-system) + (home-page + "https://github.com/DarthFennec/highlight-indent-guides") + (synopsis "Minor mode to highlight indentation") + (description + "This package provides a minor mode to highlight indentation levels via +font-lock. Indent widths are dynamically discovered, which means this +correctly highlights in any mode, regardless of indent width, even in +languages with non-uniform indentation such as Haskell. This mode works +properly around hard tabs and mixed indentation and behaves well in large +buffers.") + (license license:expat)))) + (define-public emacs-highlight-indentation ;; Last release version is from 2015. (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f") @@ -7429,8 +7740,8 @@ sly-quickload command that prompts the user for a package to install. ") (license license:gpl3+)))) (define-public emacs-sly-asdf - (let ((commit "ad248056ded3099b0528b6111ba335e835d9e5a7") - (revision "3")) + (let ((commit "32ce14994e8faee9321605cec36d156b02996c46") + (revision "4")) (package (name "emacs-sly-asdf") (version (git-version "0.1.0" revision commit)) @@ -7444,7 +7755,7 @@ sly-quickload command that prompts the user for a package to install. ") (file-name (git-file-name name version)) (sha256 (base32 - "0lip0spmglny3y612pxn3rfnpdaj12c9f7ya7bprryg2gvcdippa")))) + "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-sly" ,emacs-sly) @@ -7774,6 +8085,30 @@ a popup window for previewing candidates.") arguments, such as arguments separated by commas and semicolons.") (license license:expat)))) +(define-public emacs-evil-escape + (package + (name "emacs-evil-escape") + (version "3.14") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/syl20bnr/evil-escape") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i")))) + (propagated-inputs + `(("emacs-evil" ,emacs-evil))) + (build-system emacs-build-system) + (home-page "https://github.com/syl20bnr/evil-escape") + (synopsis "Escape from insert state and everything else in Emacs") + (description + "Evil escape provides a customizable key sequence to escape from insert +state and everything else in Emacs.") + (license license:gpl3+))) + (define-public emacs-evil-exchange (let ((commit "47691537815150715e64e6f6ec79be7746c96120") (version "0.41") @@ -13542,6 +13877,45 @@ within Emacs.") grouping buffers by their projectile root directory.") (license license:gpl3+)))) +(define-public emacs-elm-mode + (package + (name "emacs-elm-mode") + (version "0.21.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/jcollard/elm-mode") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd")))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-reformatter" ,emacs-reformatter) + ("emacs-s" ,emacs-s))) + (build-system emacs-build-system) + (home-page "https://github.com/jcollard/elm-mode") + (synopsis "Emacs major mode for editing Elm source code") + (description + "This package provides a major mode for editing Elm source code, and +working with common core and third-party Elm tools. Its features are: + +@itemize +@item Syntax highlighting +@item Intelligent indentation +@item Integration with elm-make +@item Integration with elm-repl +@item Integration with elm-reactor +@item Integration with elm-package +@item Integration with elm-oracle +@item Integration with elm-format +@item Integration with elm-test +@end itemize") + (license license:gpl3+))) + (define-public emacs-helm-mode-manager (package (name "emacs-helm-mode-manager") @@ -13657,18 +14031,18 @@ throw a shell history.") (version "1.0") (source (origin - (method url-fetch) - (uri - (string-append "https://github.com/steckerhalter/discover-my-major" - "/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://framagit.org/steckerhalter/discover-my-major.git/") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0nah41f92rrl2l405kpqr6iaks11jyclgl4z7ilfymbr4ifmsiyl")))) + "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-makey" ,emacs-makey))) - (home-page "https://github.com/steckerhalter/discover-my-major") + (home-page "https://framagit.org/steckerhalter/discover-my-major/") (synopsis "Discover key bindings for the current Emacs major mode") (description "This package provides allows to discover key bindings and their meaning for the current Emacs major-mode.") @@ -14540,10 +14914,11 @@ bookmarks and history.") (license license:gpl3+))) (define-public emacs-stumpwm-mode - (let ((commit "5328f85fbf6a8b08c758c17b9435368bf7a68f39")) + (let ((commit "dd5b037923ec7d3cc27c55806bcec5a1b8cf4e91") + (revision "2")) (package (name "emacs-stumpwm-mode") - (version (git-version "0.0.1" "1" commit)) + (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -14552,7 +14927,7 @@ bookmarks and history.") (file-name (git-file-name name version)) (sha256 (base32 - "00kf4k8bqadi5s667wb96sn549v2kvw01zwszjrg7nhd805m1ng6")))) + "0ahxdj9f884afpzxczx6mx7l4nwg4kw6afqaq7lwhf7lxcwylldn")))) (build-system emacs-build-system) (arguments `(#:phases @@ -16229,6 +16604,49 @@ and 'text viewing modes' respectively.") files. It focuses on highlighting the document to improve readability.") (license license:gpl2+))) +(define-public emacs-racer + (package + (name "emacs-racer") + (version "1.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/racer-rust/emacs-racer") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6")))) + (arguments + `(#:tests? #t + #:test-command '("make" "test") + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-makefile + (lambda _ + (substitute* "Makefile" + (("\\$\\{CASK\\} exec ") "")) + #t))))) + (native-inputs + `(("emacs-ert-runner" ,emacs-ert-runner) + ("emacs-undercover" ,emacs-undercover))) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-pos-tip" ,emacs-pos-tip) + ("emacs-rust-mode" ,emacs-rust-mode) + ("emacs-s" ,emacs-s))) + (build-system emacs-build-system) + (home-page "https://github.com/racer-rust/emacs-racer") + (synopsis "Racer support for Emacs") + (description + "This is the official Emacs package for Racer. It supports code +completion of variables, functions and modules. It can also jump to +definition of functions and types, and show a help buffer based on the +docstring of the thing at point.") + (license license:expat))) + (define-public emacs-rust-mode (package (name "emacs-rust-mode") @@ -16652,7 +17070,7 @@ files are easily readable and they work nicely with version control systems.") (define-public emacs-all-the-icons (package (name "emacs-all-the-icons") - (version "3.2.0") + (version "4.0.1") (source (origin (method git-fetch) @@ -16661,8 +17079,7 @@ files are easily readable and they work nicely with version control systems.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn")))) + (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5")))) (build-system emacs-build-system) (arguments `(#:include '("\\.el$" "^data/" "^fonts/") @@ -16675,10 +17092,11 @@ files are easily readable and they work nicely with version control systems.") ("memoize" ,emacs-memoize))) (home-page "https://github.com/domtronn/all-the-icons.el") (synopsis "Collect icon fonts and propertize them within Emacs") - (description "All-the-icons is a utility package to collect various icon -fonts and propertize them within Emacs. Icon fonts allow you to propertize -and format icons the same way you would normal text. This enables things such -as better scaling of and anti aliasing of the icons.") + (description + "All-the-icons is a utility package to collect various icon fonts and +propertize them within Emacs. Icon fonts allow you to propertize and format +icons the same way you would normal text. This enables things such as better +scaling of and anti aliasing of the icons.") ;; Package is released under Expat license. Elisp files are licensed ;; under GPL3+. Fonts come with various licenses: Expat for ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for @@ -17089,23 +17507,39 @@ other frame parameters.") (license license:gpl3+))) (define-public emacs-arduino-mode - (let ((commit "3e2bad4569ad26e929e6db2cbcff0d6d36812698")) ;no release yet + (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b") + (revision "1")) ;no release yet (package (name "emacs-arduino-mode") - (version (git-version "0" "0" commit)) + (version (git-version "0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/bookest/arduino-mode.git") + (url "https://github.com/stardiviner/arduino-mode.git") (commit commit))) (sha256 (base32 - "1yvaqjc9hadbnnay5fprnh890xsp53kidad1zpb4a5z4a5z61n3c")) + "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx")) (file-name (git-file-name name version)))) (build-system emacs-build-system) + (inputs + `(("spinner" ,emacs-spinner) + ("flycheck" ,emacs-flycheck))) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Emacs complains that "defmethod" and "defgeneric" are obsolete + ;; macros when compiling. Substitute them with the recommended + ;; macros "cl-defmethod" and "cl-defgeneric", respectively. + (add-after 'unpack 'fix-obsolete + (lambda _ + (substitute* "ede-arduino.el" + (("defmethod") "cl-defmethod") + (("defgeneric") "cl-defgeneric")) + #t))))) (synopsis "Emacs major mode for editing Arduino sketches") (description "Emacs major mode for editing Arduino sketches.") - (home-page "https://github.com/bookest/arduino-mode") + (home-page "https://github.com/stardiviner/arduino-mode") (license license:gpl3+)))) (define-public emacs-annalist @@ -18455,6 +18889,31 @@ unescaping of quotes.") @code{end-of-defun} functions for Vimscript files.") (license license:gpl3+)))) +(define-public emacs-flycheck-elm + (let ((revision "0") + (commit "1b60050efd4729bfba548f3e5adbcb58436667cb")) + (package + (name "emacs-flycheck-elm") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/bsermons/flycheck-elm") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-flycheck" ,emacs-flycheck) + ("emacs-let-alist" ,emacs-let-alist))) + (home-page "https://github.com/bsermons/flycheck-elm") + (synopsis "Flycheck support for the Elm language") + (description "Flycheck Elm adds Flycheck support for Elm language.") + (license license:gpl3+)))) + (define-public emacs-flycheck-haskell (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278") (revision "2")) @@ -19598,6 +20057,32 @@ corresponding Evil keys.") commands in @code{evil-mode}.") (license license:gpl3+)))) +(define-public emacs-evil-tmux-navigator + (package + (name "emacs-evil-tmux-navigator") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keith/evil-tmux-navigator") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx")))) + (propagated-inputs + `(("emacs-evil" ,emacs-evil))) + (build-system emacs-build-system) + (home-page "https://github.com/keith/evil-tmux-navigator") + (synopsis + "Navigate seamlessly between emacs windows and tmux panes") + (description + "This package lets you use C-h, C-j, C-k and C-l to navigate between +Emacs windows and tmux panes.") + (license license:expat))) + (define-public emacs-xterm-color (package (name "emacs-xterm-color") @@ -20272,32 +20757,51 @@ Emacs that integrate with major modes like Org-mode.") (home-page "https://github.com/hlissner/emacs-doom-themes") (license license:expat)))) -(define-public emacs-modus-themes +(define-public emacs-modus-operandi-theme (package - (name "emacs-modus-themes") - (version "0.6.0") + (name "emacs-modus-operandi-theme") + (version "0.7.0") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/protesilaos/modus-themes.git") - (commit version))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "modus-operandi-theme-" version ".el")) (sha256 - (base32 "15z6qq0b0npp7hscmh04i3mi10bynzdy52fv2b160nji264zvcwa")))) + (base32 "17zvcqplbl3rk39k61v43ganzv06j49rlyickanwll5m1a3iibw2")))) (build-system emacs-build-system) (home-page "https://gitlab.com/protesilaos/modus-themes") - (synopsis "Emacs themes designed for colour-contrast accessibility") + (synopsis "Accessible light theme (WCAG AAA)") (description - "This is a set of accessible themes for GNU Emacs. The contrast ratio -between foreground and background values should always be >= 7:1, which -conforms with the WCAG AAA accessibility standard. + "Modus operandi is the light version of the Modus accessible themes for +GNU Emacs. The contrast ratio between foreground and background values should +always be greater than 7:1, which conforms with the WCAG AAA accessibility +standard. This is the highest standard of its kind.") + (license license:gpl3+))) -The Modus themes project consists of two standalone items, one where dark text -is cast on a light backdrop (Modus Operandi) and another where light text is -displayed against a dark background (Modus Vivendi).") +(define-public emacs-modus-vivendi-theme + (package + (name "emacs-modus-vivendi-theme") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "modus-vivendi-theme-" version ".el")) + (sha256 + (base32 "1w4vrg39dghghkvll3h4kmzykc3zpp6pbychb39gcc13z2b06v8g")))) + (build-system emacs-build-system) + (home-page "https://gitlab.com/protesilaos/modus-themes") + (synopsis "Accessible dark theme (WCAG AAA)") + (description + "Modus vivendi is the dark version of the Modus accessible themes for GNU +Emacs. The contrast ratio between foreground and background values should +always be greater than 7:1, which conforms with the WCAG AAA accessibility +standard. This is the highest standard of its kind.") (license license:gpl3+))) +(define-public emacs-modus-themes + (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme)) + (define-public emacs-punpun-theme (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65") (revision "0")) @@ -20323,8 +20827,8 @@ color. Designed for 256-color terminals. Comes in light and dark!") (license license:gpl3+)))) (define-public emacs-spacemacs-theme - (let ((commit "e088bff4f190495615c29de93079aaa823e2300c") - (revision "0")) + (let ((commit "f79c40fb241e204539fde97200abae91e828e585") + (revision "1")) (package (name "emacs-spacemacs-theme") (version (git-version "0" revision commit)) ;no release yet @@ -20336,7 +20840,7 @@ color. Designed for 256-color terminals. Comes in light and dark!") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "09p5pzy3ibrl8dxmg10v8j16wxdn1fkdqpbi8l9pgfib2azmnvnc")))) + (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n")))) (build-system emacs-build-system) (home-page "https://github.com/nashamri/spacemacs-theme") (synopsis @@ -21757,3 +22261,40 @@ enables modal editing and composition of commands, too. It combines ideas of other Editors like Vim or Kakoune and tries to align them with regular Emacs conventions.") (license license:gpl3+))) + +(define-public emacs-haskell-snippets + ;; The commit below is 5 commits ahead of release, and includes a build fix. + (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a")) + (package + (name "emacs-haskell-snippets") + (version (git-version "0.1.0" "0" commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/haskell/haskell-snippets") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci")))) + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-snippets + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (snippets + (string-append + out "/share/emacs/site-lisp/snippets/haskell-mode"))) + (mkdir-p snippets) + (copy-recursively "snippets/haskell-mode" snippets) + #t)))))) + (propagated-inputs + `(("emacs-yasnippet" ,emacs-yasnippet))) + (home-page "https://github.com/haskell/haskell-snippets") + (synopsis "Official collection of YASnippet Haskell snippets for Emacs") + (description "Haskell-Snippets is a collection of YASnippet Haskell +snippets for Emacs.") + (license license:expat)))) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 2fcb176ae4..58d6c73ee2 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -197,7 +197,7 @@ "-DX11_FOUND=1"))) (native-inputs `(("pkg-config" ,pkg-config) - ("gettext" ,gnu-gettext))) + ("gettext" ,gettext-minimal))) (inputs `(("alsa-lib" ,alsa-lib) ("ao" ,ao) @@ -311,28 +311,19 @@ and a game metadata scraper.") (home-page "https://emulationstation.org") (license license:expat)))) -;; Note: higan v107 has been released, but as explained by the dialog that -;; appears after starting the new version, it's an experimental release. The -;; author recommends v106 for general use. -;; -;; When updating to v107 (or probably beyond), sdl will have to be replaced -;; with sdl2, and libxrandr will need to be added to inputs. The patch -;; `higan-remove-march-native-flag.patch' will not be necessary, since the flag -;; is now being added only for `platform=local', which is not the default. (define-public higan (package (name "higan") - (version "106") + (version "110") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/byuu/higan/") - (commit (string-append "v" version)))) + (url "https://github.com/higan-emu/higan.git") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1mxivf8124vz4hl0b0xa1yqv0z9m3i12v9psmbpqkprrbq0wbgn1")) - (patches (search-patches "higan-remove-march-native-flag.patch")))) + (base32 "11rvm53c3p2f6zk8xbyv2j51xp8zmqnch7zravhj3fk590qrjrr2")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -342,11 +333,12 @@ and a game metadata scraper.") ("eudev" ,eudev) ("gtk+" ,gtk+-2) ("gtksourceview-2" ,gtksourceview-2) + ("libxrandr" ,libxrandr) ("libxv" ,libxv) ("mesa" ,mesa) ("openal" ,openal) ("pulseaudio" ,pulseaudio) - ("sdl" ,sdl))) + ("sdl2" ,sdl2))) (arguments '(#:phases (let ((build-phase (assoc-ref %standard-phases 'build)) @@ -405,18 +397,19 @@ and a game metadata scraper.") (string-append "prefix=" (assoc-ref %outputs "out"))) ;; There is no test suite. #:tests? #f)) - (home-page "https://byuu.org/higan") - (synopsis "Nintendo multi-system emulator") + (home-page "https://github.com/higan-emu/higan/") + (synopsis "Multi-system emulator") (description - "higan (formerly bsnes) is an emulator for multiple Nintendo video game -consoles, including the Nintendo Entertainment System (NES/Famicom), Super -Nintendo Entertainment System (SNES/Super Famicom), Game Boy, Game Boy -Color (GBC), and Game Boy Advance (GBA). It also supports the subsystems -Super Game Boy, BS-X Satellaview, and Sufami Turbo.") - ;; As noted in these files among more: - ;; - icarus/icarus.cpp - ;; - higan/emulator/emulator.hpp - (license license:gpl3))) + "higan is a multi-system emulator with an uncompromising focus on +accuracy and code readability. + +It currently emulates the following systems: Famicom, Famicom Disk System, +Super Famicom, Super Game Boy, Game Boy, Game Boy Color, Game Boy Advance, +Game Boy Player, SG-1000, SC-3000, Master System, Game Gear, Mega Drive, Mega +CD, PC Engine, SuperGrafx, MSX, MSX2, ColecoVision, Neo Geo Pocket, Neo Geo +Pocket Color, WonderSwan, WonderSwan Color, SwanCrystal, Pocket Challenge +V2.") + (license license:gpl3+))) (define-public mgba (package @@ -1281,7 +1274,7 @@ play them on systems for which they were never designed!") (define-public mame (package (name "mame") - (version "0.219") + (version "0.220") (source (origin (method git-fetch) @@ -1290,7 +1283,7 @@ play them on systems for which they were never designed!") (commit (apply string-append "mame" (string-split version #\.))))) (file-name (git-file-name name version)) (sha256 - (base32 "0s3nhkfa5c17ar1lzgvm20ndqain9llgqkab0ji5ycv2c85f06fl")) + (base32 "0x3yr195zi7xjr21p1c2l8c0vhg0a0af0mpz4i1w7q7r9krvcvz4")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 5854249bb1..6a5f12db6d 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com> ;;; Copyright © 2019 John Soo <jsoo1@asu.edu> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -227,13 +228,13 @@ plans and designs.") ("glib" ,glib) ("gtk" ,gtk+-2) ("guile" ,guile-2.0) - ("desktop-file-utils" ,desktop-file-utils) ("shared-mime-info" ,shared-mime-info) ("m4" ,m4) ("pcb" ,pcb) ("python" ,python-2))) ; for xorn (native-inputs `(("pkg-config" ,pkg-config) + ("desktop-file-utils" ,desktop-file-utils) ("perl" ,perl))) ; for tests (home-page "http://geda-project.org/") (synopsis "Schematic capture, netlister, symbols, symbol checker, and utils") @@ -266,8 +267,9 @@ utilities.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) + ("desktop-file-utils" ,desktop-file-utils) ("libtool" ,libtool) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("texinfo" ,texinfo) ("groff" ,groff) ("which" ,which) @@ -276,7 +278,6 @@ utilities.") `(("glib" ,glib) ("gtk" ,gtk+-2) ("guile" ,guile-2.2) - ("desktop-file-utils" ,desktop-file-utils) ("shared-mime-info" ,shared-mime-info) ("m4" ,m4) ("pcb" ,pcb))) @@ -385,13 +386,13 @@ features."))) ("gd" ,gd) ("gtk" ,gtk+-2) ("gtkglext" ,gtkglext) - ("desktop-file-utils" ,desktop-file-utils) ("shared-mime-info" ,shared-mime-info) ("tk" ,tk))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) ("bison" ,bison) + ("desktop-file-utils" ,desktop-file-utils) ("flex" ,flex) ;; For tests ("imagemagick" ,imagemagick) @@ -675,11 +676,11 @@ ready for production.") (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("desktop-file-utils" ,desktop-file-utils) ("pkg-config" ,pkg-config))) (inputs `(("cairo" ,cairo) - ("gtk" ,gtk+-2) - ("desktop-file-utils" ,desktop-file-utils))) + ("gtk" ,gtk+-2))) (home-page "http://gerbv.geda-project.org/") (synopsis "Gerber file viewer") (description @@ -856,7 +857,7 @@ language.") (native-inputs `(("boost" ,boost) ("desktop-file-utils" ,desktop-file-utils) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("kicad-i18l" ,kicad-i18l) ("pkg-config" ,pkg-config) ("swig" ,swig) @@ -903,7 +904,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.") (delete 'build) (delete 'check)))) (native-inputs - `(("gettext" ,gnu-gettext))) + `(("gettext" ,gettext-minimal))) (home-page "https://kicad-pcb.org/") (synopsis "KiCad GUI translations") (description "This package contains the po files that are used for the GUI diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 7bf8f4fc6e..ea1fcbe9d4 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org> ;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net> +;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,6 +40,7 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system emacs) #:use-module (guix build-system python) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system go) @@ -1398,3 +1400,65 @@ entity management.") electronic cash system. This package provides a command line client and a Qt GUI.") (license license:expat))) + +(define-public beancount + (package + (name "beancount") + (version "2.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "beancount" version)) + (sha256 + (base32 + "0pcfl2rx2ng06i4f9izdpnlnb1k0rdzsckbzzn4cn4ixfzyssm0m")) + (patches (search-patches "beancount-disable-googleapis-fonts.patch")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; Says test is missing, not sure why + #:phases + (modify-phases %standard-phases + ;; Not importing the googleapis package for now + (add-after 'unpack 'ignore-googleapis + (lambda _ + (substitute* "setup.py" + (("'google-api-python-client',") "")) + #t))))) + (inputs + `(("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-bottle" ,python-bottle) + ("python-chardet" ,python-chardet) + ("python-dateutil" ,python-dateutil) + ("python-lxml" ,python-lxml) + ("python-magic" ,python-magic) + ("python-ply" ,python-ply) + ("python-requests" ,python-requests))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "http://furius.ca/beancount") + (synopsis "Command-line double-entry accounting tool") + (description + "Beancount is a double-entry bookkeeping computer language that lets you +define financial transaction records in a text file, read them in memory, +generate a variety of reports from them, and provides a web interface.") + (license license:gpl2))) + +;; The beancount source ships with elisp in a subdirectory +(define-public emacs-beancount + (package + (inherit beancount) + (name "emacs-beancount") + (build-system emacs-build-system) + (arguments + `(#:tests? #f ;no tests + #:phases + (modify-phases %standard-phases + (add-before 'install 'chdir-emacs + (lambda _ + (chdir "editors/emacs") + #t))))) + (inputs '()) + (native-inputs '()) + (synopsis "Emacs mode for beancount") + (description + "Emacs-beancount is an Emacs mode for the Beancount accounting tool."))) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 527f2cbbd6..dbc0c4f9d6 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -31,6 +31,7 @@ ;;; Copyright © 2020 Damien Cassou <damien@cassou.me> ;;; Copyright © 2020 Amin Bandali <bandali@gnu.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 John Soo <jsoo1@asu.edu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -559,17 +560,16 @@ fonts.") (define-public font-rachana (package (name "font-rachana") - (version "7.0") + (version "7.0.3") (source (origin - (method url-fetch) - (uri (string-append - "https://gitlab.com/smc/rachana/repository/archive.tar.gz?ref=Version" - version)) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/smc/fonts/rachana") + (commit (string-append "Version" version)))) (sha256 - (base32 - "0jc091gshna6p1dd6lf507jxkgk6rsja835fc9dm71mcplq53bm1")))) + (base32 "0r100pvk56y1s38nbv24d78s8nd7dkblgasbn8s887dzj6dps23d")) + (file-name (git-file-name name version)))) (build-system font-build-system) (home-page "https://smc.org.in") (synopsis "Malayalam font") @@ -650,7 +650,7 @@ for use at smaller text sizes"))) (define-public font-gnu-unifont (package (name "font-gnu-unifont") - (version "12.1.04") + (version "13.0.01") (source (origin (method url-fetch) @@ -660,7 +660,7 @@ for use at smaller text sizes"))) (string-append "mirror://gnu/unifont/unifont-" version "/unifont-" version ".tar.gz"))) (sha256 - (base32 "1h5dyhg4j8sh4qpbwnsn34igb8mfapz5b3nf4k71hq1c5z3j0mcv")))) + (base32 "1svzm3xahb2m8r79ha9gb1z3zlckykx9d87cghswj7dxn9868j4b")))) (build-system gnu-build-system) (outputs '("out" ; TrueType version "pcf" ; PCF (bitmap) version @@ -703,7 +703,7 @@ for use at smaller text sizes"))) "GNU Unifont is a bitmap font covering essentially all of Unicode's Basic Multilingual Plane. The package also includes utilities to ease adding new glyphs to the font.") - (home-page "http://unifoundry.com/unifont.html") + (home-page "http://unifoundry.com/unifont/index.html") (properties '((upstream-name . "unifont"))) (license license:gpl2+))) @@ -1178,6 +1178,50 @@ programming. Iosevka is completely generated from its source code.") (sha256 (base32 "1rkmgi08kknc1fg54zpa6w92m3b3v7pc8cpwygz22kgd2h0mdrr8")))))) +(define-public font-iosevka-term + (package + (inherit font-iosevka) + (name "font-iosevka-term") + (version (package-version font-iosevka)) + (source + (origin + (method url-fetch/zipbomb) + (uri (string-append "https://github.com/be5invis/Iosevka" + "/releases/download/v" version + "/02-iosevka-term-" version ".zip")) + (sha256 + (base32 + "1mxlb3qf64nykjd0x4gjfvib3k5kyv9ssv9iyzxxgk2z80bydz00")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'make-files-writable + (lambda _ + (for-each make-file-writable (find-files "." ".*")) + #t))))))) + +(define-public font-iosevka-term-slab + (package + (inherit font-iosevka) + (name "font-iosevka-term-slab") + (version (package-version font-iosevka)) + (source + (origin + (method url-fetch/zipbomb) + (uri (string-append "https://github.com/be5invis/Iosevka" + "/releases/download/v" version + "/06-iosevka-term-slab-" version ".zip")) + (sha256 + (base32 + "1gc16hih157qy6vpa8f88psq0fnksiigi3msqazc75zsm3z4kzqj")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'make-files-writable + (lambda _ + (for-each make-file-writable (find-files "." ".*")) + #t))))))) + (define-public font-go (let ((commit "f03a046406d4d7fbfd4ed29f554da8f6114049fc") (revision "1")) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 06d1b3c11c..7b22dfc052 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -48,6 +48,9 @@ ;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx> ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net> +;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com> +;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -172,6 +175,7 @@ #:use-module (gnu packages xml) #:use-module (gnu packages messaging) #:use-module (gnu packages networking) + #:use-module (guix build-system copy) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system go) @@ -1093,6 +1097,46 @@ destroying an ancient book using a special wand.") ;; license. The whole package is released under GPLv3+. (license license:gpl3+))) +(define-public gnome-chess + (package + (name "gnome-chess") + (version "3.36.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1a9fgi749gy1f60vbcyrqqkab9vqs42hji70q73k1xx8rv0agmg0")))) + (build-system meson-build-system) + (arguments + '(#:glib-or-gtk? #t + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'skip-gtk-update-icon-cache + ;; Don't create 'icon-theme.cache'. + (lambda _ + (substitute* "meson_post_install.py" + (("gtk-update-icon-cache") "true")) + #t))))) + (inputs + `(("gtk+" ,gtk+) + ("librsvg" ,librsvg))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") ; for desktop-file-validate and appstream-util + ("itstool" ,itstool) + ("pkg-config" ,pkg-config) + ("vala" ,vala))) + (home-page "https://wiki.gnome.org/Apps/Chess") + (synopsis "Chess board for GNOME") + (description "GNOME Chess provides a 2D board for playing chess games +against human or computer players. It supports loading and saving games in +Portable Game Notation. To play against a computer, install a chess engine +such as chess or stockfish.") + (license license:gpl3+))) + (define-public gnubg (package (name "gnubg") @@ -1250,10 +1294,11 @@ watch your CPU playing while enjoying a cup of tea!") (string-join (string-split version #\.) "") "-src.tgz")) (sha256 (base32 "1liyckjp34j354qnxc1zn9730lh1p2dabrg1hap24z6xnqx0rpng")))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex))) (inputs `(("ncurses" ,ncurses) - ("bison" ,bison) - ("flex" ,flex) ("less" ,less))) (build-system gnu-build-system) (arguments @@ -6634,7 +6679,7 @@ GameController.") #t))))) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("glib" ,glib "bin") ;for glib-compile-resources ("itstool" ,itstool) ("libxml2" ,libxml2) ;for xmllint @@ -7139,7 +7184,7 @@ where the player draws runes in real time to effect the desired spell.") `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) ("automake" ,automake) - ("gnu-gettext" ,gnu-gettext) + ("gnu-gettext" ,gettext-minimal) ("libtool" ,libtool) ("which" ,which))) (synopsis "2d action platformer game") @@ -10291,3 +10336,119 @@ to conquer opponents by defeating them in war (with troops or machines), capturing their buildings with spies, or offering opponents money for their kingdom.") (license license:gpl2+))) + +(define-public neverball + ;; Git version is 6-years younger than latest release. + (let ((commit "760a25d32a5fb0661b99426d4ddcb9ac9f3d1644") + (revision "1")) + (package + (name "neverball") + (version (git-version "1.6.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Neverball/neverball.git") + (commit commit))) + (sha256 + (base32 + "0bwh67df3lyf33bv710y25l3frjdd34j9b7gsjadwxviz6r1vpj5")) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + '(begin + ;; Octocat seems to be non-free. Oddly, Debian doesn't strip it. + (delete-file-recursively "data/ball/octocat") + #t)))) + (build-system copy-build-system) + (arguments + `(#:install-plan + '(("neverball" "bin/") + ("neverputt" "bin/") + ("mapc" "bin/") + ("data" "share/games/neverball/") + ("locale" "share/") + ("dist/" "share/games/neverball" #:include ("neverball_replay.png" + "neverlogos.svg" + "svg readme.txt")) + ("dist/" "share/applications" #:include ("neverball.desktop" + "neverputt.desktop")) + ("dist/neverball_16.png" + "/share/icons/hicolor/16x16/apps/neverball.png") + ("dist/neverball_24.png" + "/share/icons/hicolor/24x24/apps/neverball.png") + ("dist/neverball_32.png" + "/share/icons/hicolor/32x32/apps/neverball.png") + ("dist/neverball_48.png" + "/share/icons/hicolor/48x48/apps/neverball.png") + ("dist/neverball_64.png" + "/share/icons/hicolor/64x64/apps/neverball.png") + ("dist/neverball_128.png" + "/share/icons/hicolor/128x128/apps/neverball.png") + ("dist/neverball_256.png" + "/share/icons/hicolor/256x256/apps/neverball.png") + ("dist/neverball_512.png" + "/share/icons/hicolor/512x512/apps/neverball.png") + ("dist/neverputt_16.png" + "/share/icons/hicolor/16x16/apps/neverputt.png") + ("dist/neverputt_24.png" + "/share/icons/hicolor/24x24/apps/neverputt.png") + ("dist/neverputt_32.png" + "/share/icons/hicolor/32x32/apps/neverputt.png") + ("dist/neverputt_48.png" + "/share/icons/hicolor/48x48/apps/neverputt.png") + ("dist/neverputt_64.png" + "/share/icons/hicolor/64x64/apps/neverputt.png") + ("dist/neverputt_128.png" + "/share/icons/hicolor/128x128/apps/neverputt.png") + ("dist/neverputt_256.png" + "/share/icons/hicolor/256x256/apps/neverputt.png") + ("dist/neverputt_512.png" + "/share/icons/hicolor/512x512/apps/neverputt.png") + ("dist/" "share/man/man1" #:include ("mapc.1")) + ("dist/" "share/man/man6" #:include ("neverball.6" "neverputt.6")) + ("doc/" "share/doc/neverball") + ("README.md" "share/doc/neverball/")) + #:phases + (modify-phases %standard-phases + (add-before 'install 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (sdl (assoc-ref inputs "sdl"))) + (invoke "make" "-j" (number->string (parallel-job-count)) + "--environment-overrides" + "CC=gcc" "BUILD=release" + (string-append "DATADIR=" + out + "/share/games/neverball/data") + (string-append "LOCALEDIR=" out "/share/locale") + (string-append "SDL_CPPFLAGS=-I" + sdl + "/include/SDL2/"))) + #t)) + (add-after 'install 'fix-some-broken-fonts + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/neverball") + `("LANG" = ("en_US.utf8"))) + (wrap-program (string-append out "/bin/neverputt") + `("LANG" = ("en_US.utf8")))) + #t))))) + (native-inputs + `(("gettext" ,gettext-minimal))) ;for msgfmt + (inputs + `(("libjpeg" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libvorbis" ,libvorbis) + ("physfs" ,physfs) + ("sdl" ,(sdl-union (list sdl2 sdl2-ttf))))) + (home-page "https://neverball.org/") + (synopsis "3D floor-tilting game") + (description + "In the grand tradition of Marble Madness and Super Monkey Ball, +Neverball has you guide a rolling ball through dangerous territory. Balance +on narrow bridges, navigate mazes, ride moving platforms, and dodge pushers +and shovers to get to the goal. Race against the clock to collect coins to +earn extra balls. Also included is Neverputt, which is a 3D miniature golf +game.") ;thanks to Debian for description + (license license:gpl2+)))) diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm index fdf686f9d7..27f55a398a 100644 --- a/gnu/packages/genimage.scm +++ b/gnu/packages/genimage.scm @@ -41,7 +41,7 @@ (define-public genimage (package (name "genimage") - (version "10") + (version "11") (source (origin (method git-fetch) (uri (git-reference @@ -50,7 +50,7 @@ (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0had00p2why2l1fl14mq7nbhmmfbd3na4qnnpg36akdy05g67jbn")))) + "15jmh17lvm3jw9c92bjarly7iwhmnfl322d91mprfv10ppb9ip54")))) (build-system gnu-build-system) (arguments `(#:phases @@ -149,6 +149,7 @@ (substitute* '("test/ext2test.dump" "test/ext3test.dump" "test/ext4test.dump" + "test/ext2test-percent.dump" "test/mke2fs.dump") (("root") "unknown")) #t)) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index cf0b31aa43..aa6d25a51b 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -1925,6 +1925,22 @@ growing set of geoscientific methods.") (add-after 'wrap-python 'wrap-qt (lambda* (#:key outputs #:allow-other-keys) (wrap-qt-program (assoc-ref outputs "out") "qgis") + #t)) + (add-after 'wrap-qt 'wrap-gis + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (saga (string-append (assoc-ref inputs "saga") "/bin")) + (grass-version ,(package-version grass)) + (grass-majorminor (string-join + (list-head + (string-split grass-version #\.) 2) + "")) + (grass (string-append (assoc-ref inputs "grass") + "/grass" grass-majorminor))) + (wrap-program (string-append out "/bin/qgis") + `("PATH" ":" prefix (,saga)) + `("QGIS_PREFIX_PATH" = (,out)) + `("GISBASE" = (,grass)))) #t))))) (inputs `(("exiv2" ,exiv2) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 9995d445ab..5966906954 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -152,10 +152,16 @@ buffers.") (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") "/share/gtk-doc/html") + ;; Prevent the build system from running 'gtk-update-icon-cache' ;; which is not needed during the build because Guix runs it at ;; profile creation time. "ac_cv_path_GTK_UPDATE_ICON_CACHE=true" + + ;; Disable automatic network request on startup to check for + ;; version updates. + "--disable-check-update" + ;; ./configure requests not to annoy upstream with packaging bugs. "--with-bug-report-url=https://bugs.gnu.org/guix") #:phases diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index fc3d853a7a..8d01c12cb9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -49,6 +49,7 @@ ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 raingloom <raingloom@riseup.net> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -249,6 +250,49 @@ Desktop. It is designed to be as simple as possible and has some unique features to enable users to create their discs easily and quickly.") (license license:gpl2+))) +(define-public mm-common + (package + (name "mm-common") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr")))) + (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "util/mm-common-prepare.in" + (("ln") (string-append (assoc-ref inputs "coreutils") + "/bin/ln")) + (("cp") (string-append (assoc-ref inputs "coreutils") + "/bin/cp")) + (("sed") (string-append (assoc-ref inputs "sed") + "/bin/sed")) + (("cat") (string-append (assoc-ref inputs "coreutils") + "/bin/cat"))) + #t))))) + (native-inputs + `(("coreutils" ,coreutils) + ("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("sed" ,sed))) + (inputs + `(("python" ,python))) + (synopsis "Module of GNOME C++ bindings") + (description "The mm-common module provides the build infrastructure +and utilities shared among the GNOME C++ binding libraries. Release +archives of mm-common include the Doxygen tag file for the GNU C++ +Library reference documentation.") + (home-page "https://gitlab.gnome.org/GNOME/mm-common") + (license license:gpl2+))) + (define-public phodav (package (name "phodav") @@ -334,7 +378,7 @@ in the GNOME desktop.") (define-public gnome-online-miners (package (name "gnome-online-miners") - (version "3.30.0") + (version "3.34.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -342,7 +386,7 @@ in the GNOME desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c")))) + "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -536,7 +580,18 @@ extraction, and lookup for applications on the desktop.") (arguments '(#:configure-flags '(;; Enable camera support for user selfie. "-Dcheese=auto" - "-Dsystemd=false"))) + "-Dsystemd=false") + #:phases (modify-phases %standard-phases + (add-after 'unpack 'set-gkbd-file-name + (lambda* (#:key inputs #:allow-other-keys) + ;; Allow the "Preview" button in the keyboard layout + ;; selection dialog to display the layout. + (let ((libgnomekbd (assoc-ref inputs "libgnomekbd"))) + (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c" + (("\"gkbd-keyboard-display") + (string-append "\"" libgnomekbd + "/bin/gkbd-keyboard-display"))) + #t)))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") @@ -565,7 +620,8 @@ extraction, and lookup for applications on the desktop.") ("pwquality" ,libpwquality) ("rest" ,rest) ("upower" ,upower) - ("webkitgtk" ,webkitgtk))) + ("webkitgtk" ,webkitgtk) + ("libgnomekbd" ,libgnomekbd))) (synopsis "Initial setup wizard for GNOME desktop") (description "This package provides a set-up wizard when a user logs into GNOME for the first time. It typically provides a @@ -5037,7 +5093,7 @@ supports image conversion, rotation, and slideshows.") (synopsis "Extensions for the Eye of GNOME image viewer") (native-inputs `(("pkg-config" ,pkg-config) - ("gettext" ,gnu-gettext))) + ("gettext" ,gettext-minimal))) (inputs `(("eog" ,eog) ("glib" ,glib) @@ -6042,7 +6098,7 @@ window manager.") (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.32.1") + (version "3.36.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -6050,7 +6106,7 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8")))) + "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw")))) (outputs '("out" "lib")) (build-system glib-or-gtk-build-system) (arguments @@ -7608,7 +7664,7 @@ software that do not provide their own configuration interface.") (let* ((out (assoc-ref %outputs "out")) (apps (string-append out "/share/applications"))) (mkdir-p apps) - (call-with-output-file (string-append apps "/defaults.list") + (call-with-output-file (string-append apps "/gnome-mimeapps.list") (lambda (port) (format port "[Default Applications]\n") (format port "inode/directory=org.gnome.Nautilus.desktop\n") @@ -7680,6 +7736,17 @@ associations for GNOME.") ("gjs" ,gjs) ("gnome-desktop" ,gnome-desktop) ("libgweather" ,libgweather))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'fix-desktop-file + ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason. + ;; See https://issues.guix.gnu.org/issue/39324. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (applications (string-append out "/share/applications"))) + (substitute* (string-append applications "/org.gnome.Weather.desktop") + (("Exec=.*") "Exec=gnome-weather\n")))))))) (synopsis "Weather monitoring for GNOME desktop") (description "GNOME Weather is a small application that allows you to monitor the current weather conditions for your city, or anywhere in the @@ -8849,10 +8916,15 @@ views can be printed as PDF or PostScript files, or exported to HTML.") (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a")))) (build-system meson-build-system) (arguments - `(#:imported-modules ((guix build python-build-system) - ,@%meson-build-system-modules) + `(#:imported-modules + (,@%meson-build-system-modules + (guix build python-build-system)) + #:modules + ((guix build meson-build-system) + ((guix build python-build-system) #:prefix python:) + (guix build utils)) #:glib-or-gtk? #t - #:tests? #f ; no test suite + #:tests? #f ; no test suite #:phases (modify-phases %standard-phases (add-after 'install 'wrap-program @@ -8863,9 +8935,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.") `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) #t)) (add-after 'install 'wrap-python - (@@ (guix build python-build-system) wrap)) - (add-after 'install 'wrap-glib-or-gtk - (@@ (guix build glib-or-gtk-build-system) wrap-all-programs))))) + (assoc-ref python:%standard-phases 'wrap))))) (native-inputs `(("intltool" ,intltool) ("itstool" ,itstool) @@ -9121,7 +9191,7 @@ configurable file renaming. ") ("libxscrnsaver" ,libxscrnsaver))) (native-inputs `(("boost" ,boost) ("pkg-config" ,pkg-config) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("autoconf" ,autoconf) ("autoconf-archive" , autoconf-archive) ("automake" ,automake) @@ -9818,7 +9888,7 @@ join_paths\\('build-aux', 'post_install.py'\\)\\)") `(("appstream-glib" ,appstream-glib) ("cmake-minimal" ,cmake-minimal) ("desktop-file-utils" ,desktop-file-utils) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("itstool" ,itstool) @@ -9904,3 +9974,33 @@ to.") environment. Its main purpose is the manual transcription of spoken audio files.") (license license:gpl3+)))) + +(define-public jsonrpc-glib + (package + (name "jsonrpc-glib") + (version "3.34.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni")))) + (build-system meson-build-system) + (inputs + `(("json-glib" ,json-glib) + ("glib" ,glib))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. + ("gobject-introspection" ,gobject-introspection) + ("vala" ,vala))) + (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib") + (synopsis "JSON-RPC library for GLib") + (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based +peers in either a synchronous or asynchronous fashion. It also allows +communicating using the GVariant serialization format instead of JSON when +both peers support it. You might want that when communicating on a single +host to avoid parser overhead and memory-allocator fragmentation.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 1961e6bb89..d7ea498907 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -180,13 +180,13 @@ authentication and support for SSL3 and TLS.") (define-public gnurl (package (name "gnurl") - (version "7.67.0") + (version "7.69.1") (source (origin (method url-fetch) - (uri (string-append "mirror://gnu/gnunet/" name "-" version ".tar.Z")) + (uri (string-append "mirror://gnu/gnunet/gnurl-" version ".tar.gz")) (sha256 (base32 - "0ssjz2npr2zjvcpfz9qbaj92xc9ayg8wx4hyl132snl94qr2v670")))) + "0x8m26y3klndis6a28j8i0b7ab04d38q3rmlvgaqa65bjhlfdrp0")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.8 MiB of man3 pages diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 2db4697a6d..3992b0ccc8 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -554,8 +554,8 @@ from forcing GEXP-PROMISE." #:system system #:guile-for-build guile))) -(define %icecat-version "68.6.0-guix0-preview1") -(define %icecat-build-id "20200309000000") ;must be of the form YYYYMMDDhhmmss +(define %icecat-version "68.7.0-guix0-preview1") +(define %icecat-build-id "20200406000000") ;must be of the form YYYYMMDDhhmmss ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' @@ -577,11 +577,11 @@ from forcing GEXP-PROMISE." "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "17qwfq9hwra8jarawy8k2sqfa6hdhwa9qk84ndr6gjvmxcy22a14")))) + "0w3mad0r4khcd7hfmm3xix9x6mp5yp8g8kyh18vanfnjqdls0gmd")))) - (upstream-icecat-base-version "68.6.0") ; maybe older than base-version + (upstream-icecat-base-version "68.7.0") ; maybe older than base-version ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) - (gnuzilla-commit "9dcb24d885eae5973eb2245b532b158c685d707a") + (gnuzilla-commit "d185c5a67506311e19440fd4b824a822ce840369") (gnuzilla-source (origin (method git-fetch) @@ -593,7 +593,7 @@ from forcing GEXP-PROMISE." (string-take gnuzilla-commit 8))) (sha256 (base32 - "1y3jmh055vmx44gsjgwxvwv3zcyvz8pc5mhgrwkzm0ybbwpp2pqi")))) + "09skws692qv5kbhj8bvy3prj7v0iyfz68xjck4vbfxkahldfppqx")))) (makeicecat-patch (local-file (search-patch "icecat-makeicecat.patch")))) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a7470eaa72..6fc5181d6c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -221,7 +221,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.4) (name "go") - (version "1.13.8") + (version "1.13.9") (source (origin (method url-fetch) @@ -229,7 +229,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") name version ".src.tar.gz")) (sha256 (base32 - "0d7cxffk72568h46srzswrxd0bsdip7amgkf499wzn6l6d3g0fxi")))) + "07gksk9194wa90xyd6yhagxfv7syvsx29bh8ypc4mg700vc1kfrl")))) (arguments (substitute-keyword-arguments (package-arguments go-1.4) ((#:phases phases) @@ -2186,6 +2186,34 @@ Reference algorithm has been slightly hacked as to support the streaming mode required by Go's standard Hash interface.") (license license:bsd-3))) +(define-public go-github-com-calmh-murmur3 + (let ((commit "74e9af8f47ac56901c490d45546ca167b60c7066") + (revision "0")) + (package + (name "go-github-com-calmh-murmur3") + (version (git-version "1.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/calmh/murmur3.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0k8345ivx228qdbkl8bisd2wxwsinkb44ghba6r09538fr3fbr5w")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/calmh/murmur3")) + (home-page "https://github.com/calmh/murmur3") + (synopsis "Native MurmurHash3 Go implementation") + (description "Native Go implementation of Austin Appleby's third +MurmurHash revision (aka MurmurHash3). + +Reference algorithm has been slightly hacked as to support the streaming mode +required by Go's standard Hash interface.") + (license license:bsd-3)))) + (define-public go-github-com-multiformats-go-multihash (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6") (revision "0")) @@ -3463,9 +3491,19 @@ efficient space usage.") "0ygan8pgcay7wx3cs3ja8rdqj7nly7v3and97ddcc66020jxchzg")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/willf/bloom")) + '(#:import-path "github.com/willf/bloom" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-import-path + (lambda _ + ;; See 'go.mod' in the source distribution of Syncthing 1.4.1 for + ;; more information. + ;; <https://github.com/spaolacci/murmur3/issues/29> + (substitute* "src/github.com/willf/bloom/bloom.go" + (("spaolacci") "calmh")) + #t))))) (propagated-inputs - `(("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3) + `(("go-github-com-calmh-murmur3" ,go-github-com-calmh-murmur3) ("go-github-com-willf-bitset" ,go-github-com-willf-bitset))) (synopsis "Bloom filters in Go") (description "This package provides a Go implementation of bloom filters, diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index cd2e09e966..4a4b18f3e1 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -86,10 +87,10 @@ (inputs `(("expat" ,expat) ("zlib" ,zlib) - ("qtbase" ,qtbase) - ("qttools" ,qttools))) + ("qtbase" ,qtbase))) (native-inputs `(("which" ,which) + ("qttools" ,qttools) ("libxml2" ,libxml2))) ;'xmllint' needed for the KML tests (home-page "https://www.gpsbabel.org/") (synopsis "Convert and exchange data with GPS and map programs") @@ -220,14 +221,14 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.") (define-public gpsd (package (name "gpsd") - (version "3.19") + (version "3.20") (source (origin (method url-fetch) (uri (string-append "https://download-mirror.savannah.gnu.org" "/releases/gpsd/gpsd-" version ".tar.gz")) (sha256 - (base32 "0faz2mvk82hi7ispxxih07lhpyz5dazs4gcknym9piiabga29p97")))) + (base32 "0l2yz0yw9sil82lh2l4swkkldgmhzhv588n5lcavib4f0q2phahp")))) (build-system scons-build-system) (native-inputs `(("bc" ,bc) @@ -235,6 +236,7 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.") (inputs `(("bluez" ,bluez) ("dbus" ,dbus) + ("gtk+" ,gtk+) ("libcap" ,libcap) ("libusb" ,libusb) ("ncurses" ,ncurses) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 80ec7b0a31..7f56d26804 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> +;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -274,50 +275,55 @@ exception-handling library.") (define-public ogre (package (name "ogre") - (version "1.10.11") + (version "1.12.5") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/OGRECave/ogre.git") - (commit (string-append "v" version)))) + (url "https://github.com/OGRECave/ogre.git") + (commit (string-append "v" version)) + (recursive? #t))) ;for Dear ImGui submodule (file-name (git-file-name name version)) (sha256 - (base32 - "072rzw9mxymbiypgkrbkk9h10rgly6gczik4dlmssk6xkpqckaqr")))) + (base32 "1sx0jsw4kmb4ycf62bgx3ygwv8k1cgjx52y47d7dk07z6gk6wpyj")))) (build-system cmake-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Tests/CMakeLists.txt" - (("URL(.*)$") - (string-append "URL " (assoc-ref inputs "googletest-source")))) + ;; CMakeLists.txt forces CMAKE_INSTALL_RPATH value. As + ;; a consequence, we cannot suggest ours in configure flags. Fix + ;; it. + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("set\\(CMAKE_INSTALL_RPATH .*") "")) #t))) #:configure-flags - (list "-DOGRE_BUILD_TESTS=TRUE" - (string-append "-DCMAKE_INSTALL_RPATH=" - (assoc-ref %outputs "out") "/lib:" - (assoc-ref %outputs "out") "/lib/OGRE:" - (assoc-ref %build-inputs "googletest") "/lib") - "-DOGRE_INSTALL_DOCS=TRUE" - "-DOGRE_INSTALL_SAMPLES=TRUE" - "-DOGRE_INSTALL_SAMPLES_SOURCE=TRUE"))) + (let* ((out (assoc-ref %outputs "out")) + (runpath + (string-join (list (string-append out "/lib") + (string-append out "/lib/OGRE")) + ";"))) + (list (string-append "-DCMAKE_INSTALL_RPATH=" runpath) + "-DOGRE_BUILD_DEPENDENCIES=OFF" + "-DOGRE_BUILD_TESTS=TRUE" + "-DOGRE_INSTALL_DOCS=TRUE" + "-DOGRE_INSTALL_SAMPLES=TRUE" + "-DOGRE_INSTALL_SAMPLES_SOURCE=TRUE")))) (native-inputs `(("boost" ,boost) ("doxygen" ,doxygen) - ("googletest-source" ,(package-source googletest)) + ("googletest" ,googletest-1.8) ("pkg-config" ,pkg-config))) (inputs `(("font-dejavu" ,font-dejavu) ("freeimage" ,freeimage) ("freetype" ,freetype) ("glu" ,glu) - ("googletest" ,googletest) - ("sdl2" ,sdl2) ("libxaw" ,libxaw) ("libxrandr" ,libxrandr) + ("pugixml" ,pugixml) + ("sdl2" ,sdl2) ("tinyxml" ,tinyxml) ("zziplib" ,zziplib))) (synopsis "Scene-oriented, flexible 3D engine written in C++") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index d20d460e1b..39f87e63d5 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -23,6 +23,7 @@ ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net> ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot> +;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1972,3 +1973,49 @@ anchor windows to a corner or edge of the output, or stretch them across the entire output. It supports all Layer Shell features including popups and popovers.") (license license:expat))) + +(define-public goocanvas + (package + (name "goocanvas") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/goocanvas/" + (version-major+minor version) + "/goocanvas-" version ".tar.xz")) + (sha256 + (base32 "141fm7mbqib0011zmkv3g8vxcjwa7hypmq71ahdyhnj2sjvy4a67")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("glib-bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gtk-doc" ,gtk-doc) + ("pkg-config" ,pkg-config) + ("python" ,python))) + (inputs + `(("cairo" ,cairo) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("python-pygobject" ,python-pygobject))) + (arguments + `(#:configure-flags '("--disable-rebuilds" + "--disable-static") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-install-path + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "configure" + (("\\(gi._overridesdir\\)") + (string-append "((gi._overridesdir).replace(\\\"" + (assoc-ref inputs "python-pygobject") + "\\\", \\\"" + (assoc-ref outputs "out") + "\\\"))"))) + #t))))) + (synopsis "Canvas widget for GTK+") + (description "GooCanvas is a canvas widget for GTK+ that uses the cairo 2D +library for drawing.") + (home-page "https://wiki.gnome.org/GooCanvas") + (license license:lgpl2.0))) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index f0f976c3d2..f5aa4c11b4 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2590,7 +2590,7 @@ list of components. This module takes care of that for you.") (setenv "DISPLAY" ":1") #t))))) (native-inputs - `(("gettext" ,gnu-gettext) + `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ; for glib-compile-resources ("libtool" ,libtool) ("pkg-config" ,pkg-config) @@ -2670,7 +2670,7 @@ more expressive and flexible than the traditional @code{format} procedure.") ("automake" ,automake) ("bzip2" ,bzip2) ("guile" ,guile-2.2) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("libtool" ,libtool) ("perl" ,perl) ("pkg-config" ,pkg-config) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index d957b3ee7b..a665c05568 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016, 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com> @@ -419,40 +419,50 @@ GNU@tie{}Guile. Use the @code{(ice-9 readline)} module and call its (define-deprecated-guile3.0-package guile3.0-readline) (define-public guile-for-guile-emacs - (package (inherit guile-2.2) - (name "guile-for-guile-emacs") - (version "20150510.d8d9a8d") - (source (origin - (method git-fetch) - (uri (git-reference - (url "git://git.hcoop.net/git/bpt/guile.git") - (commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17"))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0")))) - (arguments - `(;; Tests aren't passing for now. - ;; Obviously we should re-enable this! - #:tests? #f - ,@(package-arguments guile-2.2))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("flex" ,flex) - ("texinfo" ,texinfo) - ("gettext" ,gettext-minimal) - ,@(package-native-inputs guile-2.2))) - ;; Same as in guile-2.0 - (native-search-paths - (list (search-path-specification - (variable "GUILE_LOAD_PATH") - (files '("share/guile/site/2.0"))) - (search-path-specification - (variable "GUILE_LOAD_COMPILED_PATH") - (files '("lib/guile/2.0/site-ccache" - "share/guile/site/2.0"))))))) + (let ((commit "15ca78482ac0dd2e3eb36dcb31765d8652d7106d") + (revision "1")) + (package (inherit guile-2.2) + (name "guile-for-guile-emacs") + (version (git-version "2.1.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.savannah.gnu.org/guile.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1l7ik4q4zk7vq4m3gnwizc0b64b1mdr31hxqlzxs94xaf2lvi7s2")))) + (arguments + (substitute-keyword-arguments (package-arguments guile-2.2) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (replace 'bootstrap + (lambda _ + ;; Disable broken tests. + ;; TODO: Fix them! + (substitute* "test-suite/tests/gc.test" + (("\\(pass-if \"after-gc-hook gets called\"" m) + (string-append "#;" m))) + (substitute* "test-suite/tests/version.test" + (("\\(pass-if \"version reporting works\"" m) + (string-append "#;" m))) + ;; Warning: Unwind-only `out-of-memory' exception; skipping pre-unwind handler. + ;; FAIL: test-out-of-memory + (substitute* "test-suite/standalone/Makefile.am" + (("(check_SCRIPTS|TESTS) \\+= test-out-of-memory") "")) + + (patch-shebang "build-aux/git-version-gen") + (invoke "sh" "autogen.sh") + #t)))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("flex" ,flex) + ("texinfo" ,texinfo) + ("gettext" ,gettext-minimal) + ,@(package-native-inputs guile-2.2)))))) ;;; diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index 6ab962100e..c6821daf00 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -341,14 +341,14 @@ to @code{cabal repl}).") (define-public git-annex (package (name "git-annex") - (version "8.20200309") + (version "8.20200330") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" "git-annex/git-annex-" version ".tar.gz")) (sha256 - (base32 "1yjb01jh5rccqg44nqh4iyxmbpkcpm6m82lnw7s0s2vizj8891p5")))) + (base32 "0xy0ld7kr4cfdl4g4yzvrzl5r60dcj33cxm28a4qz6nqm2yhd4sv")))) (build-system haskell-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index b2a53b5f41..f94d4fa5a7 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> -;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> @@ -263,17 +263,22 @@ Hurd-minimal package which are needed for both glibc and GCC.") (inherit gnumach-headers) (name "gnumach") (arguments - `(#:phases (modify-phases %standard-phases - (add-after 'install 'produce-image - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (boot (string-append out "/boot"))) - (invoke "make" "gnumach.gz") - (install-file "gnumach.gz" boot) - #t)))))) + (substitute-keyword-arguments (package-arguments gnumach-headers) + ((#:phases phases '%standard-phases) + `(modify-phases %standard-phases + (add-after 'install 'produce-image + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (boot (string-append out "/boot"))) + (invoke "make" "gnumach.gz") + (install-file "gnumach.gz" boot) + #t))))))) (native-inputs `(("mig" ,mig) - ("perl" ,perl))) + ("perl" ,perl) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("texinfo" ,texinfo-4))) (supported-systems (cons "i686-linux" %hurd-systems)) (synopsis "Microkernel of the GNU system") (description diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index cdaf8e86e2..801dc70149 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2018 Lprndn <guix@lprndn.info> ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -798,11 +799,11 @@ combine the information contained in both.") ("vtk" ,vtk-6) ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative) - ("qttools" ,qttools) ("vxl" ,vxl-1) ("zlib" ,zlib))) (native-inputs `(("googletest" ,googletest) + ("qttools" ,qttools) ("pkg-config" ,pkg-config) ("c3d-src" ,(let* ((commit "f521358db26e00002c911cc47bf463b043942ad3") diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 5587bad675..5b037012d9 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2020 Peng Mei Yu <pengmeiyu@riseup.net> +;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> ;;; ;;; This file is part of GNU Guix. ;;; @@ -595,3 +596,60 @@ with tiling window managers. Features include: @end itemize\n") (home-page "https://github.com/eXeC64/imv") (license license:expat))) + +(define-public qiv + (package + (name "qiv") + (version "2.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://spiegl.de/qiv/download/qiv-" + version ".tgz")) + (sha256 + (base32 "1rlf5h67vhj7n1y7jqkm9k115nfnzpwngj3kzqsi2lg676srclv7")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ;; That is required for testing. + ("xorg-server" ,xorg-server-for-tests))) + (inputs + `(("imlib2" ,imlib2) + ("glib" ,glib) + ("gtk+" ,gtk+-2) + ("lcms" ,lcms) + ("libjpeg" ,libjpeg-turbo) + ("libtiff" ,libtiff) + ("libexif" ,libexif) + ("libx11" ,libx11) + ("libxext" ,libxext))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-before 'install 'patch-file-start-xserver + (lambda* (#:key inputs #:allow-other-keys) + ;; patch the file so that qiv runs and exits by itself + (substitute* "Makefile" + (("./qiv -f ./intro.jpg") "./qiv -f -C -s ./intro.jpg") + ;; Fail the build when test fails. + (("echo \"-- Test Failed --\"") + "(echo \"-- Test Failed --\" ; false)")) + ;; There must be a running X server and make install doesn't start one. + ;; Therefore we must do it. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + #t))) + #:tests? #f ; there is no check target + #:make-flags + (list + (string-append "PREFIX=" (assoc-ref %outputs "out"))))) + (home-page "http://spiegl.de/qiv/") + (synopsis "Graphical image viewer for X") + (description + "Quick Image Viewer is a small and fast GDK/Imlib2 image viewer. +Features include zoom, maxpect, scale down, fullscreen, slideshow, delete, +brightness/contrast/gamma correction, pan with keyboard and mouse, flip, +rotate left/right, jump/forward/backward images, filename filter and use it +to set X desktop background.") + (license license:gpl2))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 9974208229..0ae88ea1a4 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> +;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +46,7 @@ #:use-module (gnu packages algebra) #:use-module (gnu packages assembly) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages cmake) @@ -1629,7 +1631,7 @@ medical image data, e.g. magnetic resonance image (MRI) and functional MRI (build-system scons-build-system) (native-inputs `(("boost" ,boost) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) (inputs `(("expat" ,expat) @@ -1970,7 +1972,7 @@ This package can be used to create @code{favicon.ico} files for web sites.") (define-public libavif (package (name "libavif") - (version "0.5.6") + (version "0.6.3") (source (origin (method git-fetch) (uri (git-reference @@ -1979,7 +1981,7 @@ This package can be used to create @code{favicon.ico} files for web sites.") (file-name (git-file-name name version)) (sha256 (base32 - "15g76j9vb88q1v3azscph8im8714zdl70bni0al4ww9v80vhqpkd")))) + "0fn2mcpvzw6h9sv8h0icbz10i8ihzzf5d5mx3fc4pvhicyz4syq8")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DAVIF_CODEC_AOM=ON" "-DAVIF_CODEC_DAV1D=ON" @@ -2009,3 +2011,56 @@ AOM, including with alpha.") (home-page "https://github.com/AOMediaCodec/libavif") (license (list license:bsd-2 ; libavif itself license:expat)))) ; cJSON in the test suite + +(define-public mtpaint + (let ((commit "03b1b0938067b88d86d9f1b1088730f1934d411e") + (revision "1")) + (package + (name "mtpaint") + ;; The author neither releases tarballs nor uses git version tags. + ;; Instead, author puts version in git commit title. + (version (git-version "3.49.25" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wjaguar/mtPaint/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0izm2wvj26566fd8mqvypr7bmv7jnq8qhp4760m7z2wrc4y8pjn1")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("imlib2" ,imlib2) + ("libtiff" ,libtiff) + ("libpng" ,libpng) + ("libungif", libungif) + ("libjpeg", libjpeg-turbo) + ("libwebp" ,libwebp) + ("openjpeg" ,openjpeg) + ("lcms" ,lcms) + ("zlib", zlib) + ("glib" ,glib) + ;; support for gtk3 is in testing stage + ("gtk+" ,gtk+-2))) + (arguments + `(#:configure-flags + (list + ;; internationalized version + "intl" + ;; install man page + "man") + ;; no check target + #:tests? #f)) + (home-page "http://mtpaint.sourceforge.net/") + (synopsis "Create pixel art and manipulate digital images") + (description + "Mtpaint is a graphic editing program which uses the GTK+ toolkit. +It can create and edit indexed palette or 24bit RGB images, offers basic +painting and palette manipulation tools. It also handles JPEG, JPEG2000, +GIF, TIFF, WEBP, BMP, PNG, XPM formats.") + (license license:gpl3+)))) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 1d910e17d1..c52140ba9e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -12,6 +12,8 @@ ;;; Copyright © 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -106,6 +108,44 @@ ;; build framework. We then build the more recent JDKs Icedtea 2.x and ;; Icedtea 3.x. +(define-public libantlr3c + (package + (name "libantlr3c") + (version "3.4") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.antlr3.org/download/C/" + name "-" version ".tar.gz")) + (sha256 + (base32 "0lpbnb4dq4azmsvlhp6khq1gy42kyqyjv8gww74g5lm2y6blm4fa")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list "--enable-debuginfo" "--disable-static") + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key build target native-inputs inputs outputs + (configure-flags '()) out-of-source? system + #:allow-other-keys) + (let ((configure (assoc-ref %standard-phases 'configure)) + (enable-64bit? (member system '("aarch64-linux" + "x86_64-linux" + "mips64el-linux")))) + (configure #:build build #:target target + #:native-inputs native-inputs + #:inputs inputs #:outputs outputs + #:configure-flags `(,(if enable-64bit? + "--enable-64bit" + '()) + ,@configure-flags) + #:out-of-source? out-of-source?))))))) + (synopsis "ANTLR C Library") + (description "LIBANTLR3C provides run-time C libraries for ANTLR3 (ANother +Tool for Language Recognition v3).") + (home-page "https://www.antlr3.org/") + (license license:bsd-3))) + (define jikes (package (name "jikes") @@ -7167,7 +7207,7 @@ tree walking, and translation.") (inputs `(("junit" ,java-junit))))) -(define antlr3-3.3 +(define-public antlr3-3.3 (package (inherit antlr3) (name "antlr3") diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index 65a5e42beb..6dd53b9283 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (gnu packages algebra) #:use-module (gnu packages base) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages elf) #:use-module (gnu packages gcc) #:use-module (gnu packages llvm) @@ -41,29 +43,30 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages textutils) + #:use-module (gnu packages ssh) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages wget) #:use-module (ice-9 match)) (define libuv-julia - (let ((commit "26dbe5672c33fc885462c509fe2a9b36f35866fd") - (revision "6")) - ;; When upgrading Julia, also upgrade this. - ;; Get the commit from https://github.com/JuliaLang/julia/blob/v1.1.1/deps/libuv.version + (let ((commit "35b1504507a7a4168caae3d78db54d1121b121e1") + (revision "1")) + ;; When upgrading Julia, also upgrade this. Get the commit from + ;; https://github.com/JuliaLang/julia/blob/v1.3.1/deps/libuv.version (package (inherit libuv) (name "libuv-julia") - (version (string-append "1.9.0-" revision "." (string-take commit 8))) + (version (git-version "2.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/JuliaLang/libuv.git") - (commit commit))) + (url "https://github.com/JuliaLang/libuv.git") + (commit commit))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "17pn2xmqaramilx897s9grs966i5246gi6sric5alch4g9j4685n")))) + "0dn3v6fdp1z382pqg3nhjzk60l61ky9b65mfgaj29fv2da95rwjs")))) (build-system gnu-build-system) (arguments (substitute-keyword-arguments (package-arguments libuv) @@ -72,93 +75,115 @@ (delete 'autogen))))) (home-page "https://github.com/JuliaLang/libuv")))) -(define (llvm-patch-url version name) +(define libunwind-julia + ;; The Julia projects requires their patched version. + ;; Get from https://github.com/JuliaLang/julia/tree/master/deps/patches + (package + (inherit libunwind) + (name "libunwind-julia") + (version "1.3.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://savannah/libunwind/libunwind-" + version ".tar.gz")) + (sha256 + (base32 + "1y0l08k6ak1mqbfj6accf9s5686kljwgsl4vcqpxzk5n74wpm6a3")) + (patches + (list + (julia-patch "libunwind-prefer-extbl" + "0lr4dafw8qyfh8sw8hhbwkql1dlhqv8px7k81y2l20hhxfgnh2m1") + (julia-patch "libunwind-static-arm" + "1jk3bmiw61ypcchqkk1fyg5wh8wpggk574wxyfyaic870zh3lhgq"))))) + (home-page "https://github.com/JuliaLang/tree/master/deps/"))) + +(define (julia-patch-url version name) (string-append "https://raw.githubusercontent.com/JuliaLang/julia/v" version - "/deps/patches/" name)) + "/deps/patches/" name)) -(define (llvm-patch name sha) - (let ((version "1.1.1")) +(define (julia-patch name sha) + (let ((version "1.3.1")) (origin (method url-fetch) - (uri (llvm-patch-url version name)) - (sha256 (base32 sha)) - (file-name name)))) + (uri (julia-patch-url version name)) + (sha256 (base32 sha)) + (file-name name)))) (define llvm-julia (package (inherit llvm-6) (name "llvm-julia") (source (origin - (method url-fetch) - (uri "http://releases.llvm.org/6.0.1/llvm-6.0.1.src.tar.xz") - (sha256 - (base32 - "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn")) + (inherit (package-source llvm-6)) ;; Those patches are inside the Julia source repo. ;; They are _not_ Julia specific (https://github.com/julialang/julia#llvm) ;; but they are required to build Julia. ;; Discussion: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919628 (patches - (list - (llvm-patch "llvm-6.0-D44650.patch" - "1336q4vqayr94wdcnlmcxh90mjdh34dzw9x2cbiqjnx9b1j8fxyb") - (llvm-patch "llvm-6.0-DISABLE_ABI_CHECKS.patch" - "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg") - (llvm-patch "llvm-6.0-NVPTX-addrspaces.patch" - "1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc") - (llvm-patch "llvm-6.0.0_D27296-libssp.patch" - "0s5hi2r1j63i8m6ig1346crx2aiv9f7rgb3mg80kw1wx5y7pdpfh") - (llvm-patch "llvm-D27629-AArch64-large_model_6.0.1.patch" - "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z") - (llvm-patch "llvm-D34078-vectorize-fdiv.patch" - "1696hg84a0jxcnggvqsc2cdp271hf9a44p4qsd078qm1mfawkaay") - (llvm-patch "llvm-D42262-jumpthreading-not-i1.patch" - "1c8w210gwidbnkkw8anp17dk5pnxws2fl3mb2qxh7y9wzfpixgaq") - (llvm-patch "llvm-D44892-Perf-integration.patch" - "0r37jd0ssh2k1pndkfd5blgpg9z90im4vlzprhb0n0wwz45g4b05") - (llvm-patch "llvm-D46460.patch" - "1miqgswdc0qvbaf4571c2xkxyp9ais06b1bcpa83sq22vr4hbsfb") - (llvm-patch "llvm-D49832-SCEVPred.patch" - "0v5c88hgqj6dymv3j86ca5mhpqab5fbnrvjiw1nvnrnya9l4dlbn") - (llvm-patch "llvm-D50010-VNCoercion-ni.patch" - "0iblb3q1xixwrb12jpb89h3ywmqmzdp6aqp416j4ncwakyjhhfkp") - (llvm-patch "llvm-D50167-scev-umin.patch" - "1f2rakcnnyhr7w10k7gqg0k0491pyvx5ijplivw557f714ys3q6v") - (llvm-patch "llvm-OProfile-line-num.patch" - "1jvbbmwyags0xfwamb13qrf3rgcz9i1r03m9lava7swag8xb78c7") - (llvm-patch "llvm-PPC-addrspaces.patch" - "1f23nhsxh2s3jskbgs7da9nwg3s1hrkbk5aahl08x41wi3mny01p") - (llvm-patch "llvm-rL323946-LSRTy.patch" - "10cz3vy1yw0w643z7xx021wa4kymx9fcm3bjg61s6vzdqd6d9fns") - (llvm-patch "llvm-rL326967-aligned-load.patch" - "04jxnv32yj5x17hqhi8g2p8rhgp38gmjzr871w7z8s44pq10v9v4") - (llvm-patch "llvm-rL327898.patch" - "15ah49gbsll23z28kpyahi5vl0fh3fkxcgd1zmxxdcl96s3x8bnq"))))) + (map (match-lambda + ((name hash) + (julia-patch name hash))) + (list + '("llvm-6.0-D44650" + "1336q4vqayr94wdcnlmcxh90mjdh34dzw9x2cbiqjnx9b1j8fxyb") + '("llvm-6.0-DISABLE_ABI_CHECKS" + "014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg") + '("llvm-6.0-NVPTX-addrspaces" + "1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc") + '("llvm-6.0.0_D27296-libssp" + "0s5hi2r1j63i8m6ig1346crx2aiv9f7rgb3mg80kw1wx5y7pdpfh") + '("llvm-D27629-AArch64-large_model_6.0.1" + "1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z") + '("llvm-D34078-vectorize-fdiv" + "1696hg84a0jxcnggvqsc2cdp271hf9a44p4qsd078qm1mfawkaay") + '("llvm-D42262-jumpthreading-not-i1" + "1c8w210gwidbnkkw8anp17dk5pnxws2fl3mb2qxh7y9wzfpixgaq") + '("llvm-D44892-Perf-integration" + "0r37jd0ssh2k1pndkfd5blgpg9z90im4vlzprhb0n0wwz45g4b05") + '("llvm-D46460" + "1miqgswdc0qvbaf4571c2xkxyp9ais06b1bcpa83sq22vr4hbsfb") + '("llvm-D49832-SCEVPred" + "0v5c88hgqj6dymv3j86ca5mhpqab5fbnrvjiw1nvnrnya9l4dlbn") + '("llvm-D50010-VNCoercion-ni" + "0iblb3q1xixwrb12jpb89h3ywmqmzdp6aqp416j4ncwakyjhhfkp") + '("llvm-D50167-scev-umin" + "1f2rakcnnyhr7w10k7gqg0k0491pyvx5ijplivw557f714ys3q6v") + '("llvm-OProfile-line-num" + "1jvbbmwyags0xfwamb13qrf3rgcz9i1r03m9lava7swag8xb78c7") + '("llvm-PPC-addrspaces" + "1f23nhsxh2s3jskbgs7da9nwg3s1hrkbk5aahl08x41wi3mny01p") + '("llvm-rL323946-LSRTy" + "10cz3vy1yw0w643z7xx021wa4kymx9fcm3bjg61s6vzdqd6d9fns") + '("llvm-rL326967-aligned-load" + "04jxnv32yj5x17hqhi8g2p8rhgp38gmjzr871w7z8s44pq10v9v4") + '("llvm-rL327898" + "15ah49gbsll23z28kpyahi5vl0fh3fkxcgd1zmxxdcl96s3x8bnq")))))) (arguments (substitute-keyword-arguments (package-arguments llvm-6) ((#:configure-flags flags) `(list ;; Taken from NixOS. Only way I could get libLLVM-6.0.so - "-DCMAKE_BUILD_TYPE=Release" + "-DCMAKE_BUILD_TYPE=Release" - ;; Build a native compiler and the NVPTX backend (NVIDIA) since - ;; Julia insists on it, nothing more. This reduces build times and - ;; disk usage. - ,(string-append "-DLLVM_TARGETS_TO_BUILD=" (system->llvm-target)) - "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX" + ;; Build a native compiler and the NVPTX backend (NVIDIA) since + ;; Julia insists on it, nothing more. This reduces build times and + ;; disk usage. + ,(string-append "-DLLVM_TARGETS_TO_BUILD=" (system->llvm-target)) + "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=NVPTX" - "-DLLVM_INSTALL_UTILS=ON" - "-DLLVM_BUILD_TESTS=ON" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_ENABLE_RTTI=ON" - ;; "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - ;; "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly" - "-DLLVM_ENABLE_DUMP=ON" - "-DLLVM_LINK_LLVM_DYLIB=ON")))))) + "-DLLVM_INSTALL_UTILS=ON" + "-DLLVM_BUILD_TESTS=ON" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_ENABLE_RTTI=ON" + ;; "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + ;; "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + ;; "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly" + "-DLLVM_ENABLE_DUMP=ON" + "-DLLVM_LINK_LLVM_DYLIB=ON")))))) (define-public julia (package (name "julia") - (version "1.1.1") + (version "1.3.1") (source (origin (method url-fetch) (uri (string-append @@ -166,7 +191,9 @@ version "/julia-" version ".tar.gz")) (sha256 (base32 - "0hk983mywimclgnjc41zmlppm5kfdz2aj85ky07p49ilcqxi998f")))) + "1nwkmr9j55g1zkxdchnid1h022s0is52vx23niksshgvh793g41x")) + (patches + (search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -188,32 +215,27 @@ (add-after 'unpack 'prepare-deps (lambda* (#:key inputs #:allow-other-keys) (mkdir "deps/srccache") - (copy-file (assoc-ref inputs "dsfmt") - "deps/srccache/dsfmt-2.2.3.tar.gz") + ;; no USE_SYSTEM_{OBJCONV/LIBWHICH} option (copy-file (assoc-ref inputs "objconv") "deps/srccache/objconv.zip") - (copy-file (assoc-ref inputs "suitesparse") - "deps/srccache/SuiteSparse-4.4.5.tar.gz") - (copy-file (string-append (assoc-ref inputs "virtualenv") - "/bin/virtualenv") - "julia-env") (copy-file (assoc-ref inputs "libwhich") (string-append "deps/srccache/libwhich-" "81e9723c0273d78493dc8c8ed570f68d9ce7e89e" ".tar.gz")) - (copy-file (assoc-ref inputs "rmath") - "deps/srccache/Rmath-julia-0.1.tar.gz") - ;; needed by libwhich - (setenv "LD_LIBRARY_PATH" - (string-join (map (lambda (pkg) + ;; needed by libwhich + (setenv "LD_LIBRARY_PATH" + (string-join (map (lambda (pkg) (string-append (assoc-ref inputs pkg) "/lib")) - '("arpack-ng" "fftw" "gmp" "lapack" - "libgit2" "mpfr" "openblas" "openlibm" - "openspecfun" "pcre2")) + '("arpack-ng" "curl" "dsfmt" + "gmp" "lapack" + "libssh2" "libgit2" + "mbedtls" "mpfr" + "openblas" "openlibm" "pcre2" + "suitesparse")) ":")) - #t)) + #t)) ;; FIXME: Building the documentation requires Julia packages that ;; would be downloaded from the Internet. We should build them in a ;; separate build phase. @@ -229,172 +251,152 @@ ;; Some tests require a home directory to be set. (lambda _ (setenv "HOME" "/tmp") #t)) (add-after 'unpack 'hardcode-soname-map - ;; ./src/runtime_ccall.cpp creates a map from library names to paths - ;; using the output of "/sbin/ldconfig -p". Since ldconfig is not - ;; used in Guix, we patch runtime_ccall.cpp to contain a static map. - (lambda* (#:key inputs #:allow-other-keys) - (use-modules (ice-9 match)) - (substitute* "src/runtime_ccall.cpp" - ;; Patch out invocations of '/sbin/ldconfig' to avoid getting - ;; error messages about missing '/sbin/ldconfig' on Guix System. - (("popen\\(.*ldconfig.*\\);") - "NULL;\n") - - ;; Populate 'sonameMap'. - (("jl_read_sonames.*;") - (string-join - (map (match-lambda - ((input libname soname) - (string-append - "sonameMap[\"" libname "\"] = " - "\"" (assoc-ref inputs input) "/lib/" soname "\";"))) - '(("libc" "libc" "libc.so.6") - ("pcre2" "libpcre2-8" "libpcre2-8.so") - ("mpfr" "libmpfr" "libmpfr.so") - ("openblas" "libblas" "libopenblas.so") - ("arpack-ng" "libarpack" "libarpack.so") - ("lapack" "liblapack" "liblapack.so") - ("libgit2" "libgit2" "libgit2.so") - ("gmp" "libgmp" "libgmp.so") - ("openspecfun" "libopenspecfun" "libopenspecfun.so") - ("fftw" "libfftw3" "libfftw3_threads.so") - ("fftwf" "libfftw3f" "libfftw3f_threads.so")))))) - (substitute* "base/math.jl" - (("const libm = Base.libm_name") - (string-append "const libm = \"" - (assoc-ref inputs "openlibm") - "/lib/libopenlibm.so" - "\"")) - (("const openspecfun = \"libopenspecfun\"") - (string-append "const openspecfun = \"" - (assoc-ref inputs "openspecfun") - "/lib/libopenspecfun.so" - "\""))) - #t)) + ;; ./src/runtime_ccall.cpp creates a map from library names to paths + ;; using the output of "/sbin/ldconfig -p". Since ldconfig is not + ;; used in Guix, we patch runtime_ccall.cpp to contain a static map. + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "base/math.jl" + (("const libm = Base.libm_name") + (string-append "const libm = \"" + (assoc-ref inputs "openlibm") + "/lib/libopenlibm.so" + "\""))) + #t)) (add-before 'build 'fix-include-and-link-paths - (lambda* (#:key inputs #:allow-other-keys) - ;; LIBUTF8PROC is a linker flag, not a build target. It is - ;; included in the LIBFILES_* variable which is used as a - ;; collection of build targets and a list of libraries to link - ;; against. - (substitute* "src/flisp/Makefile" - (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)") - "$(BUILDDIR)/$(EXENAME): $(OBJS) $(LLT_release)") - (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug: \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)") - "$(BUILDDIR)/$(EXENAME)-debug: $(DOBJS) $(LLT_debug)")) + (lambda* (#:key inputs #:allow-other-keys) + ;; LIBUTF8PROC is a linker flag, not a build target. It is + ;; included in the LIBFILES_* variable which is used as a + ;; collection of build targets and a list of libraries to link + ;; against. + (substitute* "src/flisp/Makefile" + (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)\\$\\(EXE\\): \\$\\(OBJS\\) \\$\\(LIBFILES_release\\)") + "$(BUILDDIR)/$(EXENAME)$(EXE): $(OBJS) $(LLT_release)") + (("\\$\\(BUILDDIR\\)/\\$\\(EXENAME\\)-debug$(EXE): \\$\\(DOBJS\\) \\$\\(LIBFILES_debug\\)") + "$(BUILDDIR)/$(EXENAME)-debug\\$\\(EXE\\): $(DOBJS) $(LLT_debug)")) - ;; The REPL must be linked with libuv. - (substitute* "ui/Makefile" - (("JLDFLAGS \\+= ") - (string-append "JLDFLAGS += " - (assoc-ref %build-inputs "libuv") - "/lib/libuv.so "))) + ;; The REPL must be linked with libuv. + (substitute* "ui/Makefile" + (("JLDFLAGS \\+= ") + (string-append "JLDFLAGS += " + (assoc-ref %build-inputs "libuv") + "/lib/libuv.so "))) - (substitute* "base/Makefile" - (("\\$\\(build_includedir\\)/uv/errno.h") - (string-append (assoc-ref inputs "libuv") - "/include/uv/errno.h"))) - #t)) + (substitute* "base/Makefile" + (("\\$\\(build_includedir\\)/uv/errno.h") + (string-append (assoc-ref inputs "libuv") + "/include/uv/errno.h"))) + #t)) (add-before 'build 'replace-default-shell - (lambda _ - (substitute* "base/client.jl" - (("/bin/sh") (which "sh"))) - #t)) - (add-after 'unpack 'hardcode-paths (lambda _ - (substitute* "stdlib/InteractiveUtils/src/InteractiveUtils.jl" - (("`which") (string-append "`" (which "which"))) - (("`wget") (string-append "`" (which "wget")))) + (substitute* "base/client.jl" + (("/bin/sh") (which "sh"))) + #t)) + (add-before 'build 'fix-precompile + (lambda _ + (substitute* "base/loading.jl" + (("something(Base.active_project(), \"\")") "\"\"")) #t)) (add-before 'check 'disable-broken-tests (lambda _ - (define (touch file-name) - (call-with-output-file file-name (const #t))) - ;; FIXME: All git tests works except this one. But *THIS* "fix" - ;; is not working, so right now I'm disabling all libgit2.jl tests - ;; (substitute* "stdlib/LibGit2/test/libgit2.jl" - ;; (("!LibGit2.use_http_path(cfg, github_cred)") "true") - ;; (("LibGit2.use_http_path(cfg, mygit_cred)") "true")) - (map (lambda (test) - (delete-file test) - (touch test)) - '("stdlib/Sockets/test/runtests.jl" - "stdlib/Distributed/test/runtests.jl" - ;; FIXME: see above - "stdlib/LibGit2/test/libgit2.jl")) - (substitute* "test/choosetests.jl" - ;; These tests fail, probably because some of the input - ;; binaries have been stripped and thus backtraces don't look - ;; as expected. - (("\"backtrace\",") "") - (("\"cmdlineargs\",") "")) - #t))) + (substitute* "test/choosetests.jl" + (("tests = testnames") + ;; Those failings are not deterministic. They depends on the + ;; running order. I think it depends on the number of + ;; runners, disabling it for now + ;; https://github.com/JuliaLang/julia/issues/34330 + "tests = filter(e->!in(e,[\"backtrace\",\"exceptions\", + \"stress\",\"precompile\", + \"client\",\"stacktraces\"]), + testnames)")) + ;; When HOME is not set, julia calls uv_os_homedir, which in + ;; turns call getpwuid_r. Add the HOME env variable to the + ;; external julia call to fix this + (substitute* "test/cmdlineargs.jl" + (("\"JULIA_PROJECT\"") "\"HOME\"=>\"/tmp\", \"JULIA_PROJECT\"")) + ;; Marking the test as broken as it's a known bug: + ;; https://github.com/JuliaLang/julia/issues/32377 + (substitute* "stdlib/REPL/test/replcompletions.jl" + (("@test count") "@test_broken count")) + #t)) + (add-after 'install 'make-wrapper + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (program "julia")) + (with-directory-excursion bin + (wrap-program program + `("JULIA_LOAD_PATH" ":" prefix + ("" "$JULIA_LOAD_PATH"))) + (wrap-program program + `("JULIA_DEPOT_PATH" ":" prefix + ("" "$JULIA_DEPOT_PATH")))) + #t)))) #:make-flags (list - (string-append "prefix=" (assoc-ref %outputs "out")) - (string-append "PREFIX=" (assoc-ref %outputs "out")) - - ;; Passing the MARCH flag is necessary to build binary substitutes for - ;; the supported architectures. - ,(match (or (%current-target-system) - (%current-system)) - ("x86_64-linux" "MARCH=x86-64") - ("i686-linux" "MARCH=pentium4") - ("aarch64-linux" "MARCH=armv8-a") - ;; Prevent errors when querying this package on unsupported - ;; platforms, e.g. when running "guix package --search=" - (_ "MARCH=UNSUPPORTED")) - - "CONFIG_SHELL=bash" ;needed to build bundled libraries - "USE_SYSTEM_DSFMT=0" ;not packaged for Guix and upstream has no - ;build system for a shared library. - "USE_SYSTEM_LAPACK=1" - "USE_SYSTEM_BLAS=1" - "USE_BLAS64=0" ;needed when USE_SYSTEM_BLAS=1 - "LIBBLAS=-lopenblas" - "LIBBLASNAME=libopenblas" + (string-append "prefix=" (assoc-ref %outputs "out")) + (string-append "PREFIX=" (assoc-ref %outputs "out")) - "USE_SYSTEM_FFTW=1" - "LIBFFTWNAME=libfftw3" - "LIBFFTWFNAME=libfftw3f" + ;; Passing the MARCH flag is necessary to build binary substitutes for + ;; the supported architectures. + ,(match (or (%current-target-system) + (%current-system)) + ("x86_64-linux" "MARCH=x86-64") + ("i686-linux" "MARCH=pentium4") + ("aarch64-linux" "MARCH=armv8-a") + ;; Prevent errors when querying this package on unsupported + ;; platforms, e.g. when running "guix package --search=" + (_ "MARCH=UNSUPPORTED")) - ;; TODO: Suitesparse does not install shared libraries, so we cannot - ;; use the suitesparse package. - ;; "USE_SYSTEM_SUITESPARSE=1" - ;; (string-append "SUITESPARSE_INC=-I " - ;; (assoc-ref %build-inputs "suitesparse") - ;; "/include") + "CONFIG_SHELL=bash" ;needed to build bundled libraries + ;; list of "USE_SYSTEM_*" is here: + ;; https://github.com/JuliaLang/julia/blob/v1.3.1/Make.inc + "USE_SYSTEM_DSFMT=1" + "USE_SYSTEM_P7ZIP=1" + "USE_SYSTEM_LAPACK=1" + "USE_SYSTEM_BLAS=1" + "USE_BLAS64=0" ;needed when USE_SYSTEM_BLAS=1 + "LIBBLAS=-lopenblas" + "LIBBLASNAME=libopenblas" - "USE_GPL_LIBS=1" ;proudly - "USE_SYSTEM_UTF8PROC=1" - (string-append "UTF8PROC_INC=" - (assoc-ref %build-inputs "utf8proc") - "/include") - "USE_SYSTEM_LLVM=1" - "LLVM_VER=6.0.1" + "USE_SYSTEM_SUITESPARSE=1" + (string-append "SUITESPARSE_INC=-I " + (assoc-ref %build-inputs "suitesparse") + "/include") + "USE_GPL_LIBS=1" ;proudly + "USE_SYSTEM_UTF8PROC=1" + (string-append "UTF8PROC_INC=" + (assoc-ref %build-inputs "utf8proc") + "/include") + "USE_SYSTEM_LLVM=1" + "LLVM_VER=6.0.1" - "USE_LLVM_SHLIB=1" - "USE_SYSTEM_LIBUNWIND=1" - "USE_SYSTEM_LIBUV=1" - (string-append "LIBUV=" - (assoc-ref %build-inputs "libuv") - "/lib/libuv.so") - (string-append "LIBUV_INC=" - (assoc-ref %build-inputs "libuv") - "/include") - "USE_SYSTEM_PATCHELF=1" - "USE_SYSTEM_PCRE=1" - "USE_SYSTEM_OPENLIBM=1" + "USE_LLVM_SHLIB=1" + "USE_SYSTEM_LIBUNWIND=1" + "USE_SYSTEM_LIBUV=1" + (string-append "LIBUV=" + (assoc-ref %build-inputs "libuv") + "/lib/libuv.so") + (string-append "LIBUV_INC=" + (assoc-ref %build-inputs "libuv") + "/include") + "USE_SYSTEM_PATCHELF=1" + "USE_SYSTEM_PCRE=1" + "USE_SYSTEM_OPENLIBM=1" - "USE_SYSTEM_GMP=1" - "USE_SYSTEM_MPFR=1" - "USE_SYSTEM_ARPACK=1" - "USE_SYSTEM_LIBGIT2=1" - "USE_SYSTEM_ZLIB=1" - "USE_SYSTEM_OPENSPECFUN=1"))) + "USE_SYSTEM_GMP=1" + "USE_SYSTEM_MPFR=1" + "USE_SYSTEM_ARPACK=1" + "USE_SYSTEM_LIBGIT2=1" + (string-append "LIBUV=" + (assoc-ref %build-inputs "libuv") + "/lib/libuv.so") + (string-append "LIBUV_INC=" + (assoc-ref %build-inputs "libuv") + "/include") + "USE_SYSTEM_ZLIB=1"))) (inputs `(("llvm" ,llvm-julia) - + ("p7zip" ,p7zip) ;; The bundled version is 3.3.0 so stick to that version. With other ;; versions, we get test failures in 'linalg/arnoldi' as described in ;; <https://bugs.gnu.org/30282>. @@ -403,12 +405,12 @@ ("coreutils" ,coreutils) ;for bindings to "mkdir" and the like ("lapack" ,lapack) ("openblas" ,openblas) ;Julia does not build with Atlas - ("libunwind" ,libunwind) + ("libunwind" ,libunwind-julia) ("openlibm" ,openlibm) - ("openspecfun" ,openspecfun) + ("mbedtls" ,mbedtls-apache) + ("curl" ,curl) ("libgit2" ,libgit2) - ("fftw" ,fftw) - ("fftwf" ,fftwf) + ("libssh2" ,libssh2) ("fortran" ,gfortran) ("libuv" ,libuv-julia) ("pcre2" ,pcre2) @@ -418,31 +420,9 @@ ("which" ,which) ("zlib" ,zlib) ("gmp" ,gmp) - ("virtualenv" ,python2-virtualenv) - ;; FIXME: The following inputs are downloaded from upstream to allow us - ;; to use the lightweight Julia release tarball. Ideally, these inputs - ;; would eventually be replaced with proper Guix packages. - - ;; TODO: run "make -f contrib/repackage_system_suitesparse4.make" to copy static lib - ;; Find dependency versions here: - ;; https://raw.githubusercontent.com/JuliaLang/julia/77a2c1e245c85812dc1c7687540beedecc52758f/deps/Versions.make - ("rmath" - ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/JuliaLang/Rmath-julia") - (commit "v0.1"))) - (file-name "rmath-julia-0.1-checkout") - (sha256 - (base32 - "1zkpy0cg5zivq40zbhbdgj9128fqzs2j94wkwih8nc6xaj3gp9p6")))) - ("suitesparse" - ,(origin - (method url-fetch) - (uri "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.5.tar.gz") - (sha256 - (base32 - "1jcbxb8jx5wlcixzf6n5dca2rcfx6mlcms1k2rl5gp67ay3bix43")))) + ("suitesparse" ,suitesparse) + ;; Find dependencies versions here: + ;; https://raw.githubusercontent.com/JuliaLang/julia/v1.3.0/deps/Versions.make ("objconv" ,(origin (method url-fetch) @@ -453,29 +433,21 @@ (base32 "0wp6ld9vk11f4nnkn56627zmlv9k5vafi99qa3yyn1pgcd61zcfs")))) ("libwhich" - ,(let ((commit "81e9723c0273d78493dc8c8ed570f68d9ce7e89e")) + ,(let ((commit "81e9723c0273d78493dc8c8ed570f68d9ce7e89e")) (origin ;; Note: We use a /tarball URL, but that's because Julia's build ;; system checks the hash of that tarball; thus we can't use ;; 'git-fetch'. - (method url-fetch) - (uri (string-append - "https://api.github.com/repos/vtjnash/libwhich/tarball/" - commit)) + (method url-fetch) + (uri (string-append + "https://api.github.com/repos/vtjnash/libwhich/tarball/" + commit)) (file-name (string-append "libwhich-" (string-take commit 7) ".tar.gz")) - (sha256 - (base32 - "1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b"))))) - ("dsfmt" - ,(origin - (method url-fetch) - (uri (string-append - "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/" - "SFMT/dSFMT-src-2.2.3.tar.gz")) - (sha256 - (base32 - "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42")))))) + (sha256 + (base32 + "1p7zg31kpmpbmh1znrk1xrbd074agx13b9q4dcw8n2zrwwdlbz3b"))))) + ("dsfmt" ,dsfmt))) (native-inputs `(("openssl" ,openssl) ("perl" ,perl) @@ -483,9 +455,12 @@ ("pkg-config" ,pkg-config) ("python" ,python-2))) (native-search-paths - (list (search-path-specification - (variable "JULIA_LOAD_PATH") - (files (list "share/julia/packages/"))))) + (list (search-path-specification + (variable "JULIA_LOAD_PATH") + (files (list "share/julia/packages/"))) + (search-path-specification + (variable "JULIA_DEPOT_PATH") + (files (list "share/julia/"))))) ;; Julia is not officially released for ARM and MIPS. ;; See https://github.com/JuliaLang/julia/issues/10639 (supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux")) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 5815fde8f0..e220b2c24d 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -957,10 +958,10 @@ to flat and hierarchical lists.") "11kpq34j37c1gsvj5nxhkc31bw8gw2n7nkqsfx87jw9f4v2vhmr9")))) (build-system qt-build-system) (native-inputs - `(("extra-cmake-modules" ,extra-cmake-modules))) - (inputs - `(("qtbase" ,qtbase) + `(("extra-cmake-modules" ,extra-cmake-modules) ("qttools" ,qttools))) + (inputs + `(("qtbase" ,qtbase))) (home-page "https://community.kde.org/Frameworks") (synopsis "Data plotting library") (description "KPlotWidget is a QWidget-derived class that provides a virtual @@ -2448,7 +2449,8 @@ with su and ssh respectively.") "1s3bmn1ck7xvc7a6gv7ywv9161hdahiiw20aq88s4qkm2s5wyy6v")))) (build-system cmake-build-system) (native-inputs - `(("extra-cmake-modules" ,extra-cmake-modules))) + `(("extra-cmake-modules" ,extra-cmake-modules) + ("qttools" ,qttools))) (inputs `(("kconfig" ,kconfig) ("kcoreaddons" ,kcoreaddons) @@ -2458,7 +2460,6 @@ with su and ssh respectively.") ("kservice" ,kservice) ("kwallet" ,kwallet) ("qtbase" ,qtbase) - ("qttools" ,qttools) ("qtwebkit" ,qtwebkit))) (home-page "https://community.kde.org/Frameworks") (synopsis "KDE Integration for QtWebKit") @@ -2558,6 +2559,7 @@ window does not need focus for them to be activated.") (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) + ("qttools" ,qttools) ("shared-mime-info" ,shared-mime-info))) (inputs `(("karchive" ,karchive) @@ -2570,8 +2572,7 @@ window does not need focus for them to be activated.") ("kitemviews" ,kitemviews) ("kwidgetsaddons" ,kwidgetsaddons) ("qtbase" ,qtbase) - ("qtsvg" ,qtsvg) - ("qttools" ,qttools))) + ("qtsvg" ,qtsvg))) (arguments `(#:phases (modify-phases %standard-phases @@ -2686,6 +2687,7 @@ consumption.") ("solid" ,solid))) (native-inputs `(("dbus" ,dbus) + ("qttools" ,qttools) ("extra-cmake-modules" ,extra-cmake-modules))) (inputs `(;; TODO: LibACL , <ftp://oss.sgi.com/projects/xfs/cmd_tars> @@ -2708,7 +2710,6 @@ consumption.") ("libxslt" ,libxslt) ("qtbase" ,qtbase) ("qtscript" ,qtscript) - ("qttools" ,qttools) ("qtx11extras" ,qtx11extras) ("sonnet" ,sonnet))) (arguments @@ -3241,7 +3242,8 @@ the passwords on KDE work spaces.") `(("kconfig" ,kconfig) ("kconfigwidgets" ,kconfigwidgets))) (native-inputs - `(("extra-cmake-modules" ,extra-cmake-modules))) + `(("extra-cmake-modules" ,extra-cmake-modules) + ("qttools" ,qttools))) (inputs `(("attica" ,attica) ("kauth" ,kauth) @@ -3255,7 +3257,6 @@ the passwords on KDE work spaces.") ("kwidgetsaddons" ,kwidgetsaddons) ("kwindowsystem" ,kwindowsystem) ("qtbase" ,qtbase) - ("qttools" ,qttools) ("sonnet" ,sonnet))) (arguments `(#:tests? #f ; FIXME: 1/5 tests fail. diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm index 12aa9fe53a..666959ea15 100644 --- a/gnu/packages/kde-internet.scm +++ b/gnu/packages/kde-internet.scm @@ -42,6 +42,7 @@ #:use-module (gnu packages serialization) #:use-module (gnu packages ssh) #:use-module (gnu packages telephony) + #:use-module (gnu packages linphone) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages web) diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm new file mode 100644 index 0000000000..50d75a4a95 --- /dev/null +++ b/gnu/packages/linphone.scm @@ -0,0 +1,594 @@ +;;; GNU Guix --- Functional package management for GNU +;;; +;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages linphone) + #:use-module (gnu packages) + #:use-module (gnu packages admin) + #:use-module (gnu packages audio) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages documentation) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gnome-xyz) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages linux) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages java) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages telephony) + #:use-module (gnu packages tls) + #:use-module (gnu packages video) + #:use-module (gnu packages xiph) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu)) + +(define-public bcunit + (package + (name "bcunit") + (version "3.0.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0ylchj8w98ic2fkqpxc6yk4s6s0h0ql2zsz5n49jd7126m4h8dqk")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (synopsis "Belledonne Communications Unit Testing Framework") + (description "BCUnit is a fork of the defunct project CUnit, +with several fixes and patches applied. It is an unit testing +framework for writing, administering, and running unit tests in C.") + (home-page "https://gitlab.linphone.org/BC/public/bcunit") + (license license:lgpl2.0+))) + +(define-public bctoolbox + (package + (name "bctoolbox") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1a1i70pb4hhnykkwyhhc7fv67q556l8kprny8xzgfqpj1nby2ms6")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=OFF"))) ; Not required + (inputs + `(("bcunit" ,bcunit) + ("mbedtls" ,mbedtls-apache))) + (synopsis "Belledonne Communications Tool Box") + (description "BcToolBox is an utilities library used by Belledonne +Communications softwares like belle-sip, mediastreamer2 and linphone.") + (home-page "https://gitlab.linphone.org/BC/public/bctoolbox") + (license license:gpl2+))) + +(define-public belr + (package + (name "belr") + (version "0.1.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1fwv2cg3qy9vdc7dimcda7nqcqc1h2cdd7ikhk7ng7q4ys8m96c1")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=OFF"))) ; Not required + (inputs + `(("bctoolbox" ,bctoolbox))) + (synopsis "Belledonne Communications Language Recognition Library") + (description "Belr is Belledonne Communications' language recognition library, +written in C++11. It parses text inputs formatted according to a language +defined by an ABNF grammar, such as the protocols standardized at IETF.") + (home-page "https://gitlab.linphone.org/BC/public/belr") + (license license:gpl3+))) + +(define-public belcard + (package + (name "belcard") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0iiyrll1shnbb0561pkvdqcmx9b2cdr76xpsbaqdirc3s4xzcl0k")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=OFF"))) ; Not required + (inputs + `(("bctoolbox" ,bctoolbox) + ("belr" ,belr))) + (synopsis "Belledonne Communications VCard Library") + (description "Belcard is a C++ library to manipulate VCard standard format.") + (home-page "https://gitlab.linphone.org/BC/public/belcard") + (license license:gpl3+))) + +(define-public bcmatroska2 + (package + (name "bcmatroska2") + (version "0.23") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1a0vlk4fhh189pfzrwbc3xbc5vyx6cnxy642d1h40045jz9y4h15")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (synopsis "Belledonne Communications Media Container") + (description "BcMatroska is a free and open standard multi-media +container format. It can hold an unlimited number of video, audio, +picture, or subtitle tracks in one file. ") + (home-page "https://gitlab.linphone.org/BC/public/bcmatroska2") + (license + (list + ;; That license applies for Core C and LibEBML2. + ;; https://www.matroska.org/node/47 + license:bsd-4 + ;; That license applies for LibMatroska2. + ;; https://www.matroska.org/node/47 + license:lgpl2.1+)))) + +(define-public bcg729 + (package + (name "bcg729") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "01y34ky7ykjgfnf8a9f59hg61fqfjiprfrzshdz06w0lz4gvy3qs")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (synopsis "Belledonne Communications G729 Codec") + (description "BcG729 is an implementation of both encoder and decoder of +the ITU G729 speech codec. The library written in C 99 is fully portable and +can be executed on many platforms including both ARM and x86 processors. It +supports concurrent channels encoding and decoding for multi call application +such as conferencing.") + (home-page "https://gitlab.linphone.org/BC/public/belcard") + (license license:gpl2+))) + +(define-public ortp + (package + (name "ortp") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "016qg0lmdgmqh2kv19w9qhi4kkiyi5h1xp35g2s65b1j8ccm25d5")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (native-inputs + `(("dot" ,graphviz) + ("doxygen" ,doxygen))) + (inputs + `(("bctoolbox" ,bctoolbox))) + (synopsis "Belledonne Communications RTP Library") + (description "oRTP is a C library implementing the RTP protocol. It +implements the RFC 3550 standard.") + (home-page "https://gitlab.linphone.org/BC/public/ortp") + (license license:gpl2+))) + +(define-public bzrtp + (package + (name "bzrtp") + (version "1.0.6") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "12y0kkh90pixaaxfyx26ca2brhy6nw57fsypp6vh8jk1illv0j5z")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) + (inputs + `(("bctoolbox" ,bctoolbox) + ("sqlite3" ,sqlite) + ("xml2" ,libxml2))) + (synopsis "Belledonne Communications ZRTP Library") + (description "BZRTP is an implementation of ZRTP keys exchange +protocol, written in C. It is fully portable and can be executed on many +platforms including both ARM and x86.") + (home-page "https://gitlab.linphone.org/BC/public/bzrtp") + (license license:gpl2+))) + +(define-public belle-sip + (package + (name "belle-sip") + (version "1.6.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0s55kggmgxap54dkw5856bgk4xg7yvbzialpxnjm0zhpic3hff1z")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; Requires network access + #:configure-flags + (list + "-DENABLE_STATIC=NO") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* "src/CMakeLists.txt" + ;; ANTLR would use multithreaded DFA generation + ;; otherwise--which would not be reproducible. + (("-Xmultithreaded ") "")) + #t))))) + (inputs + `(("antlr3" ,antlr3-3.3) + ("antlr3c" ,libantlr3c) + ("bctoolbox" ,bctoolbox) + ("java" ,icedtea) + ("zlib" ,zlib))) + (synopsis "Belledonne Communications SIP Library") + (description "Belle-sip is a modern library implementing SIP transport, +transaction and dialog layers. It is written in C, with an object-oriented +API. It also comprises a simple HTTP/HTTPS client implementation.") + (home-page "https://gitlab.linphone.org/BC/public/belle-sip") + (license license:gpl2+))) + +(define-public mediastreamer2 + (package + (name "mediastreamer2") + (version "2.16.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/" + "mediastreamer/mediastreamer-" version ".tar.gz")) + (sha256 + (base32 "0whpqr69wz0pnzvragkpfblxhd0rds8k06c3mw5a0ag216a1yd9k")) + (patches (search-patches "mediastreamer2-srtp2.patch")))) + (outputs '("out" "doc" "tester")) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO" ; Not required + "-DENABLE_STRICT=NO" ; Would otherwise treat warnings as err + "-DENABLE_BV16=NO" ; Not available + "-DCMAKE_C_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"" + "-DCMAKE_CXX_FLAGS=-DMS2_GIT_VERSION=\\\"unknown\\\"") + #:phases + (modify-phases %standard-phases + (add-after 'install 'separate-outputs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc")) + (tester (assoc-ref outputs "tester")) + (tester-name (string-append ,name "_tester"))) + ;; Copy the tester executable. + (mkdir-p (string-append tester "/bin")) + (rename-file (string-append out "/bin/" tester-name) + (string-append tester "/bin/" tester-name)) + ;; Copy the tester data files. + (copy-recursively (string-append out "/share/" tester-name) + (string-append tester "/share/" tester-name)) + (delete-file-recursively (string-append out "/share/" + tester-name)) + ;; Copy the HTML documentation. + (copy-recursively (string-append out "/share/doc/" + ,name "-" ,version "/html") + (string-append doc "/share/doc/" + ,name "-" ,version "/html")) + (delete-file-recursively (string-append out "/share/doc/" + ,name "-" ,version + "/html")) + #t)))))) + (native-inputs + `(("dot" ,graphviz) + ("doxygen" ,doxygen) + ("python" ,python))) + (inputs + `(("alsa" ,alsa-lib) + ("bcg729" ,bcg729) + ("bcmatroska2" ,bcmatroska2) + ("bctoolbox" ,bctoolbox) + ("ffmpeg" ,ffmpeg) + ("glew" ,glew) + ("glu" ,glu) + ("glx" ,mesa-utils) + ("gsm" ,gsm) + ("opengl" ,mesa) + ("opus" ,opus) + ("ortp" ,ortp) + ("pcap" ,libpcap) + ("portaudio" ,portaudio) + ("pulseaudio" ,pulseaudio) + ("spandsp" ,spandsp) + ("speex" ,speex) + ("speexdsp" ,speexdsp) + ("srtp" ,libsrtp) + ("theora" ,libtheora) + ("turbojpeg" ,libjpeg-turbo) + ("v4l" ,v4l-utils) + ("vpx" ,libvpx) + ("x11" ,libx11) + ("xv" ,libxv) + ("zrtp", bzrtp))) + (synopsis "Belledonne Communications Streaming Engine") + (description "Mediastreamer2 is a powerful and lightweight +streaming engine for telephony applications. This media processing +and streaming toolkit is responsible for receiving and sending all +multimedia streams in Linphone, including media capture, encoding and +decoding, and rendering.") + (home-page "https://gitlab.linphone.org/BC/public/mediastreamer2") + (license license:gpl2+))) + +(define-public liblinphone + (package + (name "liblinphone") + (version "3.12.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/linphone" + "/linphone-" version ".tar.gz")) + (sha256 + (base32 "0phhkx55xdyg28d4wn8l8q4yvsmdgzmjiw584d4s190sq1azm91x")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + (string-append "-DGTK2_GDKCONFIG_INCLUDE_DIR=" + (string-append (assoc-ref %build-inputs "gtk2") + "/lib/gtk-2.0/include")) + (string-append "-DGTK2_GLIBCONFIG_INCLUDE_DIR=" + (string-append (assoc-ref %build-inputs "glib") + "/lib/glib-2.0/include")) + "-DENABLE_STATIC=NO" ; Not required + "-DENABLE_GTK_UI=YES") ; For Legacy UI + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* "gtk/main.c" + (("#include \"liblinphone_gitversion.h\"") + "")) + #t))))) + (native-inputs + `(("dot" ,graphviz) + ("doxygen" ,doxygen) + ("gettext" ,gettext-minimal) + ("iconv" ,libiconv) + ("python" ,python) + ("xml2" ,libxml2) + ("zlib" ,zlib))) + (inputs + `(("bctoolbox" ,bctoolbox) + ("belcard" ,belcard) + ("bellesip" ,belle-sip) + ("bzrtp", bzrtp) + ("glib" ,glib) + ("gtk2" ,gtk+-2) + ("mediastreamer2" ,mediastreamer2) + ("notify" ,libnotify) + ("ortp" ,ortp) + ("pystache" ,python-pystache) + ("six" ,python-six) + ("sqlite" ,sqlite) + ("udev" ,eudev))) + (propagated-inputs + `(("murrine" ,murrine))) ; Required for GTK UI + (synopsis "Belledonne Communications Softphone Library") + (description "Liblinphone is a high-level SIP library integrating +all calling and instant messaging features into an unified +easy-to-use API. It is the cross-platform VoIP library on which the +Linphone application is based on, and that anyone can use to add audio +and video calls or instant messaging capabilities to an application.") + (home-page "https://gitlab.linphone.org/BC/public/liblinphone") + (license license:gpl2+))) + +(define-public msopenh264 + (package + (name "msopenh264") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0rdxgazm52560g52pp6mp3mwx6j1z3h2zyizzfycp8y8zi92fqm8")) + (patches + (list + ;; For support for OpenH264 version >= 2. + (origin + (method url-fetch) + (uri + (string-append "https://gitlab.linphone.org/BC/public/msopenh264/commit/" + "493d147d28c9a0f788ba4e50b47a1ce7b18bf326.diff")) + (file-name "msopenh264-openh264.patch") + (sha256 + (base32 "0mmd7nz5n9ian4rcwn200nldmy5j0dpdrna7r32rqnaw82bx3kdb"))))))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (inputs + `(("mediastreamer2" ,mediastreamer2) + ("openh264" ,openh264) + ("ortp" ,ortp))) + (synopsis "Media Streamer H.264 Codec") + (description "MsOpenH264 is an H.264 encoder/decoder plugin for +mediastreamer2 based on the openh264 library.") + (home-page "https://gitlab.linphone.org/BC/public/msopenh264") + (license license:gpl2+))) + +(define-public mssilk + (package + (name "mssilk") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "07ip0vd29d1n98lnqs5wpimcsmpm65yl7g5vk4hbqghcbsjw94lj")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) ; Not required + (inputs + `(("mediastreamer2" ,mediastreamer2) + ("ortp" ,ortp))) + (synopsis "Media Streamer SILK Codec") + (description "MSSILK is a plugin of MediaStreamer, adding support for +AMR codec. It is based on the Skype's SILK implementation.") + (home-page "https://gitlab.linphone.org/BC/public/mssilk") + (license license:gpl2+))) + +(define-public mswebrtc + (package + (name "mswebrtc") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1wj28hl9myhshqmn64xg0jf07aw75gmnilb5rff6rcbdxim87mqr")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO"))) + (inputs + `(("bctoolbox" ,bctoolbox) + ("mediastreamer2" ,mediastreamer2) + ("ortp" ,ortp))) + (synopsis "Media Streamer WebRTC Codec") + (description "MSWebRTC is a plugin of MediaStreamer, adding support for +WebRTC codec. It includes features from WebRTC, such as, iSAC and AECM.") + (home-page "https://gitlab.linphone.org/BC/public/mswebrtc") + (license license:gpl2+))) + +(define-public msamr + (package + (name "msamr") + (version "1.1.3") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.linphone.org/releases/sources/plugins/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 "16c9f3z4wnj73k7y8gb0fgpr4axsm7b5zrbjvy8vsgz9gyg3agm5")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test target + #:configure-flags + (list + "-DENABLE_STATIC=NO" ; Not required + "-DENABLE_WIDEBAND=YES"))) + (inputs + `(("mediastreamer2" ,mediastreamer2) + ("opencoreamr" ,opencore-amr) + ("ortp" ,ortp) + ("voamrwbenc" ,vo-amrwbenc))) + (synopsis "Media Streamer AMR Codec") + (description "MSAMR is a plugin of MediaStreamer, adding support for +AMR codec. It is based on the opencore-amr implementation.") + (home-page "https://gitlab.linphone.org/BC/public/msamr") + (license license:gpl3+))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6c7eb5be12..fa47789d5c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -192,6 +192,12 @@ defconfig. Return the appropriate make target if applicable, otherwise return "deblob-check")) (sha256 deblob-check-hash)))) +(define deblob-scripts-5.6 + (linux-libre-deblob-scripts + "5.6" + (base32 "09hxrr4xzllq5lmipfb6if30318lksrk9py1axc36m9ynql4w0rc") + (base32 "09qz5d31g5zwicsnncjnjij193hk0g6kg0ss9jyzh6lp3wilcm71"))) + (define deblob-scripts-5.4 (linux-libre-deblob-scripts "5.4.28" @@ -362,42 +368,51 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." "linux-" version ".tar.xz")) (sha256 hash))) -(define-public linux-libre-5.4-version "5.4.28") + +(define-public linux-libre-5.6-version "5.6.2") +(define-public linux-libre-5.6-pristine-source + (let ((version linux-libre-5.6-version) + (hash (base32 "1fdmcx5fk9wq9yx6vvnw76nvdysbvm83cik1dj1d67lw6bc92k9d"))) + (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-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "197p7rjmbs229ncj1y8s80f7n4bm8g9w0jrv1109m3rl8q9wqqy8"))) + (hash (base32 "1vwx6j87pkfyq68chng1hy0c85hpc2byabiv1pcikrmw07vpip8i"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.113") +(define-public linux-libre-4.19-version "4.19.114") (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "1rf0jz7r1f4rb4k0g3glssfa1hm2ka6vlbwjlkmsx1bybxnmg85m"))) + (hash (base32 "03hz6vg5bg728ilbm4z997pf52cgxzsxb03vz5cs55gwdbfa0h0y"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.174") +(define-public linux-libre-4.14-version "4.14.175") (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "12ai2lc2ny38s93d0m5ngrv030vwv1h2hhzp0fs6fhjxasikq8jc"))) + (hash (base32 "0b12w0d21sk261jr4p1pm32v0r20a5c2j1p5hasdqw80sb2hli6b"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.217") +(define-public linux-libre-4.9-version "4.9.218") (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "06b8av9f9pk2yp95nzv4322k0d5wsg40sxd9kfim1xzb093abckg"))) + (hash (base32 "1ka98c8sbfipzll6ss9fcsn26lh4cy60372yfw27pif4brhnwfnz"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.217") +(define-public linux-libre-4.4-version "4.4.218") (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "0vsjchywznmjn01flgvm9vsja5zqni319rfwgy997afcbz0c9spx"))) + (hash (base32 "0qzhcy8i111jbpnkpzq7hqf9nkwq4s7smi820hfvnmd2ky7cns7a"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) @@ -430,6 +445,15 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (patches (append (origin-patches source) patches)))) +(define-public linux-libre-5.6-source + (source-with-patches linux-libre-5.6-pristine-source + (list %boot-logo-patch + %linux-libre-arm-export-__sync_icache_dcache-patch + ;; Pinebook Pro patch from linux-next, + ;; can be dropped for linux-libre 5.7 + (search-patch + "linux-libre-support-for-Pinebook-Pro.patch")))) + (define-public linux-libre-5.4-source (source-with-patches linux-libre-5.4-pristine-source (list %boot-logo-patch @@ -529,6 +553,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (description "Headers of the Linux-Libre kernel.") (license license:gpl2))) +(define-public linux-libre-headers-5.6 + (make-linux-libre-headers* linux-libre-5.6-version + linux-libre-5.6-source)) + (define-public linux-libre-headers-5.4 (make-linux-libre-headers* linux-libre-5.4-version linux-libre-5.4-source)) @@ -823,7 +851,24 @@ It has been modified to remove all non-free binary blobs.") linux-libre-source '("armhf-linux") #:defconfig "multi_v7_defconfig" - #:extra-version "arm-generic")) + #:extra-version "arm-generic" + #:extra-options + (append + `(;; needed to fix the RTC on rockchip platforms + ("CONFIG_RTC_DRV_RK808" . #t)) + %default-extra-linux-options))) + +(define-public linux-libre-arm-generic-5.6 + (make-linux-libre* linux-libre-5.6-version + linux-libre-5.6-source + '("armhf-linux") + #:defconfig "multi_v7_defconfig" + #:extra-version "arm-generic" + #:extra-options + (append + `(;; needed to fix the RTC on rockchip platforms + ("CONFIG_RTC_DRV_RK808" . #t)) + %default-extra-linux-options))) (define-public linux-libre-arm-veyron (deprecated-package "linux-libre-arm-veyron" linux-libre-arm-generic)) @@ -868,7 +913,24 @@ It has been modified to remove all non-free binary blobs.") linux-libre-source '("aarch64-linux") #:defconfig "defconfig" - #:extra-version "arm64-generic")) + #:extra-version "arm64-generic" + #:extra-options + (append + `(;; needed to fix the RTC on rockchip platforms + ("CONFIG_RTC_DRV_RK808" . #t)) + %default-extra-linux-options))) + +(define-public linux-libre-arm64-generic-5.6 + (make-linux-libre* linux-libre-5.6-version + linux-libre-5.6-source + '("aarch64-linux") + #:defconfig "defconfig" + #:extra-version "arm64-generic" + #:extra-options + (append + `(;; needed to fix the RTC on rockchip platforms + ("CONFIG_RTC_DRV_RK808" . #t)) + %default-extra-linux-options))) (define-public linux-libre-riscv64-generic (make-linux-libre* linux-libre-version @@ -4432,6 +4494,40 @@ repair and easy administration.") from the btrfs-progs package. It is meant to be used in initrds.") (license (package-license btrfs-progs)))) +(define-public cramfs-tools + (package + (name "cramfs-tools") + (home-page "https://github.com/npitre/cramfs-tools") + (version "2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (sha256 + (base32 "183rfqqyzx52q0vxicdgf0p984idh3rqkvzfb93gjvyzfhc15c0p")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; No tests. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (install-file "mkcramfs" (string-append out "/sbin")) + (install-file "cramfsck" (string-append out "/sbin"))) + #t))))) + (inputs + `(("zlib" ,zlib))) + (synopsis "Tools to manage Cramfs file systems") + (description "Cramfs is a Linux file system designed to be simple, small, +and to compress things well. It is used on a number of embedded systems and +small devices. This version has additional features such as uncompressed +blocks and random block placement.") + (license license:gpl2+))) + (define-public compsize (package (name "compsize") @@ -4571,7 +4667,7 @@ feature, and a laptop with an accelerometer. It has no effect on SSDs.") (define-public thinkfan (package (name "thinkfan") - (version "1.0.2") + (version "1.1") (source (origin (method git-fetch) @@ -4580,7 +4676,7 @@ feature, and a laptop with an accelerometer. It has no effect on SSDs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "107vw0962hrwva3wra9n3hxlbfzg82ldc10qssv3dspja88g8psr")))) + (base32 "1fxd1w3z65glw6y04myn7ihgswkx6sqnkky159mik4n96pfrsvr5")))) (build-system cmake-build-system) (arguments `(#:modules ((guix build cmake-build-system) @@ -5699,13 +5795,13 @@ used by nftables.") (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-man-doc"))) ; FIXME: Needs docbook2x. - (inputs `(("bison" ,bison) - ("flex" ,flex) - ("gmp" ,gmp) + (inputs `(("gmp" ,gmp) ("libmnl" ,libmnl) ("libnftnl" ,libnftnl) ("readline" ,readline))) - (native-inputs `(("pkg-config" ,pkg-config))) + (native-inputs `(("pkg-config" ,pkg-config) + ("bison" ,bison) + ("flex" ,flex))) (home-page "https://www.nftables.org") (synopsis "Userspace utility for Linux packet filtering") (description "nftables is the project that aims to replace the existing @@ -5919,9 +6015,11 @@ the MTP device as a file system.") (base32 "1javw97yw0qvjmj14js8vw6nsfyf2xc0kfiyq5f2hsp0553w2cdq")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-silent-rules"))) - (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("expat" ,expat) ("libcap" ,libcap) ("check" ,check) - ("groff" ,groff) ; for tests + (native-inputs `(("groff" ,groff) ; for tests + ("pkg-config" ,pkg-config))) + (inputs `(("check" ,check) + ("expat" ,expat) + ("libcap" ,libcap) ("libselinux" ,libselinux))) (synopsis "Utility to show process environment") (description "Procenv is a command-line tool that displays as much detail about @@ -6587,10 +6685,10 @@ of Linux application development.") (("/usr/bin/dbus-daemon") (which "dbus-daemon"))) #t))))) (inputs - `(("dbus" ,dbus) - ("libtool" ,libtool))) + `(("dbus" ,dbus))) (native-inputs `(("autoconf" ,autoconf) + ("libtool" ,libtool) ("pkgconfig" ,pkg-config) ("automake" ,automake))) (home-page "https://01.org/ell") diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 4c59cfa872..e404c57f63 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net> ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech> +;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -619,6 +620,43 @@ from other CLXes around the net.") (define-public ecl-clx (sbcl-package->ecl-package sbcl-clx)) +(define-public sbcl-clx-truetype + (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8") + (revision "1")) + (package + (name "sbcl-clx-truetype") + (version (git-version "0.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/l04m33/clx-truetype") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "package.lisp" + ((":export") ":export\n :+font-cache-filename+")) + #t)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("clx" ,sbcl-clx) + ("zpb-ttf" ,sbcl-zpb-ttf) + ("cl-vectors" ,sbcl-cl-vectors) + ("cl-paths-ttf" ,sbcl-cl-paths-ttf) + ("cl-fad" ,sbcl-cl-fad) + ("cl-store" ,sbcl-cl-store) + ("trivial-features" ,sbcl-trivial-features))) + (home-page "https://github.com/l04m33/clx-truetype") + (synopsis "Antialiased TrueType font rendering using CLX and XRender") + (description "CLX-TrueType is pure common lisp solution for +antialiased TrueType font rendering using CLX and XRender extension.") + (license license:expat)))) + (define-public sbcl-cl-ppcre-unicode (package (inherit sbcl-cl-ppcre) (name "sbcl-cl-ppcre-unicode") @@ -6643,8 +6681,8 @@ which implements a set of utilities.") (sbcl-package->ecl-package sbcl-metatilities-base)) (define-public sbcl-cl-containers - (let ((commit "b2980bac9ac87ad32b63b722ce520fa26cb36ee6") - (revision "2")) + (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7") + (revision "3")) (package (name "sbcl-cl-containers") (version (git-version "0.12.1" revision commit)) @@ -6657,7 +6695,7 @@ which implements a set of utilities.") (file-name (git-file-name name version)) (sha256 (base32 - "19hmlax19hq0xjaqr8za90vwf06ymxw1m29sj053a309k3hm84gx")))) + "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y")))) (build-system asdf-build-system/sbcl) (native-inputs `(("lift" ,sbcl-lift))) @@ -7204,8 +7242,8 @@ implementation specific equivalent.") (sbcl-package->ecl-package sbcl-trivial-macroexpand-all)) (define-public sbcl-serapeum - (let ((commit "65837f8a0d65b36369ec8d000fff5c29a395b5fe") - (revision "0")) + (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169") + (revision "1")) (package (name "sbcl-serapeum") (version (git-version "0.0.0" revision commit)) @@ -7219,7 +7257,7 @@ implementation specific equivalent.") (file-name (git-file-name name version)) (sha256 (base32 - "0clwf81r2lvk1rbfvk91s9zmbkas9imf57ilqclw12mxaxlfsnbw")))) + "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9")))) (build-system asdf-build-system/sbcl) (inputs `(("alexandria" ,sbcl-alexandria) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index a65eb19e0c..709ea88ae0 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -365,14 +365,14 @@ an interpreter, a compiler, a debugger, and much more.") (define-public sbcl (package (name "sbcl") - (version "2.0.2") + (version "2.0.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-" version "-source.tar.bz2")) (sha256 - (base32 "07pyzdjnhcpqwvr3rrk4i18maqdywbq1qj93fnpx1h4b7dp08r28")))) + (base32 "001gckyw8hl842nk7nwf5kcspzkc1g8dycpwylzh5chl6893ym5m")))) (build-system gnu-build-system) (outputs '("out" "doc")) (native-inputs @@ -687,6 +687,53 @@ interface.") (license (list license:lgpl2.1 license:clarified-artistic)))) ;TRIVIAL-LDAP package +(define-public ccl-1.12 + ;; This is a development snapshot. The last stable version is from November + ;; 2017 and does not support package-local-nicknames, which prevents CCL + ;; from compiling some third-party packages. + ;; The main drawback of 1.12 is that ARM is not supported for now. + (package + (inherit ccl) + (version "1.12-dev.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Clozure/ccl/") + (commit (string-append "v" version)))) + (file-name (git-file-name "ccl" version)) + (sha256 + (base32 + "1za5j4ll4hk1vi1i7v1bmqhaqbsgc16izn46qmry7dnbig0rdqm0")))) + ;; CCL consists of a "lisp kernel" and "heap image". + ;; See comment in `ccl' package. + (inputs + `(("ccl-bootstrap" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/Clozure/ccl/releases/download/v" version "/" + (match (%current-system) + ((or "i686-linux" "x86_64-linux") "linuxx86") + ;; Prevent errors when querying this package on unsupported + ;; platforms, e.g. when running "guix package --search=" + (_ "UNSUPPORTED")) + ".tar.gz")) + (sha256 + (base32 + (match (%current-system) + ((or "i686-linux" "x86_64-linux") + "1pqiybxxv4wx5zlp1i60nim3njaczwl5321bdwq6frjsl3s95xmb") + (_ "")))))))) + (arguments + (substitute-keyword-arguments (package-arguments ccl) + ((#:phases phases) + `(modify-phases ,phases + (replace 'unpack (assoc-ref %standard-phases 'unpack)) + (add-after 'unpack 'unpack-image + (lambda* (#:key inputs #:allow-other-keys) + (invoke "tar" "xzvf" (assoc-ref inputs "ccl-bootstrap")))))))) + (supported-systems '("i686-linux" "x86_64-linux")))) + (define-public lush2 (package (name "lush2") @@ -798,7 +845,7 @@ enough to play the original mainframe Zork all the way through.") (define-public txr (package (name "txr") - (version "233") + (version "234") (source (origin (method git-fetch) @@ -809,7 +856,7 @@ enough to play the original mainframe Zork all the way through.") (patches (search-patches "txr-shell.patch")) (sha256 (base32 - "14dwjgx9lbfajk3q539m3v3b9j047q83ldnqb4cagbs8ampvhfbv")))) + "0c9qsj4xwc24c9g02mr5n97m4d87d4n0pcc2c2n58l2vg5dnzba0")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("cc=gcc") diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index dac2ef6d24..f5dc027e03 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -264,11 +264,11 @@ with freedesktop.org standard.") (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) + ("desktop-file-utils" ,desktop-file-utils) ("intltool" ,intltool))) (inputs `(("bash" ,bash) ("gtk+" ,gtk+) ("eudev" ,eudev) - ("desktop-file-utils" ,desktop-file-utils) ("shared-mime-info" ,shared-mime-info) ("ffmpegthumbnailer" ,ffmpegthumbnailer) ("jmtpfs" ,jmtpfs) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 139f737b6a..2acc6ecec0 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -29,6 +29,8 @@ ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -81,6 +83,7 @@ #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) #:use-module (gnu packages flex) + #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages kerberos) #:use-module (gnu packages libcanberra) #:use-module (gnu packages libevent) @@ -218,11 +221,11 @@ #:parallel-tests? #f)) (native-inputs - `(("perl" ,perl))) ;for 'gylwrap' - (inputs - `(("dejagnu" ,dejagnu) - ("m4" ,m4) + `(("perl" ,perl) ;for 'gylwrap' ("texinfo" ,texinfo) + ("dejagnu" ,dejagnu))) + (inputs + `(("m4" ,m4) ("guile" ,guile-3.0) ("gsasl" ,gsasl) ("gnutls" ,gnutls) @@ -525,7 +528,7 @@ It adds a large amount of new and improved features to mutt.") (define-public gmime (package (name "gmime") - (version "3.2.6") + (version "3.2.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gmime/" @@ -533,7 +536,7 @@ It adds a large amount of new and improved features to mutt.") "/gmime-" version ".tar.xz")) (sha256 (base32 - "05s7qjrxbj010q016pmdqdq73gz8vl4hv29kwaign0j8gi61kzxb")))) + "0i3xfc84qn1z99i70q68kbnp9rmgqrnprqb418ba52s6g9j9dsia")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1076,6 +1079,38 @@ and search library.") (define-public python2-notmuch (package-with-python2 python-notmuch)) +(define-public muchsync + (package + (name "muchsync") + (version "5") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.muchsync.org/src/" + "muchsync-" version ".tar.gz")) + (sha256 + (base32 "1k2m44pj5i6vfhp9icdqs42chsp208llanc666p3d9nww8ngq2lb")))) + (build-system gnu-build-system) + (native-inputs + `(("ghc-pandoc" ,ghc-pandoc) + ("pkg-config" ,pkg-config))) + (inputs + `(("libcrypto" ,openssl) + ("notmuch" ,notmuch) + ("sqlite" ,sqlite) + ("xapian" ,xapian))) + (home-page "http://www.muchsync.org/") + (synopsis "Synchronize notmuch mail across machines") + (description + "Muchsync brings Notmuch to all of your computers by synchronizing your +mail messages and Notmuch tags across machines. The protocol is heavily +pipelined to work efficiently over high-latency networks such as mobile +broadband. Muchsync supports arbitrary pairwise synchronization among +replicas. A version-vector-based algorithm allows it to exchange only the +minimum information necessary to bring replicas up to date regardless of which +pairs have previously synchronized.") + (license gpl2+))) + (define-public getmail (package (name "getmail") @@ -2965,8 +3000,8 @@ replacement for the @code{urlview} program.") (license gpl2+))) (define-public mumi - (let ((commit "6653e2d525b945fcd671dbfbf7b42cc588a1cf4b") - (revision "7")) + (let ((commit "c85015dac8110bd7a4c37375b9eb05ebeadedf74") + (revision "15")) (package (name "mumi") (version (git-version "0.0.0" revision commit)) @@ -2978,7 +3013,7 @@ replacement for the @code{urlview} program.") (file-name (git-file-name name version)) (sha256 (base32 - "0h1q61yl01hm7wygv1bv47ncg7l7gcw7aq8ny61g3hr1acsqysjf")))) + "05nma73kqnva6ci92aq8jb3718ry5dz3sd64ibpxn5w77z5kpwr7")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -3009,11 +3044,15 @@ replacement for the @code{urlview} program.") (inputs `(("guile-debbugs" ,guile-debbugs) ("guile-email" ,guile-email) + ("guile-gcrypt" ,guile-gcrypt) ("guile-json" ,guile-json-3) + ("guile-redis" ,guile-redis) ("guile-sqlite3" ,guile-sqlite3) ("guile-syntax-highlight" ,guile-syntax-highlight) + ("guile-webutils" ,guile-webutils) ("gnutls" ,gnutls) ;needed to talk to https://debbugs.gnu.org ("guile" ,guile-2.2) + ("mailutils" ,mailutils) ("mumimu" ,mumimu))) ;'mumimu' executable recorded in (mumi config) (native-inputs `(("autoconf" ,autoconf) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 13604af08f..3f8354e7b4 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -137,10 +138,10 @@ a flexible and convenient way.") (srfi srfi-1)))) (native-inputs `(("pkg-config" ,pkg-config) + ("flex" ,flex) ("groff" ,groff))) ;needed at build time (troff, grops, soelim, etc.) (inputs - `(("flex" ,flex) - ("gdbm" ,gdbm) + `(("gdbm" ,gdbm) ("groff-minimal" ,groff-minimal) ("less" ,less) ("libpipeline" ,libpipeline) @@ -230,7 +231,7 @@ automatically.") (define-public scdoc (package (name "scdoc") - (version "1.9.4") + (version "1.10.1") (source (origin (method url-fetch) @@ -239,7 +240,7 @@ automatically.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00zc3rzj97gscby31djlqyczvqpyhrl66i44czwzmmn7rc5j03m1")))) + "13x7g1r56bshvfmlvapvz35ywnbgsh337kywb5kcv8nc6b3j3q40")))) (build-system gnu-build-system) (arguments `(#:make-flags diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm index 54d4c539ec..9f86ee5649 100644 --- a/gnu/packages/mastodon.scm +++ b/gnu/packages/mastodon.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. @@ -29,19 +29,18 @@ (define-public toot (package (name "toot") - (version "0.24.0") + (version "0.25.2") (source (origin (method url-fetch) (uri (pypi-uri "toot" version)) (sha256 - (base32 "0w83b6ydaggrand9285wfrjrm1qry8fjl4as0iihma630ky6y2w3")))) + (base32 "16akld7zfr52rqrbgf6hmsca9qsrfdbbbd9bji8d26zggxmqq4vq")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases - (delete 'check) - (add-after 'install 'check + (replace 'check (lambda* (#:key inputs outputs #:allow-other-keys) (add-installed-pythonpath inputs outputs) (invoke "py.test")))))) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 5c9da6d72b..d913836825 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -3,8 +3,9 @@ ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 ng0 <ng0@n0.is> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com> +;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -94,7 +95,7 @@ MATE applications.") (define-public mate-power-manager (package (name "mate-power-manager") - (version "1.22.0") + (version "1.24.1") (source (origin (method url-fetch) @@ -102,14 +103,14 @@ MATE applications.") name "-" version ".tar.xz")) (sha256 (base32 - "03c09h41qfz83wmjfvwzkq4xqc54aswmki4h034qcxbgfnyfmk1i")))) + "13ar40x5hs4d4h81q8qsy0agbx5wnarry3mbhws54zydcxd7j20a")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("intltool" ,intltool) ("yelp-tools" ,yelp-tools) + ("gettext" ,gettext-minimal) ("glib" ,glib "bin") ; glib-gettextize - ("libtool" ,libtool))) + ("polkit" ,polkit))) ; for ITS rules (inputs `(("gtk+" ,gtk+) ("glib" ,glib) @@ -133,7 +134,7 @@ actions.") (define-public mate-icon-theme (package (name "mate-icon-theme") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -141,7 +142,7 @@ actions.") name "-" version ".tar.xz")) (sha256 (base32 - "090vfxpn1b1wwvkilv1j3cx4swdm4z0s7xyvhvqhdzj58zsf2000")))) + "0a2lz61ivwwcdznmwlmgjr6ipr9sdl5g2czbagnpxkwz8f3m77na")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -194,14 +195,14 @@ from Mint-X-F and Faenza-Fresh icon packs.") (define-public mate-themes (package (name "mate-themes") - (version "3.22.20") + (version "3.22.21") (source (origin (method url-fetch) (uri (string-append "mirror://mate/themes/" (version-major+minor version) "/mate-themes-" version ".tar.xz")) (sha256 - (base32 "0c3dhf8p9nc2maky4g9xr04iil9wwbdkmhpzynlc6lfg4ksqq2bx")))) + (base32 "051g2vq817g84yrqzf7hjcqr4xrghnw1rprjd6jf5mhhzmwcas6n")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -221,7 +222,7 @@ themes for both gtk+-2 and gtk+-3.") (define-public mate-desktop (package (name "mate-desktop") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -229,7 +230,7 @@ themes for both gtk+-2 and gtk+-3.") name "-" version ".tar.xz")) (sha256 (base32 - "09gn840p6qds21kxab4pidjd53g76s76i7178fdibrz462mda217")))) + "0l4bbj6nz315s5ndq5sw1jcgi3s1whk59bj12c4mbpsvmlb33adg")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -255,7 +256,7 @@ desktop and the mate-about program.") (define-public libmateweather (package (name "libmateweather") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -263,7 +264,7 @@ desktop and the mate-about program.") name "-" version ".tar.xz")) (sha256 (base32 - "1ribgcwl4ncfbcf9bkcbxrgc7yzajdnxg12837psngymkqswlp6a")))) + "094mnlczxq9crjj8z7dzs1zmwscdkbp54l3qjaf4a4bhd8lihv8d")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -301,14 +302,14 @@ the MATE desktop environment.") (define-public mate-terminal (package (name "mate-terminal") - (version "1.23.0") + (version "1.24.0") (source (origin (method url-fetch) (uri (string-append "mirror://mate/" (version-major+minor version) "/" "mate-terminal-" version ".tar.xz")) (sha256 - (base32 "1jkw8i2j45p80i7wmm0j0gkbd44nr2qj8bf79jrh5z8kn01b1ibd")))) + (base32 "0nc23nmbkya2fgf7j65z85dcibwi5akkr8nscqrvk039ckirhk97")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -340,7 +341,7 @@ configurations (profiles).") (define-public mate-session-manager (package (name "mate-session-manager") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -348,31 +349,13 @@ configurations (profiles).") name "-" version ".tar.xz")) (sha256 (base32 - "1kpfmgay01gm74paaxccs3lim4jfb4hsm7i85jfdypr51985pwyj")))) + "01scj5d1xlri9b2id8gm9kfni9nzhdjdf7rag7fvcxwqp7baz3h3")))) (build-system glib-or-gtk-build-system) (arguments - `(#:configure-flags (list "--enable-elogind" + `(#:configure-flags (list "--with-elogind" "--disable-schemas-compile") #:phases (modify-phases %standard-phases - (add-before 'configure 'pre-configure - (lambda* (#:key outputs #:allow-other-keys) - ;; Use elogind instead of systemd. - (substitute* "configure" - (("libsystemd-login") - "libelogind") - (("systemd") "elogind")) - (substitute* "mate-session/gsm-systemd.c" - (("#include <systemd/sd-login.h>") - "#include <elogind/sd-login.h>")) - ;; Remove uses of the systemd journal. - (substitute* "mate-session/main.c" - (("#ifdef HAVE_SYSTEMD") "#if 0")) - (substitute* "mate-session/gsm-manager.c" - (("#ifdef HAVE_SYSTEMD") "#if 0")) - (substitute* "mate-session/gsm-autostart-app.c" - (("#ifdef HAVE_SYSTEMD") "#if 0")) - #t)) (add-after 'install 'update-xsession-dot-desktop (lambda* (#:key outputs #:allow-other-keys) ;; Record the absolute file name of 'mate-session' in the @@ -389,6 +372,7 @@ configurations (profiles).") (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) + ("libxcomposite" ,libxcomposite) ("xtrans" ,xtrans) ("gobject-introspection" ,gobject-introspection))) (inputs @@ -407,7 +391,7 @@ configuration program to choose applications starting on login.") (define-public mate-settings-daemon (package (name "mate-settings-daemon") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -415,7 +399,7 @@ configuration program to choose applications starting on login.") name "-" version ".tar.xz")) (sha256 (base32 - "0yr5v6b9hdk20j29smbw1k4fkyg82i5vlflmgly0vi5whgc74gym")))) + "1hc5a36wqpjv9i2lgrn1h12s8y910xab3phx5vzbzq47kj6m3gw9")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -449,7 +433,7 @@ configuration program to choose applications starting on login.") (define-public libmatemixer (package (name "libmatemixer") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -457,7 +441,7 @@ configuration program to choose applications starting on login.") name "-" version ".tar.xz")) (sha256 (base32 - "1v0gpr55gj4mj8hzxbhgzrmhaxvs2inxhsmirvjw39sc7iplvrh9")))) + "08vkdp2kzy27xwscwp2jj5nz0yblrka2482l6cx3wl4dnk0rpznm")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -478,7 +462,7 @@ sound systems.") (define-public libmatekbd (package (name "libmatekbd") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -486,7 +470,7 @@ sound systems.") name "-" version ".tar.xz")) (sha256 (base32 - "1dsr7618c92mhwabwhgxqsfp7gnf9zrz2z790jc5g085dxhg13y8")))) + "1sq7gwr9q3hq4q0vx32qqa68qcqf5by9mqyxnq6lwgaq8ydq16ab")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -509,7 +493,7 @@ MATE desktop environment.") (define-public mate-menus (package (name "mate-menus") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -517,7 +501,7 @@ MATE desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "1lkakbf2f1815c146z4xp5f0h4lim6jzr02681wbvzalc6k97v5c")))) + "1vv4j38h7mrbfrsj99k25z6y7b5dg30fzd2qnhk7pl8ca8s1jhrd")))) (build-system gnu-build-system) (arguments `(#:phases @@ -550,7 +534,7 @@ assorted menu related utility programs.") (define-public mate-applets (package (name "mate-applets") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -558,7 +542,7 @@ assorted menu related utility programs.") name "-" version ".tar.xz")) (sha256 (base32 - "0f5ym6z7awi0kw6i1sdkj2qly88sl692j5r1zhklihyz1z9a6j0h")))) + "0nm3amb3v458mxv1mbz9y8f4230gldmydmkkm7vqxsrxbccynkxq")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -623,7 +607,7 @@ Interactive Weather Information Network (IWIN). (define-public mate-media (package (name "mate-media") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -631,7 +615,7 @@ Interactive Weather Information Network (IWIN). name "-" version ".tar.xz")) (sha256 (base32 - "0jrxbz00vjas0yp3ixvyzfsdby2ac3p3bds9yd7q1437mmhf71mj")))) + "1d5dx79yfqghjaxrdrdh053nfnvkbx8p3ma7j87s7rsvy5irs963")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -659,7 +643,7 @@ mate-volume-control, a MATE volume control application and applet.") (define-public mate-panel (package (name "mate-panel") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -667,7 +651,7 @@ mate-volume-control, a MATE volume control application and applet.") name "-" version ".tar.xz")) (sha256 (base32 - "17l4ryy71bkszr6shm9dm31zcsd7m0digi1mmvdlib5hqzvc7li7")))) + "1hrh10pqk8mva1ix2nmsp3cbbn81cgqy0b9lqhsl0b5p0s40i7in")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags @@ -834,7 +818,7 @@ infamous 'Wanda the Fish'.") (define-public caja (package (name "caja") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -842,7 +826,7 @@ infamous 'Wanda the Fish'.") name "-" version ".tar.xz")) (sha256 (base32 - "14x9n9q7vip5zp4mdgccj1p1dm4xn429g0bjw2v8iz7zmjb7vcgl")))) + "1cnfy481hcwjv3ia3kw0d4h7ga8cng0pqm3z349v4qcmfdapmqc0")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--disable-update-mimedb") @@ -892,7 +876,7 @@ icons on the MATE desktop. It works on local and remote file systems.") (define-public caja-extensions (package (name "caja-extensions") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -900,7 +884,7 @@ icons on the MATE desktop. It works on local and remote file systems.") name "-" version ".tar.xz")) (sha256 (base32 - "1h866jmdd3qpjzi7wjj11krwiaadnlf21844g1zqfb4jgrzj773p")))) + "175v5c05nrdliya23rbqma49alldq67dklmvpq18nq71sfry4pp6")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list "--enable-sendto" @@ -920,6 +904,7 @@ icons on the MATE desktop. It works on local and remote file systems.") ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("gtk-doc" ,gtk-doc) + ("libxml2" ,libxml2) ("pkg-config" ,pkg-config))) (inputs `(("attr" ,attr) @@ -946,7 +931,7 @@ icons on the MATE desktop. It works on local and remote file systems.") (define-public mate-control-center (package (name "mate-control-center") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -954,8 +939,21 @@ icons on the MATE desktop. It works on local and remote file systems.") name "-" version ".tar.xz")) (sha256 (base32 - "06wpfsxsiv7w3dl7p395r5vcxqbjlllydqbnvbr6yn0lrac15i71")))) + "192plsh83m2qz7jgakns2yvhqbj53v7i54iwb0z26i2awy0j9rcd")))) (build-system glib-or-gtk-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'build 'fix-polkit-action + (lambda* (#:key outputs #:allow-other-keys) + ;; Make sure the polkit file refers to the right + ;; executable. + (let ((out (assoc-ref outputs "out"))) + (substitute* + '("capplets/display/org.mate.randr.policy.in" + "capplets/display/org.mate.randr.policy") + (("/usr/sbin") + (string-append out "/sbin"))) + #t)))))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) @@ -991,6 +989,7 @@ icons on the MATE desktop. It works on local and remote file systems.") ("mate-menus" ,mate-menus) ("mate-settings-daemon" ,mate-settings-daemon) ("pango" ,pango) + ("polkit" ,polkit) ("startup-notification" ,startup-notification))) (propagated-inputs `(("gdk-pixbuf" ,gdk-pixbuf+svg) ; mate-slab.pc @@ -1005,7 +1004,7 @@ of various aspects of your desktop.") (define-public marco (package (name "marco") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1013,7 +1012,7 @@ of various aspects of your desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "1i1pi1z9mrb6564mxcwb93jqpdppfv58c2viwmicsixis62hv5wx")))) + "0hcbyv8czymhwz5q9rwig7kkhlhik6y080bls736f3wsbqnnirc2")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1055,7 +1054,7 @@ for use with MATE or as a standalone window manager.") (define-public mate-user-guide (package (name "mate-user-guide") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1063,7 +1062,7 @@ for use with MATE or as a standalone window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "0ckn7h7l0qdgdx440dwx1h8i601s22sxlf5a7179hfirk9016j0z")))) + "0ddxya84iydvy85dbqls0wmz2rph87wri3rsdhv4rkbhh5g4sd7f")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1094,7 +1093,7 @@ sessions, panels, menus, file management, and preferences.") (define-public mate-calc (package (name "mate-calc") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1102,7 +1101,7 @@ sessions, panels, menus, file management, and preferences.") name "-" version ".tar.xz")) (sha256 (base32 - "1njk6v7z3969ikvcrabr1lw5f5572vb14w064zm3mydj8cc5inlr")))) + "0f7hc1gg41kcwcyvsqqg79qylrp0qqymris8qizk2x3cfvvg7261")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1125,7 +1124,7 @@ sessions, panels, menus, file management, and preferences.") (define-public mate-backgrounds (package (name "mate-backgrounds") - (version "1.22.0") + (version "1.24.1") (source (origin (method url-fetch) @@ -1133,7 +1132,7 @@ sessions, panels, menus, file management, and preferences.") name "-" version ".tar.xz")) (sha256 (base32 - "1j9ch04qi2q4mdcvb92w667ra9hpfdf2bfpi1dpw0nbph7r6qvj9")))) + "0b9yx68p9l867bqsl9z2g4wrs8p396ls673jgaliys5snmk8n8dn")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool))) @@ -1147,7 +1146,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public mate-netbook (package (name "mate-netbook") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1155,7 +1154,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "17p1wv9bcr3kvlahnxmxj786vka86nysi90x5xci6ilwyjlaxh0l")))) + "1bmk9gq5gcqkvfppa7i1hqfph8sajc3xs189s4ha97g0ifwd98a8")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1188,7 +1187,7 @@ Re-decorates windows on un-maximise. (define-public mate-screensaver (package (name "mate-screensaver") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1196,7 +1195,7 @@ Re-decorates windows on un-maximise. name "-" version ".tar.xz")) (sha256 (base32 - "17fxyccsc410wbyxmds1sm7gjqbj6z46x5cjk1791hfzf0sh82sy")))) + "0gpw6x9d0b77f14vjl7ghq5dya1mwcnvmgigg00manfwlksr5zby")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags @@ -1259,7 +1258,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public mate-utils (package (name "mate-utils") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1267,7 +1266,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "0kz95hicjksgkwaj83fdp2rnaygfgjbj0jsnwy4n0lj5q90j7r28")))) + "1b16n1628gcsym5mph6lr9x5xm4rgkxsa8xwr2wlx8g2gw2775i1")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1291,6 +1290,7 @@ can be used as backgrounds in the MATE Desktop environment.") ("libxext" ,libxext) ("mate-panel" ,mate-panel) ("pango" ,pango) + ("udisks" ,udisks) ("zlib" ,zlib))) (home-page "https://mate-desktop.org/") (synopsis "Utilities for the MATE Desktop") @@ -1311,7 +1311,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public eom (package (name "eom") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1319,7 +1319,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "093vbip848bp9y603yasbrg1bcp68m64hma7zhi5m37x2r103r6l")))) + "0zzximp2534bky0vac219alafblw6m0lis0gncq92017s6c1mb77")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1361,7 +1361,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public engrampa (package (name "engrampa") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1369,7 +1369,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "16yjplfl2sqa7n6404hjn0vwkh0xkdch73q7n5czynihmh3azc7p")))) + "13cak3qgrzqj74x9jq1sf155793v2bqqz4mk4i04g9f9xn3g85fl")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list "--disable-schemas-compile" @@ -1414,7 +1414,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public pluma (package (name "pluma") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1422,7 +1422,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "07rr5asdjr9slmaijp4m8v9vxscihvm36mfrwlp3lv12kry42a05")))) + "1vmndhlhy3qkf3xs5kkv0xhbv5ar25pqz0kp17hc4qhgjzycfr0r")))) (build-system glib-or-gtk-build-system) (arguments `(; Tests can not succeed. @@ -1453,7 +1453,7 @@ can be used as backgrounds in the MATE Desktop environment.") ("libice" ,libice) ("packagekit" ,packagekit) ("pango" ,pango) - ("python-2" ,python-2) + ("python" ,python) ("scrollkeeper" ,scrollkeeper))) (home-page "https://mate-desktop.org/") (synopsis "Text Editor for MATE") @@ -1464,7 +1464,7 @@ can be used as backgrounds in the MATE Desktop environment.") (define-public mate-system-monitor (package (name "mate-system-monitor") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1472,7 +1472,7 @@ can be used as backgrounds in the MATE Desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "0rs0n5ivmvi355fp3ymcp1jj2sz9viw31475aw7zh7s1l7dn969x")))) + "1cb36lrsn4fhsryl2kl4yq0qhp1p4r7k21w3fc2ywjga8fdxx6y5")))) (build-system glib-or-gtk-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -1504,7 +1504,7 @@ MATE Desktop to monitor your system resources and usage.") (define-public mate-polkit (package (name "mate-polkit") - (version "1.22.0") + (version "1.24.0") (source (origin (method url-fetch) @@ -1512,7 +1512,7 @@ MATE Desktop to monitor your system resources and usage.") name "-" version ".tar.xz")) (sha256 (base32 - "02r8n71xflhvw2hsf6g4svdahzyg3r4n6xamasyzqfhyn0mqmjy0")))) + "1450bqzlnvwy3xa98lj102j2cf7piqbxcd1cy2zp41rdl8ri3gvn")))) (build-system glib-or-gtk-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -1551,6 +1551,7 @@ used to bring up authentication dialogs.") (union-build (assoc-ref %outputs "out") directories) #t))))) + (native-inputs `(("desktop-file-utils" ,desktop-file-utils))) (inputs ;; TODO: Add more packages `(("at-spi2-core" ,at-spi2-core) @@ -1558,7 +1559,6 @@ used to bring up authentication dialogs.") ("caja" ,caja) ("dbus" ,dbus) ("dconf" ,dconf) - ("desktop-file-utils" ,desktop-file-utils) ("engrampa" ,engrampa) ("eom" ,eom) ("font-cantarell" ,font-cantarell) @@ -1596,6 +1596,10 @@ used to bring up authentication dialogs.") ("shared-mime-info" ,shared-mime-info) ("yelp" ,yelp) ("zenity" ,zenity))) + ;; FIXME: Propagating glib:bin fixes http://issues.guix.gnu.org/issue/38135 + ;; The proper fix is in core-updates. So we can remove this after next merge. + (propagated-inputs + `(("glib:bin" ,glib "bin"))) (synopsis "The MATE desktop environment") (home-page "https://mate-desktop.org/") (description diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 07a19d4927..4d902d8935 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -35,6 +35,9 @@ ;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Felix Gruber <felgru@posteo.net> +;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +65,7 @@ #:use-module (guix utils) #:use-module ((guix build utils) #:select (alist-replace)) #: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 ruby) @@ -79,6 +83,7 @@ #:use-module (gnu packages dbm) #:use-module (gnu packages documentation) #:use-module (gnu packages elf) + #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages fltk) #:use-module (gnu packages fontutils) @@ -86,8 +91,10 @@ #:use-module (gnu packages gcc) #:use-module (gnu packages gd) #:use-module (gnu packages ghostscript) + #:use-module (gnu packages glib) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) + #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages java) #:use-module (gnu packages less) @@ -375,6 +382,81 @@ semiconductors.") (license license:gpl3+) (home-page "https://www.gnu.org/software/dionysus/"))) +(define-public dsfmt + (package + (name "dsfmt") + (version "2.2.3") + (source + (origin + (method url-fetch) + (uri + (string-append + "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/" + "dSFMT-src-" version ".tar.gz")) + (sha256 + (base32 + "03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42")) + (modules '((guix build utils))) + ;; Don't distribute html documentation with bundled jquery. + (snippet + '(begin + (delete-file-recursively "html") #t)) + ;; Add patches borrowed from Julia. + (patches + (list + (origin + (method url-fetch) + (uri (string-append + "https://raw.githubusercontent.com/JuliaLang/julia/" + "v1.3.0/deps/patches/dSFMT.c.patch")) + (sha256 (base32 + "09mhv11bms8jsmkmdqvlcgljwhzw3b6n9nncpi2b6dla9798hw2y")) + (file-name "dSFMT.c.patch")) + (origin + (method url-fetch) + (uri (string-append + "https://raw.githubusercontent.com/JuliaLang/julia/" + "v1.3.0/deps/patches/dSFMT.h.patch")) + (sha256 (base32 + "1py5rd0yxic335lzka23f6x2dhncrpizpyrk57gi2f28c0p98y5n")) + (file-name "dSFMT.h.patch")))))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (replace 'build + ;; Upstream Makefile does not build a shared library. Borrow from Julia + ;; https://github.com/JuliaLang/julia/blob/v1.3.0/deps/dsfmt.mk + (lambda _ + (invoke + "gcc" "-DNDEBUG" "-DDSFMT_MEXP=19937" + "-fPIC" "-DDSFMT_DO_NOT_USE_OLD_NAMES" + "-O3" "-finline-functions" "-fomit-frame-pointer" + "-fno-strict-aliasing" "--param" "max-inline-insns-single=1800" + "-Wmissing-prototypes" "-Wall" "-std=c99" "-shared" "dSFMT.c" + "-o" "libdSFMT.so"))) + (replace 'install ; no "install" target + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (inc (string-append out "/include")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (install-file "libdSFMT.so" lib) + (install-file "dSFMT.h" inc) + (install-file "LICENSE.txt" doc) + #t)))))) + (synopsis "Double precision SIMD-oriented Fast Mersenne Twister") + (description + "The dSMFT package speeds up Fast Mersenne Twister generation by avoiding +the expensive conversion of integer to double (floating point). dSFMT directly +generates double precision floating point pseudorandom numbers which have the +IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985) +format. dSFMT is only available on the CPUs which use IEEE 754 format double +precision floating point numbers.") + (home-page "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/") + (license license:bsd-3))) + (define-public gsl (package (name "gsl") @@ -2653,8 +2735,9 @@ implemented in ANSI C, and MPI for communications.") "scotch-integer-declarations.patch")))) (build-system gnu-build-system) (inputs - `(("zlib" ,zlib) - ("flex" ,flex) + `(("zlib" ,zlib))) + (native-inputs + `(("flex" ,flex) ("bison" ,bison))) (outputs '("out" "metis")) (arguments @@ -5353,3 +5436,112 @@ researchers and developers alike to get started on SAT.") (home-page "http://minisat.se/MiniSat.html") (license license:expat)))) + +(define-public libqalculate + (package + (name "libqalculate") + (version "3.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Qalculate/libqalculate/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1vbaza9c7159xf2ym90l0xkyj2mp6c3hbghhsqn29yvz08fda9df")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("gettext" ,gettext-minimal) + ("intltool" ,intltool) + ("automake" ,automake) + ("autoconf" ,autoconf) + ("libtool" ,libtool) + ("doxygen" ,doxygen) + ("file" ,file))) + (inputs + `(("gmp" ,gmp) + ("mpfr" ,mpfr) + ("libxml2" ,libxml2) + ("curl" ,curl) + ("icu4c" ,icu4c) + ("gnuplot" ,gnuplot) + ("readline" ,readline) + ("libiconv" ,libiconv))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'setenv + ;; Prevent the autogen.sh script to carry out the configure + ;; script, which has not yet been patched to replace /bin/sh. + (lambda _ + (setenv "NOCONFIGURE" "TRUE") + #t))))) + (home-page "https://qalculate.github.io/") + (synopsis "Multi-purpose cli desktop calculator and library") + (description + "Libqalculate is a multi-purpose cli desktop calculator and library. +It provides basic and advanced functionality. Features include customizable +functions, unit calculations, and conversions, physical constants, symbolic +calculations (including integrals and equations), arbitrary precision, +uncertainity propagation, interval arithmetic, plotting and a user-friendly +cli.") + (license license:gpl2+))) + +(define-public qalculate-gtk + (package + (name "qalculate-gtk") + (version "3.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Qalculate/qalculate-gtk/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nsg6dzg5r7rzqr671nvrf1c50rjwpz7bxv5f20i4s7agizgv840")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("automake" ,automake) + ("autoconf" ,autoconf) + ("libtool" ,libtool) + ("file" ,file))) + (inputs + `(("gmp" ,gmp) + ("mpfr" ,mpfr) + ("libqalculate" ,libqalculate) + ("libxml2" ,libxml2) + ("glib" ,glib) + ("gtk+" ,gtk+))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'setenv + ;; Prevent the autogen.sh script to carry out the configure + ;; script, which has not yet been patched to replace /bin/sh. + (lambda _ + (setenv "NOCONFIGURE" "TRUE") + #t)) + (add-before 'check 'add-pot-file + ;; the file contains translations and are currently not in use + ;; left out on purpose so add it to POTFILES.skip + (lambda _ + (with-output-to-file "po/POTFILES.skip" + (lambda _ + (format #t "data/shortcuts.ui~%") + #t)) + #t))))) + (home-page "https://qalculate.github.io/") + (synopsis "Multi-purpose graphical desktop calculator") + (description + "Qalculate-gtk is the GTK frontend for libqalculate. It is a +multi-purpose GUI desktop calculator. It provides basic and advanced +functionality. Features include customizable functions, unit calculations, +and conversions, physical constants, symbolic calculations (including +integrals and equations), arbitrary precision, uncertainity propagation, +interval arithmetic, plotting.") + (license license:gpl2+))) diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm new file mode 100644 index 0000000000..0aba774a91 --- /dev/null +++ b/gnu/packages/matrix.scm @@ -0,0 +1,121 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com> +;;; +;;; 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 <http://www.gnu.org/licenses/>. + +(define-module (gnu packages matrix) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages check) + #:use-module (gnu packages databases) + #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages xml) + #:use-module (guix build-system python) + #:use-module (guix download) + #:use-module (guix packages)) + +(define-public python-matrix-synapse-ldap3 + (package + (name "python-matrix-synapse-ldap3") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "matrix-synapse-ldap3" version)) + (sha256 + (base32 + "01bms89sl16nyh9f141idsz4mnhxvjrc3gj721wxh1fhikps0djx")))) + (build-system python-build-system) + (arguments + ;; tests require synapse, creating a circular dependency. + '(#:tests? #f)) + (propagated-inputs + `(("python-twisted" ,python-twisted) + ("python-ldap3" ,python-ldap3) + ("python-service-identity" ,python-service-identity))) + (home-page "https://github.com/matrix-org/matrix-synapse-ldap3") + (synopsis "LDAP3 auth provider for Synapse") + (description + "This package allows Synapse to use LDAP as a password provider. +This lets users log in to Synapse with their username and password from +an LDAP server.") + (license license:asl2.0))) + +(define-public synapse + (package + (name "synapse") + (version "1.11.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "matrix-synapse" version)) + (sha256 + (base32 + "0cqbwcz0fi4w413s1kcxvf696qi4n46n1k4ggnygqri5yq26qlfy")))) + (build-system python-build-system) + ;; TODO I think there are custom tests + (propagated-inputs + `(("python-simplejson" ,python-simplejson) ; not attested but required + ;; requirements (synapse/python_dependencies.py) + ("python-jsonschema" ,python-jsonschema) + ("python-frozendict" ,python-frozendict) + ("python-unpaddedbase64" ,python-unpaddedbase64) + ("python-canonicaljson" ,python-canonicaljson) + ("python-signedjson" ,python-signedjson) + ("python-pynacl" ,python-pynacl) + ("python-idna" ,python-idna) + ("python-service-identity" ,python-service-identity) + ("python-twisted" ,python-twisted) + ("python-treq" ,python-treq) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pyyaml" ,python-pyyaml) + ("python-pyasn1" ,python-pyasn1) + ("python-pyasn1-modules" ,python-pyasn1-modules) + ("python-daemonize" ,python-daemonize) + ("python-bcrypt" ,python-bcrypt) + ("python-pillow" ,python-pillow) + ("python-sortedcontainers" ,python-sortedcontainers) + ("python-pymacaroons" ,python-pymacaroons) + ("python-msgpack" ,python-msgpack) + ("python-phonenumbers" ,python-phonenumbers) + ("python-six" ,python-six) + ("python-prometheus-client" ,python-prometheus-client) + ("python-attrs" ,python-attrs) + ("python-netaddr" ,python-netaddr) + ("python-jinja2" ,python-jinja2) + ("python-bleach" ,python-bleach) + ("python-typing-extensions" ,python-typing-extensions) + ;; conditional requirements (synapse/python_dependencies.py) + ("python-matrix-synapse-ldap3" ,python-matrix-synapse-ldap3) + ("python-psycopg2" ,python-psycopg2) + ("python-jinja2" ,python-jinja2) + ("python-txacme" ,python-txacme) + ("python-pysaml2" ,python-pysaml2) + ("python-lxml" ,python-lxml) + ;; sentry-sdk, jaeger-client, and opentracing could be included, but + ;; all are monitoring aids and not essential. + ("python-pyjwt" ,python-pyjwt))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-parameterized" ,python-parameterized))) + (home-page "https://github.com/matrix-org/synapse") + (synopsis "Matrix reference homeserver") + (description "Synapse is a reference \"homeserver\" implementation of +Matrix from the core development team at matrix.org, written in +Python/Twisted. It is intended to showcase the concept of Matrix and let +folks see the spec in the context of a codebase and let you run your own +homeserver and generally help bootstrap the ecosystem.") + (license license:asl2.0))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index ccb2be7c41..e37585c21c 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si> ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -307,7 +308,7 @@ access to servers running the Discord protocol.") (("if 'DESTDIR' not in os.environ:") "if False:")) #t))))) - (synopsis "Graphical IRC Client") + (synopsis "Graphical IRC client") (description "HexChat lets you connect to multiple IRC networks at once. The main window shows the list of currently connected networks and their channels, the @@ -2030,13 +2031,13 @@ messaging that aren’t available to clients that connect over XMPP.") (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) + ("gettext" ,gettext-minimal) ("which" ,which))) (inputs `(("pidgin" ,pidgin) ("libgcrypt" ,libgcrypt) ("libwebp" ,libwebp) ("glib" ,glib) - ("gettext" ,gnu-gettext) ("gtk+" ,gtk+-2) ("zlib" ,zlib))) (arguments diff --git a/gnu/packages/mingw.scm b/gnu/packages/mingw.scm index d0785c5067..b37f6c69bd 100644 --- a/gnu/packages/mingw.scm +++ b/gnu/packages/mingw.scm @@ -53,7 +53,10 @@ specified, recurse and return a mingw-w64 with support for winpthreads." "mingw-w64-release/mingw-w64-v" version ".tar.bz2")) (sha256 (base32 "0a5njsa2zw2ssdz10jkb10mhrf3cb8qp9avs89zqmw4n6pzxy85a")) - (patches (search-patches "mingw-w64-6.0.0-gcc.patch")))) + (patches + (search-patches "mingw-w64-6.0.0-gcc.patch" + "mingw-w64-dlltool-temp-prefix.patch" + "mingw-w64-reproducible-gendef.patch")))) (native-inputs `(("xgcc-core" ,(if xgcc xgcc (cross-gcc triplet))) ("xbinutils" ,(if xbinutils xbinutils (cross-binutils triplet))) ,@(if with-winpthreads? diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index ec0684168e..b39c50779a 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -135,7 +135,7 @@ bind processes, and much more.") ;; Note: 2.0 isn't the default yet, see above. (package (inherit hwloc-1) - (version "2.1.0") + (version "2.2.0") (source (origin (method url-fetch) (uri (string-append "https://www.open-mpi.org/software/hwloc/v" @@ -143,7 +143,7 @@ bind processes, and much more.") "/downloads/hwloc-" version ".tar.bz2")) (sha256 (base32 - "0qh8s7pphz0m5cwb7liqmc17xzfs23xhz5wn24r6ikvjyx99fhhr")))) + "0li27a3lnmb77qxpijj0kpblz32wmqd3b386sypq8ar7vy9vhw5f")))) ;; libnuma is no longer needed. (inputs (alist-delete "numactl" (package-inputs hwloc-1))) @@ -158,6 +158,14 @@ bind processes, and much more.") (substitute* "tests/hwloc/linux-libnuma.c" (("numa_available\\(\\)") "-1")) + #t)) + (add-before 'check 'skip-test-that-fails-on-qemu + (lambda _ + ;; Skip test that fails on emulated hardware due to QEMU bug: + ;; <https://bugs.gnu.org/40342>. + (substitute* "tests/hwloc/hwloc_get_last_cpu_location.c" + (("hwloc_topology_init" all) + (string-append "exit (77);\n" all))) #t)))))))) (define-deprecated hwloc-2.0 hwloc-2) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 773a582091..783cceec48 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2019 raingloom <raingloom@protonmail.com> ;;; Copyright © 2019 David Wilson <david@daviwil.com> ;;; Copyright © 2019, 2020 Alexandros Theodotou <alex@zrythm.org> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -380,22 +381,28 @@ many input formats and provides a customisable Vi-style user interface.") (define-public denemo (package (name "denemo") - (version "2.1") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/denemo/denemo-" - version ".tar.gz")) - (sha256 - (base32 - "0hggf8c4xcrjcxd5m00r788r7jg7g8ff54w2idfaqpj5j2ix3299")))) + (version "2.3.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/denemo/" + "denemo-" version ".tar.gz")) + (sha256 + (base32 "1blkcl3slbsq9jlhwcf2m9v9g38a0sjfhh9advgi2qr1gxri08by")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check - ;; Denemo's documentation says to use this command to run its - ;; testsuite. - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) + ;; Tests require to write $HOME. + (setenv "HOME" (getcwd)) + ;; Replace hard-coded diff file name. + (substitute* "tests/integration.c" + (("/usr/bin/diff") + (string-append (assoc-ref inputs "diffutils") "/bin/diff"))) + ;; Denemo's documentation says to use this command to run its + ;; test suite. (invoke "make" "-C" "tests" "check"))) (add-before 'build 'set-lilypond ;; This phase sets the default path for lilypond to its current @@ -408,24 +415,12 @@ many input formats and provides a customisable Vi-style user interface.") (string-append "g_string_new (\"" lilypond "\");")))) - #t)) - (add-after 'install 'correct-filename - ;; "graft-derivation/shallow" from the (guix grafts) module runs in - ;; the C locale, expecting file names to be ASCII encoded. This - ;; phase renames a filename with a Unicode character in it to meet - ;; the aforementioned condition. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (chdir (string-append - out - "/share/denemo/templates/instruments/woodwind")) - (rename-file "Clarinet in B♭.denemo" - "Clarinet in Bb.denemo")) #t))))) (native-inputs - `(("intltool" ,intltool) + `(("diffutils" ,diffutils) ("glib:bin" ,glib "bin") ; for gtester ("gtk-doc" ,gtk-doc) + ("intltool" ,intltool) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (inputs @@ -504,16 +499,16 @@ settings (aliasing, linear interpolation and cubic interpolation).") (define-public hydrogen (package (name "hydrogen") - (version "1.0.0-beta1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/hydrogen-music/hydrogen.git") - (commit version))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0nv83l70j5bjz2wd6n3a8cq3bmgrvdvg6g2hjhc1g5h6xnbqsh9x")))) + (version "1.0.0-beta2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hydrogen-music/hydrogen.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1s3jrdyjpm92flw9mkkxchnj0wz8nn1y1kifii8ws252iiqjya4a")))) (build-system cmake-build-system) (arguments `(#:test-target "tests" @@ -528,16 +523,18 @@ settings (aliasing, linear interpolation and cubic interpolation).") #t))))) (native-inputs `(("cppunit" ,cppunit) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ("qtlinguist" ,qttools))) (inputs `(("alsa-lib" ,alsa-lib) ("jack" ,jack-1) - ;; ("ladspa" ,ladspa) ; cannot find during configure + ;; ("ladspa" ,ladspa) ; require LADSPA_PATH to be set ("lash" ,lash) ("libarchive" ,libarchive) + ("liblo" ,liblo) ("libsndfile" ,libsndfile) - ("libtar" ,libtar) ("lrdf" ,lrdf) + ("pulseaudio" ,pulseaudio) ("qtbase" ,qtbase) ("qtxmlpatterns" ,qtxmlpatterns) ("zlib" ,zlib))) @@ -908,21 +905,20 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro (define-public lilypond (package (name "lilypond") - (version "2.19.80") - (source (origin - (method url-fetch) - (uri (string-append - "http://download.linuxaudio.org/lilypond/sources/v" - (version-major+minor version) "/" - name "-" version ".tar.gz")) - (sha256 - (base32 - "0lql4q946gna2pl1g409mmmsvn2qvnq2z5cihrkfhk7plcqdny9n")))) + (version "2.20.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://lilypond.org/download/sources/" + "v" (version-major+minor version) "/" + "lilypond-" version ".tar.gz")) + (sha256 + (base32 "0qd6pd4siss016ffmcyw5qc6pr2wihnvrgd4kh1x725w7wr02nar")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; out-test/collated-files.html fails + `(#:tests? #f ;out-test/collated-files.html fails #:out-of-source? #t - #:make-flags '("conf=www") ;to generate images for info manuals + #:make-flags '("conf=www") ;to generate images for info manuals #:configure-flags (list "CONFIGURATION=www" (string-append "--with-texgyre-dir=" @@ -940,25 +936,25 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro (("TEX_FIKPARM=.*") "TEX_FIKPARM=found\n")) #t)) (add-after 'unpack 'fix-path-references - (lambda _ - (substitute* "scm/backend-library.scm" - (("\\(search-executable '\\(\"gs\"\\)\\)") - (string-append "\"" (which "gs") "\"")) - (("\"/bin/sh\"") - (string-append "\"" (which "sh") "\""))) - #t)) + (lambda _ + (substitute* "scm/backend-library.scm" + (("\\(search-executable '\\(\"gs\"\\)\\)") + (string-append "\"" (which "gs") "\"")) + (("\"/bin/sh\"") + (string-append "\"" (which "sh") "\""))) + #t)) (add-before 'configure 'prepare-configuration - (lambda _ - (substitute* "configure" - (("SHELL=/bin/sh") "SHELL=sh") - ;; When checking the fontforge version do not consider the - ;; version string that's part of the directory. - (("head -n") "tail -n") - ;; Also allow for SOURCE_DATE_EPOCH = 0 in fontforge. - (("20110222") "19700101")) - (setenv "out" "www") - (setenv "conf" "www") - #t)) + (lambda _ + (substitute* "configure" + (("SHELL=/bin/sh") "SHELL=sh") + ;; When checking the fontforge version do not consider the + ;; version string that's part of the directory. + (("head -n") "tail -n") + ;; Also allow for SOURCE_DATE_EPOCH = 0 in fontforge. + (("20110222") "19700101")) + (setenv "out" "www") + (setenv "conf" "www") + #t)) (add-after 'install 'install-info (lambda _ (invoke "make" @@ -982,13 +978,13 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro ("dblatex" ,dblatex) ("gettext" ,gettext-minimal) ("imagemagick" ,imagemagick) - ("netpbm" ,netpbm) ;for pngtopnm + ("netpbm" ,netpbm) ;for pngtopnm ("texlive" ,(texlive-union (list texlive-metapost texlive-generic-epsf texlive-latex-lh texlive-latex-cyrillic))) ("texinfo" ,texinfo) - ("texi2html" ,texi2html) + ("texi2html" ,texi2html-1.82) ("rsync" ,rsync) ("pkg-config" ,pkg-config) ("zip" ,zip))) @@ -1427,10 +1423,10 @@ users to select LV2 plugins and run them with jalv.") ("alsa-lib" ,alsa-lib) ("non-session-manager" ,non-session-manager) ("liblo" ,liblo) - ("qtbase" ,qtbase) - ("qttools" ,qttools))) + ("qtbase" ,qtbase))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("qttools" ,qttools))) (home-page "https://synthv1.sourceforge.io") (synopsis "Polyphonic subtractive synthesizer") (description @@ -2037,25 +2033,26 @@ using a system-independent interface.") (define-public frescobaldi (package (name "frescobaldi") - (version "3.0.0") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/wbsoft/frescobaldi/releases/download/v" - version "/frescobaldi-" version ".tar.gz")) - (sha256 - (base32 - "15cqhbjbjikr7ljgiq56bz2gxrr38j8p0f78p2vhyzydaviy9a2z")))) + (version "3.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/wbsoft/frescobaldi/releases/download/v" + version "/frescobaldi-" version ".tar.gz")) + (sha256 + (base32 "0kfwvgygx2ds01w8g7vzykfrajglmr2brchk9d67ahzijpgvfkj5")))) (build-system python-build-system) - (arguments `(#:tests? #f)) ; no tests included + (arguments + `(#:tests? #f)) ;no tests included (inputs `(("lilypond" ,lilypond) + ("poppler" ,poppler) ("portmidi" ,portmidi) - ("python-pyqt" ,python-pyqt) ("python-ly" ,python-ly) - ("python-pyportmidi" ,python-pyportmidi) - ("poppler" ,poppler) ("python-poppler-qt5" ,python-poppler-qt5) + ("python-pyportmidi" ,python-pyportmidi) + ("python-pyqt" ,python-pyqt) ("python-sip" ,python-sip))) (home-page "http://www.frescobaldi.org/") (synopsis "LilyPond sheet music text editor") @@ -2142,11 +2139,11 @@ backends, including ALSA, OSS, Network and FluidSynth.") `(("drumstick" ,drumstick) ("qtbase" ,qtbase) ("qtsvg" ,qtsvg) - ("qttools" ,qttools) ("qtx11extras" ,qtx11extras))) (native-inputs `(("libxslt" ,libxslt) ;for xsltproc ("docbook-xsl" ,docbook-xsl) + ("qttools" ,qttools) ("pkg-config" ,pkg-config))) (home-page "http://vmpk.sourceforge.net") (synopsis "Virtual MIDI piano keyboard") @@ -4096,15 +4093,14 @@ specification and header.") (define-public rosegarden (package (name "rosegarden") - (version "18.12") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://sourceforge/rosegarden/rosegarden/" - version "/rosegarden-" version ".tar.bz2")) - (sha256 - (base32 - "15i9fm0vkn3wsgahaxqi1j5zs0wc0j3wdwml0x49084gk2p328vb")))) + (version "19.12") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/rosegarden/rosegarden/" + version "/rosegarden-" version ".tar.bz2")) + (sha256 + (base32 "1qcaxc6hdzva7kwxxhgl95437fagjbxzv4mihsgpr7y9qk08ppw1")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release") @@ -4146,9 +4142,9 @@ specification and header.") (("COMMAND [$][{]QT_RCC_EXECUTABLE[}]") "COMMAND ${QT_RCC_EXECUTABLE} --format-version 1") ;; Extraneous. - ;(("qt5_add_resources[(]rg_SOURCES ../data/data.qrc[)]") - ; "qt5_add_resources(rg_SOURCES ../data/data.qrc OPTIONS --format-version 1)") - ) + ;;(("qt5_add_resources[(]rg_SOURCES ../data/data.qrc[)]") + ;; "qt5_add_resources(rg_SOURCES ../data/data.qrc OPTIONS --format-version 1)") + ) ;; Make hashtable traversal order predicable. (setenv "QT_RCC_TEST" "1") ; important #t)) @@ -4666,7 +4662,7 @@ discard bad quality ones. ("qtmultimedia" ,qtmultimedia) ("qtsvg" ,qtsvg))) (native-inputs - `(("gettext" ,gnu-gettext) + `(("gettext" ,gettext-minimal) ("hicolor-icon-theme" ,hicolor-icon-theme) ("itstool" ,itstool) ("qttools" ,qttools))) @@ -4970,7 +4966,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.") (define-public geonkick (package (name "geonkick") - (version "1.9.0") + (version "1.10.0") (source (origin (method git-fetch) @@ -4980,7 +4976,7 @@ ZaMultiComp, ZaMultiCompX2 and ZamSynth.") (file-name (git-file-name name version)) (sha256 (base32 - "17mwxnmxszdm2wjbigciwh8qx0487q9qhf4sl92y6nqdb0dlghnl")))) + "1a59wnm4035kjhs66hihlkiv45p3ffb2yaj1awvyyi5f0lds5zvh")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no tests included @@ -5161,7 +5157,7 @@ and as an LV2 plugin.") (define-public zrythm (package (name "zrythm") - (version "0.7.573") + (version "0.8.200") (source (origin (method url-fetch) @@ -5169,7 +5165,7 @@ and as an LV2 plugin.") version ".tar.xz")) (sha256 (base32 - "075gq478xbzz5ql4fsrgfzhgxi7z26k6034lhlkmm0klfcb8j9mg")))) + "13ivxbrd44qnhyh46dcr94dvqxg8cn4bbd8xm77ljw0p9b4ks4zs")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -5194,6 +5190,7 @@ and as an LV2 plugin.") ("gettext" ,gettext-minimal) ("glibc" ,glibc) ("gtk+" ,gtk+) + ("guile" ,guile-2.2) ("libcyaml" ,libcyaml) ("libsamplerate" ,libsamplerate) ("libsndfile" ,libsndfile) @@ -5383,3 +5380,45 @@ filtered, pitch shifted and ultimately disintegrated. This is an unofficial port of the Regrader plugin created by Igorski. It is available as an LV2 plugin and a standalone JACK application.") (license license:expat))) + +(define-public tap-lv2 + (let ((commit "cab6e0dfb2ce20e4ad34b067d1281ec0b193598a") + (revision "1")) + (package + (name "tap-lv2") + (version (git-version "0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moddevices/tap-lv2.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0q480djfqd9g8mzrggc4vl7yclrhdjqx563ghs8mvi2qq8liycw3")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:make-flags + (list "CC=gcc") + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure + (replace 'install + (lambda _ + (invoke "make" + (string-append "INSTALL_PATH=" + (assoc-ref %outputs "out") + "/lib/lv2") + "install")))))) + (inputs + `(("lv2", lv2))) + (native-inputs + `(("pkg-config", pkg-config))) + (synopsis "Audio plugin collection") + (description "TAP (Tom's Audio Processing) plugins is a collection of + audio effect plugins originally released as LADSPA plugins. This package + offers an LV2 version ported by moddevices.") + (home-page "http://tap-plugins.sourceforge.net/") + (license license:gpl2)))) diff --git a/gnu/packages/netpbm.scm b/gnu/packages/netpbm.scm index aac6f13379..96025661ca 100644 --- a/gnu/packages/netpbm.scm +++ b/gnu/packages/netpbm.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -114,7 +114,10 @@ ("pkg-config" ,pkg-config) ("python" ,python-wrapper))) (arguments - `(#:phases + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 match)) + #:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) @@ -145,7 +148,7 @@ (add-before 'check 'setup-check (lambda _ ;; install temporarily into /tmp/netpbm - (system* "make" "package") + (invoke "make" "package") ;; remove test requiring X (substitute* "test/all-in-place.test" (("pamx") "")) ;; do not worry about non-existing file @@ -168,19 +171,21 @@ (replace 'install (lambda* (#:key outputs make-flags #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (apply system* "make" "package" + (apply invoke "make" "package" (string-append "pkgdir=" out) make-flags) - ;; copy static library - (copy-file (string-append out "/link/libnetpbm.a") - (string-append out "/lib/libnetpbm.a")) - ;; remove superfluous folders and files - (system* "rm" "-r" (string-append out "/link")) - (system* "rm" "-r" (string-append out "/misc")) + ;; Remove superfluous files. (with-directory-excursion out - (for-each delete-file - '("config_template" "pkginfo" "README" - "VERSION"))) - #t)))))) + (for-each delete-file-recursively + '("config_template" "pkginfo" "README" "VERSION" + "link/" "misc/")) + ;; Install the required ‘libnetpbm.so’ link. + ;; See <https://issues.guix.gnu.org/issue/40376>. + (with-directory-excursion "lib" + (symlink + (match (find-files "." "^libnetpbm\\.so\\.[^.]*\\.[^.]*$") + ((head _ ...) head)) + "libnetpbm.so")) + #t))))))) (synopsis "Toolkit for manipulation of images") (description "Netpbm is a toolkit for the manipulation of graphic images, including diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 7561103888..f9657e4aa3 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -2692,13 +2692,13 @@ protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP. ") (build-system gnu-build-system) (inputs `(("dbus" ,dbus) - ("libtool" ,libtool) ("ell" ,ell) ("readline" ,readline))) (native-inputs `(("asciidoc" ,asciidoc) ("autoconf" ,autoconf) ("automake" ,automake) + ("libtool" ,libtool) ("pkgconfig" ,pkg-config) ("python" ,python) ("openssl" ,openssl))) diff --git a/gnu/packages/nfs.scm b/gnu/packages/nfs.scm index ecf092125a..45ed181b03 100644 --- a/gnu/packages/nfs.scm +++ b/gnu/packages/nfs.scm @@ -27,6 +27,7 @@ #:use-module (gnu packages kerberos) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages sqlite) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) @@ -115,7 +116,8 @@ ("lvm2" ,lvm2) ("util-linux" ,util-linux "lib") ("mit-krb5" ,mit-krb5) - ("libtirpc" ,libtirpc))) + ("libtirpc" ,libtirpc) + ("python-wrapper" ,python-wrapper))) ;for the Python based tools (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://www.kernel.org/pub/linux/utils/nfs-utils/") diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 84790cf112..dfcdb58de4 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -24,18 +24,18 @@ (define-module (gnu packages ntp) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages libevent) #:use-module (gnu packages linux) - #:use-module (gnu packages autotools) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls) - #:use-module (gnu packages libevent) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix l:) #:use-module (guix packages) #:use-module (guix utils) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module (guix build-system gnu) #:use-module (srfi srfi-1)) (define-public ntp diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 5181d6156b..84efe2c1de 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -706,7 +706,8 @@ Emacs.") (define-public ocaml-menhir (package (name "ocaml-menhir") - (version "20181113") + ;; More recent versions can be built after we have dune >= 2.0 + (version "20190626") (source (origin (method git-fetch) @@ -715,7 +716,7 @@ Emacs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1iqdf64ayq4s3d9jkwhs3s8wqc2s48b292hp0kcjsskfhcvwg0kr")))) + (base32 "0v8av4pw6rykzb7wx54xhbsx0jhh8xyb4x0k4yrxi0w5ylkck6mb")))) (build-system ocaml-build-system) (inputs `(("ocaml" ,ocaml))) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index a27c7691b0..ee3e017326 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1100,7 +1100,7 @@ the boot loader configuration.") (assoc-ref %build-inputs "bubblewrap") "/bin/bwrap")))) (native-inputs `(("bison" ,bison) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ; for glib-mkenums + gdbus-codegen ("gobject-introspection" ,gobject-introspection) ("libcap" ,libcap) diff --git a/gnu/packages/patches/beancount-disable-googleapis-fonts.patch b/gnu/packages/patches/beancount-disable-googleapis-fonts.patch new file mode 100644 index 0000000000..d0fa47b59c --- /dev/null +++ b/gnu/packages/patches/beancount-disable-googleapis-fonts.patch @@ -0,0 +1,25 @@ +https://sources.debian.org/data/main/b/beancount/2.2.0-3/debian/patches/0001-Remove-fonts.googleapis.com-links-for-the-bean-web-t.patch + +From: Nicolas Dandrimont <nicolas@dandrimont.eu> +Date: Tue, 1 May 2018 04:49:55 +0200 +Subject: Remove fonts.googleapis.com links for the bean-web template + +--- + beancount/web/web.html | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/beancount/web/web.html b/beancount/web/web.html +index 3995ce2..ec9e707 100644 +--- a/beancount/web/web.html ++++ b/beancount/web/web.html +@@ -3,10 +3,6 @@ + <head> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> + +- <link href="https://fonts.googleapis.com/css?family=Roboto+Condensed:400italic,700italic,700,400" rel="stylesheet" type="text/css" /> +- <link href="https://fonts.googleapis.com/css?family=Roboto:400italic,700italic,700,400" rel="stylesheet" type="text/css" /> +- <link href='https://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css' /> +- + <link href="/resources/web.css" rel="stylesheet" type="text/css" /> + <title>{{title}}: {{pagetitle}}</title> +
\ No newline at end of file diff --git a/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch new file mode 100644 index 0000000000..3e48b87935 --- /dev/null +++ b/gnu/packages/patches/binutils-mingw-w64-reproducible-import-libraries.patch @@ -0,0 +1,22 @@ +This following patch was originally found at the debian mingw-w64 team's +binutils repo located here: +https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git + +Invoke the following in the aforementioned repo to see the original patch: + + $ git show da63f6b:debian/patches/reproducible-import-libraries.patch + +Description: Make DLL import libraries reproducible +Author: Benjamin Moody <benjamin.moody@gmail.com> +Bug-Debian: https://bugs.debian.org/915055 + +--- a/ld/pe-dll.c ++++ b/ld/pe-dll.c +@@ -2844,6 +2844,7 @@ + + bfd_set_format (outarch, bfd_archive); + outarch->has_armap = 1; ++ outarch->flags |= BFD_DETERMINISTIC_OUTPUT; + + /* Work out a reasonable size of things to put onto one line. */ + ar_head = make_head (outarch); diff --git a/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch new file mode 100644 index 0000000000..b785043b62 --- /dev/null +++ b/gnu/packages/patches/binutils-mingw-w64-specify-timestamp.patch @@ -0,0 +1,137 @@ +This following patch was originally found at the debian mingw-w64 team's +binutils repo located here: +https://salsa.debian.org/mingw-w64-team/binutils-mingw-w64.git + +Invoke the following in the aforementioned repo to see the original patch: + + $ git show da63f6b:debian/patches/specify-timestamp.patch + +Description: Allow the PE timestamp to be specified +Author: Stephen Kitt <skitt@debian.org> + +--- a/bfd/peXXigen.c ++++ b/bfd/peXXigen.c +@@ -70,6 +70,9 @@ + #include <wctype.h> + #endif + ++#include <errno.h> ++#include <limits.h> ++ + /* NOTE: it's strange to be including an architecture specific header + in what's supposed to be general (to PE/PEI) code. However, that's + where the definitions are, and they don't vary per architecture +@@ -879,10 +882,38 @@ + + /* Use a real timestamp by default, unless the no-insert-timestamp + option was chosen. */ +- if ((pe_data (abfd)->insert_timestamp)) +- H_PUT_32 (abfd, time (0), filehdr_out->f_timdat); +- else ++ if (pe_data (abfd)->insert_timestamp) { ++ time_t now; ++ char *source_date_epoch; ++ unsigned long long epoch; ++ char *endptr; ++ ++ now = time(NULL); ++ source_date_epoch = getenv("SOURCE_DATE_EPOCH"); ++ if (source_date_epoch) { ++ errno = 0; ++ epoch = strtoull(source_date_epoch, &endptr, 10); ++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) ++ || (errno != 0 && epoch == 0)) { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", ++ strerror(errno)); ++ } else if (endptr == source_date_epoch) { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", ++ endptr); ++ } else if (*endptr != '\0') { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", ++ endptr); ++ } else if (epoch > ULONG_MAX) { ++ _bfd_error_handler("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu\n", ++ ULONG_MAX, epoch); ++ } else { ++ now = epoch; ++ } ++ } ++ H_PUT_32 (abfd, now, filehdr_out->f_timdat); ++ } else { + H_PUT_32 (abfd, 0, filehdr_out->f_timdat); ++ } + + PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr, + filehdr_out->f_symptr); +--- a/ld/pe-dll.c ++++ b/ld/pe-dll.c +@@ -26,6 +26,8 @@ + #include "filenames.h" + #include "safe-ctype.h" + ++#include <errno.h> ++#include <limits.h> + #include <time.h> + + #include "ld.h" +@@ -1202,8 +1204,36 @@ + + memset (edata_d, 0, edata_sz); + +- if (pe_data (abfd)->insert_timestamp) +- H_PUT_32 (abfd, time (0), edata_d + 4); ++ if (pe_data (abfd)->insert_timestamp) { ++ time_t now; ++ char *source_date_epoch; ++ unsigned long long epoch; ++ char *endptr; ++ ++ now = time(NULL); ++ source_date_epoch = getenv("SOURCE_DATE_EPOCH"); ++ if (source_date_epoch) { ++ errno = 0; ++ epoch = strtoull(source_date_epoch, &endptr, 10); ++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) ++ || (errno != 0 && epoch == 0)) { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", ++ strerror(errno)); ++ } else if (endptr == source_date_epoch) { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", ++ endptr); ++ } else if (*endptr != '\0') { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", ++ endptr); ++ } else if (epoch > ULONG_MAX) { ++ einfo("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to: %lu but was found to be: %llu\n", ++ ULONG_MAX, epoch); ++ } else { ++ now = epoch; ++ } ++ } ++ H_PUT_32 (abfd, now, edata_d + 4); ++ } + + if (pe_def_file->version_major != -1) + { +--- a/ld/emultempl/pe.em ++++ b/ld/emultempl/pe.em +@@ -303,7 +303,7 @@ + OPTION_USE_NUL_PREFIXED_IMPORT_TABLES}, + {"no-leading-underscore", no_argument, NULL, OPTION_NO_LEADING_UNDERSCORE}, + {"leading-underscore", no_argument, NULL, OPTION_LEADING_UNDERSCORE}, +- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP}, ++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP}, + {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP}, + #ifdef DLL_SUPPORT + /* getopt allows abbreviations, so we do this to stop it +--- a/ld/emultempl/pep.em ++++ b/ld/emultempl/pep.em +@@ -321,7 +321,7 @@ + {"no-bind", no_argument, NULL, OPTION_NO_BIND}, + {"wdmdriver", no_argument, NULL, OPTION_WDM_DRIVER}, + {"tsaware", no_argument, NULL, OPTION_TERMINAL_SERVER_AWARE}, +- {"insert-timestamp", no_argument, NULL, OPTION_INSERT_TIMESTAMP}, ++ {"insert-timestamp", optional_argument, NULL, OPTION_INSERT_TIMESTAMP}, + {"no-insert-timestamp", no_argument, NULL, OPTION_NO_INSERT_TIMESTAMP}, + {"build-id", optional_argument, NULL, OPTION_BUILD_ID}, + {NULL, no_argument, NULL, 0} diff --git a/gnu/packages/patches/calibre-msgpack-compat.patch b/gnu/packages/patches/calibre-msgpack-compat.patch new file mode 100644 index 0000000000..9920103bea --- /dev/null +++ b/gnu/packages/patches/calibre-msgpack-compat.patch @@ -0,0 +1,18 @@ +Fix deserialization with msgpack 1.0. + +Patch copied from upstream source repository: +https://github.com/kovidgoyal/calibre/commit/0ff41ac64994ec11b7859fc004c94d08769e3af3 + +diff --git a/src/calibre/utils/serialize.py b/src/calibre/utils/serialize.py +index f5d560c468..c35ae53849 100644 +--- a/src/calibre/utils/serialize.py ++++ b/src/calibre/utils/serialize.py +@@ -110,7 +110,7 @@ def msgpack_decoder(code, data): + def msgpack_loads(dump, use_list=True): + # use_list controls whether msgpack arrays are unpacked as lists or tuples + import msgpack +- return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list) ++ return msgpack.unpackb(dump, ext_hook=msgpack_decoder, raw=False, use_list=use_list, strict_map_key=False) + + + def json_loads(data): diff --git a/gnu/packages/patches/higan-remove-march-native-flag.patch b/gnu/packages/patches/higan-remove-march-native-flag.patch deleted file mode 100644 index 30d4cdd061..0000000000 --- a/gnu/packages/patches/higan-remove-march-native-flag.patch +++ /dev/null @@ -1,12 +0,0 @@ -Remove -march=native from build flags. - ---- a/higan/GNUmakefile -+++ b/higan/GNUmakefile -@@ -26,7 +26,6 @@ - flags += -fopenmp - link += -fopenmp - ifeq ($(binary),application) -- flags += -march=native - link += -Wl,-export-dynamic - link += -lX11 -lXext - else ifeq ($(binary),library) diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch index a90d7fdee8..c2c59ec855 100644 --- a/gnu/packages/patches/icecat-makeicecat.patch +++ b/gnu/packages/patches/icecat-makeicecat.patch @@ -25,7 +25,7 @@ index 8be2362..48716f2 100755 -wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc -gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353 -gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc --echo -n 2428213ceb75cb6772b3044d9c14870d1ae5b0161379aeb29248650e13761c9f firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - +-echo -n ad3ea069c3d23aab360ad04ff4d0f5e556d3538f7dd4eae0690c4e9241537570 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - - -echo Extracting Firefox tarball -tar -xf firefox-${FFVERSION}esr.source.tar.xz @@ -37,7 +37,7 @@ index 8be2362..48716f2 100755 +# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc +# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353 +# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc -+# echo -n 2428213ceb75cb6772b3044d9c14870d1ae5b0161379aeb29248650e13761c9f firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - ++# echo -n ad3ea069c3d23aab360ad04ff4d0f5e556d3538f7dd4eae0690c4e9241537570 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - +# +# echo Extracting Firefox tarball +# tar -xf firefox-${FFVERSION}esr.source.tar.xz diff --git a/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch new file mode 100644 index 0000000000..32dfd7b856 --- /dev/null +++ b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch @@ -0,0 +1,28 @@ +--- /dev/null ++++ b/gnu/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch +@@ -0,0 +1,22 @@ ++Fix one of upstream non-determinism, tracked here: ++ ++https://github.com/JuliaLang/julia/issues/34115 ++https://github.com/JuliaLang/julia/issues/25900 ++ ++ ++Patch by Nicoló Balzarotti <nicolo@nixo.xyz>. ++ ++--- a/base/loading.jl +++++ b/base/loading.jl ++@@ -807,7 +807,10 @@ ++ path = normpath(joinpath(dirname(prev), _path)) ++ end ++ if _track_dependencies[] ++- push!(_require_dependencies, (mod, path, mtime(path))) +++ push!(_require_dependencies, +++ (mod, path, +++ haskey(ENV, "SOURCE_DATE_EPOCH") ? +++ parse(Float64, ENV["SOURCE_DATE_EPOCH"]) : mtime(path))) ++ end ++ return path, prev ++ end +-- +2.26.0 + diff --git a/gnu/packages/patches/mediastreamer2-srtp2.patch b/gnu/packages/patches/mediastreamer2-srtp2.patch new file mode 100644 index 0000000000..f6d494facb --- /dev/null +++ b/gnu/packages/patches/mediastreamer2-srtp2.patch @@ -0,0 +1,155 @@ +From 97903498364ae2596e790cb2c2ce9ac76c04d64a Mon Sep 17 00:00:00 2001 +From: Danmei Chen <danmei.chen@belledonne-communications.com> +Date: Fri, 19 Jan 2018 10:04:07 +0100 +Subject: [PATCH] add compability with srtp2 + +--- + cmake/FindSRTP.cmake | 24 ++++++++++++++++++++---- + src/CMakeLists.txt | 1 + + src/crypto/ms_srtp.c | 10 ++-------- + src/utils/srtp_prefix.h | 41 +++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 64 insertions(+), 12 deletions(-) + create mode 100644 src/utils/srtp_prefix.h + +diff --git a/cmake/FindSRTP.cmake b/cmake/FindSRTP.cmake +index 988b846a..f720ce7e 100644 +--- a/cmake/FindSRTP.cmake ++++ b/cmake/FindSRTP.cmake +@@ -31,20 +31,36 @@ set(_SRTP_ROOT_PATHS + ) + + find_path(SRTP_INCLUDE_DIRS +- NAMES srtp/srtp.h ++ NAMES srtp2/srtp.h + HINTS _SRTP_ROOT_PATHS + PATH_SUFFIXES include + ) + + if(SRTP_INCLUDE_DIRS) + set(HAVE_SRTP_SRTP_H 1) +-endif() +- +-find_library(SRTP_LIBRARIES ++ set(SRTP_VERSION 2) ++ find_library(SRTP_LIBRARIES ++ NAMES srtp2 ++ HINTS ${_SRTP_ROOT_PATHS} ++ PATH_SUFFIXES bin lib ++ ) ++else() ++ find_path(SRTP_INCLUDE_DIRS ++ NAMES srtp/srtp.h ++ HINTS _SRTP_ROOT_PATHS ++ PATH_SUFFIXES include ++ ) ++ if(SRTP_INCLUDE_DIRS) ++ set(HAVE_SRTP_SRTP_H 1) ++ set(SRTP_VERSION 1) ++ endif() ++ find_library(SRTP_LIBRARIES + NAMES srtp + HINTS ${_SRTP_ROOT_PATHS} + PATH_SUFFIXES bin lib + ) ++endif() ++ + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(SRTP +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index da429764..c46faa62 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -183,6 +183,7 @@ set(VOIP_SOURCE_FILES_C + utils/pcap_sender.c + utils/pcap_sender.h + utils/stream_regulator.c ++ utils/srtp_prefix.h + voip/audioconference.c + voip/audiostream.c + voip/bandwidthcontroller.c +diff --git a/src/crypto/ms_srtp.c b/src/crypto/ms_srtp.c +index 5a510c99..67810316 100644 +--- a/src/crypto/ms_srtp.c ++++ b/src/crypto/ms_srtp.c +@@ -25,6 +25,7 @@ + #include "mediastreamer2/ms_srtp.h" + #include "mediastreamer2/mediastream.h" + ++ + #ifdef HAVE_SRTP + + /*srtp defines all this stuff*/ +@@ -34,13 +35,7 @@ + #undef PACKAGE_TARNAME + #undef PACKAGE_VERSION + +-#if defined(MS2_WINDOWS_PHONE) +-// Windows phone doesn't use make install +-#include <srtp.h> +-#else +-#include <srtp/srtp.h> +-#endif +- ++#include "srtp_prefix.h" + + #include "ortp/b64.h" + +@@ -352,7 +347,6 @@ int ms_srtp_init(void) + srtp_init_done++; + }else{ + ms_fatal("Couldn't initialize SRTP library: %d.", st); +- err_reporting_init("mediastreamer2"); + } + }else srtp_init_done++; + return (int)st; +diff --git a/src/utils/srtp_prefix.h b/src/utils/srtp_prefix.h +new file mode 100644 +index 00000000..68bde496 +--- /dev/null ++++ b/src/utils/srtp_prefix.h +@@ -0,0 +1,41 @@ ++/* ++ mediastreamer2 library - modular sound and video processing and streaming ++ Copyright (C) 2006-2014 Belledonne Communications, Grenoble ++ ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ This library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with this library; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++*/ ++#ifndef __SRTP2_H__ ++#define __SRTP2_H__ ++ ++#if defined(MS2_WINDOWS_PHONE) ++// Windows phone doesn't use make install ++#include <srtp.h> ++#elif SRTP_VERSION==1 ++#include <srtp/srtp.h> ++#else ++#include <srtp2/srtp.h> ++#define err_status_t srtp_err_status_t ++#define err_status_ok srtp_err_status_ok ++#define crypto_policy_t srtp_crypto_policy_t ++#define crypto_policy_set_aes_cm_256_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80 ++#define crypto_policy_set_aes_cm_128_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32 ++#define crypto_policy_set_aes_cm_128_null_auth srtp_crypto_policy_set_aes_cm_128_null_auth ++#define crypto_policy_set_null_cipher_hmac_sha1_80 srtp_crypto_policy_set_null_cipher_hmac_sha1_80 ++#define crypto_policy_set_aes_cm_128_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80 ++#define crypto_policy_set_aes_cm_256_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32 ++#define ssrc_t srtp_ssrc_t ++#endif ++ ++#endif +-- +2.21.0 + diff --git a/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch b/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch new file mode 100644 index 0000000000..432cafc162 --- /dev/null +++ b/gnu/packages/patches/mingw-w64-dlltool-temp-prefix.patch @@ -0,0 +1,26 @@ +This following patch was originally found at the debian mingw-w64 team's +mingw-w64 repo located here: +https://salsa.debian.org/mingw-w64-team/mingw-w64.git + +Invoke the following in the aforementioned repo to see the original patch: + + $ git show 4974e2c:debian/patches/dlltool-temp-prefix.patch + +Description: Specify dlltool's temp prefix +Author: Stephen Kitt <steve@sk2.org> + +By default dlltool uses its pid for the object files it generates. +Enforcing its temp prefix allows the files it generates to be +reproducible. + +--- a/mingw-w64-crt/Makefile.am ++++ b/mingw-w64-crt/Makefile.am +@@ -36,7 +36,7 @@ + DTDEF32=$(GENLIB) $(DLLTOOLFLAGS32) $(AM_DLLTOOLFLAGS) + DTDEF64=$(GENLIB) $(DLLTOOLFLAGS64) $(AM_DLLTOOLFLAGS) + else +- AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@ ++ AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@ --temp-prefix $$(basename $@ .a) + DLLTOOLFLAGSARM32=-m arm + DLLTOOLFLAGSARM64=-m arm64 + DLLTOOLFLAGS32=--as-flags=--32 -m i386 diff --git a/gnu/packages/patches/mingw-w64-reproducible-gendef.patch b/gnu/packages/patches/mingw-w64-reproducible-gendef.patch new file mode 100644 index 0000000000..ee676af7a0 --- /dev/null +++ b/gnu/packages/patches/mingw-w64-reproducible-gendef.patch @@ -0,0 +1,23 @@ +This following patch was originally found at the debian mingw-w64 team's +mingw-w64 repo located here: +https://salsa.debian.org/mingw-w64-team/mingw-w64.git + +Invoke the following in the aforementioned repo to see the original patch: + + $ git show 4974e2c:debian/patches/reproducible-gendef.patch + +Description: Drop __DATE__ from gendef +Author: Stephen Kitt <skitt@debian.org> + +This allows gendef to be built reproducibly. + +--- a/mingw-w64-tools/gendef/src/gendef.c ++++ b/mingw-w64-tools/gendef/src/gendef.c +@@ -196,7 +196,6 @@ + " By default, the output files are named after their DLL counterparts\n" + " gendef MYDLL.DLL Produces MYDLL.def\n" + " gendef - MYDLL.DLL Prints the exports to stdout\n"); +- fprintf (stderr, "\nBuilt on %s\n", __DATE__); + fprintf (stderr, "\nReport bugs to <mingw-w64-public@lists.sourceforge.net>\n"); + exit (0); + } diff --git a/gnu/packages/patches/pam-krb5-CVE-2020-10595.patch b/gnu/packages/patches/pam-krb5-CVE-2020-10595.patch new file mode 100644 index 0000000000..4ca061230f --- /dev/null +++ b/gnu/packages/patches/pam-krb5-CVE-2020-10595.patch @@ -0,0 +1,42 @@ +Fix CVE-2020-10595: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10595 + +Patch copied from upstream advisory: + +https://seclists.org/oss-sec/2020/q1/128 + +diff --git a/prompting.c b/prompting.c +index e985d95..d81054f 100644 +--- a/prompting.c ++++ b/prompting.c +@@ -314,26 +314,27 @@ pamk5_prompter_krb5(krb5_context context UNUSED, void *data, const char *name, + /* + * Reuse pam_prompts as a starting index and copy the data into the reply + * area of the krb5_prompt structs. + */ + pam_prompts = 0; + if (name != NULL && !args->silent) + pam_prompts++; + if (banner != NULL && !args->silent) + pam_prompts++; + for (i = 0; i < num_prompts; i++, pam_prompts++) { +- size_t len; ++ size_t len, allowed; + + if (resp[pam_prompts].resp == NULL) + goto cleanup; + len = strlen(resp[pam_prompts].resp); +- if (len > prompts[i].reply->length) ++ allowed = prompts[i].reply->length; ++ if (allowed == 0 || len > allowed - 1) + goto cleanup; + + /* + * The trailing nul is not included in length, but other applications + * expect it to be there. Therefore, we copy one more byte than the + * actual length of the password, but set length to just the length of + * the password. + */ + memcpy(prompts[i].reply->data, resp[pam_prompts].resp, len + 1); + prompts[i].reply->length = (unsigned int) len; diff --git a/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch b/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch new file mode 100644 index 0000000000..6cdddefd50 --- /dev/null +++ b/gnu/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch @@ -0,0 +1,34 @@ +Do not fail test on runtime warning like: RuntimeWarning: coroutine 'noop2' was +never awaited. This could be related to +https://github.com/aio-libs/aiohttp/commit/60f01cca36b9f9d8d35dd351384eaae2f8fd0d4b, +which does not fix this issue though. + +--- a/aiohttp/pytest_plugin.py 2019-10-09 18:52:31.000000000 +0200 ++++ b/aiohttp/pytest_plugin.py 2020-03-05 08:35:48.230396025 +0100 +@@ -120,15 +120,6 @@ + """ + with warnings.catch_warnings(record=True) as _warnings: + yield +- rw = ['{w.filename}:{w.lineno}:{w.message}'.format(w=w) +- for w in _warnings # type: ignore +- if w.category == RuntimeWarning] +- if rw: +- raise RuntimeError('{} Runtime Warning{},\n{}'.format( +- len(rw), +- '' if len(rw) == 1 else 's', +- '\n'.join(rw) +- )) + + + @contextlib.contextmanager +--- a/tests/test_pytest_plugin.py 2020-03-05 09:26:58.502284893 +0100 ++++ a/tests/test_pytest_plugin.py 2020-03-05 09:27:06.074284619 +0100 +@@ -170,7 +170,7 @@ + expected_outcomes = ( + {'failed': 0, 'passed': 2} + if IS_PYPY and bool(os.environ.get('PYTHONASYNCIODEBUG')) +- else {'failed': 1, 'passed': 1} ++ else {'failed': 0, 'passed': 2} + ) + """Under PyPy "coroutine 'foobar' was never awaited" does not happen.""" + result.assert_outcomes(**expected_outcomes) diff --git a/gnu/packages/patches/reprotest-support-guix.patch b/gnu/packages/patches/reprotest-support-guix.patch deleted file mode 100644 index 621c4e3359..0000000000 --- a/gnu/packages/patches/reprotest-support-guix.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 31bd4fe777cbff3ebca74115e5735a8b8f584fa7 Mon Sep 17 00:00:00 2001 -From: Vagrant Cascadian <vagrant@reproducible-builds.org> -Date: Thu, 6 Feb 2020 23:17:58 -0800 -Subject: [PATCH] Add support for GNU Guix. - ---- - reprotest/lib/adt_testbed.py | 2 ++ - reprotest/lib/system_interface/guix.py | 39 ++++++++++++++++++++++++++ - 2 files changed, 41 insertions(+) - create mode 100644 reprotest/lib/system_interface/guix.py - -diff --git a/reprotest/lib/adt_testbed.py b/reprotest/lib/adt_testbed.py -index ef704d6..60bf763 100644 ---- a/reprotest/lib/adt_testbed.py -+++ b/reprotest/lib/adt_testbed.py -@@ -40,6 +40,7 @@ import urllib.parse - from reprotest.lib.system_interface.debian import DebianInterface - from reprotest.lib.system_interface.arch import ArchInterface - from reprotest.lib.system_interface.fedora import FedoraInterface -+from reprotest.lib.system_interface.guix import GuixInterface - from reprotest.lib import adtlog - from reprotest.lib import VirtSubproc - -@@ -47,6 +48,7 @@ SYSTEM_INTERFACES = { - 'debian': DebianInterface, - 'arch': ArchInterface, - 'fedora': FedoraInterface, -+ 'guix': GuixInterface, - } - - timeouts = { -diff --git a/reprotest/lib/system_interface/guix.py b/reprotest/lib/system_interface/guix.py -new file mode 100644 -index 0000000..2b06104 ---- /dev/null -+++ b/reprotest/lib/system_interface/guix.py -@@ -0,0 +1,39 @@ -+# adt_testbed.py is part of autopkgtest -+# autopkgtest is a tool for testing Debian binary packages. The -+# system_interface module is an addition for reprotest to make -+# this module distro-agnostic -+# -+# autopkgtest is Copyright (C) 2006-2015 Canonical Ltd. -+# the system_interface module is Copyright (C) 2017 Santiago Torres-Arias -+# -+# This program 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 2 of the License, or -+# (at your option) any later version. -+# -+# This program 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 this program; if not, write to the Free Software -+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+# -+# See the file CREDITS for a full list of credits information (often -+# installed as /usr/share/doc/autopkgtest/CREDITS). -+import subprocess -+ -+from . import SystemInterface -+ -+class GuixInterface(SystemInterface): -+ """ -+ SystemInterface implementation for GNU Guix hosts. Contains commands that -+ are specific to the GNU Guix toolchain. -+ """ -+ -+ def get_arch(self): -+ return ['uname', '-m'] -+ -+ def can_query_packages(self): -+ return False --- -2.20.1 - diff --git a/gnu/packages/patches/sdl2-mesa-compat.patch b/gnu/packages/patches/sdl2-mesa-compat.patch deleted file mode 100644 index 8182e582e7..0000000000 --- a/gnu/packages/patches/sdl2-mesa-compat.patch +++ /dev/null @@ -1,21 +0,0 @@ -Do not include GLES header when OpenGL headers are already included. - -Taken from upstream: -https://hg.libsdl.org/SDL/rev/369b01006eb2 - -diff -r 4cbaffd0083b -r 369b01006eb2 src/video/SDL_video.c ---- a/src/video/SDL_video.c Fri Oct 11 06:18:24 2019 +0200 -+++ b/src/video/SDL_video.c Sat Oct 12 18:47:56 2019 +0200 -@@ -37,9 +37,9 @@ - #include "SDL_opengl.h" - #endif /* SDL_VIDEO_OPENGL */ - --#if SDL_VIDEO_OPENGL_ES -+#if SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL - #include "SDL_opengles.h" --#endif /* SDL_VIDEO_OPENGL_ES */ -+#endif /* SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL */ - - /* GL and GLES2 headers conflict on Linux 32 bits */ - #if SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL - diff --git a/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch b/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch new file mode 100644 index 0000000000..b4d5850f75 --- /dev/null +++ b/gnu/packages/patches/xplanet-1.3.1-cxx11-eof.patch @@ -0,0 +1,154 @@ +Author: Eric Bavier Date: 2020-01-13 +Url: https://notabug.org/bavier/guix-bavier/raw/master/bavier/patches/ ++xplanet-cxx11-eof.patch + +diff --git a/src/libannotate/addArcs.cpp b/src/libannotate/addArcs.cpp +index 2ee06c0..4fdb343 100644 +--- a/src/libannotate/addArcs.cpp ++++ b/src/libannotate/addArcs.cpp +@@ -258,7 +258,7 @@ addArcs(PlanetProperties *planetProperties, Planet *planet, + { + ifstream inFile(arcFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof()) + readArcFile(line, planet, view, projection, + planetProperties, annotationMap); + +@@ -292,7 +292,7 @@ addArcs(View *view, multimap<double, Annotation *> &annotationMap) + { + ifstream inFile(arcFile.c_str()); + char *line = new char[256]; +- while (inFile.getline (line, 256, '\n') != NULL) ++ while (!inFile.getline (line, 256, '\n').eof()) + readArcFile(line, NULL, view, NULL, NULL, annotationMap); + + inFile.close(); +diff --git a/src/libannotate/addMarkers.cpp b/src/libannotate/addMarkers.cpp +index dde51c1..b641e6a 100644 +--- a/src/libannotate/addMarkers.cpp ++++ b/src/libannotate/addMarkers.cpp +@@ -429,7 +429,7 @@ addMarkers(PlanetProperties *planetProperties, Planet *planet, + { + ifstream inFile(markerFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof()) + { + unsigned char color[3]; + memcpy(color, planetProperties->MarkerColor(), 3); +@@ -475,7 +475,7 @@ addMarkers(View *view, const int width, const int height, + { + ifstream inFile(markerFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof()) + { + unsigned char color[3]; + memcpy(color, options->Color(), 3); +diff --git a/src/libannotate/addSatellites.cpp b/src/libannotate/addSatellites.cpp +index 2634339..6d9d378 100644 +--- a/src/libannotate/addSatellites.cpp ++++ b/src/libannotate/addSatellites.cpp +@@ -488,10 +488,10 @@ loadSatelliteVector(PlanetProperties *planetProperties) + { + ifstream inFile(tleFile.c_str()); + char lines[3][80]; +- while (inFile.getline(lines[0], 80) != NULL) ++ while (!inFile.getline(lines[0], 80).eof()) + { +- if ((inFile.getline(lines[1], 80) == NULL) +- || (inFile.getline(lines[2], 80) == NULL)) ++ if ((inFile.getline(lines[1], 80).eof()) ++ || (inFile.getline(lines[2], 80).eof())) + { + ostringstream errStr; + errStr << "Malformed TLE file (" << tleFile << ")?\n"; +@@ -542,7 +542,7 @@ addSatellites(PlanetProperties *planetProperties, Planet *planet, + { + ifstream inFile(satFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline (line, MAX_LINE_LENGTH, '\n').eof()) + readSatelliteFile(line, planet, view, projection, + planetProperties, annotationMap); + +diff --git a/src/libannotate/addSpiceObjects.cpp b/src/libannotate/addSpiceObjects.cpp +index 67b752c..eeadf6e 100644 +--- a/src/libannotate/addSpiceObjects.cpp ++++ b/src/libannotate/addSpiceObjects.cpp +@@ -524,7 +524,7 @@ processSpiceKernels(const bool load) + { + ifstream inFile(kernelFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + { + int ii = 0; + while (isDelimiter(line[ii])) +@@ -576,7 +576,7 @@ addSpiceObjects(map<double, Planet *> &planetsFromSunMap, + { + ifstream inFile(spiceFile.c_str()); + char *line = new char[MAX_LINE_LENGTH]; +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + readSpiceFile(line, planetsFromSunMap, view, projection, + annotationMap); + inFile.close(); +diff --git a/src/libmultiple/RayleighScattering.cpp b/src/libmultiple/RayleighScattering.cpp +index d885173..1be8ece 100644 +--- a/src/libmultiple/RayleighScattering.cpp ++++ b/src/libmultiple/RayleighScattering.cpp +@@ -369,7 +369,7 @@ RayleighScattering::readConfigFile(string configFile) + + diskTemplate_.clear(); + limbTemplate_.clear(); +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + { + int i = 0; + while (isDelimiter(line[i])) +@@ -439,7 +439,7 @@ RayleighScattering::readBlock(ifstream &inFile, + values.clear(); + + char line[MAX_LINE_LENGTH]; +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + { + int i = 0; + while (isDelimiter(line[i])) +@@ -470,7 +470,7 @@ RayleighScattering::readValue(ifstream &inFile, + double &value) + { + char line[MAX_LINE_LENGTH]; +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + { + int i = 0; + while (isDelimiter(line[i])) +diff --git a/src/libmultiple/drawStars.cpp b/src/libmultiple/drawStars.cpp +index ff07c49..aabdfed 100644 +--- a/src/libmultiple/drawStars.cpp ++++ b/src/libmultiple/drawStars.cpp +@@ -41,7 +41,7 @@ drawStars(DisplayBase *display, View *view) + ifstream inFile(starMap.c_str()); + + char line[MAX_LINE_LENGTH]; +- while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL) ++ while (!inFile.getline(line, MAX_LINE_LENGTH, '\n').eof()) + { + if (line[0] == '#') continue; + +diff --git a/src/readConfig.cpp b/src/readConfig.cpp +index cc1964f..4650527 100644 +--- a/src/readConfig.cpp ++++ b/src/readConfig.cpp +@@ -550,7 +550,7 @@ readConfigFile(string configFile, PlanetProperties *planetProperties[]) + + ifstream inFile(configFile.c_str()); + char *line = new char[256]; +- while (inFile.getline(line, 256, '\n') != NULL) ++ while (!inFile.getline(line, 256, '\n').eof()) + readConfig(line, planetProperties); + + // This condition will only be true if [default] is the only diff --git a/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch new file mode 100644 index 0000000000..bf52b0ca27 --- /dev/null +++ b/gnu/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch @@ -0,0 +1,16 @@ +Origin: $NetBSD: patch-src_libdisplay_DisplayOutput.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $ + +Modified by: R Veera Kumar <vkor@vkten.in> 2020-03-28; change to patch -p1 + +diff -uNr xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp +--- xplanet-1.3.1/src/libdisplay/DisplayOutput.cpp 2013-02-17 01:07:47.000000000 +0530 ++++ xplanet-1.3.1.new/src/libdisplay/DisplayOutput.cpp 2020-03-28 22:08:44.432499170 +0530 +@@ -51,7 +51,7 @@ + string outputFilename = options->OutputBase(); + int startIndex = options->OutputStartIndex(); + int stopIndex = options->NumTimes() + startIndex - 1; +- if (stopIndex > 1) ++ if (stopIndex > 0) + { + const int digits = (int) (log10((double) stopIndex) + 1); + char buffer[64]; diff --git a/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch new file mode 100644 index 0000000000..58efc906dc --- /dev/null +++ b/gnu/packages/patches/xplanet-1.3.1-libimage_gif.c.patch @@ -0,0 +1,54 @@ +Origin: $NetBSD: patch-src_libimage_gif.c,v 1.4 2019/11/16 17:36:28 ng0 Exp $ + +Modified by: R Veera Kumar <vkor@vkten.in> 2020-03-28; change to patch -p1 + +diff -uNr xplanet-1.3.1/src/libimage/gif.c xplanet-1.3.1.new/src/libimage/gif.c +--- xplanet-1.3.1/src/libimage/gif.c 2013-02-17 01:07:47.000000000 +0530 ++++ xplanet-1.3.1.new/src/libimage/gif.c 2020-03-28 22:15:24.444309199 +0530 +@@ -21,7 +21,7 @@ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +- ++#include <stdbool.h> + #include <gif_lib.h> + + /* +@@ -178,8 +178,12 @@ + *BufferP++ = ColorMapEntry->Blue; + } + } +- ++ ++#if GIFLIB_MAJOR >= 5 ++ if (DGifCloseFile(GifFile, NULL) == GIF_ERROR) { ++#else + if (DGifCloseFile(GifFile) == GIF_ERROR) { ++#endif + return(0); + } + +@@ -493,7 +497,11 @@ + static void QuitGifError(GifFileType *GifFile) + { + fprintf(stderr, "Error writing GIF file\n"); ++#if GIFLIB_MAJOR >= 5 ++ if (GifFile != NULL) EGifCloseFile(GifFile, NULL); ++#else + if (GifFile != NULL) EGifCloseFile(GifFile); ++#endif + } + + int +@@ -589,7 +597,11 @@ + Ptr += width; + } + ++#if GIFLIB_MAJOR >= 5 ++ if (EGifCloseFile(GifFile, NULL) == GIF_ERROR) ++#else + if (EGifCloseFile(GifFile) == GIF_ERROR) ++#endif + + { + QuitGifError(GifFile); diff --git a/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch new file mode 100644 index 0000000000..a47623fa00 --- /dev/null +++ b/gnu/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch @@ -0,0 +1,15 @@ +$NetBSD: patch-src_xpUtil-Add2017LeapSecond.cpp,v 1.1 2019/11/16 17:36:28 ng0 Exp $ + +Modified by: R Veera Kumar <vkor@vkten.in> 2020-03-28; change to patch -p1 + +diff -uNr xplanet-1.3.1/src/xpUtil.cpp xplanet-1.3.1.new/src/xpUtil.cpp +--- xplanet-1.3.1/src/xpUtil.cpp 2016-03-12 08:36:47.000000000 +0530 ++++ xplanet-1.3.1.new/src/xpUtil.cpp 2020-03-28 22:19:10.629891166 +0530 +@@ -434,6 +434,7 @@ + if (jd >= toJulian(2009, 1, 1, 0, 0, 0)) delta_at++; // 34 + if (jd >= toJulian(2012, 7, 1, 0, 0, 0)) delta_at++; // 35 + if (jd >= toJulian(2015, 7, 1, 0, 0, 0)) delta_at++; // 36 ++ if (jd >= toJulian(2017, 1, 1, 0, 0, 0)) delta_at++; // 37 + + const double J2000 = toJulian(2000, 1, 1, 12, 0, 0); + const double m = m0 + m1 * (jd - J2000) * 86400; diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm index e01ebe72ec..0c46a62bf7 100644 --- a/gnu/packages/patchutils.scm +++ b/gnu/packages/patchutils.scm @@ -111,7 +111,7 @@ listing the files modified by a patch.") (base32 "01vfvk4pqigahx82fhaaffg921ivd3k7rylz1yfvy4zbdyd32jri")))) (build-system gnu-build-system) (native-inputs - `(("gettext" ,gnu-gettext))) + `(("gettext" ,gettext-minimal))) (inputs `(("perl" ,perl) ("less" ,less) ("file" ,file) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 590945caff..1d1b73f897 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -62,7 +62,8 @@ #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config) #:use-module (gnu packages readline) - #:use-module (gnu packages textutils)) + #:use-module (gnu packages textutils) + #:use-module (gnu packages web)) ;;; ;;; Please: Try to add new module packages in alphabetic order. @@ -354,6 +355,37 @@ of general interest as follows: @end itemize") (license (package-license perl)))) +(define-public perl-authen-dechpwd + (package + (name "perl-authen-dechpwd") + (version "2.007") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-DecHpwd-" + version ".tar.gz")) + (sha256 + (base32 + "0xzind7zr2prjq3zbs2j18snfpshd4xrd7igv4kp67xl0axr6fpl")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-data-integer" ,perl-data-integer) + ("perl-digest-crc" ,perl-digest-crc) + ("perl-scalar-string" ,perl-scalar-string))) + (home-page "https://metacpan.org/release/Authen-DecHpwd") + (synopsis "DEC VMS password hashing") + (description "@code{Authen::DecHpwd} implements the +SYS$HASH_PASSWORD password hashing function from VMS (also known as +LGI$HPWD) and some associated VMS username and password handling +functions. The password hashing function is implemented in XS with a +pure Perl backup version for systems that cannot handle XS.") + (license gpl2+))) + (define-public perl-autovivification (package (name "perl-autovivification") @@ -1297,6 +1329,34 @@ that original method. @code{around} is run in place of the original method, with a hook to easily call that original method.") (license (package-license perl)))) +(define-public perl-class-mix + (package + (name "perl-class-mix") + (version "0.006") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Class-Mix-" + version ".tar.gz")) + (sha256 + (base32 + "02vwzzqn1s24g525arbrjh9s9j0y1inp3wbr972gh51ri51zciw7")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-params-classify" ,perl-params-classify))) + (home-page "https://metacpan.org/release/Class-Mix") + (synopsis "Dynamic class mixing") + (description "The @code{mix_class} function provided by this +module dynamically generates anonymous classes with specified +inheritance. This is useful where an incomplete class requires use of +a mixin in order to become instantiable.") + (license perl-license))) + (define-public perl-class-singleton (package (name "perl-class-singleton") @@ -1789,6 +1849,40 @@ CPAN::Meta object are present.") versa.") (license (package-license perl)))) +(define-public perl-crypt-eksblowfish + (package + (name "perl-crypt-eksblowfish") + (version "0.009") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Crypt-Eksblowfish-" + version ".tar.gz")) + (sha256 + (base32 + "0k01aw3qb2s4m1w4dqsc9cycyry1zg3wabdym4vp4421b1ni5irw")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-class-mix" ,perl-class-mix))) + (home-page "https://metacpan.org/release/Crypt-Eksblowfish") + (synopsis "The Eksblowfish block cipher") + (description "Eksblowfish is a variant of the Blowfish cipher, +modified to make the key setup very expensive. This doesn't make it +significantly cryptographically stronger but is intended to hinder +brute-force attacks. Eksblowfish is a parameterised (family-keyed) +cipher. It takes a cost parameter that controls how expensive the key +scheduling is. It also takes a family key, known as the \"salt\". +Cost and salt parameters together define a cipher family. Within each +family, the key determines the encryption function. This distribution +also includes an implementation of @code{bcrypt}, the Unix crypt() +password hashing algorithm based on Eksblowfish.") + (license perl-license))) + (define-public perl-crypt-randpasswd (package (name "perl-crypt-randpasswd") @@ -1813,6 +1907,36 @@ contained in Appendix A of FIPS Publication 181, \"Standard for Automated Password Generator\".") (license (package-license perl)))) +(define-public perl-crypt-rijndael + (package + (name "perl-crypt-rijndael") + (version "1.14") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Rijndael-" + version ".tar.gz")) + (sha256 + (base32 + "03l5nwq97a8q9na4dpd4m3r7vrwpranx225vw8xm40w7zvgw6lb4")))) + (build-system perl-build-system) + (home-page "https://metacpan.org/release/Crypt-Rijndael") + (synopsis "Crypt::CBC compliant Rijndael encryption module") + (description "This module implements the Rijndael cipher which has +been selected as the Advanced Encryption Standard. The keysize for +Rijndael is 32 bytes. The blocksize is 16 bytes (128 bits). The +supported encryption modes are: + +@itemize +@item @code{MODE_CBC}---Cipher Block Chaining +@item @code{MODE_CFB}---Cipher feedback +@item @code{MODE_CTR}---Counter mode +@item @code{MODE_ECB}---Electronic cookbook mode +@item @code{MODE_OFB}---Output feedback +@end itemize") + (license gpl3))) + (define-public perl-crypt-rc4 (package (name "perl-crypt-rc4") @@ -1947,6 +2071,71 @@ input.") they are copies of each other.") (license (package-license perl)))) +(define-public perl-data-entropy + (package + (name "perl-data-entropy") + (version "0.007") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Entropy-" + version ".tar.gz")) + (sha256 + (base32 + "1r176jjzir2zg5kidx85f7vzi6jsw7ci9vd4kvbr9183lfhw8496")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-crypt-rijndael" ,perl-crypt-rijndael) + ("perl-data-float" ,perl-data-float) + ("perl-http-lite" ,perl-http-lite) + ("perl-params-classify" ,perl-params-classify))) + (home-page "https://metacpan.org/release/Data-Entropy") + (synopsis "Entropy (randomness) management") + (description "@code{Data::Entropy} provides modules relating to +the generation and use of entropy. The Data::Entropy::Source class +manages the entropy coming from a particular source. This class acts +as a layer over a raw entropy source, which may be a normal I/O handle +or a special-purpose class. The Data::Entropy::RawSource::* classes +provide fundamental sources of entropy. The sources specially +supported are an OS-supplied entropy collector, downloads from servers +on the Internet, and cryptographic fake entropy. The +Data::Entropy::Algorithms module contains a collection of fundamental +algorithms that use entropy. There are random number generators and +functions to shuffle arrays.") + (license perl-license))) + +(define-public perl-data-integer + (package + (name "perl-data-integer") + (version "0.006") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Integer-" + version ".tar.gz")) + (sha256 + (base32 + "0m53zxhx9sn49yqh7azlpyy9m65g54v8cd2ha98y77337gg7xdv3")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "https://metacpan.org/release/Data-Integer") + (synopsis "Details of the native integer data type") + (description "This module is about the native integer numerical +data type. A native integer is one of the types of datum that can +appear in the numeric part of a Perl scalar. This module supplies +constants describing the native integer type. Both signed and +unsigned representations are handled.") + (license perl-license))) + (define-public perl-data-uniqid (package (name "perl-data-uniqid") @@ -2027,6 +2216,34 @@ statement. It handles self-referential structures correctly.") indentation and newlines plus sub deparsing.") (license (package-license perl)))) +(define-public perl-data-float + (package + (name "perl-data-float") + (version "0.013") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Float-" + version ".tar.gz")) + (sha256 + (base32 + "12ji4yf3nc965rqqgfhr96w7irpm6n1g15nivfxvhc49hlym5cg2")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "https://metacpan.org/release/Data-Float") + (synopsis "Details of the floating point data type") + (description "@code{Data::Float} is about the native floating +point numerical data type. A floating point number is one of the +types of datum that can appear in the numeric part of a Perl scalar. +This module supplies constants describing the native floating point +type, classification functions and functions to manipulate floating +point values at a low level.") + (license perl-license))) + (define-public perl-data-optlist (package (name "perl-data-optlist") @@ -2815,6 +3032,39 @@ format of RSS 1.0. It can be used to parse these formats in order to create the appropriate objects.") (license (package-license perl)))) +(define-public perl-devel-callchecker + (package + (name "perl-devel-callchecker") + (version "0.008") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Devel-CallChecker-" + version ".tar.gz")) + (sha256 + (base32 + "1p0ij2k2i81zhl7064h9ghld1w5xy2zsbghkpdzm2hjryl5lwn2x")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-b-hooks-op-check" ,perl-b-hooks-op-check) + ("perl-dynaloader-functions" ,perl-dynaloader-functions))) + (home-page "https://metacpan.org/release/Devel-CallChecker") + (synopsis "Custom op checking attached to subroutines") + (description "This module makes some new features of the Perl +5.14.0 C API available to XS modules running on older versions of +Perl. The features are centred around the function +@code{cv_set_call_checker}, which allows XS code to attach a magical +annotation to a Perl subroutine, resulting in resolvable calls to that +subroutine being mutated at compile time by arbitrary C code. This +module makes @code{cv_set_call_checker} and several supporting +functions available.") + (license perl-license))) + (define-public perl-devel-caller (package (name "perl-devel-caller") @@ -3123,6 +3373,27 @@ each stack frame.") (description "Devel::Symdump provides access to the perl symbol table.") (license (package-license perl)))) +(define-public perl-digest-crc + (package + (name "perl-digest-crc") + (version "0.22") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/O/OL/OLIMAUL/Digest-CRC-" + version ".2.tar.gz")) + (sha256 + (base32 + "1jvqcyrbi11cj3vlfc9sq2g6rv9caizyjkjqsksvmxn6zgvm0aqi")))) + (build-system perl-build-system) + (home-page "https://metacpan.org/release/Digest-CRC") + (synopsis "Generic CRC functions") + (description "The @code{Digest::CRC} module calculates CRC sums of +all sorts. It contains wrapper functions with the correct parameters +for CRC-CCITT, CRC-16 and CRC-32.") + (license public-domain))) + (define-public perl-digest-hmac (package (name "perl-digest-hmac") @@ -3212,6 +3483,32 @@ SHA-1 message digest algorithm for use by Perl programs.") modules separately and deal with them after the module is done installing.") (license (package-license perl)))) +(define-public perl-dynaloader-functions + (package + (name "perl-dynaloader-functions") + (version "0.003") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/DynaLoader-Functions-" + version ".tar.gz")) + (sha256 + (base32 + "10x13q920j9kid7vmbj6fiaz153042dy4mwdmpzrdrxw2ir39ciy")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "https://metacpan.org/release/DynaLoader-Functions") + (synopsis "Deconstructed dynamic C library loading") + (description "This module provides a function-based interface to +dynamic loading as used by Perl. Some details of dynamic loading are +very platform-dependent, so correct use of these functions requires +the programmer to be mindfulof the space of platform variations.") + (license perl-license))) + (define-public perl-encode-detect (package (name "perl-encode-detect") @@ -7251,6 +7548,40 @@ operations that can be done in parallel where the number of processes to be forked off should be limited.") (license (package-license perl)))) +(define-public perl-params-classify + (package + (name "perl-params-classify") + (version "0.015") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Params-Classify-" + version ".tar.gz")) + (sha256 + (base32 + "052r198xyrsv8wz21gijdigz2cgnidsa37nvyfzdiz4rv1fc33ir")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (propagated-inputs + `(("perl-devel-callchecker" ,perl-devel-callchecker))) + (home-page "https://metacpan.org/release/Params-Classify") + (synopsis "Argument type classification") + (description "This module provides various type-testing functions. +These are intended for functions that care what type of data they are +operating on. There are two flavours of function. Functions of the +first flavour provide type classification only. Functions of the +second flavour also check that an argument is of an expected type. +The type enforcement functions handle only the simplest requirements +for arguments of the types handled by the classification functions. +Enforcement of more complex types may be built using the +classification functions, or it may be more convenient to use a module +designed for the more complex job, such as @code{Params::Validate}") + (license perl-license))) + (define-public perl-params-util (package (name "perl-params-util") @@ -7752,6 +8083,37 @@ and @code{deserialize_regexp}.") safely on things that may not be objects.") (license (package-license perl)))) +(define-public perl-scalar-string + (package + (name "perl-scalar-string") + (version "0.003") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Scalar-String-" + version ".tar.gz")) + (sha256 + (base32 + "0llbsqk7rsg9p7l1f4yk6iv7wij91gvavprsqhnb04w7nz4ifjpm")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-pod" ,perl-test-pod) + ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (home-page "https://metacpan.org/release/Scalar-String") + (synopsis "String aspects of scalars") + (description "@code{Scalar::String} is about the string part of +plain Perl scalars. A scalar has a string value, which is notionally +a sequence of Unicode codepoints but may be internally encoded in +either ISO-8859-1 or UTF-8. In places, more so in older versions of +Perl, the internal encoding shows through. To fully understand Perl +strings it is necessary to understand these implementation details. +This module provides functions to classify a string by encoding and to +encode a string in a desired way. The module is implemented in XS, +with a pure Perl backup version for systems that cannot handle XS.") + (license perl-license))) + (define-public perl-scope-guard (package (name "perl-scope-guard") diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 31cf75df96..a2a882f2a7 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Sebastian Schott <sschott@mailbox.org> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -483,6 +484,10 @@ photographic equipment.") (string-append (assoc-ref inputs "ilmbase") "/include/OpenEXR:" (or (getenv "CPATH") ""))) #t))))) + (native-inputs + `(("intltool" ,intltool) + ("perl" ,perl) + ("pkg-config" ,pkg-config))) (inputs `(("libxslt" ,libxslt) ("libxml2" ,libxml2) @@ -502,9 +507,6 @@ photographic equipment.") ("ilmbase" ,ilmbase) ("libsoup" ,libsoup) ("python-jsonschema" ,python-jsonschema) - ("intltool" ,intltool) - ("perl" ,perl) - ("pkg-config" ,pkg-config) ("libwebp" ,libwebp) ("lensfun" ,lensfun) ("librsvg" ,librsvg) @@ -534,7 +536,7 @@ and enhance them.") "1l925qslp98gg7yzmgps10h6dq0nb60wbfk345anlxsv0g2ifizr")))) (build-system cmake-build-system) (native-inputs - `(("gettext" ,gnu-gettext) + `(("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) (inputs `(("boost" ,boost) diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 18e557611e..f7655c3535 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net> ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -71,11 +72,11 @@ (build-system gnu-build-system) (inputs `(("psutils" ,psutils) - ("groff" ,groff) ("gv" ,gv) ("imagemagick" ,imagemagick))) (native-inputs `(("gperf" ,gperf) + ("groff" ,groff) ("perl" ,perl))) (arguments '(#:phases diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index 70a5b1e452..22b9ea8df5 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,26 +38,39 @@ (define-public python-coveralls (package (name "python-coveralls") - (version "1.6.0") + (version "1.11.1") + (home-page "https://github.com/coveralls-clients/coveralls-python") (source (origin - (method url-fetch) - (uri (pypi-uri "coveralls" version)) + ;; The PyPI release lacks tests, so we pull from git instead. + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1dswhd2q2412wrldi97hdwlsymj9pm79v7pvjx53z5wh2d33w8bg")))) + "1zr1lqdjcfwj6wcx2449mzzjq8bbhwnqcm5vdif5s8hlz35bjxkp")))) (build-system python-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'check 'disable-git-test + (lambda _ + ;; Remove test that requires 'git' and the full checkout. + (delete-file "tests/git_test.py") + #t)) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (invoke "pytest" "-vv") + (format #t "test suite not run~%")) + #t))))) (propagated-inputs `(("python-coverage" ,python-coverage) ("python-docopt" ,python-docopt) ("python-pyyaml" ,python-pyyaml) - ("python-requests" ,python-requests) - ("python-sh" ,python-sh) - ("python-urllib3" ,python-urllib3))) + ("python-requests" ,python-requests))) (native-inputs `(("python-mock" ,python-mock) ("python-pytest" ,python-pytest))) - (home-page "https://github.com/coveralls-clients/coveralls-python") (synopsis "Show coverage stats online via coveralls.io") (description "Coveralls.io is a service for publishing code coverage statistics online. diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 26e2fe04ec..3686432a1d 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -90,10 +90,23 @@ (uri (pypi-uri "aiohttp" version)) (sha256 (base32 - "09pkw6f1790prnrq0k8cqgnf1qy57ll8lpmc6kld09q7zw4vi6i5")))) + "09pkw6f1790prnrq0k8cqgnf1qy57ll8lpmc6kld09q7zw4vi6i5")) + (patches (search-patches "python-aiohttp-3.6.2-no-warning-fail.patch")))) + (build-system python-build-system) (arguments - `(#:tests? #f)) ;missing pytest-timeout + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + ;; disable brotli tests, because we’re not providing that optional library + (substitute* "tests/test_http_parser.py" + ((" async def test_feed_eof_no_err_brotli") + " @pytest.mark.xfail\n async def test_feed_eof_no_err_brotli")) + ;; make sure the timestamp of this file is > 1990, because a few + ;; tests like test_static_file_if_modified_since_past_date depend on it + (invoke "touch" "-d" "2020-01-01" "tests/data.unknown_mime_type") + #t))))) (propagated-inputs `(("python-aiodns" ,python-aiodns) ("python-async-timeout" ,python-async-timeout) @@ -102,6 +115,15 @@ ("python-idna-ssl" ,python-idna-ssl) ("python-multidict" ,python-multidict) ("python-yarl" ,python-yarl))) + (native-inputs + `(("python-pytest-runner" ,python-pytest-runner) + ("python-pytest-xdit" ,python-pytest-xdist) + ("python-pytest-timeout" ,python-pytest-timeout) + ("python-pytest-forked" ,python-pytest-forked) + ("python-pytest-mock" ,python-pytest-mock) + ("gunicorn" ,gunicorn-bootstrap) + ("python-freezegun" ,python-freezegun) + ("python-async-generator" ,python-async-generator))) (home-page "https://github.com/aio-libs/aiohttp/") (synopsis "Async HTTP client/server framework (asyncio)") (description "@code{aiohttp} is an asynchronous HTTP client/server @@ -3390,14 +3412,14 @@ hard or impossible to fix in cssselect.") (define-public gunicorn (package (name "gunicorn") - (version "20.0.0") + (version "20.0.4") (source (origin (method url-fetch) (uri (pypi-uri "gunicorn" version)) (sha256 (base32 - "0l1zm8a0vz8ws3lkn8q9a0f93ipdzyvlf2zlwdj5xyadh6jdwsgg")))) + "09n6fc019bgrvph1s5h1lwhn2avcsprw6ncd203qhra3i8mvn10r")))) (outputs '("out" "doc")) (build-system python-build-system) (arguments @@ -3413,11 +3435,6 @@ hard or impossible to fix in cssselect.") (lambda _ (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH"))) - ;; Remove test modules failing due to libc not found due to - ;; section '.dynamic' not found in libc.so - (delete-file "tests/test_arbiter.py") - (delete-file "tests/test_config.py") - (delete-file "tests/test_sock.py") (invoke "pytest"))) (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) @@ -3452,6 +3469,16 @@ various web frameworks, simply implemented, light on server resources, and fairly speedy.") (license license:expat))) +;; break cyclic dependency for python-aiohttp, which depends on gunicorn for +;; its tests +(define-public gunicorn-bootstrap + (package + (inherit gunicorn) + (name "gunicorn") + (arguments `(#:tests? #f)) + (properties '((hidden? . #t))) + (native-inputs `()))) + (define-public python-translation-finder (package (name "python-translation-finder") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index a917001dc0..9703301da0 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -75,6 +75,7 @@ ;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com> ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> +;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1108,6 +1109,207 @@ helpers.") (define-public python2-humanfriendly (package-with-python2 python-humanfriendly)) +(define-public python-textparser + (package + (name "python-textparser") + (version "0.23.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "textparser" version)) + (sha256 + (base32 + "0w5lyhrsvzs5a9q1l3sjgxgljrvd3ybf796w93kc39wayzvd02gh")))) + (build-system python-build-system) + (home-page "https://github.com/eerimoq/textparser") + (synopsis "Fast text parser for Python") + (description "This library provides a text parser written in the Python +language. It aims to be fast.") + (license license:expat))) + +(define-public python-aenum + (package + (name "python-aenum") + (version "2.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aenum" version)) + (sha256 + (base32 + "1s3008rklv4n1kvmq6xdbdfyrpl0gf1rhqasmd27s5kwyjmlqcx4")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (format #t "current working dir ~s~%" (getcwd)) + (setenv "PYTHONPATH" + (string-append ".:" (getenv "PYTHONPATH"))) + ;; We must run the test suite module directly, as it + ;; fails to define the 'tempdir' variable in scope for + ;; the tests otherwise + ;; (see:https://bitbucket.org/stoneleaf/aenum/\ + ;; issues/32/running-tests-with-python-setuppy-test). + (invoke "python3" "aenum/test.py") + ;; This one fails with "NameError: name + ;; 'test_pickle_dump_load' is not defined" (see: + ;; https://bitbucket.org/stoneleaf/aenum/issues/33 + ;; /error-running-the-test_v3py-test-suite). + ;; (invoke "python3" "aenum/test_v3.py") + #t))))) + (home-page "https://bitbucket.org/stoneleaf/aenum") + (synopsis "Advanced enumerations, namedtuples and constants for Python") + (description "The aenum library includes an @code{Enum} base class, a +metaclass-based @code{NamedTuple} implementation and a @code{NamedConstant} +class.") + (license license:bsd-3))) + +(define-public python-can + (package + (name "python-can") + (version "3.3.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-can" version)) + (sha256 + (base32 + "0bkbxi45sckzir6s0j3h01pkfn4vkz3ymih2zjp7zw77wz0vbvsz")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-broken-tests + ;; The tests try to run two scripts it expects should be + ;; in PATH, but they aren't at this time (see: + ;; https://github.com/hardbyte/python-can/issues/805). + (lambda _ + (substitute* "test/test_scripts.py" + (("\"can_logger\\.py --help\"") "") + (("\"can_player\\.py --help\"") "")) + #t))))) + (propagated-inputs + `(("python-aenum" ,python-aenum) + ("python-wrapt" ,python-wrapt))) + (native-inputs + `(("python-codecov" ,python-codecov) + ("python-future" ,python-future) + ("python-hypothesis" ,python-hypothesis) + ("python-mock" ,python-mock) + ("python-pyserial" ,python-pyserial) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-runner" ,python-pytest-runner) + ("python-pytest-timeout" ,python-pytest-timeout))) + (home-page "https://github.com/hardbyte/python-can") + (synopsis "Controller Area Network (CAN) interface module for Python") + (description "This package defines the @code{can} module, which provides +controller area network (CAN) support for Python developers; providing common +abstractions to different hardware devices, and a suite of utilities for +sending and receiving messages on a CAN bus.") + (license license:gpl3+))) + +(define-public python-diskcache + (package + (name "python-diskcache") + (version "4.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "diskcache" version)) + (sha256 + (base32 + "1q2wz5sj16zgyy1zpq516qgbnfwsavk1pl2qks0f4r62z5cmmvmw")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;test suite not included in the release + (home-page "http://www.grantjenks.com/docs/diskcache/") + (synopsis "Disk and file backed cache library") + (description "DiskCache is a disk and file backed persistent cache.") + (license license:asl2.0))) + +(define-public python-bitstruct + (package + (name "python-bitstruct") + (version "8.9.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bitstruct" version)) + (sha256 + (base32 + "1fpc1qh1vss05ap29xvhjp200fm0q4pvgcjl0qpryh7ay6xgr5vx")))) + (build-system python-build-system) + (home-page "https://github.com/eerimoq/bitstruct") + (synopsis "Python values to and C bit field structs converter") + (description "This module performs conversions between Python values and C +bit field structs represented as Python byte strings. It is intended to have +a similar interface as the @code{struct} module from Python, but working on +bits instead of primitive data types like @code{char}, @code{int}, etc.") + (license license:expat))) + +(define-public python-cantools + (package + (name "python-cantools") + (version "33.1.1") + (source + (origin + ;; We take the sources from the Git repository as the documentation is + ;; not included with the PyPI archive. + (method git-fetch) + (uri (git-reference + (url "https://github.com/eerimoq/cantools.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1aad137yd8b4jkfvlv812qsxmxcgra7g1p4wbxfsjy1cbf8fbq9q")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-doc + (lambda _ + ;; See: https://github.com/eerimoq/cantools/issues/190. + (substitute* "README.rst" + (("https://github.com/eerimoq/cantools/raw/master\ +/docs/monitor.png") + "monitor.png")) + (with-directory-excursion "docs" + (invoke "make" "man" "info")))) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (info (string-append out "/share/info")) + (man1 (string-append out "/share/man/man1"))) + (format #t "CWD: ~s~%" (getcwd)) + (install-file "docs/_build/texinfo/cantools.info" info) + (install-file "docs/_build/man/cantools.1" man1) + #t)))))) + (native-inputs + `(("sphinx" ,python-sphinx) + ("texinfo" ,texinfo))) + (propagated-inputs + `(("python-bitstruct" ,python-bitstruct) + ("python-can" ,python-can) + ("python-diskcache" ,python-diskcache) + ("python-textparser" ,python-textparser))) + (home-page "https://github.com/eerimoq/cantools") + (synopsis "Tools for the Controller Area Network (CAN) bus protocol") + (description "This package includes Controller Area Network (CAN) related +tools that can be used to: +@itemize +@item parse DBC, KCD, SYM, ARXML 4 and CDD files +@item encode and decode CAN messages +@item multiplex simple and extended signals +@item diagnose DID encoding and decoding +@item dump the CAN decoder output +@item test CAN nodes +@item generate C source code +@item monitor the CAN bus +@end itemize") + (license license:expat))) + (define-public python-capturer (package (name "python-capturer") @@ -2594,14 +2796,14 @@ environments and back.") (define-public python-pyyaml (package (name "python-pyyaml") - (version "5.3") + (version "5.3.1") (source (origin (method url-fetch) (uri (pypi-uri "PyYAML" version)) (sha256 (base32 - "058nd4p8f25wwzy2aiwh18wcrdm6663cqbfdkgjp8y9cp7ampx79")))) + "0pb4zvkfxfijkpgd1b86xjsqql97ssf1knbd1v53wkg1qm9cgsmq")))) (build-system python-build-system) (inputs `(("libyaml" ,libyaml))) @@ -5714,6 +5916,112 @@ away.") (define-public python2-ipython-genutils (package-with-python2 python-ipython-genutils)) +(define-public python-ipyparallel + (package + (name "python-ipyparallel") + (version "6.2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ipyparallel" version)) + (sha256 + (base32 + "0rf0dbpxf5z82bw8lsjj45r3wdd4wc74anz4wiiaf2rbjqlb1ivn")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; RuntimeError: IO Loop failed to start + #:phases + (modify-phases %standard-phases + (add-before 'check 'prepare-for-tests + (lambda _ + (setenv "HOME" (getcwd)) + #t))))) + (propagated-inputs + `(("python-dateutil" ,python-dateutil) + ("python-decorator" ,python-decorator) + ("python-ipykernel" ,python-ipykernel) + ("python-ipython" ,python-ipython) + ("python-ipython-genutils" ,python-ipython-genutils) + ("python-jupyter-client" ,python-jupyter-client) + ("python-pyzmq" ,python-pyzmq) + ("python-tornado" ,python-tornado) + ("python-traitlets" ,python-traitlets))) + (native-inputs + `(("python-ipython" ,python-ipython) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-testpath" ,python-testpath))) + (home-page "https://ipython.org/") + (synopsis "Interactive Parallel Computing with IPython") + (description + "@code{ipyparallel} is a Python package and collection of CLI scripts for +controlling clusters for Jupyter. @code{ipyparallel} contains the following +CLI scripts: +@enumerate +@item ipcluster - start/stop a cluster +@item ipcontroller - start a scheduler +@item ipengine - start an engine +@end enumerate") + (license license:bsd-3))) + +(define-public python2-ipyparallel + (let ((ipyparallel (package-with-python2 python-ipyparallel))) + (package + (inherit ipyparallel) + (propagated-inputs + `(("python2-futures" ,python2-futures) + ,@(package-propagated-inputs ipyparallel)))))) + +(define-public python-ipython-cluster-helper + (package + (name "python-ipython-cluster-helper") + (version "0.6.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ipython-cluster-helper" version)) + (sha256 + (base32 + "1l6mlwxlkxpbvawfwk6qffich7ahg9hq2bxfissgz6144p3k4arj")) + (modules '((guix build utils))) + (snippet + '(begin (substitute* "requirements.txt" + (("ipython.*") "ipython\n")) + #t)))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; Test suite can't find IPython. + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (if tests? + (begin + (setenv "HOME" (getcwd)) + (add-installed-pythonpath inputs outputs) + (invoke "python" "example/example.py" "--local")) + #t)))))) + (propagated-inputs + `(("python-ipyparallel" ,python-ipyparallel) + ("python-ipython" ,python-ipython) + ("python-netifaces" ,python-netifaces) + ("python-pyzmq" ,python-pyzmq) + ("python-setuptools" ,python-setuptools) + ("python-six" ,python-six))) + (home-page "https://github.com/roryk/ipython-cluster-helper") + (synopsis + "Simplify IPython cluster start up and use for multiple schedulers") + (description + "@code{ipython-cluster-helper} creates a throwaway parallel IPython +profile, launches a cluster and returns a view. On program exit it shuts the +cluster down and deletes the throwaway profile.") + (license license:expat))) + +(define-public python2-ipython-cluster-helper + (package-with-python2 python-ipython-cluster-helper)) + (define-public python-traitlets (package (name "python-traitlets") @@ -7862,14 +8170,14 @@ primary use case is APIs defined before keyword-only parameters existed.") (define-public python-pyasn1 (package (name "python-pyasn1") - (version "0.4.3") + (version "0.4.8") (source (origin (method url-fetch) (uri (pypi-uri "pyasn1" version)) (sha256 (base32 - "1z5h38anjzzrxpraa9iq9llffyx2zs8gx0q6dc1g029miwnn50gv")))) + "1fnhbi3rmk47l9851gbik0flfr64vs5j0hbqx24cafjap6gprxxf")))) (build-system python-build-system) (home-page "http://pyasn1.sourceforge.net/") (synopsis "ASN.1 types and codecs") @@ -18831,3 +19139,419 @@ HTML-containing files.") usable as a configuration language. This Python package implements parsing and dumping of JSON5 data structures.") (license license:asl2.0))) + +(define-public python-frozendict + (package + (name "python-frozendict") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "frozendict" version)) + (sha256 + (base32 "0ibf1wipidz57giy53dh7mh68f2hz38x8f4wdq88mvxj5pr7jhbp")))) + (build-system python-build-system) + (home-page "https://github.com/slezica/python-frozendict") + (synopsis "Simple immutable mapping for Python") + (description + "@dfn{frozendict} is an immutable wrapper around dictionaries that +implements the complete mapping interface. It can be used as a drop-in +replacement for dictionaries where immutability is desired.") + (license license:expat))) + +(define-public python-unpaddedbase64 + (package + (name "python-unpaddedbase64") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/matrix-org/python-unpaddedbase64.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0if3fjfxga0bwdq47v77fs9hrcqpmwdxry2i2a7pdqsp95258nxd")))) + (build-system python-build-system) + (home-page "https://pypi.org/project/unpaddedbase64/") + (synopsis "Encode and decode Base64 without “=” padding") + (description + "RFC 4648 specifies that Base64 should be padded to a multiple of 4 bytes +using “=” characters. However this conveys no benefit so many protocols +choose to use Base64 without the “=” padding.") + (license license:asl2.0))) + +(define-public python-canonicaljson + (package + (name "python-canonicaljson") + (version "1.1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "canonicaljson" version)) + (sha256 + (base32 "09cpacc8yvcc74i63pdmlfaahh77dnvbyw9zf29wml2zzwqfbg25")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-frozendict" ,python-frozendict) + ("python-simplejson" ,python-simplejson))) + (home-page "https://github.com/matrix-org/python-canonicaljson") + (synopsis "Canonical JSON") + (description + "Deterministically encode JSON. + +@itemize +@item Encodes objects and arrays as RFC 7159 JSON. +@item Sorts object keys so that you get the same result each time. +@item Has no insignificant whitespace to make the output as small as possible. +@item Escapes only the characters that must be escaped, U+0000 to + U+0019 / U+0022 / U+0056, to keep the output as small as possible. +@item Uses the shortest escape sequence for each escaped character. +@item Encodes the JSON as UTF-8. +@item Can encode frozendict immutable dictionaries. +@end itemize") + (license license:asl2.0))) + +(define-public python-signedjson + (package + (name "python-signedjson") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "signedjson" version)) + (sha256 + (base32 "0280f8zyycsmd7iy65bs438flm7m8ffs1kcxfbvhi8hbazkqc19m")))) + (build-system python-build-system) + (propagated-inputs + `(("python-canonicaljson" ,python-canonicaljson) + ("python-importlib-metadata" ,python-importlib-metadata) + ("python-pynacl" ,python-pynacl) + ("python-typing-extensions" ,python-typing-extensions) + ("python-unpaddedbase64" ,python-unpaddedbase64))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm))) + (home-page "https://github.com/matrix-org/python-signedjson") + (synopsis "Sign JSON objects with ED25519 signatures") + (description + "Sign JSON objects with ED25519 signatures. + +@itemize +@item More than one entity can sign the same object. +@item Each entity can sign the object with more than one key making it easier to +rotate keys +@item ED25519 can be replaced with a different algorithm. +@item Unprotected data can be added to the object under the @dfn{\"unsigned\"} +key. +@end itemize") + (license license:asl2.0))) + +(define-public python-daemonize + (package + (name "python-daemonize") + (version "2.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "daemonize" version)) + (sha256 + (base32 "1hwbl3gf9fdds9sc14zgjyjisjvxidrvqc11xlbb0b6jz17nw0nx")))) + (build-system python-build-system) + (home-page "https://github.com/thesharp/daemonize") + (synopsis "Library for writing system daemons in Python") + (description "Daemonize is a library for writing system daemons in Python.") + (license license:expat))) + +(define-public python-pymacaroons + (package + (name "python-pymacaroons") + (version "0.13.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pymacaroons" version)) + (sha256 + (base32 "1f0357a6g1h96sk6wy030xmc1p4rd80a999qvxd28v7nlm1blsqy")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-pynacl" ,python-pynacl))) + (home-page "https://github.com/ecordell/pymacaroons") + (synopsis "Python Macaroon Library") + (description + "Macaroons, like cookies, are a form of bearer credential. Unlike opaque +tokens, macaroons embed caveats that define specific authorization +requirements for the target service, the service that issued the root macaroon +and which is capable of verifying the integrity of macaroons it receives. + +Macaroons allow for delegation and attenuation of authorization. They are +simple and fast to verify, and decouple authorization policy from the +enforcement of that policy.") + (license license:expat))) + +(define-public python-prometheus-client + (package + (name "python-prometheus-client") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "prometheus_client" version)) + (sha256 + (base32 "1ni2yv4ixwz32nz39ckia76lvggi7m19y5f702w5qczbnfi29kbi")))) + (build-system python-build-system) + (arguments + ;; TODO: No tests in the PyPI distribution. + `(#:tests? #f)) + (propagated-inputs + `(("python-twisted" ,python-twisted))) + (home-page "https://github.com/prometheus/client_python") + (synopsis "Prometheus instrumentation library") + (description + "This is the official Python client for the Prometheus monitoring server.") + (license license:asl2.0))) + +(define-public python-ldap3 + (package + (name "python-ldap3") + (version "2.7") + (home-page "https://github.com/cannatag/ldap3") + (source + (origin + (method git-fetch) + (uri (git-reference (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xw9fkqld21xsvdpaqir8ccc2l805xnn9gxahsnl70xzp3mwl0xv")))) + (build-system python-build-system) + (arguments + '(#:tests? #f ;TODO: Tests need a real LDAP server to run + #:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "nosetests" "-s" "test")) + #t))))) + (native-inputs + `(("python-nose" ,python-nose))) + (propagated-inputs + `(("python-gssapi" ,python-gssapi) + ("python-pyasn1" ,python-pyasn1))) + (synopsis "Python LDAP client") + (description + "LDAP3 is a strictly RFC 4510 conforming LDAP V3 pure Python client +library.") + (license license:lgpl3+))) + +(define-public python-boltons + (package + (name "python-boltons") + (version "20.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "boltons" version)) + (sha256 + (base32 + "0lrr40qqj3ch8xarvyzbnbjs79pz5aywklllq53l347h1b8xnkg4")))) + (build-system python-build-system) + (home-page "https://github.com/mahmoud/boltons") + (synopsis "Extensions to the Python standard library") + (description + "Boltons is a set of over 230 pure-Python utilities in the same spirit +as — and yet conspicuously missing from — the standard library, including: + +@itemize +@item Atomic file saving, bolted on with fileutils +@item A highly-optimized OrderedMultiDict, in dictutils +@item Two types of PriorityQueue, in queueutils +@item Chunked and windowed iteration, in iterutils +@item Recursive data structure iteration and merging, with iterutils.remap +@item Exponential backoff functionality, including jitter, through +iterutils.backoff +@item A full-featured TracebackInfo type, for representing stack traces, in +tbutils +@end itemize") + (license license:bsd-3))) + +(define-public python-eliot + (package + (name "python-eliot") + (version "1.12.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "eliot" version)) + (sha256 + (base32 "0wabv7hk63l12881f4zw02mmj06583qsx2im0yywdjlj8f56vqdn")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-journald-support + (lambda _ + (for-each delete-file + '("eliot/tests/test_journald.py" + "eliot/journald.py")) + #t)) + (add-after 'remove-journald-support 'remove-eliot-prettyprint-tests + ;; remove command-line tool's tests. TODO eliot-prettyprint should + ;; be installed and these tests should pass. + (lambda _ + (delete-file "eliot/tests/test_prettyprint.py") + #t))))) + (propagated-inputs + `(("python-boltons" ,python-boltons) + ("python-pyrsistent" ,python-pyrsistent) + ("python-six" ,python-six) + ("python-zope-interface" ,python-zope-interface))) + (native-inputs + `(("python-black" ,python-black) + ("python-coverage" ,python-coverage) + ("python-dask" ,python-dask) + ("python-flake8" ,python-flake8) + ("python-hypothesis" ,python-hypothesis) + ("python-pytest" ,python-pytest) + ("python-setuptools" ,python-setuptools) + ("python-sphinx" ,python-sphinx) + ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme) + ("python-testtools" ,python-testtools) + ("python-twine" ,python-twine) + ("python-twisted" ,python-twisted))) + (home-page "https://github.com/itamarst/eliot/") + (synopsis "Eliot: the logging system that tells you why it happened") + (description + "@dfn{eliot} is a Python logging system that outputs causal chains of +actions: actions can spawn other actions, and eventually they either succeed +or fail. The resulting logs tell you the story of what your software did: what +happened, and what caused it.") + (license license:asl2.0))) + +(define-public python-pem + (package + (name "python-pem") + (version "20.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pem" version)) + (sha256 + (base32 + "1xh88ss279fprxnzd10dczmqwjhppbyvljm33zrg2mgybwd66qr7")))) + (build-system python-build-system) + (native-inputs + `(("python-certifi" ,python-certifi) + ("python-coverage" ,python-coverage) + ("python-pretend" ,python-pretend) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pytest" ,python-pytest) + ("python-sphinx" ,python-sphinx) + ("python-twisted" ,python-twisted))) + (home-page "https://pem.readthedocs.io/") + (synopsis "Easy PEM file parsing in Python") + (description + "This package provides a Python module for parsing and splitting PEM files.") + (license license:expat))) + +(define-public python-txsni + ;; We need a few commits on top of 0.1.9 for compatibility with newer + ;; Python and OpenSSL. + (let ((commit "5014c141a7acef63e20fcf6c36fa07f0cd754ce1") + (revision "0")) + (package + (name "python-txsni") + (version (git-version "0.1.9" revision commit)) + (home-page "https://github.com/glyph/txsni") + (source + (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0imfxx4yjj1lbq0n5ad45al3wvv4qv96sivnc1r51i66mxi658z8")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pyopenssl" ,python-pyopenssl) + ("python-service-identity" ,python-service-identity) + ("python-twisted" ,python-twisted))) + (synopsis "Run TLS servers with Twisted") + (description + "This package provides an easy-to-use SNI endpoint for use +with the Twisted web framework.") + (license license:expat)))) + +(define-public python-txacme + (package + (name "python-txacme") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "txacme" version)) + (sha256 + (base32 "1cplx4llq7i508w6fgwjdv9di7rsz9k9irfmzdfbiz6q6a0ykf1d")))) + (build-system python-build-system) + (propagated-inputs + `(("python-acme" ,python-acme) + ("python-attrs" ,python-attrs) + ("python-eliot" ,python-eliot) + ("python-josepy" ,python-josepy) + ("python-pem" ,python-pem) + ("python-treq" ,python-treq) + ("python-twisted" ,python-twisted) + ("python-txsni" ,python-txsni))) + (native-inputs + `(("python-fixtures" ,python-fixtures) + ("python-hypothesis" ,python-hypothesis) + ("python-mock" ,python-mock) + ("python-service-identity" + ,python-service-identity) + ("python-testrepository" ,python-testrepository) + ("python-testscenarios" ,python-testscenarios) + ("python-testtools" ,python-testtools))) + (home-page "https://github.com/twisted/txacme") + (synopsis "Twisted implexmentation of the ACME protocol") + (description + "ACME is Automatic Certificate Management Environment, a protocol that +allows clients and certificate authorities to automate verification and +certificate issuance. The ACME protocol is used by the free Let's Encrypt +Certificate Authority. + +txacme is an implementation of the protocol for Twisted, the event-driven +networking engine for Python.") + (license license:expat))) + +(define-public python-pysaml2 + (package + (name "python-pysaml2") + (version "5.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pysaml2" version)) + (sha256 + (base32 + "1h8cmxh9cvxhrdfmkh92wg6zpxmhi2fixq1cy4hxismmaar7bsny")))) + (build-system python-build-system) + (propagated-inputs + `(("python-cryptography" ,python-cryptography) + ("python-dateutil" ,python-dateutil) + ("python-defusedxml" ,python-defusedxml) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pytz" ,python-pytz) + ("python-requests" ,python-requests) + ("python-six" ,python-six))) + (home-page "https://idpy.org") + (synopsis "Python implementation of SAML Version 2 Standard") + (description + "PySAML2 is a pure python implementation of SAML Version 2 Standard. +It contains all necessary pieces for building a SAML2 service provider or +an identity provider. The distribution contains examples of both. + +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))) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 608cb400c5..6f634f78cc 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -115,28 +115,36 @@ joystick, and graphics hardware.") (define-public sdl2 (package (inherit sdl) (name "sdl2") - (version "2.0.10") + (version "2.0.12") (source (origin (method url-fetch) (uri (string-append "https://libsdl.org/release/SDL2-" version ".tar.gz")) - (patches (search-patches "sdl2-mesa-compat.patch")) (sha256 (base32 - "0mqxp6w5jhbq6y1j690g9r3gpzwjxh4czaglw8x05l7hl49nqrdl")))) + "0qy8wbqvfkb5ps8kxgaaf2zzpkjqbsw712hlp74znbn0jpv6i4il")))) (arguments (substitute-keyword-arguments (package-arguments sdl) ((#:configure-flags flags) `(append '("--disable-wayland-shared" "--enable-video-kmsdrm" "--disable-kmsdrm-shared") - ,flags)))) + ,flags)) + ((#:make-flags flags ''()) + `(cons* + ;; SDL dlopens libudev, so make sure it is in rpath. This overrides + ;; the LDFLAG set in sdl’s configure-flags, which isn’t necessary + ;; as sdl2 includes Mesa by default. + (string-append "LDFLAGS=-Wl,-rpath," + (assoc-ref %build-inputs "eudev") "/lib") + ,flags)))) (inputs ;; SDL2 needs to be built with ibus support otherwise some systems ;; experience a bug where input events are doubled. ;; ;; For more information, see: https://dev.solus-project.com/T1721 (append `(("dbus" ,dbus) + ("eudev" ,eudev) ; for discovering input devices ("fcitx" ,fcitx) ; helps with CJK input ("glib" ,glib) ("ibus" ,ibus) diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index 800aa0505e..c5cbb758da 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -117,7 +117,7 @@ readers and is needed to communicate with such devices through the (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("libtool" ,libtool) ("pkg-config" ,pkg-config) ("perl" ,perl))) diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm index 8ee6fbfdc4..c9c1eaa8d9 100644 --- a/gnu/packages/speech.scm +++ b/gnu/packages/speech.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2016, 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> @@ -226,12 +226,20 @@ stable and well documented interface.") "08xwnpw9cnaix1n1i7gvpq5hrfrqc2z1snjhjapfam506hrc77g4")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; No test suite. - #:make-flags - (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) ; No ./configure script. + `(#:tests? #f ; no test suite + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'respect-LDFLAGS + (lambda _ + (substitute* "Makefile" + ((" -o sonic " match) + (string-append " $(LDFLAGS)" match))) + #t)) + (delete 'configure)))) ; no ./configure script (synopsis "Speed up or slow down speech") (description "Sonic implements a simple algorithm for speeding up or slowing down speech. However, it's optimized for speed ups of over 2X, unlike previous diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm index 905f0b11ca..8be3fbfd89 100644 --- a/gnu/packages/sssd.scm +++ b/gnu/packages/sssd.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -81,14 +82,14 @@ fundamental object types for C.") (define-public sssd (package (name "sssd") - (version "1.16.4") + (version "1.16.5") (source (origin (method url-fetch) - (uri (string-append "http://releases.pagure.org/SSSD/sssd/" + (uri (string-append "https://releases.pagure.org/SSSD/sssd/" "sssd-" version ".tar.gz")) (sha256 (base32 - "0ngr7cgimyjc6flqkm7psxagp1m4jlzpqkn28pliifbmdg6i5ckb")))) + "1h6hwibaf3xa2w6qpzjiiywmfj6zkgbz4r2isf3gd0xm6vq7n6if")))) (build-system gnu-build-system) (arguments `(#:make-flags diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 1ffce54913..1c372554f7 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -548,13 +548,13 @@ estimation) corresponding to the book: Wand, M.P. and Jones, M.C. (1995) (define-public r-lattice (package (name "r-lattice") - (version "0.20-40") + (version "0.20-41") (source (origin (method url-fetch) (uri (cran-uri "lattice" version)) (sha256 (base32 - "1w53sfzdy9zsifv44dqf9pl46fk14lnx3fha1k1p660h51lyv56m")))) + "1dapkmh4jlb9sxfrpvapvlfhczl4s8p3r20bn47gcgdk1izmbjjl")))) (build-system r-build-system) (home-page "http://lattice.r-forge.r-project.org/") (synopsis "High-level data visualization system") @@ -1624,22 +1624,28 @@ like tidy evaluation.") (define-public r-tibble (package (name "r-tibble") - (version "2.1.3") + (version "3.0.0") (source (origin (method url-fetch) (uri (cran-uri "tibble" version)) (sha256 (base32 - "06jfayiip8j8ibdhw3fvxn4n8aqbqhwanrszpzlsf92xdfgfm34s")))) + "0s84h8ls5qwixbs1n5safr3xqmg3p0llzdrd9sp4vs2572mwzqzi")))) (build-system r-build-system) (propagated-inputs `(("r-cli" ,r-cli) ("r-crayon" ,r-crayon) + ("r-ellipsis" ,r-ellipsis) ("r-fansi" ,r-fansi) + ("r-lifecycle" ,r-lifecycle) + ("r-magrittr" ,r-magrittr) ("r-pkgconfig" ,r-pkgconfig) ("r-pillar" ,r-pillar) - ("r-rlang" ,r-rlang))) + ("r-rlang" ,r-rlang) + ("r-vctrs" ,r-vctrs))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://github.com/hadley/tibble") (synopsis "Simple data frames") (description @@ -1983,14 +1989,14 @@ and environmental data in the framework of Euclidean exploratory methods.") (define-public r-xml2 (package (name "r-xml2") - (version "1.2.5") + (version "1.3.0") (source (origin (method url-fetch) (uri (cran-uri "xml2" version)) (sha256 (base32 - "0mp61gg8s3zfq10g10vjk0mrcx6d5gm81n4ji8an2my11g61yq94")))) + "138v9374xwc7flw8fz8qp8q3w4fch2jviij0g10dg92xn9dsyani")))) (build-system r-build-system) (inputs `(("libxml2" ,libxml2) @@ -1998,8 +2004,6 @@ and environmental data in the framework of Euclidean exploratory methods.") (native-inputs `(("pkg-config" ,pkg-config) ("r-knitr" ,r-knitr))) - (propagated-inputs - `(("r-rcpp" ,r-rcpp))) (home-page "https://github.com/hadley/xml2") (synopsis "Parse XML with R") (description @@ -3060,18 +3064,20 @@ data.") (define-public r-foreach (package (name "r-foreach") - (version "1.4.8") + (version "1.5.0") (source (origin (method url-fetch) (uri (cran-uri "foreach" version)) (sha256 (base32 - "1xwf5l2fw62w80ji3dvgcc6m9m4s6zygkhi84ypb0gv0ppjffg5c")))) + "0584nv49x8d8m1cak5drb54sxs3y594gd521kjsdwk4c849sgy8s")))) (build-system r-build-system) (propagated-inputs `(("r-codetools" ,r-codetools) ("r-iterators" ,r-iterators))) + (native-inputs + `(("r-knitr" ,r-knitr))) (home-page "https://cran.r-project.org/web/packages/foreach") (synopsis "Foreach looping construct for R") (description @@ -4114,14 +4120,14 @@ Zurich, including many that are related to graphics.") (define-public r-gtools (package (name "r-gtools") - (version "3.8.1") + (version "3.8.2") (source (origin (method url-fetch) (uri (cran-uri "gtools" version)) (sha256 (base32 - "0f5syk1qq6cjq6hwymvkiyhzwa389z94722v881ipbfqkd2q8505")))) + "1pnwy412wvhhvnnx8qg6s9hrgcnsfhnfcpf2560ipipk845acfsh")))) (build-system r-build-system) (arguments `(#:phases @@ -5076,13 +5082,13 @@ using modular prediction and response module classes.") (define-public r-quantreg (package (name "r-quantreg") - (version "5.54") + (version "5.55") (source (origin (method url-fetch) (uri (cran-uri "quantreg" version)) (sha256 - (base32 "19nh79qrkb75q348nk148l8wqjwnq5jgq29wpzqym5cfv1kjqfvh")))) + (base32 "1zjc8p95kb0ypxa6nxp0lkdq8armkjmmhf8484m25n5f14a59qfb")))) (build-system r-build-system) (native-inputs `(("gfortran" ,gfortran))) @@ -5302,18 +5308,19 @@ first and second order derivatives.") (define-public r-sn (package (name "r-sn") - (version "1.5-5") + (version "1.6-1") (source (origin (method url-fetch) (uri (cran-uri "sn" version)) (sha256 (base32 - "0ymyyc0di1g2b11wzljiih05z3rxck48wn74bygg3fiby973z49f")))) + "0snri2k8qslb7478c5jz4a5xxmmb1ipmp8x1jizi8mhj2cjic1w0")))) (build-system r-build-system) (propagated-inputs `(("r-mnormt" ,r-mnormt) - ("r-numderiv" ,r-numderiv))) + ("r-numderiv" ,r-numderiv) + ("r-quantreg" ,r-quantreg))) (home-page "http://azzalini.stat.unipd.it/SN") (synopsis "The skew-normal and skew-t distributions") (description diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 77f0aa326d..14aee33524 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -30,7 +30,7 @@ (define-public syncthing (package (name "syncthing") - (version "1.4.0") + (version "1.4.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/syncthing/syncthing" @@ -38,7 +38,7 @@ "/syncthing-source-v" version ".tar.gz")) (sha256 (base32 - "1p9y943kd09pxmsaahbdml2mn2qlwbx23hvbsm1sqbbm8ma9ai8c")) + "0p1855n29rin2y8bjvmr7gkm18xd2j7js15l8nqcmyd33d60568z")) (modules '((guix build utils))) ;; Delete bundled ("vendored") free software source code. (snippet '(begin diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index 6c0997da86..5bc3d19a92 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. @@ -130,3 +130,42 @@ file system, and many more features.") "RTV provides a text-based interface to view and interact with Reddit.") (license (list license:expat license:gpl3+)))) ; rtv/packages/praw + +(define-public tuir + (package + (name "tuir") + (version "1.28.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tuir" version)) + (sha256 + (base32 + "1gpyjrl7jdfjq30m32nzh59ajv91gq19l93jjri2wsv5yrf90hdr")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "pytest")))))) + (inputs + `(("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-decorator" ,python-decorator) + ("python-kitchen" ,python-kitchen) + ("python-requests" ,python-requests) + ("python-six" ,python-six))) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-coveralls" ,python-coveralls) + ("python-mock" ,python-mock) + ("python-pylint" ,python-pylint) + ("python-pytest" ,python-pytest) + ("python-vcrpy" ,python-vcrpy))) + (home-page "https://gitlab.com/ajak/tuir") + (synopsis "Terminal viewer for Reddit (Terminal UI for Reddit)") + (description + "Tuir provides a simple terminal viewer for Reddit (Terminal UI for Reddit).") + (license (list license:expat + license:gpl3+)))) ; tuir/packages/praw diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index fd8ec3f7a9..5e43061b3e 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -16,6 +16,9 @@ ;;; Copyright © 2019 Ivan Vilata i Balaguer <ivan@selidor.net> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,7 +37,9 @@ (define-module (gnu packages telephony) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages aidc) + #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages audio) @@ -43,6 +48,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) + #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages file) #:use-module (gnu packages protobuf) @@ -52,10 +58,12 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) + #:use-module (gnu packages image) #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) + #:use-module (gnu packages netpbm) #:use-module (gnu packages networking) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) @@ -83,6 +91,97 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system qt)) +(define-public spandsp + (package + (name "spandsp") + (version "0.0.6") + (source + (origin + (method url-fetch) + (uri + ;; The original upstream has been down since the end of March 2020. + (string-append "https://web.archive.org/web/20180626203108/" + "https://www.soft-switch.org/downloads/" name "/" + name "-" version ".tar.gz")) + (sha256 + (base32 "0rclrkyspzk575v8fslzjpgp4y2s4x7xk3r55ycvpi4agv33l1fc")))) + (build-system gnu-build-system) + (outputs '("out" "doc" "static")) ;doc contains HTML documentation + (arguments + `(#:configure-flags '("--enable-doc=yes" "--enable-tests=yes") + #:parallel-build? #f ;non-deterministic build failures may occur otherwise + #:parallel-tests? #f ;fails removing the same the files twice otherwise + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-configure.ac + (lambda _ + ;; spandsp looks at hard coded locations of the FHS to + ;; find libxml2. + (substitute* "configure.ac" + (("AC_MSG_CHECKING\\(for libxml/xmlmemory\\.h.*" all) + (string-append all + "PKG_CHECK_MODULES(XML2, libxml-2.0)\n" + "CPPFLAGS+=\" $XML2_CFLAGS\"\n"))) + ;; Force a regeneration of the autotools build system. + (delete-file "autogen.sh") + (delete-file "configure") + #t)) + (add-after 'unpack 'do-not-install-data-files + ;; The .tiff images produced for tests are not + ;; reproducible and it is not desirable to have those + ;; distributed. + (lambda _ + (substitute* '("test-data/itu/fax/Makefile.am" + "test-data/etsi/fax/Makefile.am") + (("nobase_data_DATA") + "noinst_DATA")) + #t)) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "doc") + "/share/doc/" ,name "-" ,version))) + (copy-recursively "doc/t38_manual" doc) + #t))) + (add-after 'install 'move-static-libraries + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (static (assoc-ref outputs "static"))) + (mkdir-p (string-append static "/lib")) + (with-directory-excursion out + (for-each (lambda (file) + (rename-file file + (string-append static "/" + file))) + (find-files "lib" "\\.a$"))) + #t)))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ;; For the tests + ("fftw" ,fftw) + ("libpcap" ,libpcap) + ("libsndfile" ,libsndfile) + ("libtiff" ,libtiff) + ("netpbm" ,netpbm) + ("sox" ,sox) + ;; For the documentation + ("docbook-xml" ,docbook-xml-4.3) + ("docbook-xsl" ,docbook-xsl) + ("doxygen" ,doxygen) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt))) + (synopsis "DSP library for telephony") + (description "SpanDSP is a library of DSP functions for telephony, in the +8000 sample per second world of E1s, T1s, and higher order PCM channels. It +contains low level functions, such as basic filters. It also contains higher +level functions, such as cadenced supervisory tone detection, and a complete +software FAX machine.") + (home-page "https://web.archive.org/web/20180626203108/\ +https://www.soft-switch.org/index.html") + (license (list license:lgpl2.1+ ;for the library + license:gpl2+)))) ;for the test suites and support programs + (define-public commoncpp (package (name "commoncpp") @@ -282,52 +381,6 @@ supporting cryptographic kernel.") (home-page "https://github.com/cisco/libsrtp") (license license:bsd-3))) -(define-public bctoolbox - (package - (name "bctoolbox") - (version "0.2.0") - (source (origin - (method url-fetch) - (uri (string-append "mirror://savannah/linphone/bctoolbox/bctoolbox-" - version ".tar.gz")) - (sha256 - (base32 - "14ivv6bh6qywys6yyb34scy9w78d636xl1f7cyxm3gwx2qv71lx5")))) - (build-system gnu-build-system) - (arguments '(#:make-flags '("CFLAGS=-fPIC"))) - (native-inputs - `(("cunit" ,cunit))) - (inputs - `(("mbedtls" ,mbedtls-apache))) - (home-page "https://www.linphone.org") - (synopsis "Utilities library for linphone software") - (description "BCtoolbox is a utilities library used by Belledonne -Communications software like linphone.") - (license license:gpl2+))) - -(define-public ortp - (package - (name "ortp") - (version "0.27.0") - (source (origin - (method url-fetch) - (uri (string-append "https://download.savannah.nongnu.org/" - "releases/linphone/ortp/sources/ortp-" - version ".tar.gz")) - (sha256 - (base32 - "1by0dqdqrj5avzcvjws30g8v5sa61wj12x00sxw0kn1smcrshqgb")))) - (build-system gnu-build-system) - (inputs - `(("bctoolbox" ,bctoolbox))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (home-page "https://linphone.org/") - (synopsis "Implementation of the Real-time transport protocol") - (description "oRTP is a library implementing the Real-time transport -protocol (RFC 3550).") - (license license:lgpl2.1+))) - (define-public libiax2 (let ((commit "0e5980f1d78ce462e2d1ed6bc39ff35c8341f201")) ;; This is the commit used by the Ring Project. @@ -916,11 +969,11 @@ This package provides a library common to all Jami clients.") ("libnotify" ,libnotify) ("clutter" ,clutter) ("clutter-gtk" ,clutter-gtk) - ("gettext" ,gnu-gettext) ("libcanberra" ,libcanberra) ("webkitgtk" ,webkitgtk))) (native-inputs `(("pkg-config" ,pkg-config) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("doxygen" ,doxygen))) (propagated-inputs diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index dd90ab2b72..3f210cd6e8 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -5987,8 +5988,8 @@ other things it comes with full Unicode support.") "1xbkv8ll889933gyi2a5hj7hhh216k04gn8fwz5lfv5iz8s34gbq")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; no `check' target - (inputs `(("texinfo" ,texinfo) - ("python" ,python-2) ; incompatible with Python 3 (print syntax) + (native-inputs `(("texinfo" ,texinfo))) + (inputs `(("python" ,python-2) ; incompatible with Python 3 (print syntax) ("which" ,which))) (home-page "https://launchpad.net/rubber") (synopsis "Wrapper for LaTeX and friends") diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm index acb607a7da..7457d99653 100644 --- a/gnu/packages/texinfo.scm +++ b/gnu/packages/texinfo.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -228,6 +229,18 @@ Texi2HTML.") ;; Files in /lib under lgpl2.1+ and x11 (license gpl2+))) +(define-public texi2html-1.82 + (package + (inherit texi2html) + (version "1.82") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://savannah/texi2html/" + "texi2html-" version ".tar.bz2")) + (sha256 + (base32 "1wdli2szkgm3l0vx8rf6lylw0b0m47dlz9iy004n928nqkzix76n")))))) + (define-public pinfo (package (name "pinfo") @@ -264,7 +277,7 @@ Texi2HTML.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("libtool" ,libtool) ("texinfo" ,texinfo))) (home-page "https://github.com/baszoetekouw/pinfo") diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index 41a0802cde..a0599764cf 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,6 +37,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages) @@ -236,6 +238,34 @@ datetime module, available in Python 2.3+.") (define-public python2-parsedatetime (package-with-python2 python-parsedatetime)) +(define-public python-ciso8601 + (package + (name "python-ciso8601") + (version "2.1.3") + (source + (origin + (method git-fetch) + ;; The PyPi distribution doesn't include the tests. + (uri (git-reference + (url "https://github.com/closeio/ciso8601.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g1aiyc1ayh0rnibyy416m5mmck38ksgdm3jsy0z3rxgmgb24951")))) + (build-system python-build-system) + ;; Pytz should only be required for Python 2, but the test suite fails + ;; without it. + (native-inputs + `(("python-pytz" ,python-pytz))) + (home-page "https://github.com/closeio/ciso8601") + (synopsis + "Fast ISO8601 date time parser") + (description + "The package ciso8601 converts ISO 8601 or RFC 3339 date time strings into +Python datetime objects.") + (license expat))) + (define-public python-tzlocal (package (name "python-tzlocal") diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 812057c6ed..a73b4977a0 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -165,6 +165,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") + (replacement gnutls-3.6.13) (version "3.6.12") (source (origin (method url-fetch) @@ -250,10 +251,23 @@ required structures.") (properties '((ftp-server . "ftp.gnutls.org") (ftp-directory . "/gcrypt/gnutls"))))) -(define-public gnutls/guile-2.0 - ;; GnuTLS for Guile 2.0. +(define gnutls-3.6.13 (package (inherit gnutls) + (version "3.6.13") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/gnutls/v" + (version-major+minor version) + "/gnutls-3.6.13.tar.xz")) + (patches (search-patches "gnutls-skip-trust-store-test.patch")) + (sha256 + (base32 + "0f1gnm0756qms5cpx6yn6xb8d3imc2gkqmygf12n9x6r8zs1s11j")))))) + +(define-public gnutls/guile-2.0 + ;; GnuTLS for Guile 2.0. + (package/inherit gnutls (name "guile2.0-gnutls") (inputs `(("guile" ,guile-2.0) ,@(alist-delete "guile" (package-inputs gnutls)))))) @@ -263,8 +277,7 @@ required structures.") ;; Authentication of Named Entities. This is required for GNS functionality ;; by GNUnet and gnURL. This is done in an extra package definition ;; to have the choice between GnuTLS with Dane and without Dane. - (package - (inherit gnutls) + (package/inherit gnutls (name "gnutls-dane") (inputs `(("unbound" ,unbound) ,@(package-inputs gnutls))))) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 61e52ba22c..6c6da2379a 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017, 2018, 2019 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -141,8 +142,9 @@ rejects UDP traffic from the application you're using.") (inputs `(("w3m" ,w3m) ("pcre" ,pcre) - ("zlib" ,zlib) - ("autoconf" ,autoconf) + ("zlib" ,zlib))) + (native-inputs + `(("autoconf" ,autoconf) ("automake" ,automake))) (home-page "https://www.privoxy.org") (synopsis "Web proxy with advanced filtering capabilities for enhancing privacy") diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 75de83ab60..d2d2b23f02 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -621,37 +621,26 @@ on @command{git}, and use any regular Git hosting service.") (define-public libgit2 (package (name "libgit2") - (version "0.99.0") + (version "1.0.0") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/libgit2/libgit2.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://github.com/libgit2/libgit2/" + "releases/download/v" version + "/libgit2-" version ".tar.gz")) (sha256 (base32 - "0qxzv49ip378g1n7hrbifb9c6pys2kj1hnxcafmbb94gj3pgd9kg")) + "1d09ni0v3vammk8zqmmwks92fh3wwnsxpyrh4s5wwdb3gxma27va")) (patches (search-patches "libgit2-mtime-0.patch")) - - ;; Remove bundled software. Keep "http-parser" because it - ;; contains patches that are not available in the system version. (snippet '(begin - (with-directory-excursion "deps" - (for-each (lambda (dir) - (delete-file-recursively dir)) - (lset-difference equal? - (scandir ".") - '("." ".." "http-parser")))) - #t)) - (modules '((guix build utils) - (srfi srfi-1) - (ice-9 ftw))))) + (delete-file-recursively "deps") #t)) + (modules '((guix build utils))))) (build-system cmake-build-system) (outputs '("out" "debug")) (arguments `(#:configure-flags (list "-DUSE_NTLMCLIENT=OFF" ;TODO: package this "-DREGEX_BACKEND=pcre2" + "-DUSE_HTTP_PARSER=system" ,@(if (%current-target-system) `((string-append "-DPKG_CONFIG_EXECUTABLE=" @@ -660,14 +649,6 @@ on @command{git}, and use any regular Git hosting service.") '())) #:phases (modify-phases %standard-phases - (add-after 'unpack 'fix-pcre2-reference - (lambda _ - ;; Use PCRE2 with 8-bit character support, as there is no "libpcre2.pc". - ;; See <https://github.com/libgit2/libgit2/issues/5438>. - (substitute* "src/CMakeLists.txt" - (("\"libpcre2\"") - "\"libpcre2-8\"")) - #t)) (add-after 'unpack 'fix-hardcoded-paths (lambda _ (substitute* "tests/repo/init.c" @@ -676,10 +657,6 @@ on @command{git}, and use any regular Git hosting service.") (("/bin/cp") (which "cp")) (("/bin/rm") (which "rm"))) #t)) - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")) - #t)) ;; Run checks more verbosely, unless we are cross-compiling. (replace 'check (lambda* (#:key (tests? #t) #:allow-other-keys) @@ -688,7 +665,8 @@ on @command{git}, and use any regular Git hosting service.") ;; Tests may be disabled if cross-compiling. (format #t "Test suite not run.~%"))))))) (inputs - `(("libssh2" ,libssh2))) + `(("libssh2" ,libssh2) + ("http-parser" ,http-parser))) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python))) @@ -697,7 +675,7 @@ on @command{git}, and use any regular Git hosting service.") `(("openssl" ,openssl) ("pcre2" ,pcre2) ("zlib" ,zlib))) - (home-page "https://libgit2.github.com/") + (home-page "https://libgit2.org/") (synopsis "Library providing Git core methods") (description "Libgit2 is a portable, pure C implementation of the Git core methods @@ -2159,21 +2137,16 @@ by rclone usable with git-annex.") (define-public fossil (package (name "fossil") - (version "2.8") + (version "2.10") (source (origin (method url-fetch) - ;; Older downloads are moved to another URL. - (uri (list - (string-append - "https://www.fossil-scm.org/index.html/uv/download/" - "fossil-src-" version ".tar.gz") - (string-append + (uri (string-append "https://www.fossil-scm.org/index.html/uv/" - "fossil-src-" version ".tar.gz"))) + "fossil-src-" version ".tar.gz")) (sha256 (base32 - "0pbinf8d2kj1j7niblhzjd2l2khg6r2pn2xvig6gavz27p3vwcka")) + "041bs4fgk52fw58p7s084pxk9d9vs5v2f2pjbznqawz75inpg8yq")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 23533dfdbf..cbdc5fb78a 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -38,6 +38,7 @@ ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -65,6 +66,7 @@ #:use-module (guix git-download) #:use-module (guix svn-download) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system meson) @@ -1538,7 +1540,7 @@ projects while introducing many more.") (define-public mpv-mpris (package (name "mpv-mpris") - (version "0.2") + (version "0.4") (source (origin (method git-fetch) @@ -1548,19 +1550,17 @@ projects while introducing many more.") (file-name (git-file-name name version)) (sha256 (base32 - "06hq3j1jjlaaz9ss5l7illxz8vm5bng86jl24kawglwkqayhdnjx")))) - (build-system gnu-build-system) + "1fr3jvja8s2gdpx8qyk9r17977flms3qpm8zci62nd9r5wjdvr5i")))) + (build-system copy-build-system) (arguments - '(#:tests? #f ; no tests - #:make-flags '("CC=gcc") + '(#:install-plan + '(("mpris.so" "lib/")) #:phases (modify-phases %standard-phases - (delete 'configure) ; no configure script - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (install-file "mpris.so" (string-append out "/lib"))) - #t))))) + (add-before 'install 'build + (lambda _ + (setenv "CC" (which "gcc")) + (invoke "make")))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -3278,7 +3278,6 @@ programmers to access a standard API to open and decompress media files.") #t))))) (inputs `(("boost" ,boost) - ("desktop-file-utils" ,desktop-file-utils) ("ffms2" ,ffms2) ("fftw" ,fftw) ("hunspell" ,hunspell) @@ -3291,6 +3290,7 @@ programmers to access a standard API to open and decompress media files.") ("wxwidgets-gtk2" ,wxwidgets-gtk2))) (native-inputs `(("intltool" ,intltool) + ("desktop-file-utils" ,desktop-file-utils) ("pkg-config" ,pkg-config))) (home-page "http://www.aegisub.org/") (synopsis "Subtitle engine") @@ -3656,7 +3656,7 @@ API. It includes bindings for Python, Ruby, and other languages.") (define-public openshot (package (name "openshot") - (version "2.4.4") + (version "2.5.1") (source (origin (method git-fetch) (uri (git-reference @@ -3665,10 +3665,11 @@ API. It includes bindings for Python, Ruby, and other languages.") (file-name (git-file-name name version)) (sha256 (base32 - "0mg63v36h7l8kv2sgf6x8c1n3ygddkqqwlciz7ccxpbm4x1idqba")) + "0qc5i0ay6j2wab1whl41sjb71cj02pg6y79drf7asrprq8b2rmfq")) (modules '((guix build utils))) (snippet '(begin + ;; TODO: Unbundle jquery and others from src/timeline/media (delete-file-recursively "src/images/fonts") #t)))) (build-system python-build-system) (inputs @@ -3681,14 +3682,17 @@ API. It includes bindings for Python, Ruby, and other languages.") ("python-requests" ,python-requests) ("qtsvg" ,qtsvg))) (arguments - `(#:tests? #f ;no tests - #:modules ((guix build python-build-system) + `(#:modules ((guix build python-build-system) (guix build qt-utils) (guix build utils)) #:imported-modules (,@%python-build-system-modules (guix build qt-utils)) #:phases (modify-phases %standard-phases (delete 'build) ;install phase does all the work + (replace 'check + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + (invoke "python" "src/tests/query_tests.py"))) (add-after 'unpack 'patch-font-location (lambda* (#:key inputs #:allow-other-keys) (let ((font (assoc-ref inputs "font-ubuntu"))) @@ -3707,7 +3711,7 @@ API. It includes bindings for Python, Ruby, and other languages.") (let ((out (assoc-ref outputs "out"))) (wrap-qt-program out "openshot-qt")) #t))))) - (home-page "https://openshot.org") + (home-page "https://www.openshot.org/") (synopsis "Video editor") (description "OpenShot takes your videos, photos, and music files and helps you create the film you have always dreamed of. Easily add sub-titles, diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 75e8f0bb2e..1d70de2ffa 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -851,7 +851,7 @@ through its msgpack-rpc API.") (define-public vim-asyncrun (package (name "vim-asyncrun") - (version "2.6.5") + (version "2.7.1") (source (origin (method git-fetch) (uri (git-reference @@ -860,7 +860,7 @@ through its msgpack-rpc API.") (file-name (git-file-name name version)) (sha256 (base32 - "1n0yzv8psskhx8h4g7dz64h2llm9mnljhvl4hrnsjx6znkni8vwp")))) + "0f7slvz28772qsbrb8xfwrkprfm90wc9i36xhn797lacxcxgwqpw")))) (build-system copy-build-system) (arguments '(#:install-plan diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index d46b29ec13..889c744050 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -453,61 +453,47 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers ;; 3-clause BSD license. (license license:bsd-3))) -(define-public wireguard +(define-public wireguard-linux-compat (package - (name "wireguard") - (version "0.0.20191219") + (name "wireguard-linux-compat") + (version "1.0.20200401") (source (origin (method url-fetch) - (uri (string-append "https://git.zx2c4.com/WireGuard/snapshot/" - "WireGuard-" version ".tar.xz")) + (uri (string-append "https://git.zx2c4.com/wireguard-linux-compat/" + "snapshot/wireguard-linux-compat-" version + ".tar.xz")) (sha256 (base32 - "1rxhhf18vnlbxpaxib6y55gbvr5h9dcvl8sn2l5slzz97066zfjs")))) + "0ymprz3h4b92wlcqm5k5vmcgap8pjv202bgkdx0axmp12n1lmyvx")))) (build-system gnu-build-system) - (outputs '("out" ; The WireGuard userspace tools - "kernel-patch")) ; A patch to build Linux with WireGuard support (arguments - `(#:tests? #f ; No tests available. - #:make-flags - (list "CC=gcc" - "--directory=src/tools" - "WITH_BASHCOMPLETION=yes" - ;; Build and install the helper script wg-quick(8). - "WITH_WGQUICK=yes" - (string-append "PREFIX=" (assoc-ref %outputs "out")) - (string-append "SYSCONFDIR=" (assoc-ref %outputs "out") "/etc")) + `(#:tests? #f ; No test suite #:modules ((guix build gnu-build-system) (guix build utils) (ice-9 popen) (ice-9 textual-ports)) #:phases (modify-phases %standard-phases - ;; There is no ./configure script. - (delete 'configure) - ;; Until WireGuard is added to the upstream Linux kernel, it is - ;; distributed as a kernel patch generated by this script. - (add-after 'patch-source-shebangs 'make-patch + (delete 'configure) ; No ./configure script + (replace 'build (lambda* (#:key outputs #:allow-other-keys) - (let* ((output (string-append (assoc-ref outputs "kernel-patch") - "/wireguard.patch")) - (patch-builder "./contrib/kernel-tree/create-patch.sh") + (let* ((patch-builder "./kernel-tree-scripts/create-patch.sh") (port (open-input-pipe patch-builder)) (str (get-string-all port))) (close-pipe port) - (mkdir-p (dirname output)) - (call-with-output-file output + (call-with-output-file "wireguard.patch" (lambda (port) (format port "~a" str)))) - #t))))) - (inputs - `(("libmnl" ,libmnl))) - (home-page "https://www.wireguard.com/") - (synopsis "Tools for configuring WireGuard") - (description "This package provides the userspace tools for setting and -retrieving configuration of WireGuard network tunnel interfaces, and a patch -that can be applied to a Linux kernel source tree in order to build it with -WireGuard support.") + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (install-file "wireguard.patch" + (assoc-ref %outputs "out")) + #t))))) + (home-page "https://git.zx2c4.com/wireguard-linux-compat/") + (synopsis "WireGuard kernel module for Linux 3.10 through 5.5") + (description "This is an out-of-tree Linux kernel patch adding WireGuard to +kernel versions 3.10 through 5.5. WireGuard was added to Linux 5.6.") (license license:gpl2))) (define-public wireguard-tools @@ -556,6 +542,9 @@ public keys and can roam across IP addresses.") (list license:lgpl2.1+ ; src/netlink.h & contrib/embeddable-wg-library license:gpl2)))) ; everything else +(define-public wireguard + (deprecated-package "wireguard" wireguard-tools)) + (define-public xl2tpd (package (name "xl2tpd") diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index d3b4e5cc33..6a2c219aac 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -345,7 +345,7 @@ shader compilation.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) - ("gettext" ,gnu-gettext) + ("gettext" ,gettext-minimal) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 2b1585c8e3..e6883b7365 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -43,6 +43,7 @@ ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018, 2019, 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -153,14 +154,14 @@ (define-public httpd (package (name "httpd") - (version "2.4.41") + (version "2.4.43") (source (origin (method url-fetch) (uri (string-append "mirror://apache/httpd/httpd-" version ".tar.bz2")) (sha256 (base32 - "0h7a31yxwyh7h521frnmlppl0h7sh9icc3ka6vlmlcg5iwllhg8k")))) + "0hqgw47r3p3521ygkkqs8s30s5crm683081avj6330gwncm6b5x4")))) (build-system gnu-build-system) (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config' (inputs `(("apr" ,apr) @@ -3258,6 +3259,35 @@ IO::Socket::INET, so you can perform socket operations directly on it too.") used by the HTTP protocol (and then some more).") (home-page "https://metacpan.org/release/HTTP-Date"))) +(define-public perl-http-lite + (package + (name "perl-http-lite") + (version "2.44") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/N/NE/NEILB/HTTP-Lite-" + version ".tar.gz")) + (sha256 + (base32 + "0z77nflj8zdcfg70kc93glq5kmd6qxn2nf7h70x4xhfg25wkvr1q")))) + (build-system perl-build-system) + (native-inputs `(("perl-cgi" ,perl-cgi))) + (home-page "https://metacpan.org/release/HTTP-Lite") + (synopsis "Lightweight HTTP implementation") + (description "@code{HTTP::Lite} is a stand-alone lightweight +HTTP/1.1 implementation for perl. It is intended for use in +situations where it is desirable to install the minimal number of +modules to achieve HTTP support. @code{HTTP::Lite} is ideal for +CGI (or mod_perl) programs or for bundling for redistribution with +larger packages where only HTTP GET and POST functionality are +necessary. @code{HTTP::Lite} is compliant with the Host header, +necessary for name based virtual hosting, and supports proxies. +Additionally, @code{HTTP::Lite} supports a callback to allow +processing of request data as it arrives.") + (license license:perl-license))) + (define-public perl-http-message (package (name "perl-http-message") @@ -5792,6 +5822,20 @@ into your tests. It automatically starts up a HTTP server in a separate thread (uri (git-reference (url home-page) (commit (string-append "v" version)))) (file-name (git-file-name name version)) + (patches + ;; When parsing URLs, treat an empty port (eg + ;; `http://hostname:/`) as if it were unspecified. This patch is + ;; applied to Fedora's http-parser and to libgit2's bundled version. + (list + (origin + (method url-fetch) + (uri (string-append + "https://src.fedoraproject.org/rpms/http-parser/raw/" + "e89b4c4e2874c19079a5a1a2d2ccc61b551aa289/" + "f/0001-url-treat-empty-port-as-default.patch")) + (sha256 + (base32 + "0pbxf2nq9pcn299k2b2ls8ldghaqln9glnp79gi57mamx4iy0f6g"))))) (sha256 (base32 "189zi61vczqgmqjd2myjcjbbi5icrk7ccs0kn6nj8hxqiv5j3811")))) @@ -6101,12 +6145,12 @@ file links.") `(#:configure-flags (list "--with-ssl=openssl") #:tests? #f)) ;No tests included (native-inputs - `(("gettext" ,gnu-gettext) + `(("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config) ("intltool" ,intltool))) (inputs `(("expat" ,expat) - ("openssl" ,openssl))) + ("openssl" ,openssl-1.0))) (home-page "http://www.webdav.org/cadaver/") (synopsis "Command-line WebDAV client") (description diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 5d28cac38a..82f11d13fa 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net> ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com> ;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com> -;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr> ;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net> @@ -61,8 +61,10 @@ #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages bash) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bison) @@ -97,6 +99,7 @@ #:use-module (gnu packages pretty-print) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages readline) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) #:use-module (gnu packages suckless) @@ -1658,9 +1661,77 @@ productive, customizable lisp based systems.") (delete 'cleanup) (delete 'create-symlinks))))))) +(define-public stumpish + (let ((commit "dd5b037923ec7d3cc27c55806bcec5a1b8cf4e91") + (revision "1")) + (package + (name "stumpish") + (version (git-version "0.0.1" revision commit)) ;no upstream release + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stumpwm/stumpwm-contrib.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ahxdj9f884afpzxczx6mx7l4nwg4kw6afqaq7lwhf7lxcwylldn")))) + (inputs + `(("bash" ,bash) + ("rlwrap" ,rlwrap))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (copy-recursively (assoc-ref %build-inputs "source") ".") + (chdir "util/stumpish") + (substitute* "stumpish" + (("rlwrap") (string-append (assoc-ref %build-inputs "rlwrap") + "/bin/rlwrap")) + (("/bin/sh") (string-append (assoc-ref %build-inputs "bash") + "/bin/bash"))) + (install-file "stumpish" (string-append %output "/bin"))))) + (home-page "https://github.com/stumpwm/stumpwm-contrib") + (synopsis "StumpWM interactive shell") + (description "This package provides a StumpWM interactive shell.") + (license (list license:gpl2+ license:gpl3+ license:bsd-2))))) + (define-public sbcl-stumpwm+slynk (deprecated-package "sbcl-stumpwm-with-slynk" stumpwm+slynk)) +(define-public sbcl-stumpwm-ttf-fonts + (let ((commit "dd5b037923ec7d3cc27c55806bcec5a1b8cf4e91") + (revision "1")) + (package + (name "sbcl-ttf-fonts") + (version (git-version "0.0.1" revision commit)) ;no upstream release + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stumpwm/stumpwm-contrib.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ahxdj9f884afpzxczx6mx7l4nwg4kw6afqaq7lwhf7lxcwylldn")))) + (inputs + `(("stumpwm" ,stumpwm "lib") + ("clx-truetype" ,sbcl-clx-truetype))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "util/ttf-fonts")))))) + (home-page "https://github.com/stumpwm/stumpwm-contrib") + (synopsis "Implementation of TTF font rendering for Lisp") + (description "This package provides a Lisp implementation of TTF font +rendering.") + (license (list license:gpl2+ license:gpl3+ license:bsd-2))))) + (define-public lemonbar (let ((commit "35183ab81d2128dbb7b6d8e119cc57846bcefdb4") (revision "1")) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 937595cb9d..9275e3cd38 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -34,6 +34,7 @@ ;;; Copyright © 2020 Ivan Vilata i Balaguer <ivan@selidor.net> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Damien Cassou <damien@cassou.me> +;;; Copyright © 2020 John Soo <jsoo1@asu.edu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2021,6 +2022,42 @@ can optionally use some appearance settings from XSettings, tint2 and GTK.") (home-page "https://jgmenu.github.io/") (license license:gpl2))) +(define-public xwallpaper + (package + (name "xwallpaper") + (version "0.6.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stoeckmann/xwallpaper") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "175fzifvia58vah2x7509drvfn3xfv5d9szgh9x1w1a1w8rcs2hx")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (inputs + `(("libjpeg-turbo" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libxpm" ,libxpm) + ("pixman" ,pixman) + ("xcb-util" ,xcb-util) + ("xcb-util-image" ,xcb-util-image))) + (home-page "https://github.com/stoeckmann/xwallpaper") + (synopsis "Wallpaper setting utility for X") + (description + "The xwallpaper utility allows you to set image files as your X +wallpaper. JPEG, PNG, and XPM file formats are supported. + +The wallpaper is also advertised to programs which support semi-transparent +backgrounds.") + (license license:isc))) + (define-public xwrits (package (name "xwrits") @@ -2171,17 +2208,17 @@ tools to complement clipnotify.") (license license:public-domain))) (define-public clipmenu - (let ((commit "a495bcc7a4ab125182a661c5808364f66938a87c") + (let ((commit "bcbe7b144598db4a103f14e8408c4b7327d6d5e1") (revision "1")) (package (name "clipmenu") - (version (string-append "5.6.0-" + (version (string-append "6.0.1-" revision "." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/cdown/clipnotify.git") + (url "https://github.com/cdown/clipmenu.git") (commit commit))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 5b9aa49827..87c2ae7718 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -11,6 +11,8 @@ ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> ;;; Copyright © 2019 L p R n d n <guix@lprndn.info> ;;; Copyright © 2019 Ingo Ruhnke <grumbel@gmail.com> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -92,15 +94,15 @@ (define-public libxfce4util (package (name "libxfce4util") - (version "4.14.0") + (version "4.15.0") (source (origin (method url-fetch) - (uri (string-append "http://archive.xfce.org/xfce/" + (uri (string-append "https://archive.xfce.org/src/xfce/libxfce4util/" (version-major+minor version) - "/src/" name "-" version ".tar.bz2")) + "/" name "-" version ".tar.bz2")) (sha256 (base32 - "093338faqqsrlc8dkmzr7qv411ysxczg1wlg7s3gvhrfk6vpkb9j")))) + "1lq9i30jdci4if2daxdcqni0x5jvpnaflgp19za9sks3gm4jma5v")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -926,10 +928,10 @@ inhibit interface which allows applications to prevent automatic sleep.") (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) + ("desktop-file-utils" ,desktop-file-utils) ("pkg-config" ,pkg-config))) (inputs - `(("desktop-file-utils" ,desktop-file-utils) - ("gtk+" ,gtk+) + `(("gtk+" ,gtk+) ("libexif" ,libexif) ("libxfce4ui" ,libxfce4ui) ("librsvg" ,librsvg) @@ -1706,10 +1708,10 @@ interfaces of your choice in the panel.") (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) + ("desktop-file-utils" ,desktop-file-utils) ("pkg-config" ,pkg-config))) (inputs - `(("desktop-file-utils" ,desktop-file-utils) - ("gtk+-2" ,gtk+-2) + `(("gtk+-2" ,gtk+-2) ("exo" ,exo) ("libxfce4ui" ,libxfce4ui) ("xfce4-panel" ,xfce4-panel))) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index edb690b5ff..794dad517e 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -285,10 +286,10 @@ meaning that audio is compressed in FLAC without any loss in quality.") "0s3vr2nxfxlf1k75iqpp4l78yf4gil3f0v778kvlngbchvaq23n4")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) + ("bison" ,bison) ("pkg-config" ,pkg-config))) ;; FIXME: Add optional input liboggz - (inputs `(("bison" ,bison) - ("libogg" ,libogg) + (inputs `(("libogg" ,libogg) ("libpng" ,libpng) ("python" ,python-wrapper) ("zlib" ,zlib))) diff --git a/gnu/services.scm b/gnu/services.scm index e7a3a95e43..832d6984d8 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -322,7 +322,8 @@ This is a shorthand for (map (lambda (svc) ...) %base-services)." "Return as a monadic value the derivation of the 'system' directory containing the given entries." (mlet %store-monad ((entries mentries) - (extensions (sequence %store-monad mextensions))) + (extensions (mapm/accumulate-builds identity + mextensions))) (lower-object (file-union "system" (append entries (concatenate extensions)))))) @@ -579,6 +580,10 @@ ACTIVATION-SCRIPT-TYPE." #~(begin (setenv "LINUX_MODULE_DIRECTORY" "/run/booted-system/kernel/lib/modules") + ;; FIXME: Remove this crutch when the patch #40422, + ;; updating to kmod 27 is merged. + (setenv "MODPROBE_OPTIONS" + "-C /etc/modprobe.d") (apply execl #$modprobe (cons #$modprobe (cdr (command-line)))))))) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 194dd3b344..08ab5970dc 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1436,10 +1436,17 @@ Service Switch}, for an example." (documentation "Run the syslog daemon (syslogd).") (provision '(syslogd)) (requirement '(user-processes)) - (start #~(make-forkexec-constructor - (list #$(syslog-configuration-syslogd config) - "--rcfile" #$(syslog-configuration-config-file config)) - #:pid-file "/var/run/syslog.pid")) + (start #~(let ((spawn (make-forkexec-constructor + (list #$(syslog-configuration-syslogd config) + "--rcfile" + #$(syslog-configuration-config-file config)) + #:pid-file "/var/run/syslog.pid"))) + (lambda () + ;; Set the umask such that file permissions are #o640. + (let ((mask (umask #o137)) + (pid (spawn))) + (umask mask) + pid)))) (stop #~(make-kill-destructor)))))) ;; Snippet adapted from the GNU inetutils manual. @@ -1633,6 +1640,30 @@ archive' public keys, with GUIX." (define %default-guix-configuration (guix-configuration)) +(define shepherd-set-http-proxy-action + ;; Shepherd action to change the HTTP(S) proxy. + (shepherd-action + (name 'set-http-proxy) + (documentation + "Change the HTTP(S) proxy used by 'guix-daemon' and restart it.") + (procedure #~(lambda* (_ #:optional proxy) + (let ((environment (environ))) + ;; A bit of a hack: communicate PROXY to the 'start' + ;; method via environment variables. + (if proxy + (begin + (format #t "changing HTTP/HTTPS \ +proxy of 'guix-daemon' to ~s...~%" + proxy) + (setenv "http_proxy" proxy)) + (begin + (format #t "clearing HTTP/HTTPS \ +proxy of 'guix-daemon'...~%") + (unsetenv "http_proxy"))) + (action 'guix-daemon 'restart) + (environ environment) + #t))))) + (define (guix-shepherd-service config) "Return a <shepherd-service> for the Guix daemon service with CONFIG." (match-record config <guix-configuration> @@ -1644,47 +1675,58 @@ archive' public keys, with GUIX." (documentation "Run the Guix daemon.") (provision '(guix-daemon)) (requirement '(user-processes)) + (actions (list shepherd-set-http-proxy-action)) (modules '((srfi srfi-1))) (start - #~(make-forkexec-constructor - (cons* #$(file-append guix "/bin/guix-daemon") - "--build-users-group" #$build-group - "--max-silent-time" #$(number->string max-silent-time) - "--timeout" #$(number->string timeout) - "--log-compression" #$(symbol->string log-compression) - #$@(if use-substitutes? - '() - '("--no-substitutes")) - "--substitute-urls" #$(string-join substitute-urls) - #$@extra-options - - ;; Add CHROOT-DIRECTORIES and all their dependencies (if - ;; these are store items) to the chroot. - (append-map (lambda (file) - (append-map (lambda (directory) - (list "--chroot-directory" - directory)) - (call-with-input-file file - read))) - '#$(map references-file chroot-directories))) - - #:environment-variables - (list #$@(if http-proxy - (list (string-append "http_proxy=" http-proxy)) - '()) - #$@(if tmpdir - (list (string-append "TMPDIR=" tmpdir)) - '()) - - ;; Make sure we run in a UTF-8 locale so that 'guix - ;; offload' correctly restores nars that contain UTF-8 - ;; file names such as 'nss-certs'. See - ;; <https://bugs.gnu.org/32942>. - (string-append "GUIX_LOCPATH=" - #$glibc-utf8-locales "/lib/locale") - "LC_ALL=en_US.utf8") - - #:log-file #$log-file)) + #~(lambda _ + (define proxy + ;; HTTP/HTTPS proxy. The 'http_proxy' variable is set by + ;; the 'set-http-proxy' action. + (or (getenv "http_proxy") #$http-proxy)) + + (fork+exec-command + (cons* #$(file-append guix "/bin/guix-daemon") + "--build-users-group" #$build-group + "--max-silent-time" #$(number->string max-silent-time) + "--timeout" #$(number->string timeout) + "--log-compression" #$(symbol->string log-compression) + #$@(if use-substitutes? + '() + '("--no-substitutes")) + "--substitute-urls" #$(string-join substitute-urls) + #$@extra-options + + ;; Add CHROOT-DIRECTORIES and all their dependencies + ;; (if these are store items) to the chroot. + (append-map (lambda (file) + (append-map (lambda (directory) + (list "--chroot-directory" + directory)) + (call-with-input-file file + read))) + '#$(map references-file + chroot-directories))) + + #:environment-variables + (append (list #$@(if tmpdir + (list (string-append "TMPDIR=" tmpdir)) + '()) + + ;; Make sure we run in a UTF-8 locale so that + ;; 'guix offload' correctly restores nars that + ;; contain UTF-8 file names such as + ;; 'nss-certs'. See + ;; <https://bugs.gnu.org/32942>. + (string-append "GUIX_LOCPATH=" + #$glibc-utf8-locales + "/lib/locale") + "LC_ALL=en_US.utf8") + (if proxy + (list (string-append "http_proxy=" proxy) + (string-append "https_proxy=" proxy)) + '())) + + #:log-file #$log-file))) (stop #~(make-kill-destructor)))))) (define (guix-accounts config) @@ -2444,6 +2486,8 @@ to handle." (service guix-service-type) (service nscd-service-type) + (service rottlog-service-type) + ;; The LVM2 rules are needed as soon as LVM2 or the device-mapper is ;; used, so enable them by default. The FUSE and ALSA rules are ;; less critical, but handy. diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 16ee4d3537..7300ff5f4a 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -932,15 +932,23 @@ and extends polkit with the actions from @code{gnome-settings-daemon}." mate-desktop-configuration? (mate-package mate-package (default mate))) +(define (mate-polkit-extension config) + "Return the list of packages for CONFIG's MATE package that extend polkit." + (let ((mate (mate-package config))) + (map (lambda (input) + ((package-direct-input-selector input) mate)) + '("mate-system-monitor" ;kill, renice processes + "mate-settings-daemon" ;date/time settings + "mate-power-manager" ;modify brightness + "mate-control-center" ;RandR, display properties FIXME + "mate-applets")))) ;CPU frequency scaling + (define mate-desktop-service-type (service-type (name 'mate-desktop) (extensions (list (service-extension polkit-service-type - (compose list - (package-direct-input-selector - "mate-settings-daemon") - mate-package)) + mate-polkit-extension) (service-extension profile-service-type (compose list mate-package)))) diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm index caa0326c31..781a61973c 100644 --- a/gnu/services/linux.scm +++ b/gnu/services/linux.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,8 @@ #:use-module (gnu packages linux) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (ice-9 match) #:export (earlyoom-configuration earlyoom-configuration? @@ -37,7 +40,9 @@ earlyoom-configuration-ignore-positive-oom-score-adj? earlyoom-configuration-show-debug-messages? earlyoom-configuration-send-notification-command - earlyoom-service-type)) + earlyoom-service-type + + kernel-module-loader-service-type)) ;;; @@ -123,3 +128,53 @@ representation." (list (service-extension shepherd-root-service-type (compose list earlyoom-shepherd-service)))) (description "Run @command{earlyoom}, the Early OOM daemon."))) + + +;;; +;;; Kernel module loader. +;;; + +(define kernel-module-loader-shepherd-service + (match-lambda + ((and (? list? kernel-modules) ((? string?) ...)) + (list + (shepherd-service + (documentation "Load kernel modules.") + (provision '(kernel-module-loader)) + (requirement '(file-systems)) + (respawn? #f) + (one-shot? #t) + (modules `((srfi srfi-1) + (srfi srfi-34) + (srfi srfi-35) + (rnrs io ports) + ,@%default-modules)) + (start + #~(lambda _ + (cond + ((null? '#$kernel-modules) #t) + ((file-exists? "/proc/sys/kernel/modprobe") + (let ((modprobe (call-with-input-file + "/proc/sys/kernel/modprobe" get-line))) + (guard (c ((message-condition? c) + (format (current-error-port) "~a~%" + (condition-message c)) + #f)) + (every (lambda (module) + (invoke/quiet modprobe "--" module)) + '#$kernel-modules)))) + (else + (format (current-error-port) "error: ~a~%" + "Kernel is missing loadable module support.") + #f))))))))) + +(define kernel-module-loader-service-type + (service-type + (name 'kernel-module-loader) + (description "Load kernel modules.") + (extensions + (list (service-extension shepherd-root-service-type + kernel-module-loader-shepherd-service))) + (compose concatenate) + (extend append) + (default-value '()))) diff --git a/gnu/services/telephony.scm b/gnu/services/telephony.scm index 0a735315b4..e1259cc2df 100644 --- a/gnu/services/telephony.scm +++ b/gnu/services/telephony.scm @@ -182,7 +182,9 @@ "welcometext=" welcome-text "\n" "port=" (number->string port) "\n" (if server-password (list "serverpassword=" server-password "\n") '()) - (if max-user-bandwidth (list "bandwidth=" (number->string max-user-bandwidth)) '()) + (if max-user-bandwidth (list "bandwidth=" + (number->string max-user-bandwidth) "\n") + '()) "users=" (number->string max-users) "\n" "uname=" user "\n" "database=" database-file "\n" diff --git a/gnu/services/web.scm b/gnu/services/web.scm index fa5c34d5af..9ae84ddbc4 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -262,6 +262,14 @@ patchwork-virtualhost patchwork-service-type + <mumi-configuration> + mumi-configuration + mumi-configuration? + mumi-configuration-mumi + mumi-configuration-mailer? + mumi-configuration-sender + mumi-configuration-smtp + mumi-service-type)) ;;; Commentary: @@ -1678,6 +1686,14 @@ WSGIPassAuthorization On ;;; Mumi. ;;; +(define-record-type* <mumi-configuration> + mumi-configuration make-mumi-configuration + mumi-configuration? + (mumi mumi-configuration-mumi (default mumi)) + (mailer? mumi-configuration-mailer? (default #t)) + (sender mumi-configuration-sender (default #f)) + (smtp mumi-configuration-smtp (default #f))) + (define %mumi-activation (with-imported-modules '((guix build utils)) #~(begin @@ -1702,25 +1718,43 @@ WSGIPassAuthorization On (home-directory "/var/empty") (shell (file-append shadow "/sbin/nologin"))))) -(define (mumi-shepherd-services mumi) - (list (shepherd-service - (provision '(mumi)) - (documentation "Mumi bug-tracking web interface.") - (requirement '(networking)) - (start #~(make-forkexec-constructor - '(#$(file-append mumi "/bin/mumi")) - #:user "mumi" #:group "mumi" - #:log-file "/var/log/mumi.log")) - (stop #~(make-kill-destructor))) - (shepherd-service - (provision '(mumi-worker)) - (documentation "Mumi bug-tracking web interface.") - (requirement '(networking)) - (start #~(make-forkexec-constructor - '(#$(file-append mumi "/bin/mumi") "--worker") - #:user "mumi" #:group "mumi" - #:log-file "/var/log/mumi.worker.log")) - (stop #~(make-kill-destructor))))) +(define (mumi-shepherd-services config) + (match config + (($ <mumi-configuration> mumi mailer? sender smtp) + (list (shepherd-service + (provision '(mumi)) + (documentation "Mumi bug-tracking web interface.") + (requirement '(networking)) + (start #~(make-forkexec-constructor + `(#$(file-append mumi "/bin/mumi") "web" + ,@(if #$mailer? '() '("--disable-mailer"))) + #:user "mumi" #:group "mumi" + #:log-file "/var/log/mumi.log")) + (stop #~(make-kill-destructor))) + (shepherd-service + (provision '(mumi-worker)) + (documentation "Mumi bug-tracking web interface database worker.") + (requirement '(networking)) + (start #~(make-forkexec-constructor + '(#$(file-append mumi "/bin/mumi") "worker") + #:user "mumi" #:group "mumi" + #:log-file "/var/log/mumi.worker.log")) + (stop #~(make-kill-destructor))) + (shepherd-service + (provision '(mumi-mailer)) + (documentation "Mumi bug-tracking web interface mailer.") + (requirement '(networking)) + (start #~(make-forkexec-constructor + `(#$(file-append mumi "/bin/mumi") "mailer" + ,@(if #$sender + (list (string-append "--sender=" #$sender)) + '()) + ,@(if #$smtp + (list (string-append "--smtp=" #$smtp)) + '())) + #:user "mumi" #:group "mumi" + #:log-file "/var/log/mumi.mailer.log")) + (stop #~(make-kill-destructor))))))) (define mumi-service-type (service-type @@ -1734,4 +1768,5 @@ WSGIPassAuthorization On mumi-shepherd-services))) (description "Run Mumi, a Web interface to the Debbugs bug-tracking server.") - (default-value mumi))) + (default-value + (mumi-configuration)))) diff --git a/gnu/system.scm b/gnu/system.scm index 3975082f5e..319663cb48 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -477,13 +477,19 @@ OS." value of the SYSTEM-SERVICE-TYPE service." (let ((locale (operating-system-locale-directory os))) (mlet* %store-monad ((kernel -> (operating-system-kernel os)) + (kernel-modules (package-file kernel "lib/modules")) (modules -> (operating-system-kernel-loadable-modules os)) + (has-modules? -> + (or (not (null? modules)) + (file-exists? kernel-modules))) (kernel (profile-derivation (packages->manifest (cons kernel modules)) - #:hooks (list linux-module-database))) + #:hooks (if has-modules? + (list linux-module-database) + '()))) (initrd -> (operating-system-initrd-file os)) (params (operating-system-boot-parameters-file os))) (return `(("kernel" ,kernel) diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl index 45d9bf447f..20b122fe51 100644 --- a/gnu/system/examples/lightweight-desktop.tmpl +++ b/gnu/system/examples/lightweight-desktop.tmpl @@ -5,6 +5,7 @@ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) (use-package-modules bootloaders certs ratpoison suckless wm) +(use-package-modules bootloaders certs ratpoison suckless wm xorg) (operating-system (host-name "antelope") @@ -43,6 +44,8 @@ (packages (append (list ;; window managers ratpoison i3-wm i3status dmenu + ;; terminal emulator + xterm ;; for HTTPS access nss-certs) %base-packages)) diff --git a/gnu/system/keyboard.scm b/gnu/system/keyboard.scm index cd3ab37b27..5bd13a44be 100644 --- a/gnu/system/keyboard.scm +++ b/gnu/system/keyboard.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -94,5 +94,8 @@ Layout information is taken from the XKEYBOARD-CONFIG package." #$(keyboard-layout-name layout)))))) (computed-file (string-append "console-keymap." - (keyboard-layout-name layout)) + (string-map (match-lambda + (#\, #\-) + (chr chr)) + (keyboard-layout-name layout))) build)) diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index 46efdfddab..42480e823c 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -215,6 +216,10 @@ for a colorful Guile experience.\\n\\n\"))))\n")) ((target source) (copy-recursively source target))) '#$skeletons) + ;; Make nanorc respect XDG_CONFIG_HOME. + (when (file-exists? ".nanorc") + (mkdir-p ".config/nano") + (rename-file ".nanorc" ".config/nano/nanorc")) #t)))) (define (assert-valid-users/groups users groups) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 37b83dc7ec..086d2a133f 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -195,6 +195,14 @@ info --version") (pk 'services services) '(root #$@(operating-system-shepherd-service-names os))))) + (test-equal "/var/log/messages is not world-readable" + #o640 ;<https://bugs.gnu.org/40405> + (begin + (wait-for-file "/var/log/messages" marionette + #:read 'get-u8) + (marionette-eval '(stat:perms (lstat "/var/log/messages")) + marionette))) + (test-assert "homes" (let ((homes '#$(map user-account-home-directory @@ -451,6 +459,21 @@ info --version") (marionette-eval '(readlink "/var/guix/gcroots/profiles") marionette)) + (test-equal "guix-daemon set-http-proxy action" + '(#t) ;one value, #t + (marionette-eval '(with-shepherd-action 'guix-daemon + ('set-http-proxy "http://localhost:8118") + result + result) + marionette)) + + (test-equal "guix-daemon set-http-proxy action, clear" + '(#t) ;one value, #t + (marionette-eval '(with-shepherd-action 'guix-daemon + ('set-http-proxy) + result + result) + marionette)) (test-assert "screendump" (begin diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm index 39e11587c6..788bdc848a 100644 --- a/gnu/tests/linux-modules.scm +++ b/gnu/tests/linux-modules.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org> ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> +;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,8 @@ (define-module (gnu tests linux-modules) #:use-module (gnu packages linux) + #:use-module (gnu services) + #:use-module (gnu services linux) #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (gnu tests) @@ -37,25 +40,40 @@ ;;; ;;; Code: -(define* (module-loader-program os modules) - "Return an executable store item that, upon being evaluated, will dry-run -load MODULES." +(define* (modules-loaded?-program os modules) + "Return an executable store item that, upon being evaluated, will verify +that MODULES are actually loaded." (program-file - "load-kernel-modules.scm" - (with-imported-modules (source-module-closure '((guix build utils))) - #~(begin - (use-modules (guix build utils)) - (for-each (lambda (module) - (invoke (string-append #$kmod "/bin/modprobe") "-n" "--" - module)) - '#$modules))))) + "verify-kernel-modules-loaded.scm" + #~(begin + (use-modules (ice-9 rdelim) + (ice-9 popen) + (srfi srfi-1) + (srfi srfi-13)) + (let* ((port (open-input-pipe (string-append #$kmod "/bin/lsmod"))) + (lines (string-split (read-string port) #\newline)) + (separators (char-set #\space #\tab)) + (modules (map (lambda (line) + (string-take line + (or (string-index line separators) + 0))) + lines)) + (status (close-pipe port))) + (and (= status 0) + (and-map (lambda (module) + (member module modules string=?)) + '#$modules)))))) (define* (run-loadable-kernel-modules-test module-packages module-names) - "Run a test of an OS having MODULE-PACKAGES, and modprobe MODULE-NAMES." + "Run a test of an OS having MODULE-PACKAGES, and verify that MODULE-NAMES +are loaded in memory." (define os (marionette-operating-system (operating-system (inherit (simple-operating-system)) + (services (cons (service kernel-module-loader-service-type module-names) + (operating-system-user-services + (simple-operating-system)))) (kernel-loadable-modules module-packages)) #:imported-modules '((guix combinators)))) (define vm (virtual-machine os)) @@ -75,7 +93,8 @@ load MODULES." marionette)) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) - (gexp->derivation "loadable-kernel-modules" (test (module-loader-program os module-names)))) + (gexp->derivation "loadable-kernel-modules" + (test (modules-loaded?-program os module-names)))) (define %test-loadable-kernel-modules-0 (system-test |