diff --git a/gnu/local.mk b/gnu/local.mk index 8163176950..7e044d4a2b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -910,6 +910,7 @@ dist_patch_DATA = \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/binutils-mingw-w64-timestamp.patch \ %D%/packages/patches/binutils-mingw-w64-deterministic.patch \ + %D%/packages/patches/binutils-CVE-2021-45078.patch \ %D%/packages/patches/bpftrace-disable-bfd-disasm.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \ @@ -1240,8 +1241,9 @@ dist_patch_DATA = \ %D%/packages/patches/gtk2-theme-paths.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ - %D%/packages/patches/gtk-doc-respect-xml-catalog.patch \ - %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \ + %D%/packages/patches/gtk-doc-respect-xml-catalog.patch \ + %D%/packages/patches/gtk-introspection-test.patch \ + %D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/gtksourceview-2-add-default-directory.patch \ %D%/packages/patches/gzdoom-search-in-installed-share.patch \ @@ -1804,7 +1806,6 @@ dist_patch_DATA = \ %D%/packages/patches/serf-python3.patch \ %D%/packages/patches/shakespeare-spl-fix-grammar.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \ - %D%/packages/patches/shadow-hurd-pctrl.patch \ %D%/packages/patches/shishi-fix-libgcrypt-detection.patch \ %D%/packages/patches/slim-session.patch \ %D%/packages/patches/slim-config.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index c2e656db1a..197ccef895 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -805,16 +805,15 @@ hostname.") (define-public shadow (package (name "shadow") - (version "4.8.1") + (version "4.9") (source (origin (method url-fetch) (uri (string-append "https://github.com/shadow-maint/shadow/releases/" - "download/" version "/shadow-" version ".tar.xz")) - (patches (search-patches "shadow-hurd-pctrl.patch")) + "download/v" version "/shadow-" version ".tar.xz")) (sha256 (base32 - "0qmfq50sdhz6xilgxvinblll8j2iqfl7hwk45bq744y4plq4dbd3")))) + "0i4iijbshnwnsrskxzrh18xgmzff0hdpsnnkmyc2gdn1x4n1zv7y")))) (build-system gnu-build-system) (arguments `(;; Assume System V `setpgrp (void)', which is the default on GNU @@ -825,9 +824,16 @@ hostname.") '("--with-libpam")) "shadow_cv_logdir=/var/log" "ac_cv_func_setpgrp_void=yes") - #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-linking-to-pam + (lambda _ + ;; There's a build system problem in 4.9 that causes link + ;; failures with the pam libraries (see: + ;; https://github.com/shadow-maint/shadow/issues/407). + (substitute* "libsubid/Makefile.in" + (("\\$\\(LIBTCB\\)" all) + (string-append all " $(LIBPAM)"))))) ,@(if (%current-target-system) '((add-before 'configure 'set-runtime-shell (lambda* (#:key inputs #:allow-other-keys) @@ -848,8 +854,7 @@ hostname.") "libc")))) (substitute* "lib/nscd.c" (("/usr/sbin/nscd") - (string-append libc "/sbin/nscd"))) - #t))) + (string-append libc "/sbin/nscd")))))) (add-after 'install 'remove-groups (lambda* (#:key outputs #:allow-other-keys) ;; Remove `groups', which is already provided by Coreutils. @@ -857,9 +862,7 @@ hostname.") (bin (string-append out "/bin")) (man (string-append out "/share/man"))) (delete-file (string-append bin "/groups")) - (for-each delete-file (find-files man "^groups\\.")) - #t)))))) - + (for-each delete-file (find-files man "^groups\\.")))))))) (inputs `(,@(if (hurd-target?) '() @@ -1206,8 +1209,7 @@ connection alive.") (("^RELEASETYPE=.*") (format #f "RELEASETYPE=~a\n" ,bind-release-type)) (("^RELEASEVER=.*") - (format #f "RELEASEVER=~a\n" ,bind-release-version))) - #t)) + (format #f "RELEASEVER=~a\n" ,bind-release-version))))) ,@(if (%current-target-system) '((add-before 'configure 'fix-bind-cross-compilation (lambda _ @@ -1216,8 +1218,7 @@ connection alive.") "--host=$host_alias")) ;; BIND needs a native compiler because the DHCP ;; build system uses the built 'gen' executable. - (setenv "BUILD_CC" "gcc") - #t))) + (setenv "BUILD_CC" "gcc")))) '()) (add-after 'configure 'post-configure (lambda* (#:key outputs #:allow-other-keys) @@ -1255,11 +1256,7 @@ connection alive.") "--owner=root:0" "--group=root:0"))))) (add-after 'install 'post-install - ;; TODO(core-updates): native-inputs isn't required anymore. - (lambda* (#:key ,@(if (%current-target-system) - '(native-inputs) - '()) - inputs outputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) ;; Install the dhclient script for GNU/Linux and make sure ;; if finds all the programs it needs. (let* ((out (assoc-ref outputs "out")) @@ -1282,31 +1279,13 @@ connection alive.") ,(map (lambda (dir) (string-append dir "/bin:" dir "/sbin")) - (list inetutils net-tools coreutils sed)))) - ;; TODO(core-updates): should not be required anymore, - ;; once has been merged. - ,@(if (%current-target-system) - '((for-each - (lambda (file) - (substitute* file - (((assoc-ref native-inputs "bash")) - (assoc-ref inputs "bash")))) - (list (string-append libexec - "/dhclient-script") - (string-append libexec - "/.dhclient-script-real")))) - '()) - #t)))))) + (list inetutils net-tools coreutils sed)))))))))) (native-inputs (list perl file)) (inputs `(("inetutils" ,inetutils) - ;; TODO(core-updates): simply make this unconditional - ,@(if (%current-target-system) - ;; for wrap-program - `(("bash" ,(canonical-package bash-minimal))) - '()) + ("bash" ,(canonical-package bash-minimal)) ;for wrap-program ,@(if (hurd-target?) '() `(("net-tools" ,net-tools) ("iproute" ,iproute))) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index a8bf36a966..1eea731233 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -68,29 +68,38 @@ `(;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It ;; should use our own "cpp" instead of "/lib/cpp". #:tests? #f - ,@(if (%current-target-system) - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'patch-non-shebang-references - (lambda* (#:key build inputs outputs #:allow-other-keys) - ;; `patch-shebangs' patches shebangs only, and the Perl - ;; scripts use a re-exec feature that references the - ;; build hosts' perl. Also, BASH and M4 store references - ;; hide in the scripts. - (let ((bash (assoc-ref inputs "bash")) - (m4 (assoc-ref inputs "m4")) - (perl (assoc-ref inputs "perl")) - (out (assoc-ref outputs "out")) - (store-directory (%store-directory))) - (substitute* (find-files (string-append out "/bin")) - (((string-append store-directory "/[^/]*-bash-[^/]*")) - bash) - (((string-append store-directory "/[^/]*-m4-[^/]*")) - m4) - (((string-append store-directory "/[^/]*-perl-[^/]*")) - perl)) - #t))))) - '()))) + #:phases + (modify-phases %standard-phases + ,@(if (%current-target-system) + '((add-after 'install 'patch-non-shebang-references + (lambda* (#:key build inputs outputs #:allow-other-keys) + ;; `patch-shebangs' patches shebangs only, and the Perl + ;; scripts use a re-exec feature that references the + ;; build hosts' perl. Also, BASH and M4 store references + ;; hide in the scripts. + (let ((bash (assoc-ref inputs "bash")) + (m4 (assoc-ref inputs "m4")) + (perl (assoc-ref inputs "perl")) + (out (assoc-ref outputs "out")) + (store-directory (%store-directory))) + (substitute* (find-files (string-append out "/bin")) + (((string-append store-directory "/[^/]*-bash-[^/]*")) + bash) + (((string-append store-directory "/[^/]*-m4-[^/]*")) + m4) + (((string-append store-directory "/[^/]*-perl-[^/]*")) + perl)))))) + '()) + (add-after 'install 'unpatch-shebangs + (lambda* (#:key outputs #:allow-other-keys) + ;; Scripts that "autoconf -i" installs (config.guess, + ;; config.sub, and install-sh) must use a regular shebang + ;; rather than a reference to the store. Restore it. + (let* ((out (assoc-ref outputs "out")) + (build-aux (string-append + out "/share/autoconf/build-aux"))) + (substitute* (find-files build-aux) + (("^#!.*/bin/sh") "#!/bin/sh")))))))) (home-page "https://www.gnu.org/software/autoconf/") (synopsis "Create source code configuration scripts") (description @@ -130,19 +139,7 @@ know anything about Autoconf or M4.") (executable-file? file))) (find-files "bin" (lambda (file stat) - (executable-file? file))))) - #t)) - (add-after 'install 'unpatch-shebangs - (lambda* (#:key outputs #:allow-other-keys) - ;; Scripts that "autoconf -i" installs (config.guess, - ;; config.sub, and install-sh) must use a regular shebang - ;; rather than a reference to the store. Restore it. - ;; TODO: Move this phase to 'autoconf-2.69'. - (let* ((out (assoc-ref outputs "out")) - (build-aux (string-append - out "/share/autoconf/build-aux"))) - (substitute* (find-files build-aux) - (("^#!.*/bin/sh") "#!/bin/sh"))))))))))) + (executable-file? file))))))))))))) (define-public autoconf autoconf-2.69) diff --git a/gnu/packages/aux-files/python/sanity-check.py b/gnu/packages/aux-files/python/sanity-check.py index a84f8f03c0..182133bb3d 100644 --- a/gnu/packages/aux-files/python/sanity-check.py +++ b/gnu/packages/aux-files/python/sanity-check.py @@ -44,7 +44,7 @@ for dist in ws: pkg_resources.require(req) print('OK') except Exception as e: - print('ERROR:', req, e) + print('ERROR:', req, repr(e)) ret = 1 continue diff --git a/gnu/packages/aux-files/python/sitecustomize.py b/gnu/packages/aux-files/python/sitecustomize.py index 71e328b9ac..e2348e0356 100644 --- a/gnu/packages/aux-files/python/sitecustomize.py +++ b/gnu/packages/aux-files/python/sitecustomize.py @@ -18,6 +18,7 @@ # along with GNU Guix. If not, see . import os +import site import sys # Commentary: @@ -47,9 +48,18 @@ all_sites_norm = [os.path.normpath(p) for p in all_sites_raw] matching_sites = [p for p in all_sites_norm if p.endswith(site_packages_prefix)] -# Insert sites matching the current version into sys.path, right before -# Python's own site. This way, the user can override the libraries provided -# by Python itself. -sys_path_absolute = [os.path.realpath(p) for p in sys.path] -index = sys_path_absolute.index(python_site) -sys.path[index:index] = matching_sites +if matching_sites: + # Deduplicate the entries, append them to sys.path, and handle any + # .pth files they contain. + for s in matching_sites: + site.addsitedir(s) + + # Move the entries that were appended to sys.path in front of + # Python's own site-packages directory. This enables Guix + # packages to override Python's bundled packages, such as 'pip'. + python_site_index = sys.path.index(python_site) + new_site_start_index = sys.path.index(matching_sites[0]) + if python_site_index < new_site_start_index: + sys.path = (sys.path[:python_site_index] + + sys.path[new_site_start_index:] + + sys.path[python_site_index:new_site_start_index]) diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm index 7dcaa17a76..65d3ede131 100644 --- a/gnu/packages/avahi.scm +++ b/gnu/packages/avahi.scm @@ -43,22 +43,21 @@ (version "0.8") (home-page "https://avahi.org") (source (origin - (method url-fetch) - (uri (string-append home-page "/download/avahi-" - version ".tar.gz")) - (sha256 - (base32 - "1npdixwxxn3s9q1f365x9n9rc5xgfz39hxf23faqvlrklgbhj0q6")) - (patches (search-patches "avahi-localstatedir.patch")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Fix version constraint in the avahi-libevent pkg-config file. - ;; This can be removed for Avahi versions > 0.8. - (substitute* "avahi-libevent.pc.in" - (("libevent-2\\.1\\.5") - "libevent >= 2.1.5")) - #t)))) + (method url-fetch) + (uri (string-append home-page "/download/avahi-" + version ".tar.gz")) + (sha256 + (base32 + "1npdixwxxn3s9q1f365x9n9rc5xgfz39hxf23faqvlrklgbhj0q6")) + (patches (search-patches "avahi-localstatedir.patch")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix version constraint in the avahi-libevent pkg-config file. + ;; This can be removed for Avahi versions > 0.8. + (substitute* "avahi-libevent.pc.in" + (("libevent-2\\.1\\.5") + "libevent >= 2.1.5")))))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-distro=none" @@ -75,26 +74,20 @@ ,@(if (%current-target-system) '("ac_cv_prog_have_pkg_config=yes") '())) - ;; TODO(core-updates): Make this unconditional. - ,@(if (%current-target-system) - `(#:modules ((srfi srfi-26) - (guix build utils) - (guix build gnu-build-system)) - #:phases - ,#~(modify-phases %standard-phases - (add-after 'patch-shebangs 'patch-more-shebangs - (lambda* (#:key inputs #:allow-other-keys) - (define path - `(,(dirname (search-input-file inputs "bin/sh")))) - (for-each - (cut patch-shebang <> path) - (find-files (string-append #$output "/etc/avahi"))))))) - '()))) + #:modules ((srfi srfi-26) + (guix build utils) + (guix build gnu-build-system)) + #:phases + ,#~(modify-phases %standard-phases + (add-after 'patch-shebangs 'patch-more-shebangs + (lambda* (#:key inputs #:allow-other-keys) + (define path + `(,(dirname (search-input-file inputs "bin/sh")))) + (for-each + (cut patch-shebang <> path) + (find-files (string-append #$output "/etc/avahi")))))))) (inputs - ;; TODO(core-updates): Make this input unconditional. - `(,@(if (%current-target-system) - `(("bash-minimal" ,bash-minimal)) - '()) + `(("bash-minimal" ,bash-minimal) ("dbus" ,dbus) ("expat" ,expat) ("gdbm" ,gdbm) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 8e21176081..0e49b6044c 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -521,10 +521,12 @@ change. GNU make offers many powerful extensions over the standard utility.") (sha256 (base32 "1m3b2rdfv1dmdpd0bzg1hy7i8a2qng53szc6livyi3nh6101mz37")) (patches (search-patches "binutils-loongson-workaround.patch" - "binutils-2.37-file-descriptor-leak.patch")))) + "binutils-2.37-file-descriptor-leak.patch" + "binutils-CVE-2021-45078.patch")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '(;; Add `-static-libgcc' to not retain a dependency + `(#:out-of-source? #t ;recommended in the README + #:configure-flags '(;; Add `-static-libgcc' to not retain a dependency ;; on GCC when bootstrapping. "LDFLAGS=-static-libgcc" @@ -543,7 +545,13 @@ change. GNU make offers many powerful extensions over the standard utility.") ;; Make sure 'ar' and 'ranlib' produce archives in a ;; deterministic fashion. - "--enable-deterministic-archives"))) + "--enable-deterministic-archives" + + "--enable-64-bit-bfd" + "--enable-compressed-debug-sections=all" + "--enable-lto" + "--enable-separate-code" + "--enable-threads"))) (synopsis "Binary utilities: bfd gas gprof ld") (description @@ -556,23 +564,6 @@ included.") (license gpl3+) (home-page "https://www.gnu.org/software/binutils/"))) -;;; TODO: Merge into binutils on the next world rebuild. -(define-public binutils-next - (package/inherit binutils - (name "binutils-next") - (version "2.37") - (arguments - (substitute-keyword-arguments (package-arguments binutils) - ((#:out-of-source? _ #f) ;recommended in the README - #t) - ((#:configure-flags flags) - `(cons* "--enable-64-bit-bfd" - "--enable-compressed-debug-sections=all" - "--enable-lto" - "--enable-separate-code" - "--enable-threads" - ,flags)))))) - ;; FIXME: ath9k-firmware-htc-binutils.patch do not apply on 2.34 because of a ;; big refactoring of xtensa-modules.c (commit 567607c11fbf7105 upstream). ;; Keep this version around until the patch is updated. @@ -594,7 +585,7 @@ included.") (properties '()))) (define-public binutils-gold - (package/inherit binutils-next + (package/inherit binutils (name "binutils-gold") (arguments (substitute-keyword-arguments (package-arguments binutils) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 9986a4a563..6caeec80f7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -373,7 +373,7 @@ single executable called @code{bam}.") (define-public bcftools (package (name "bcftools") - (version "1.12") + (version "1.14") (source (origin (method url-fetch) (uri (string-append "https://github.com/samtools/bcftools/" @@ -381,12 +381,11 @@ single executable called @code{bam}.") version "/bcftools-" version ".tar.bz2")) (sha256 (base32 - "1x94l1hy2pi3lbz0sxlbw0g6q5z5apcrhrlcwda94ns9n4r6a3ks")) + "1jqrma16fx8kpvb3c0462dg0asvmiv5yi8myqmc5ddgwi6p8ivxp")) (modules '((guix build utils))) (snippet '(begin ;; Delete bundled htslib. - (delete-file-recursively "htslib-1.12") - #t)))) + (delete-file-recursively "htslib-1.14"))))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -397,8 +396,7 @@ single executable called @code{bam}.") (add-before 'check 'patch-tests (lambda _ (substitute* "test/test.pl" - (("/bin/bash") (which "bash"))) - #t))))) + (("/bin/bash") (which "bash")))))))) (native-inputs (list htslib perl)) (inputs @@ -412,9 +410,25 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.") ;; The sources are dual MIT/GPL, but becomes GPL-only when USE_GPL=1. (license (list license:gpl3+ license:expat)))) +(define-public bcftools-1.12 + (package/inherit bcftools + (version "1.12") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/samtools/bcftools/" + "releases/download/" + version "/bcftools-" version ".tar.bz2")) + (sha256 + (base32 + "1x94l1hy2pi3lbz0sxlbw0g6q5z5apcrhrlcwda94ns9n4r6a3ks")) + (modules '((guix build utils))) + (snippet '(begin + ;; Delete bundled htslib. + (delete-file-recursively "htslib-1.12"))))) + (native-inputs (list htslib-1.12 perl)))) + (define-public bcftools-1.10 - (package (inherit bcftools) - (name "bcftools") + (package/inherit bcftools (version "1.10") (source (origin (method url-fetch) @@ -427,11 +441,8 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.") (modules '((guix build utils))) (snippet '(begin ;; Delete bundled htslib. - (delete-file-recursively "htslib-1.10") - #t)))) - (build-system gnu-build-system) - (native-inputs - (list htslib-1.10 perl)))) + (delete-file-recursively "htslib-1.10"))))) + (native-inputs (list htslib-1.10 perl)))) (define-public bedops (package @@ -1064,13 +1075,7 @@ Python.") (("^(.+)def test_from_hdf5_issue_731" m indent) (string-append indent "@npt.dec.skipif(True, msg='Guix')\n" - m))))) - - (add-before 'reset-gzip-timestamps 'make-files-writable - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (for-each (lambda (file) (chmod file #o644)) - (find-files out "\\.gz")))))))) + m)))))))) (propagated-inputs (list python-anndata python-numpy @@ -2316,7 +2321,7 @@ has several key features: (define-public python-pysam (package (name "python-pysam") - (version "0.16.0.1") + (version "0.18.0") (source (origin (method git-fetch) ;; Test data is missing on PyPi. @@ -2326,11 +2331,10 @@ has several key features: (file-name (git-file-name name version)) (sha256 (base32 - "168bwwm8c2k22m7paip8q0yajyl7xdxgnik0bgjl7rhqg0majz0f")) + "042ca27r6634xg2ixgvq1079cp714wmm6ml7bwc1snn0wxxzywfg")) (modules '((guix build utils))) (snippet '(begin - ;; Drop bundled htslib. TODO: Also remove samtools - ;; and bcftools. + ;; FIXME: Unbundle samtools and bcftools. (delete-file-recursively "htslib"))))) (build-system python-build-system) (arguments @@ -2347,35 +2351,24 @@ has several key features: (setenv "CFLAGS" "-D_CURSES_LIB=1"))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) - ;; FIXME: These tests fail with "AttributeError: 'array.array' - ;; object has no attribute 'tostring'". - (delete-file "tests/AlignmentFile_test.py") (when tests? ;; Step out of source dir so python does not import from CWD. (with-directory-excursion "tests" (setenv "HOME" "/tmp") (invoke "make" "-C" "pysam_data") (invoke "make" "-C" "cbcf_data") - (invoke "pytest" "-k" - (string-append - ;; requires network access. - "not FileHTTP" - ;; bug in test suite with samtools update - ;; https://github.com/pysam-developers/pysam/issues/961 - " and not TestHeaderBAM" - " and not TestHeaderCRAM" - " and not test_text_processing"))))))))) + ;; The FileHTTP test requires network access. + (invoke "pytest" "-k" "not FileHTTP")))))))) (propagated-inputs - (list htslib-1.10)) ; Included from installed header files. + (list htslib)) ; Included from installed header files. (inputs (list ncurses curl zlib)) (native-inputs (list python-cython python-pytest ;; Dependencies below are are for tests only. - samtools-1.10 - bcftools-1.10 - python-nose)) + samtools + bcftools)) (home-page "https://github.com/pysam-developers/pysam") (synopsis "Python bindings to the SAMtools C API") (description @@ -2584,13 +2577,6 @@ databases.") `(#:tests? #false #:phases (modify-phases %standard-phases - (add-before 'reset-gzip-timestamps 'make-files-writable - (lambda* (#:key outputs #:allow-other-keys) - ;; Make sure .gz files are writable so that the - ;; 'reset-gzip-timestamps' phase can do its work. - (let ((out (assoc-ref outputs "out"))) - (for-each make-file-writable - (find-files out "\\.gz$"))))) (add-after 'unpack 'use-python3-for-cython (lambda _ (substitute* "setup.py" @@ -4786,7 +4772,7 @@ performance.") (define-public htslib (package (name "htslib") - (version "1.12") + (version "1.14") (source (origin (method url-fetch) (uri (string-append @@ -4794,7 +4780,7 @@ performance.") version "/htslib-" version ".tar.bz2")) (sha256 (base32 - "1jplnvizgr0fyyvvmkfmnsywrrpqhid3760vw15bllz98qdi9012")))) + "0pwk8yhhvb85mi1d2qhwsb4samc3rmbcrq7b1s0jz0glaa7in8pd")))) (build-system gnu-build-system) ;; Let htslib translate "gs://" and "s3://" to regular https links with ;; "--enable-gcs" and "--enable-s3". For these options to work, we also @@ -4820,9 +4806,20 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and ;; the rest is released under the Expat license (license (list license:expat license:bsd-3)))) +(define-public htslib-1.12 + (package/inherit htslib + (version "1.12") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/samtools/htslib/releases/download/" + version "/htslib-" version ".tar.bz2")) + (sha256 + (base32 + "1jplnvizgr0fyyvvmkfmnsywrrpqhid3760vw15bllz98qdi9012")))))) + (define-public htslib-1.10 - (package (inherit htslib) - (name "htslib") + (package/inherit htslib (version "1.10") (source (origin (method url-fetch) @@ -4834,8 +4831,7 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and "0wm9ay7qgypj3mwx9zl1mrpnr36298b1aj5vx69l4k7bzbclvr3s")))))) (define-public htslib-1.9 - (package (inherit htslib) - (name "htslib") + (package/inherit htslib (version "1.9") (source (origin (method url-fetch) @@ -4848,8 +4844,7 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and ;; This package should be removed once no packages rely upon it. (define htslib-1.3 - (package - (inherit htslib) + (package/inherit htslib (version "1.3.1") (source (origin (method url-fetch) @@ -4861,8 +4856,7 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and "1rja282fwdc25ql6izkhdyh8ppw8x2fs0w0js78zgkmqjlikmma9")))))) (define htslib-for-samtools-1.2 - (package - (inherit htslib) + (package/inherit htslib (version "1.2.1") (source (origin (method url-fetch) @@ -6148,6 +6142,44 @@ to the user's query of interest.") (define-public samtools (package (name "samtools") + (version "1.14") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/samtools/samtools/" + version "/samtools-" version ".tar.bz2")) + (sha256 + (base32 + "0x3xdda78ac5vx66b3jdsv9sfhyz4npl4znl1zbaf3lbm6xdlhck")) + (modules '((guix build utils))) + (snippet '(begin + ;; Delete bundled htslib. + (delete-file-recursively "htslib-1.14"))))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags (list "--with-ncurses") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + (substitute* "test/test.pl" + ;; The test script calls out to /bin/bash + (("/bin/bash") (which "bash")))))))) + (native-inputs (list pkg-config)) + (inputs + (list htslib ncurses perl python zlib)) + (home-page "http://samtools.sourceforge.net") + (synopsis "Utilities to efficiently manipulate nucleotide sequence alignments") + (description + "Samtools implements various utilities for post-processing nucleotide +sequence alignments in the SAM, BAM, and CRAM formats, including indexing, +variant calling (in conjunction with bcftools), and a simple alignment +viewer.") + (license license:expat))) + +(define-public samtools-1.12 + (package/inherit samtools (version "1.12") (source (origin @@ -6161,47 +6193,31 @@ to the user's query of interest.") (modules '((guix build utils))) (snippet '(begin ;; Delete bundled htslib. - (delete-file-recursively "htslib-1.12") - #t)))) - (build-system gnu-build-system) + (delete-file-recursively "htslib-1.12"))))) (arguments - `(#:modules ((ice-9 ftw) - (ice-9 regex) - (guix build gnu-build-system) - (guix build utils)) - #:configure-flags (list "--with-ncurses") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-tests - (lambda _ - (substitute* "test/test.pl" - ;; The test script calls out to /bin/bash - (("/bin/bash") (which "bash"))) - #t)) - (add-after 'install 'install-library - (lambda* (#:key outputs #:allow-other-keys) - (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) - (install-file "libbam.a" lib) - #t))) - (add-after 'install 'install-headers - (lambda* (#:key outputs #:allow-other-keys) - (let ((include (string-append (assoc-ref outputs "out") - "/include/samtools/"))) - (for-each (lambda (file) - (install-file file include)) - (scandir "." (lambda (name) (string-match "\\.h$" name)))) - #t)))))) + (substitute-keyword-arguments (package-arguments samtools) + ((#:modules _ #f) + '((ice-9 ftw) + (ice-9 regex) + (guix build gnu-build-system) + (guix build utils))) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install 'install-library + (lambda* (#:key outputs #:allow-other-keys) + (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) + (install-file "libbam.a" lib)))) + (add-after 'install 'install-headers + (lambda* (#:key outputs #:allow-other-keys) + (let ((include (string-append (assoc-ref outputs "out") + "/include/samtools/"))) + (for-each (lambda (file) + (install-file file include)) + (scandir "." (lambda (name) + (string-match "\\.h$" name))))))))))) (native-inputs (list pkg-config)) (inputs - (list htslib ncurses perl python zlib)) - (home-page "http://samtools.sourceforge.net") - (synopsis "Utilities to efficiently manipulate nucleotide sequence alignments") - (description - "Samtools implements various utilities for post-processing nucleotide -sequence alignments in the SAM, BAM, and CRAM formats, including indexing, -variant calling (in conjunction with bcftools), and a simple alignment -viewer.") - (license license:expat))) + (list htslib-1.12 ncurses perl python zlib)))) (define-public samtools-1.10 (package (inherit samtools) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 9d3fd5171e..437b0d3550 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -264,7 +264,7 @@ files and generates build instructions for the Ninja build system.") (define-public meson (package (name "meson") - (version "0.60.0") + (version "0.60.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -272,42 +272,10 @@ files and generates build instructions for the Ninja build system.") version ".tar.gz")) (sha256 (base32 - "0irdn7hx5a182jbvq2kmdwd1v7mljzh5fm27pg4xk879hnv6h388")) + "13mrrizg4vl6n5k7fz6amyafnn3i097dcarr552qc0ca6nlmzjl7")) (patches (search-patches "meson-allow-dirs-outside-of-prefix.patch")))) (build-system python-build-system) - (arguments - `(;; FIXME: Tests require many additional inputs and patching many - ;; hard-coded file system locations in "run_unittests.py". - #:tests? #f - #:phases (modify-phases %standard-phases - ;; Meson calls the various executables in out/bin through the - ;; Python interpreter, so we cannot use the shell wrapper. - (delete 'wrap)))) - (inputs (list ninja)) - - ;; XXX: Python is propagated just to 'GUIX_PYTHONPATH' is set (!). - ;; MESON-WRAPPED below fixes that by wrapping the 'meson' executable. - ;; TODO: Make MESON-WRAPPED the new MESON on the next core update cycle. - (propagated-inputs (list python)) - - (home-page "https://mesonbuild.com/") - (properties '((hidden? . #t))) - (synopsis "Build system designed to be fast and user-friendly") - (description - "The Meson build system is focused on user-friendliness and speed. -It can compile code written in C, C++, Fortran, Java, Rust, and other -languages. Meson provides features comparable to those of the -Autoconf/Automake/make combo. Build specifications, also known as @dfn{Meson -files}, are written in a custom domain-specific language (@dfn{DSL}) that -resembles Python.") - (license license:asl2.0))) - -(define-public meson-wrapped - (package/inherit meson - (propagated-inputs '()) ;don't propagate Python - (inputs (modify-inputs (package-inputs meson) - (prepend python-wrapper))) (arguments `(;; FIXME: Tests require many additional inputs and patching many ;; hard-coded file system locations in "run_unittests.py". @@ -327,7 +295,17 @@ import sys sys.path.insert(0, '~a/lib/python~a/site-packages') # EASY-INSTALL-ENTRY-SCRIPT" output python-version))))))))) - (properties '()))) + (inputs (list python-wrapper ninja)) + (home-page "https://mesonbuild.com/") + (synopsis "Build system designed to be fast and user-friendly") + (description + "The Meson build system is focused on user-friendliness and speed. +It can compile code written in C, C++, Fortran, Java, Rust, and other +languages. Meson provides features comparable to those of the +Autoconf/Automake/make combo. Build specifications, also known as @dfn{Meson +files}, are written in a custom domain-specific language (@dfn{DSL}) that +resembles Python.") + (license license:asl2.0))) ;;; This older Meson variant is kept for now for gtkmm and others that may ;;; have problems with 0.60. diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 0a90a3b167..d380b8fa80 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -79,6 +79,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system glib-or-gtk) @@ -845,6 +846,7 @@ available via the @code{unittest.mock} module.") ("python2-funcsigs" ,python2-funcsigs) ,@(package-propagated-inputs base)))))) +;;; This package is unmaintained (see the note at the top of doc/index.rst). (define-public python-nose (package (name "python-nose") @@ -858,15 +860,26 @@ available via the @code{unittest.mock} module.") "164a43k7k2wsqqk1s6vavcdamvss4mz0vd6pwzv2h9n8rgwzxgzi")))) (build-system python-build-system) (arguments - '(#:tests? #f)) ; FIXME: test suite fails + '(#:tests? #f + #:phases (modify-phases %standard-phases + (add-after 'unpack 'invoke-2to3 + (lambda _ + (invoke "2to3" "-w" ".")))))) (home-page "http://readthedocs.org/docs/nose/") (synopsis "Python testing library") (description "Nose extends the unittest library to make testing easier.") - (license license:lgpl2.0+))) + (license license:lgpl2.0+) + (properties `((python2-variant . ,(delay python2-nose)))))) (define-public python2-nose - (package-with-python2 python-nose)) + (let ((base (package-with-python2 + (strip-python2-variant python-nose)))) + (package/inherit base + (arguments (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + `(modify-phases ,phases + (delete 'invoke-2to3)))))))) (define-public python-nose2 (package @@ -1410,14 +1423,14 @@ result back.") (define-public python-pytest-timeout (package (name "python-pytest-timeout") - (version "1.4.2") + (version "2.0.2") (source (origin (method url-fetch) (uri (pypi-uri "pytest-timeout" version)) (sha256 (base32 - "0xnsigs0kmpq1za0d4i522sp3f71x5bgpdh3ski0rs74yqy13cr0")))) + "04l1cd2qyp3fbccw95a8nqg682r647v7yil8807dgs7xv9a8pyg6")))) (build-system python-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -1853,7 +1866,7 @@ C/C++, R, and more, and uploads it to the @code{codecov.io} service.") (define-public python-testpath (package (name "python-testpath") - (version "0.4.4") + (version "0.5.0") (source (origin (method git-fetch) @@ -1863,35 +1876,33 @@ C/C++, R, and more, and uploads it to the @code{codecov.io} service.") (file-name (git-file-name name version)) (sha256 (base32 - "1fwv4d3p54xx1x942s104irr35lszvv6jnr4nn1scsfvc0m1qmbk")))) + "08r1c6bhvj8pcdvzkqv1950k36a6q3v81fd2p1yqdq3c07mcwgif")))) (build-system python-build-system) (arguments - `(#:tests? #f ; this package does not even have a setup.py - #:modules ((guix build python-build-system) - (guix build utils) - (srfi srfi-1)) - #:phases - (modify-phases %standard-phases - (replace 'build - (lambda _ - ;; A ZIP archive should be generated, but it fails with "ZIP does - ;; not support timestamps before 1980". Luckily, - ;; SOURCE_DATE_EPOCH is respected, which we set to some time in - ;; 1980. - (setenv "SOURCE_DATE_EPOCH" "315532800") - (invoke "flit" "build"))) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (let ((out (assoc-ref outputs "out"))) - (for-each (lambda (wheel) - (format #true wheel) - (invoke "python" "-m" "pip" "install" - wheel (string-append "--prefix=" out))) - (find-files "dist" "\\.whl$")))))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "pyproject.toml" + (("flit_core >=3.2.0,<3.3") + "flit_core >=3.2.0")))) + ;; XXX: PEP 517 manual build copied from python-isort. + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest")))) + (replace 'install + (lambda _ + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl))))))) (native-inputs - (list python-flit)) - (home-page "https://github.com/takluyver/testpath") + (list python-pypa-build python-flit-core python-pytest)) + (home-page "https://github.com/jupyter/testpath") (synopsis "Test utilities for code working with files and commands") (description "Testpath is a collection of utilities for Python code working with files @@ -2244,7 +2255,7 @@ statements in the module it tests.") (define-public python-pylint (package (name "python-pylint") - (version "2.9.6") + (version "2.12.2") (source (origin (method git-fetch) @@ -2253,15 +2264,31 @@ statements in the module it tests.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "15yw69v1cj6zkndk60c2g0dgl0khh8bfm1lrwhjffpdjfc7nkc9a")))) + (base32 "0spmy7j1vvh55shzgma80q61y0d1cj45dcgslb4g5w3y602miq5i")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; The unused but collected 'primer'-related test files require + ;; the extraneous 'git' Python module; remove them. + (delete-file "tests/primer/test_primer_external.py") + (delete-file "tests/testutils/test_package_to_lint.py") + (setenv "HOME" "/tmp") + (invoke "pytest" "-k" "test_functional"))))))) (native-inputs - (list python-pytest python-pytest-benchmark python-pytest-runner)) + (list python-pytest)) (propagated-inputs - (list python-astroid python-isort python-mccabe python-toml)) + (list python-astroid + python-isort + python-mccabe + python-platformdirs + python-toml + python-typing-extensions)) (home-page "https://github.com/PyCQA/pylint") - (synopsis "Python source code analyzer which looks for coding standard -errors") + (synopsis "Advanced Python code static checker") (description "Pylint is a Python source code analyzer which looks for programming errors, helps enforcing a coding standard and sniffs for some code smells (as defined in Martin Fowler's Refactoring book). diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 36f8dcf8ff..4207f14310 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -150,7 +150,7 @@ using the CMake build system.") (define-public cmake-bootstrap (package (name "cmake-bootstrap") - (version "3.21.3") + (version "3.21.4") (source (origin (method url-fetch) (uri (string-append "https://cmake.org/files/v" @@ -158,7 +158,7 @@ using the CMake build system.") "/cmake-" version ".tar.gz")) (sha256 (base32 - "0kvrhgbrvm0lv7jshzd4nsvp3d5q1jkgal2d5kj4w4v58bghckfi")) + "0y2rk316j9m1iqimgwah0z1ii3ggli65dw6hdn4ckx0mqaahlmyr")) (patches (search-patches "cmake-curl-certificates.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 2989d2abaf..8185a6157e 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1394,6 +1394,32 @@ handles the 7z format which features very high compression ratios.") functionality in a C++ iostream.") (license license:lgpl2.1+))) +(define-public zopfli + (package + (name "zopfli") + (version "1.0.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/zopfli") + (commit (string-append name "-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dr8n4j5nj2h9n208jns56wglw59gg4qm3s7c6y3hs75d0nnkhm4")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ;no test suite + #:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) + (home-page "https://github.com/google/zopfli") + (synopsis "Very good, but slow, deflate or zlib compression") + (description "Zopfli Compression Algorithm is a compression library +programmed in C to perform very good, but slow, deflate or zlib compression. +ZopfliCompress supports the deflate, gzip and zlib output formats. This +library can only compress, not decompress; existing zlib or deflate libraries +can decompress the data.") + (license license:asl2.0))) + (define-public zpaq (package (name "zpaq") diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm index b3319e4ac1..2658f1b20a 100644 --- a/gnu/packages/crates-graphics.scm +++ b/gnu/packages/crates-graphics.scm @@ -192,10 +192,10 @@ text or blue underlined text, on ANSI terminals.") "1xif1bh938qpfc3d0f9xgidibpm65xix11w9gszwqnia00q7rb13")))) (arguments `()))) -(define-public rust-aom-sys-0.2 +(define-public rust-aom-sys-0.3 (package (name "rust-aom-sys") - (version "0.2.1") + (version "0.3.0") (source (origin (method url-fetch) @@ -204,7 +204,7 @@ text or blue underlined text, on ANSI terminals.") (string-append name "-" version ".tar.gz")) (sha256 (base32 - "03a0xhaafjn0hlpcf9ba73hv557m0jqnmj9wl57wzrcnka96zvgj")))) + "0dhikfl7l5nacspajbllbhhysad3vl845cpfplqgm5mf67nmx9w8")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -219,30 +219,6 @@ text or blue underlined text, on ANSI terminals.") (description "This package provides FFI bindings to aom.") (license license:expat))) -(define-public rust-aom-sys-0.1 - (package - (inherit rust-aom-sys-0.2) - (name "rust-aom-sys") - (version "0.1.4") - (source - (origin - (method url-fetch) - (uri (crate-uri "aom-sys" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1bqcpkycv1d67r6jcl9npfbw6rkl829rdq9w6vlpb0rjqxp0xzsn")))) - (build-system cargo-build-system) - (arguments - `(#:cargo-inputs - (("rust-bindgen" ,rust-bindgen-0.53) - ("rust-metadeps" ,rust-metadeps-1)))) - (native-inputs - (list pkg-config)) - (inputs - (list libaom clang llvm)))) - (define-public rust-ascii-canvas-2 (package (name "rust-ascii-canvas") diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 9281bc25de..7cd13ea8c8 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -4463,29 +4463,31 @@ iteratively in Rust.") in Rust.") (license (list license:asl2.0 license:expat)))) -(define-public rust-av-metrics-0.6 +(define-public rust-av-metrics-0.7 (package (name "rust-av-metrics") - (version "0.6.2") + (version "0.7.2") (source (origin (method url-fetch) (uri (crate-uri "av-metrics" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "1g4k2q3226246jad3jl8pny7aphq8i03x4qyilzj4zgp27350hsz")))) + (base32 "1y1q61lhahljxh1l2brp8v795qf6g7gr4h4vdmq43g5z5pq2dw50")))) (build-system cargo-build-system) (arguments - `(#:skip-build? #t - #:cargo-inputs + `(#:cargo-inputs (("rust-crossbeam" ,rust-crossbeam-0.8) ("rust-itertools" ,rust-itertools-0.10) - ("rust-lab" ,rust-lab-0.8) + ("rust-lab" ,rust-lab-0.11) ("rust-num-traits" ,rust-num-traits-0.2) ("rust-rayon" ,rust-rayon-1) ("rust-serde" ,rust-serde-1) ("rust-thiserror" ,rust-thiserror-1) - ("rust-v-frame" ,rust-v-frame-0.2)))) + ("rust-v-frame" ,rust-v-frame-0.2)) + #:cargo-development-inputs + (("rust-criterion" ,rust-criterion-0.3) + ("rust-y4m" ,rust-y4m-0.7)))) (home-page "https://github.com/rust-av/av-metrics") (synopsis "Collection of algorithms for measuring audio/video metrics") (description @@ -6128,41 +6130,18 @@ types.") (define-public rust-bitflags-1 (package - (name "rust-bitflags") - (version "1.2.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "bitflags" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "14qnd5nq8p2almk79m4m8ydqhd413yaxsyjp5xd19g3mikzf47fg")))) - (build-system cargo-build-system) - (home-page "https://github.com/bitflags/bitflags") - (synopsis "Macro to generate structures which behave like bitflags") - (description "This package provides a macro to generate structures which -behave like a set of bitflags.") - (license (list license:asl2.0 - license:expat)))) - -;; TODO: Absorb this package into rust-bitflags-1 in core-updates with the -;; newer version of rust so we don't have to track down all dependants of this -;; package to ensure a compatible version of rust. -(define-public rust-bitflags-1.3 - (package - (inherit rust-bitflags-1) (name "rust-bitflags") (version "1.3.2") (source - (origin - (method url-fetch) - (uri (crate-uri "bitflags" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy")))) + (origin + (method url-fetch) + (uri (crate-uri "bitflags" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy")))) + (build-system cargo-build-system) (arguments - `(#:tests? #f ; Tests require rust-1.46 or newer. + `(#:tests? #f ; Tests require rust-1.46 or newer. #:cargo-inputs (("rust-compiler-builtins" ,rust-compiler-builtins-0.1) ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)) @@ -6172,7 +6151,13 @@ behave like a set of bitflags.") ("rust-serde-derive" ,rust-serde-derive-1) ("rust-serde-json" ,rust-serde-json-1) ("rust-trybuild" ,rust-trybuild-1) - ("rust-walkdir" ,rust-walkdir-2)))))) + ("rust-walkdir" ,rust-walkdir-2)))) + (home-page "https://github.com/bitflags/bitflags") + (synopsis "Macro to generate structures which behave like bitflags") + (description "This package provides a macro to generate structures which +behave like a set of bitflags.") + (license (list license:asl2.0 + license:expat)))) (define-public rust-bitflags-0.9 (package @@ -10337,6 +10322,54 @@ diagnostics easy and relatively painless for everyone!") (description "This package provides colorful panic backtraces.") (license (list license:expat license:asl2.0)))) +(define-public rust-concolor-query + (package + (name "rust-concolor-query") + (version "0.0.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "concolor-query" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1isbqpyiwblp0rglnaqzai5hav23095s82mwgi09v3xcck4rq5dd")))) + (build-system cargo-build-system) + (home-page "https://github.com/rust-cli/concolor") + (synopsis "Rust library to query low level terminal capabilities") + (description "@code{concolor-query} can be used to query a terminal +capabilities, for example to find out about its colored console abilities.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-concolor-control + (package + (name "rust-concolor-control") + (version "0.0.7") + (source + (origin + (method url-fetch) + (uri (crate-uri "concolor-control" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1nplakbdb9sbd3h62d9zkan0xm1w0c7cbl3rk0iqgn405yf1213i")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ;see https://github.com/rust-cli/concolor/issues/4 + #:cargo-inputs + (("rust-atty" ,rust-atty-0.2) + ("rust-bitflags" ,rust-bitflags-1) + ("rust-concolor-query" ,rust-concolor-query)))) + (home-page "https://github.com/rust-cli/concolor") + (synopsis "Rust library for managing terminal styling") + (description "@code{concolor-control} is a terminal styling library that +can be used to: +@itemize +@item Detect interactive @samp{stdout} or @samp{stderr} +@item Detect terminal capabilities via @samp{TERM} +@item Support @url{https://bixense.com/clicolors/, CLICOLOR} and +@url{https://no-color.org/, NO_COLOR}. +@end itemize") + (license (list license:expat license:asl2.0)))) + (define-public rust-color-quant-1 (package (name "rust-color-quant") @@ -27165,10 +27198,10 @@ currently supports parsing (fully conformant parser), formatting and comparing language tags.") (license license:expat))) -(define-public rust-lab-0.8 +(define-public rust-lab-0.11 (package (name "rust-lab") - (version "0.8.1") + (version "0.11.0") (source (origin (method url-fetch) @@ -27177,15 +27210,15 @@ language tags.") (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1ysnbviwi35mq6xyz9c59mpgigyfp4s4y2mispxzrms4vk83bx15")))) + "13ymsn5cwl5i9pmp5mfmbap7q688dcp9a17q82crkvb784yifdmz")))) (build-system cargo-build-system) (arguments `(#:cargo-development-inputs - (("rust-approx" ,rust-approx-0.3) + (("rust-approx" ,rust-approx-0.5) ("rust-criterion" ,rust-criterion-0.3) ("rust-lazy-static" ,rust-lazy-static-1) - ("rust-pretty-assertions" ,rust-pretty-assertions-0.6) - ("rust-rand" ,rust-rand-0.5)))) + ("rust-pretty-assertions" ,rust-pretty-assertions-0.7) + ("rust-rand" ,rust-rand-0.8)))) (home-page "https://github.com/TooManyBees/lab") (synopsis "Convert RGB to CIE-LAB for Rust") (description @@ -27195,7 +27228,7 @@ space, and comparing differences in color.") (define-public rust-lab-0.7 (package - (inherit rust-lab-0.8) + (inherit rust-lab-0.11) (name "rust-lab") (version "0.7.2") (source @@ -27217,18 +27250,18 @@ space, and comparing differences in color.") (define-public rust-lab-0.4 (package - (inherit rust-lab-0.8) + (inherit rust-lab-0.7) (name "rust-lab") (version "0.4.4") (source - (origin - (method url-fetch) - (uri (crate-uri "lab" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0h4ig5bvzmwlzd74zj7b4sh7kzi3c6mjjnw7yjz8ijxvr4mrcr1s")))) + (origin + (method url-fetch) + (uri (crate-uri "lab" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0h4ig5bvzmwlzd74zj7b4sh7kzi3c6mjjnw7yjz8ijxvr4mrcr1s")))) (arguments `(#:cargo-development-inputs (("rust-rand" ,rust-rand-0.3)))))) @@ -46210,8 +46243,33 @@ require unstable language features.") "small helper to generate version information for git packages") (license (list license:expat license:asl2.0)))) -(define-public rust-rustc-version-0.3 +(define-public rust-rustc-version-0.4 (package + (name "rust-rustc-version") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustc_version" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0rpk9rcdk405xhbmgclsh4pai0svn49x35aggl4nhbkd4a2zb85z")))) + (build-system cargo-build-system) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-semver" ,rust-semver-1)) + #:cargo-development-inputs + (("rust-doc-comment" ,rust-doc-comment-0.3)))) + (home-page "https://github.com/djc/rustc-version-rs") + (synopsis "Library for querying the version of an installed rustc compiler") + (description + "This package provides a library for querying the version of an installed +rustc compiler.") + (license (list license:expat license:asl2.0)))) + +(define-public rust-rustc-version-0.3 + (package/inherit rust-rustc-version-0.4 (name "rust-rustc-version") (version "0.3.3") (source @@ -46221,17 +46279,10 @@ require unstable language features.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "1vjmw7xcdri0spsf24mkpwpph853wrbqppihhw061i2igh4f5pzh")))) - (build-system cargo-build-system) (arguments `(#:skip-build? #t #:cargo-inputs - (("rust-semver" ,rust-semver-0.11)))) - (home-page "https://github.com/djc/rustc-version-rs") - (synopsis "Library for querying the version of an installed rustc compiler") - (description - "This package provides a library for querying the version of an installed -rustc compiler.") - (license (list license:expat license:asl2.0)))) + (("rust-semver" ,rust-semver-0.11)))))) (define-public rust-rustc-version-0.2 (package @@ -54715,6 +54766,30 @@ processors, disks, components and networks.") (description "Send log messages to syslog.") (license license:expat))) +(define-public rust-cfg-expr-0.8 + (package + (name "rust-cfg-expr") + (version "0.8.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "cfg-expr" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "03lgv8psc2qrr93hxgdfmfwbj1crpzghxd7qh6w2nz0l4qryh4ml")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-smallvec" ,rust-smallvec-1) + ("rust-target-lexicon" ,rust-target-lexicon-0.12)) + #:cargo-development-inputs + (("rust-difference" ,rust-difference-2)))) + (home-page "https://github.com/EmbarkStudios/cfg-expr") + (synopsis "Parser and evaluator for Rust @samp{cfg} expressions") + (description "This package provides a parser and evaluator for Rust +@samp{cfg} expressions.") + (license (list license:expat license:asl2.0)))) + (define-public rust-system-deps-3 (package (name "rust-system-deps") @@ -62273,22 +62348,23 @@ first byte.") (define-public rust-v-frame-0.2 (package (name "rust-v-frame") - (version "0.2.1") + (version "0.2.5") (source (origin (method url-fetch) (uri (crate-uri "v_frame" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0ia1j0j1v5zp9bp91imbnbxnv937x3xfpc06nyj96yjfk8zbmxhp")))) + (base32 "1ay6p0arqg8cnyzv6iiad77plvjkxnmlmyvgz2qcpadv7y5942n7")))) (build-system cargo-build-system) (arguments - `(#:skip-build? #t - #:cargo-inputs + `(#:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1) + ("rust-hawktracer" ,rust-rust-hawktracer-0.7) ("rust-noop-proc-macro" ,rust-noop-proc-macro-0.3) ("rust-num-derive" ,rust-num-derive-0.3) ("rust-num-traits" ,rust-num-traits-0.2) + ("rust-rayon" ,rust-rayon-1) ("rust-serde" ,rust-serde-1) ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)))) (home-page "https://github.com/xiph/rav1e") diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 6342f85404..da113ac168 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -309,15 +309,6 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.") (("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@") (("/bin/sh") (which "sh"))) #t)) - ;; Make the compressed manpages writable so that the - ;; reset-gzip-timestamps phase does not error out. - (add-before 'reset-gzip-timestamps 'make-manpages-writable - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (man (string-append out "/share/man"))) - (for-each (lambda (file) (chmod file #o644)) - (find-files man "\\.gz")) - #t))) (add-before 'build 'patch-tests (lambda _ (substitute* "tools/ippeveprinter.c" diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 77ee7a4477..fc221a2678 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -21291,7 +21291,7 @@ maps the thread tree.") "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik")))) (build-system emacs-build-system) (propagated-inputs - (list gnupg-2.2.32)) + (list gnupg)) (home-page "https://elpa.gnu.org/packages/pinentry.html") (synopsis "GnuPG Pinentry server implementation") (description diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 12046f0d39..bfb3f9790e 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -245,16 +245,7 @@ ;; environment variables from emacs. ;; Likewise, we don't need to patch helper binaries ;; like etags, ctags or ebrowse. - "^emacs(-[0-9]+(\\.[0-9]+)*)?$")) - #t))) - (add-before 'reset-gzip-timestamps 'make-compressed-files-writable - ;; The 'reset-gzip-timestamps phase will throw a permission error - ;; if gzip files aren't writable then. This phase is needed when - ;; building from a git checkout. - (lambda _ - (for-each make-file-writable - (find-files %output ".*\\.t?gz$")) - #t))))) + "^emacs(-[0-9]+(\\.[0-9]+)*)?$")))))))) (inputs `(("gnutls" ,gnutls) ("ncurses" ,ncurses) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 9312c9a1bc..818d9966dd 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -354,8 +354,7 @@ tests.") (base32 "0vnf0pk516fwwh41v96c29l2i7h1pnwhivlkbf53kkx1q35g7lb3")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases ;; AppInfo not available inside build environment. @@ -623,10 +622,6 @@ the freedesktop.org XDG Base Directory specification.") ;; existing in the build environment. (invoke "sed" "/src\\/test\\/test-user-util.c/,+2s/^/#/g" "-i" "src/test/meson.build") - ;; FIXME: This one times out for unknown reasons. - (invoke "sed" - "/src\\/libelogind\\/sd-event\\/test-event.c/,+2s/^/#/g" - "-i" "src/test/meson.build") ;; This test tries to copy some bytes from /usr/lib/os-release, ;; which does not exist in the build container. Choose something ;; more likely to be available. @@ -1002,6 +997,7 @@ Python.") ("dot" ,graphviz) ("doxygen" ,doxygen) ("pkg-config" ,pkg-config) + ("python" ,python) ("xmlto" ,xmlto) ("xsltproc" ,libxslt) ,@(if (%current-target-system) @@ -1038,7 +1034,7 @@ fullscreen) or other display servers.") (inputs (list wayland)) (native-inputs - (list pkg-config)) + (list pkg-config python)) (synopsis "Wayland protocols") (description "Wayland-Protocols contains Wayland protocols that add functionality not available in the Wayland core protocol. Such protocols either @@ -1379,8 +1375,7 @@ message bus.") (base32 "16wwd633jak9ajyr1f1h047rmd09fhf3kzjz6g5xjsz0lwcj8azz")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;see https://github.com/mesonbuild/meson/issues/6470 - #:tests? #f ; XXX: tests require DocBook 4.1.2 + `(#:tests? #f ; XXX: tests require DocBook 4.1.2 #:configure-flags '("--localstatedir=/var" "-Dsystemdsystemunitdir=/tmp/empty" diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 725838ca1f..dab1d797e0 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1757,7 +1757,6 @@ destroying an ancient book using a special wand.") (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t - #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 2e253e081a..8da4989bf1 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -229,8 +229,7 @@ topology functions.") "037xmkmcmcw87vb1c1s3y225m8757k331cvk1m8cshf6mx61p0l1")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index d5fd197922..d606acf798 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -259,13 +259,6 @@ from Markdown files.") `("PERL5LIB" ":" prefix (,path)))) (find-files bin "\\.*$")) #t))) - (add-before 'reset-gzip-timestamps 'make-compressed-files-writable - (lambda* (#:key outputs #:allow-other-keys) - (for-each make-file-writable - (find-files (string-append (assoc-ref outputs "out") - "/share/man") - ".*\\.gz$")) - #t)) (add-after 'unpack 'patch-docbook-xml (lambda* (#:key inputs #:allow-other-keys) (substitute* (find-files "." ".*\\.xml(-good)?") diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 6dd90eaf93..fa49679870 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2019 Pierre Neidhardt ;;; Copyright © 2020 Marius Bakke ;;; Copyright © 2020 Giacomo Leidi -;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020, 2021 Maxim Cournoyer ;;; Copyright © 2020 Kei Kebreau ;;; Copyright © 2021 Ivan Gankevich ;;; Copyright © 2021 John Kehayias @@ -227,7 +227,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "21.2.5") + (version "21.3.2") (source (origin (method url-fetch) @@ -239,7 +239,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "1fxcdf4qs4vmyjcns7jv62w4jy3gr383ar5b7mr77nb0nxgmhjcf")) + "1g96y59bw10ml8h4jl259g41jdmf5ww3jbwqpz1sprq7hgxvmrz2")) (patches (search-patches "mesa-skip-tests.patch")))) (build-system meson-build-system) @@ -352,6 +352,12 @@ also known as DXTn or DXTC) for Mesa.") (modify-phases %standard-phases (add-after 'unpack 'disable-failing-test (lambda _ + ;; Disable the intel vulkan (anv_state_pool) tests, as they may + ;; fail in a nondeterministic fashion (see: + ;; https://gitlab.freedesktop.org/mesa/mesa/-/issues/5446). + (substitute* "src/intel/vulkan/meson.build" + (("if with_tests") + "if false")) ,@(match (%current-system) ("powerpc64le-linux" ;; Disable some of the llvmpipe tests. diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 1bd1d6c138..30e5433776 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -179,7 +179,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.70.0") + (version "2.70.2") (source (origin (method url-fetch) @@ -188,7 +188,7 @@ shared NFS home directories.") name "/" (string-take version 4) "/" name "-" version ".tar.xz")) (sha256 - (base32 "0hh7hk02fkm1bn48k4z8f3kgv9qbni5z22gizd567fn527w7s390")) + (base32 "0vw08p4jllavp9qmlqg1yl1zanmy53yid46wipas6gfdhnf4al85")) (patches (search-patches "glib-appinfo-watch.patch" "glib-skip-failing-test.patch")) @@ -212,12 +212,11 @@ shared NFS home directories.") `(,(this-package-native-input "python") ,(this-package-native-input "python-wrapper"))) '())) - #:configure-flags (list "--default-library=both" - "-Dman=false" - "-Dselinux=disabled" - (string-append "--bindir=" - (assoc-ref %outputs "bin") - "/bin")) + #:configure-flags ,#~(list "--default-library=both" + "-Dman=false" + "-Dselinux=disabled" + (string-append "--bindir=" + #$output:bin "/bin")) #:phases (modify-phases %standard-phases ;; Needed to pass the test phase on slower ARM and i686 machines. @@ -365,8 +364,8 @@ functions for strings and common data structures.") (arguments (substitute-keyword-arguments (package-arguments glib) ((#:configure-flags flags ''()) - `(cons "-Dgtk_doc=true" - (delete "-Dman=false" ,flags))) + #~(cons "-Dgtk_doc=true" + (delete "-Dman=false" #$flags))) ((#:phases phases) `(modify-phases ,phases (add-after 'unpack 'patch-docbook-xml @@ -467,8 +466,7 @@ be used when cross-compiling." (lambda _ (substitute* "tools/g-ir-tool-template.in" (("#!@PYTHON_CMD@") - (string-append "#!" (which "python3")))) - #t)) + (string-append "#!" (which "python3")))))) #$@(if (%current-target-system) ;; Meson gives python extensions an incorrect name, see ;; . @@ -482,12 +480,8 @@ be used when cross-compiling." (native-inputs `(("glib" ,glib "bin") ("pkg-config" ,pkg-config) - ;; TODO(core-updates): Unconditionally place "flex" and "bison" - ;; in 'native-inputs'. - ,@(if (%current-target-system) - `(("bison" ,bison) - ("flex" ,flex)) - '()))) + ("bison" ,bison) + ("flex" ,flex))) (inputs `(,@(if (%current-target-system) `(("python" ,python)) @@ -753,7 +747,7 @@ by GDBus included in Glib.") (define glibmm (package (name "glibmm") - (version "2.68.0") + (version "2.70.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glibmm/" @@ -761,13 +755,12 @@ by GDBus included in Glib.") "/glibmm-" version ".tar.xz")) (sha256 (base32 - "0xgkyhb2876mcyyib5rk3ya9aingyj68h02nl22yvkhx35rqbwy1")))) + "085mzpphz71sh5wh71ppikwnxsgn4pk3s4bzz6ingj6wxn5gs240")))) (build-system meson-build-system) (outputs '("out" "doc")) (arguments `(#:configure-flags - (list - "-Dbuild-documentation=true") + (list "-Dbuild-documentation=true") #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-failing-tests @@ -778,8 +771,7 @@ by GDBus included in Glib.") (("[ \t]*.*giomm_simple.*$") "") ;; This test does a DNS lookup, and then expects to be able ;; to open a TLS session; just skip it. - (("[ \t]*.*giomm_tls_client.*$") "")) - #t)) + (("[ \t]*.*giomm_tls_client.*$") "")))) (add-after 'install 'move-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -787,17 +779,16 @@ by GDBus included in Glib.") (mkdir-p (string-append doc "/share")) (rename-file (string-append out "/share/doc") - (string-append doc "/share/doc")) - #t)))))) + (string-append doc "/share/doc")))))))) (native-inputs - `(("dot" ,graphviz) - ("doxygen" ,doxygen) - ("glib:bin" ,glib "bin") - ("m4" ,m4) - ("mm-common" ,mm-common) - ("perl" ,perl) - ("pkg-config" ,pkg-config) - ("xsltproc" ,libxslt))) + (list graphviz + doxygen + `(,glib "bin") + m4 + mm-common + perl + pkg-config + libxslt)) (propagated-inputs (list libsigc++ glib)) (home-page "https://gtkmm.org/") @@ -823,7 +814,7 @@ useful for C++.") (base32 "11m37sbx0i18cl17d0fkq0bik4bbzlb5n8kcl651jhci5ipci3sh")))) (propagated-inputs (modify-inputs (package-propagated-inputs glibmm) - (prepend libsigc++-2))))) + (replace "libsigc++" libsigc++-2))))) (define-public python2-pygobject-2 (package diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index d8d34c89ed..591356f72f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -888,8 +888,7 @@ tomorrow, the rest of the week and for special occasions.") "1bzi79plw6ji6qlckhxnwfnswy6jpnhzmmyanml2i2xg73hp6bg0")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:configure-flags (list "-Ddogtail=false" ; Not available ;; Required for RUNPATH validation. @@ -960,8 +959,7 @@ cloud integration is offered through GNOME Online Accounts.") "0lcdal4qdhclr8961p57xf010y92l6wwmkw86lyi9wy224z6gjr0")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-after 'install 'wrap-gnome-music @@ -1496,8 +1494,7 @@ extraction, and lookup for applications on the desktop.") "06q3p4f8g9zr7a4mw3qr556mi0dg9qzrj8n46ybdz93fxs26aaj1")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:configure-flags '(;; Enable camera support for user selfie. + `(#:configure-flags '(;; Enable camera support for user selfie. "-Dcheese=auto" "-Dsystemd=false") #:phases (modify-phases %standard-phases @@ -1562,8 +1559,7 @@ tour of all gnome components and allows the user to set them up.") "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:configure-flags `("-Dsystemduserunitdir=/tmp/empty" ;; Enable nautilus extension for file sharing. @@ -2042,8 +2038,7 @@ to other formats.") "0z2xa4w921bzpzj6gv88pvbrijcnnwni6jxynwz0ybaravyzaqha")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-after 'install 'wrap (lambda* (#:key outputs #:allow-other-keys) @@ -2279,8 +2274,7 @@ and keep up to date translations of documentation.") "1rr1ypb89p51b6428yqvczmpmylwjfnhnkgx78hzm3vxm3m15lff")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:configure-flags '("-Dlogind=libelogind") + `(#:configure-flags '("-Dlogind=libelogind") #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache @@ -2329,8 +2323,7 @@ and keep up to date translations of documentation.") "0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'patch-post-install-script (lambda _ @@ -2599,8 +2592,7 @@ forgotten when the session ends.") "0xrwls1bhvny8vvd7mfjy9p26zjch0pd6x6j9jn9g2ka6xwyrxqg")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:build-type "release" #:configure-flags '("-Dnautilus=false" @@ -2675,25 +2667,24 @@ on the GNOME Desktop with a single simple application.") "1v9jagk679m01nji0acirynxinziv036618c7xc49l4nwmr9ja3p")))) (build-system meson-build-system) (arguments - '(#:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'patch-schemas (lambda* (#:key inputs #:allow-other-keys) - (let ((theme (assoc-ref inputs "gnome-backgrounds"))) - (substitute* (find-files "schemas" - "\\.gschema\\.xml\\.in$") - ;; Provide the correct file name of the default - ;; GNOME background, 'adwaita-timed.xml'. - (("@datadir@/backgrounds/gnome") - (string-append theme "/share/backgrounds/gnome")) - ;; Do not reference fonts, that may not exist. - (("'Source Code Pro 10'") "'Monospace 11'")))))))) - (inputs - (list glib gnome-backgrounds)) - (native-inputs - `(("gettext" ,gettext-minimal) - ("glib" ,glib "bin") ; glib-compile-schemas, etc. - ("gobject-introspection" ,gobject-introspection) - ("pkg-config" ,pkg-config))) + (substitute* (find-files "schemas" + "\\.gschema\\.xml\\.in$") + ;; Provide the correct file name of the default + ;; GNOME background, 'adwaita-timed.xml'. + (("@datadir@/backgrounds/gnome") + (search-input-directory inputs + "/share/backgrounds/gnome")) + ;; Do not reference fonts, that may not exist. + (("'Source Code Pro 10'") "'Monospace 11'"))))))) + (inputs (list glib gnome-backgrounds)) + (native-inputs (list gettext-minimal + `(,glib "bin") ;glib-compile-schemas, etc. + gobject-introspection + pkg-config + python)) ;for build-aux/meson/post-install.py (home-page "https://launchpad.net/gsettings-desktop-schemas") (synopsis "GNOME settings for various desktop components") (description "Gsettings-desktop-schemas contains a collection of GSettings @@ -3193,8 +3184,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.") "glade-test-widget-null-icon.patch")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache ;; Don't create 'icon-theme.cache'. @@ -3238,6 +3228,7 @@ current/manpages/docbook.xsl") ("docbook-xml" ,docbook-xml-4.2) ("docbook-xsl" ,docbook-xsl) ("glib:bin" ,glib "bin") + ("python" ,python) ("python-pygobject" ,python-pygobject) ("gobject-introspection" ,gobject-introspection) @@ -4620,6 +4611,7 @@ and RDP protocols.") ("glib:bin" ,glib "bin") ("gtk-doc" ,gtk-doc/stable) ("pkg-config" ,pkg-config) + ("python" ,python) ("vala" ,vala))) (arguments `(#:glib-or-gtk? #t @@ -5098,7 +5090,6 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t - #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache @@ -5180,7 +5171,6 @@ once.") (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t - #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache @@ -5542,6 +5532,7 @@ service via the system message bus.") `(("glib:bin" ,glib "bin") ; for glib-mkenums ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) + ("python" ,python) ("vala" ,vala) ("intltool" ,intltool) ("python-pygobject" ,python-pygobject))) @@ -5578,8 +5569,7 @@ services for numerous locations.") (patches (search-patches "gnome-settings-daemon-gc.patch")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:configure-flags (list (string-append "-Dudev_dir=" (assoc-ref %outputs "out") "/lib/udev") @@ -5752,7 +5742,6 @@ both a traditional UI or a modern UI with a GtkHeaderBar.") (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t - #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache @@ -6283,8 +6272,7 @@ discovery protocols.") grilo-plugins vala)) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t ;; Disable automatic GStreamer plugin installation via PackageKit and ;; all that. @@ -6438,8 +6426,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") (patches (search-patches "eog-update-libportal-usage.patch")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:configure-flags + `(#:configure-flags ;; Otherwise, the RUNPATH will lack the final 'eog' path component. (list (string-append "-Dc_link_args=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib/eog")) @@ -6570,8 +6557,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") "1hlxl6368h6nyqp1888szxs9hnpcw98k3h23dgqi29xd38klzsmj")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:configure-flags (list "-Dsystemduserunitdir=no" "-Dtmpfilesdir=no" @@ -6650,7 +6636,7 @@ DAV, and others.") "-Dvapi=false") '())))) (native-inputs - (list gobject-introspection pkg-config vala)) + (list gobject-introspection pkg-config python vala)) (propagated-inputs ;; Both of these are required by gusb.pc. (list glib libusb)) @@ -6690,13 +6676,13 @@ USB transfers with your high-level application or system daemon.") (build-system meson-build-system) ;; TODO: Fix icons in home screen, About dialogue, and scan menu. (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t)) + `(#:glib-or-gtk? #t)) (native-inputs (list gettext-minimal itstool `(,glib "bin") ; glib-compile-schemas, etc. pkg-config + python vala libxml2)) (inputs @@ -6790,7 +6776,7 @@ a secret password store, an adblocker, and a modern UI.") (define-public epiphany (package (name "epiphany") - (version "40.3") + (version "41.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/epiphany/" @@ -6804,7 +6790,6 @@ a secret password store, an adblocker, and a modern UI.") (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t - #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache @@ -7162,6 +7147,7 @@ share them with others via social networking and more.") intltool itstool pkg-config + python `(,gtk+ "bin") ; gtk-update-icon-cache `(,glib "bin"))) ;; TODO: Add libnautilus. @@ -7194,8 +7180,7 @@ such as gzip tarballs.") (base32 "02z0xr6sv9ibl7awbw9j4y05hf4jk1zgvsbbmh7n27hhjvsvc8pl")))) (arguments - `(#:meson ,meson-0.59 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-after 'install 'wrap-gnome-session @@ -7262,7 +7247,10 @@ configuration program to choose applications starting on login.") (("☭") "")))))) (build-system meson-build-system) (arguments - '(#:configure-flags '("-Dinstalled_tests=false") + ;; Use meson-0.59, otherwise we'd get "ERROR: "install_dir" must be + ;; specified when installing a target". + `(#:meson ,meson-0.59 + #:configure-flags '("-Dinstalled_tests=false") #:phases (modify-phases %standard-phases (add-before 'check 'pre-check @@ -7308,8 +7296,7 @@ javascript engine and the GObject introspection framework.") "149ngl9qw6h59546lir1pa7hvw23ppsnqlj9mfqphmmn5jl99qsm")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:configure-flags ;; Otherwise, the RUNPATH will lack the final path component. (list (string-append "-Dc_link_args=-Wl,-rpath=" @@ -7550,6 +7537,7 @@ to display dialog boxes from the commandline and shell scripts.") ("adwaita-icon-theme" ,adwaita-icon-theme) ("libxcursor" ,libxcursor) ;for XCURSOR_PATH ("pipewire" ,pipewire-0.3) + ("python" ,python) ("python-dbus" ,python-dbus) ("python-dbusmock" ,python-dbusmock) ("tini" ,tini))) ;acting as init (zombie reaper) @@ -7862,6 +7850,13 @@ users.") (string-append "-Ddhclient=" dhclient))) #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-dlopen-call-to-libjansson.so + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/libnm-glib-aux/nm-json-aux.c" + (("(handle = dlopen\\()soname" _ head) + (string-append + head "\"" (search-input-file inputs + "lib/libjansson.so") "\""))))) (add-before 'configure 'pre-configure (lambda _ ;; These tests try to test aspects of network-manager's @@ -7880,12 +7875,7 @@ users.") ((".*test-link-linux.*") "") ((".*test-lldp.*") "") ((".*test-route-linux.*") "") - ((".*test-tc-linux.*") "")) - ;; FIXME: The jansson check fails (see: - ;; https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/837 - (substitute* "src/libnm-core-impl/tests/test-setting.c" - (("g_assert\\(nm_json_vt\\(\\)\\);") - "return TRUE;")))) + ((".*test-tc-linux.*") "")))) (add-after 'unpack 'patch-docbook-xml (lambda* (#:key inputs #:allow-other-keys) (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml") @@ -8158,8 +8148,7 @@ Cisco's AnyConnect SSL VPN.") "1gj6lqqi613j2m49v9i82lqg1rv7kwwc8z4nxjcwpaa0ins803f7")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:configure-flags '("-Dappindicator=yes"))) (native-inputs @@ -8513,7 +8502,6 @@ usage and information about running processes.") (base32 "1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c")))) (build-system meson-build-system) - (arguments `(#:meson ,meson-0.59)) (native-inputs `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc. ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache @@ -8549,8 +8537,7 @@ devices using the GNOME desktop.") "0rr4d5m2a72vrb31jgyx49dp0s2pwgyxsrk4hyw5ym66wq63c3v1")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:configure-flags (list "-Dcheese=false" (string-append "-Dgnome_session_libexecdir=" @@ -8662,8 +8649,7 @@ properties, screen resolution, and other GNOME parameters.") "0ragmcln210zvzhc2br33yprbkj9drjzd7inp5sdxra0a7l73yaj")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:disallowed-references ,(list (gexp-input glib "bin") (gexp-input libxslt) (gexp-input ruby-sass)) @@ -8940,6 +8926,7 @@ easy, safe, and automatic.") ("intltool" ,intltool) ("dbus" ,dbus) ("pkg-config" ,pkg-config) + ("python" ,python) ("vala" ,vala))) (inputs `(("dbus" ,dbus) @@ -9200,6 +9187,7 @@ files.") (native-inputs `(("intltool" ,intltool) ("pkg-config" ,pkg-config) + ("python" ,python) ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache ("itstool" ,itstool) @@ -9220,7 +9208,7 @@ is complete it provides a graphical representation of each selected folder.") (define-public gnome-backgrounds (package (name "gnome-backgrounds") - (version "40.1") + (version "41.0") (source (origin (method url-fetch) @@ -9229,10 +9217,9 @@ is complete it provides a graphical representation of each selected folder.") name "-" version ".tar.xz")) (sha256 (base32 - "03m7ldfk00cly9igrq0qizq1y0f45vijmm23f1dl5kh1lc6qmpv0")))) + "0i9id5z72dqddh94648zylyf41amqq5lhny8sbyg1v8v4q6sr88x")))) (build-system meson-build-system) - (native-inputs - `(("gettext" ,gettext-minimal))) + (native-inputs (list gettext-minimal)) (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds") (synopsis "Background images for the GNOME desktop") (description @@ -9268,14 +9255,14 @@ can add your own files to the collection.") ;; Don't create 'icon-theme.cache'. (lambda _ (substitute* "build-aux/postinstall.py" - (("gtk-update-icon-cache") "true")) - #t))))) + (("gtk-update-icon-cache") "true"))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database ("intltool" ,intltool) ("appstream-glib" ,appstream-glib) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ("python" ,python))) (inputs (list gtk+ libcanberra libhandy libx11 libxext)) (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot") @@ -9308,8 +9295,6 @@ beautifying border effects.") ("vala" ,vala))) (inputs (list dconf gtk+ libxml2)) - (arguments - `(#:meson ,meson-0.59)) (home-page "https://gitlab.gnome.org/GNOME/dconf-editor") (synopsis "Graphical editor for GNOME's dconf configuration system") (description @@ -9406,8 +9391,7 @@ associations for GNOME.") libgweather libhandy)) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:phases ,#~(modify-phases %standard-phases (add-after 'unpack 'fix-service-file @@ -9769,7 +9753,6 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.") (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t - #:meson ,meson-0.59 ;; gnome-calendar has to be installed before the tests can be run ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224 #:tests? #f @@ -9909,7 +9892,6 @@ existing databases over the internet.") (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t - #:meson ,meson-0.59 #:configure-flags '("-Dlocalstatedir=/tmp" "-Dsysconfdir=/tmp") #:imported-modules ((guix build python-build-system) @@ -10166,7 +10148,8 @@ handling the startup notification side.") ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache ("itstool" ,itstool) ("vala" ,vala) - ("pkg-config" ,pkg-config))) + ("pkg-config" ,pkg-config) + ("python" ,python))) (inputs `(("glib" ,glib) ("gtksourceview" ,gtksourceview) @@ -10697,8 +10680,7 @@ photo-booth-like software, such as Cheese.") "0vyim2avlgq3a48rgdfz5g21kqk11mfb53b2l883340v88mp7ll8")) (patches (search-patches "cheese-vala-update.patch")))) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t ;; Tests require GDK. #:tests? #f #:phases @@ -11114,11 +11096,6 @@ functionality.") (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t - - ;; See - ;; . - #:meson ,meson-0.59 - #:configure-flags ;; Ensure the RUNPATH contains all installed library locations. (list (string-append "-Dc_link_args=-Wl,-rpath=" @@ -11354,8 +11331,7 @@ higher level porcelain stuff.") "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-post-install-partially @@ -11615,8 +11591,7 @@ environment.") "001h9gppn79gnj7dl61jl9gas5wmbjdx0v8xwsx7v4xsv2hwz91g")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache @@ -11679,8 +11654,7 @@ integrate seamlessly with the GNOME desktop.") (search-patches "gnome-boxes-add-guix-logo.patch")))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 ;positional arguments error with meson 0.60 - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:configure-flags (list "-Drdp=false" (string-append "-Dc_link_args=-Wl,-rpath=" (assoc-ref %outputs "out") @@ -12594,8 +12568,7 @@ your data.") (propagated-inputs (list gtksourceview)) ; required for source view (arguments - `(#:meson ,meson-0.59 - #:build-type "release" + `(#:build-type "release" #:glib-or-gtk? #t #:phases (modify-phases %standard-phases diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index f0333befa5..cde7427d07 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -279,15 +279,19 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.2.30") + ;; Note: The 2.2.X releases are Long Term Support (LTS), so stick to it + ;; for our stable 'gnupg'. + ;; Note2: 2.2.33 currently suffers from regressions, so do not update to it + ;; (see: https://dev.gnupg.org/T5742). + (version "2.2.32") (source (origin (method url-fetch) - (uri (string-append "mirror://gnupg/gnupg/gnupg-" version + (uri (string-append "ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-" version ".tar.bz2")) (patches (search-patches "gnupg-default-pinentry.patch")) (sha256 (base32 - "1111ry31gaxv76miqsy6l0kwxwlx8sz0jk41jhyrjwx649p6sqyc")))) + "0506gv54z10c96z5821z9p0ksibk1pfilsmag39ffqrcz0sinmxj")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) @@ -347,21 +351,6 @@ libskba (working with X.509 certificates and CMS data).") (properties '((ftp-server . "ftp.gnupg.org") (ftp-directory . "/gcrypt/gnupg"))))) -;; This package fixes , "GnuPG 2.2.30 cannot -;; do symmetric encryption" -(define-public gnupg-2.2.32 - (package - (inherit gnupg) - (version "2.2.32") - (source (origin - (inherit (package-source gnupg)) - (uri (string-append "mirror://gnupg/gnupg/gnupg-" version - ".tar.bz2")) - (patches (search-patches "gnupg-default-pinentry.patch")) - (sha256 - (base32 - "0506gv54z10c96z5821z9p0ksibk1pfilsmag39ffqrcz0sinmxj")))))) - (define-public gnupg-1 (package (inherit gnupg) (version "1.4.23") @@ -382,8 +371,7 @@ libskba (working with X.509 certificates and CMS data).") (add-after 'unpack 'patch-check-sh (lambda _ (substitute* "checks/Makefile.in" - (("/bin/sh") (which "sh"))) - #t))))))) + (("/bin/sh") (which "sh")))))))))) (define-public gpgme (package @@ -433,14 +421,9 @@ and every application benefits from this.") "lang/cpp/src/libgpgmepp.la") (symlink (string-append gpgme "/lib/libgpgme.la") "src/libgpgme.la")) - (chdir "lang/qt") - #t))))) + (chdir "lang/qt")))))) (native-inputs - ;; Use GnuPG 2.2.32. With 2.2.30, 'testSymmetricEncryptDecrypt' in - ;; t-encrypt.cpp fails because 'gpg' wrongfully ask for a passphrase do - ;; decrypt the cypher text. (modify-inputs (package-native-inputs gpgme) - (replace "gnupg" gnupg-2.2.32) (prepend pkg-config))) (inputs (modify-inputs (package-inputs gpgme) @@ -593,14 +576,14 @@ decrypt messages using the OpenPGP format by making use of GPGME.") (define-public python-gnupg (package (name "python-gnupg") - (version "0.4.7") + (version "0.4.8") (source (origin (method url-fetch) (uri (pypi-uri "python-gnupg" version)) (sha256 (base32 - "1isazrg2h126xg3vvk4wrhx8k8yfsg5sxybvfa99phj235mzaq90")))) + "1mq7hljy3bjkxdvh3qx2bv4y0b66l9pmc6i06ys75y7dbjpf2kdn")))) (build-system python-build-system) (arguments `(#:phases @@ -615,8 +598,7 @@ decrypt messages using the OpenPGP format by making use of GPGME.") (setenv "USERNAME" "guixbuilder") ;; The doctests are extremely slow and sometimes time out, ;; so we disable them. - (invoke "python" - "test_gnupg.py" "--no-doctests"))))))) + (invoke "python" "test_gnupg.py" "--no-doctests"))))))) (native-inputs (list gnupg)) (home-page "https://pythonhosted.org/python-gnupg/index.html") @@ -626,9 +608,6 @@ decrypt messages using the OpenPGP format by making use of GPGME.") and signature functionality from Python programs.") (license license:bsd-3))) -(define-public python2-gnupg - (package-with-python2 python-gnupg)) - (define-public perl-gnupg-interface (package (name "perl-gnupg-interface") diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index f5d8d054cd..cda41041f6 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -369,10 +369,7 @@ in C/C++.") `(#:tests? #f ; FIXME: all tests pass, but then the check phase fails anyway. #:test-target "check-jstests" #:configure-flags - ;; TODO(core-updates): unconditionally use 'quasiquote - ,#~(#$(if (%current-target-system) - #~quasiquote - #~quote) + ,#~(quasiquote ("--enable-ctypes" "--enable-optimize" "--enable-pie" @@ -466,7 +463,10 @@ in C/C++.") "--enable-hardening" "--enable-optimize" "--enable-release" - "--enable-rust-simd" + ;; FIXME: rust-simd is disabled otherwise the build fails with + ;; "error: `[u32; 64]` is forbidden as the type of a const generic + ;; parameter". + "--disable-rust-simd" "--enable-readline" "--enable-shared-js" "--with-system-icu" diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index db95ef1309..e808d8ebf6 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -2451,16 +2451,7 @@ Go programming language.") #:phases (modify-phases %standard-phases ;; Source-only package - (delete 'build) - (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable - (lambda* (#:key outputs #:allow-other-keys) - (map (lambda (file) - (make-file-writable file)) - (find-files - (string-append (assoc-ref outputs "out") - "/src/golang.org/x/crypto/ed25519/testdata") - ".*\\.gz$")) - #t))))) + (delete 'build)))) (propagated-inputs (list go-golang-org-x-sys)) (synopsis "Supplementary cryptographic libraries in Go") @@ -3738,17 +3729,7 @@ SysVinit, and more.") (list go-golang-org-x-sys go-github-com-sirupsen-logrus go-golang-org-x-crypto)) (arguments - '(#:import-path "github.com/docker/distribution" - #:phases - (modify-phases %standard-phases - (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable - (lambda* (#:key outputs #:allow-other-keys) - (map (lambda (file) - (make-file-writable file)) - (find-files - (assoc-ref outputs "out") - ".*\\.gz$")) - #t))))) + '(#:import-path "github.com/docker/distribution")) (home-page "https://github.com/docker/distribution") (synopsis "This package is a Docker toolset to pack, ship, store, and @@ -5571,17 +5552,7 @@ non-UTF-friendly sources.") "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d")))) (build-system go-build-system) (arguments - `(#:import-path "github.com/gdamore/tcell" - #:phases - (modify-phases %standard-phases - (add-before 'reset-gzip-timestamps 'make-files-writable - (lambda* (#:key outputs #:allow-other-keys) - ;; Make sure .gz files are writable so that the - ;; 'reset-gzip-timestamps' phase can do its work. - (let ((out (assoc-ref outputs "out"))) - (for-each make-file-writable - (find-files out "\\.gz$")) - #t)))))) + `(#:import-path "github.com/gdamore/tcell")) (inputs (list go-github.com-mattn-go-runewidth go-golang-org-colorful go-golang-org-x-text go-github-com-gdamore-encoding)) diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm index c48301ca35..8810617795 100644 --- a/gnu/packages/graph.scm +++ b/gnu/packages/graph.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2020 Pierre Langlois ;;; Copyright © 2021 Vinicius Monego ;;; Copyright © 2021 Alexandre Hannud Abdo +;;; Copyright © 2021 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ (define-module (gnu packages graph) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix utils) @@ -60,31 +62,81 @@ #:use-module (gnu packages time) #:use-module (gnu packages xml)) +(define-public plfit + (package + (name "plfit") + (version "0.9.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ntamas/plfit") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03x5jbvg8vwr92682swy58ljxrhqwmga1xzd0cpfbfmda41gm2fb")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"))) + (home-page "https://github.com/ntamas/plfit") + (synopsis "Tool for fitting power-law distributions to empirical data") + (description "The @command{plfit} command fits power-law distributions to +empirical (discrete or continuous) data, according to the method of Clauset, +Shalizi and Newman (@cite{Clauset A, Shalizi CR and Newman MEJ: Power-law +distributions in empirical data. SIAM Review 51, 661-703 (2009)}).") + (license license:gpl2+))) + (define-public igraph (package (name "igraph") - (version "0.8.4") + (version "0.9.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/igraph/igraph/releases/" "download/" version "/igraph-" version ".tar.gz")) + (modules '((guix build utils))) + (snippet '(begin + ;; Fully unbundle igraph (see: + ;; https://github.com/igraph/igraph/issues/1897). + (delete-file-recursively "vendor") + (substitute* "CMakeLists.txt" + (("add_subdirectory\\(vendor\\).*") + "")) + (substitute* "src/CMakeLists.txt" + ;; Remove bundling related variables. + ((".*_IS_VENDORED.*") "") + ;; Remove link/install directives to bundled plfit. + (("plfit") "") + ;; Patch in support to find plfit from the system. + (("# Link igraph statically to some.*" all) + (string-append "\ +find_package(PkgConfig REQUIRED) +pkg_check_modules(PLFIT REQUIRED libplfit IMPORTED_TARGET) +target_link_libraries(igraph PUBLIC PkgConfig::PLFIT)\n" + all))) + (substitute* (find-files "." "(\\.h|\\.c)$") + ;; Adjust includes for the newer plfit used. + (("plfit/error.h") + "plfit/plfit_error.h") + ;; And the newer SuiteSparse. + (("cs/cs.h") + "cs.h")))) (sha256 - (base32 "127q6q40kbmvd62yhbz6dlfk370qiq98s1iscyagpgbpjwb4xvyf")))) - (build-system gnu-build-system) + (base32 "0ym1jnj6rqrrjad0dk7jsrm9351zdd0654brbn38gqp1j9wgdqy4")))) + (build-system cmake-build-system) (arguments - `(#:configure-flags - (list "--disable-static" - "--with-external-glpk" - "--with-external-blas" - "--with-external-lapack"))) + '(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"))) + (native-inputs (list pkg-config)) (inputs - (list gmp + (list arpack-ng + gmp glpk libxml2 lapack openblas - zlib)) + plfit + suitesparse)) (home-page "https://igraph.org") (synopsis "Network analysis and visualization") (description @@ -95,36 +147,46 @@ more.") (license license:gpl2+))) (define-public python-igraph - (package (inherit igraph) + (package/inherit igraph (name "python-igraph") - (version "0.8.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "python-igraph" version)) - (sha256 - (base32 "0wkxrs28qdvnrz7d4jzcf2bh6v2yqzx3wyfziihfgsi2gn6n60a6")))) + (version "0.9.8") + (source (origin + (method git-fetch) + ;; The PyPI archive lacks tests. + (uri (git-reference + (url "https://github.com/igraph/python-igraph") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0nwwfqvj4gp91b9j67zq4l58srr4r8qfqh90ygx17zyrybkx7ns6")))) (build-system python-build-system) (arguments - '(#:configure-flags - (list "--use-pkg-config") - #:phases - (modify-phases %standard-phases - (replace 'build - (lambda _ - (invoke "python" "./setup.py" "build" "--use-pkg-config"))) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "pytest" "-v")))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'specify-libigraph-location + (lambda _ + (let ((igraph #$(this-package-input "igraph"))) + (substitute* "setup.py" + (("(LIBIGRAPH_FALLBACK_INCLUDE_DIRS = ).*" _ var) + (string-append + var (format #f "[~s]~%" (string-append igraph + "/include/igraph")))) + (("(LIBIGRAPH_FALLBACK_LIBRARY_DIRS = ).*" _ var) + (string-append + var (format #f "[~s]~%" (string-append igraph "/lib")))))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-v"))))))) (inputs (list igraph)) (propagated-inputs (list python-texttable)) (native-inputs - (list pkg-config python-pytest)) - (home-page "https://pypi.org/project/python-igraph/") + (list python-pytest)) + (home-page "https://igraph.org/python/") (synopsis "Python bindings for the igraph network analysis library"))) (define-public r-rbiofabric @@ -181,14 +243,7 @@ lines.") (invoke "pytest" "-x" "plotly/tests/test_io") ;; FIXME: Add optional dependencies and enable their tests. ;; (invoke "pytest" "-x" "plotly/tests/test_optional") - (invoke "pytest" "_plotly_utils/tests")) - #t)) - (add-before 'reset-gzip-timestamps 'make-files-writable - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (for-each (lambda (file) (chmod file #o644)) - (find-files out "\\.gz")) - #t)))))) + (invoke "pytest" "_plotly_utils/tests"))))))) (native-inputs (list python-ipywidgets python-pytest python-xarray)) (propagated-inputs diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index a5b804d848..ced9d621aa 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -188,10 +188,7 @@ tools have full access to view and control running applications.") ("pkg-config" ,pkg-config) ("python" ,python-wrapper))) (inputs - ;; TODO(core-updates): make this unconditional - `(,@(if (%current-target-system) - `(("bash-minimal" ,bash-minimal)) ; for glib-or-gtk-wrap - '()) + `(("bash-minimal" ,bash-minimal) ("drm" ,libdrm) ("ghostscript" ,ghostscript) ("libspectre" ,libspectre) @@ -1062,7 +1059,7 @@ application suites.") (define-public gtk (package (name "gtk") - (version "4.2.1") + (version "4.4.1") (source (origin (method url-fetch) @@ -1070,9 +1067,10 @@ application suites.") (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1rh9fd5axf79pmd93hb2fmmflic5swcvqvq6vqghlgz4bmvnjc82")) + (base32 "1x6xlc063nqp7cg6py4kq1kpw9pkq49ifk5kki0brc667ncdmahg")) (patches - (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch")))) + (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch" + "gtk-introspection-test.patch")))) (build-system meson-build-system) (outputs '("out" "bin" "doc")) (arguments @@ -1125,7 +1123,7 @@ application suites.") (lambda _ (setenv "XDG_CACHE_HOME" (getcwd)))) (add-before 'check 'pre-check - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) ;; Tests require a running X server. (system "Xvfb :1 +extension GLX &") (setenv "DISPLAY" ":1") @@ -1134,7 +1132,10 @@ application suites.") ;; Tests look for those variables. (setenv "XDG_RUNTIME_DIR" (getcwd)) ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0"))) + (setenv "DBUS_FATAL_WARNINGS" "0") + ;; Required for the calendar test. + (setenv "TZDIR" (search-input-directory inputs + "share/zoneinfo")))) (add-after 'install 'move-files (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -1169,10 +1170,12 @@ application suites.") ("gettext-minimal" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ;for building introspection data + ("graphene" ,graphene) ("gtk-doc" ,gtk-doc) ;for building documentation ("intltool" ,intltool) ("libxslt" ,libxslt) ;for building man-pages ("pkg-config" ,pkg-config) + ("python-pygobject" ,python-pygobject) ;; These python modules are required for building documentation. ("python-jinja2" ,python-jinja2) ("python-markdown" ,python-markdown) @@ -1181,6 +1184,7 @@ application suites.") ("python-toml" ,python-toml) ("python-typogrify" ,python-typogrify) ("sassc" ,sassc) ;for building themes + ("tzdata" ,tzdata-for-tests) ("vala" ,vala) ("xorg-server-for-tests" ,xorg-server-for-tests))) (inputs @@ -1633,6 +1637,7 @@ library.") ("mm-common" ,mm-common) ("perl" ,perl) ("pkg-config" ,pkg-config) + ("python" ,python) ("xsltproc" ,libxslt))) (propagated-inputs (list cairo cairomm glibmm pango)) @@ -1688,8 +1693,7 @@ library.") (mkdir-p (string-append doc "/share")) (rename-file (string-append out "/share/doc") - (string-append doc "/share/doc")) - #t)))))) + (string-append doc "/share/doc")))))))) (native-inputs `(("dot" ,graphviz) ("doxygen" ,doxygen) @@ -1697,6 +1701,7 @@ library.") ("mm-common" ,mm-common) ("perl" ,perl) ("pkg-config" ,pkg-config) + ("python" ,python) ("xsltproc" ,libxslt))) (propagated-inputs (list glibmm atk)) @@ -1726,7 +1731,7 @@ library.") (base32 "1b8vycqzr3lfvk2l73f4kk74hj48081zbh9r1r2ilr3h8xh7cs0i")))) (propagated-inputs (modify-inputs (package-propagated-inputs atkmm) - (prepend glibmm-2.64))))) + (replace "glibmm" glibmm-2.64))))) (define-public gtkmm (package @@ -1776,6 +1781,7 @@ library.") ("mm-common" ,mm-common) ("perl" ,perl) ("pkg-config" ,pkg-config) + ("python" ,python) ("xsltproc" ,libxslt) ("xorg-server" ,xorg-server-for-tests))) (propagated-inputs @@ -1809,12 +1815,6 @@ tutorial.") name "-" version ".tar.xz")) (sha256 (base32 "1ri2msp3cmzi6r65ghwb8gfavfaxv0axpwi3q60nm7v8hvg36qw5")))) - (arguments - (substitute-keyword-arguments (package-arguments gtkmm) - ;; Use meson 0.59 to workaround a new issue with meson 0.60 (see: - ;; https://github.com/mesonbuild/meson/issues/9350#issuecomment-953799600). - ((#:meson _ #f) - meson-0.59))) (propagated-inputs `(("atkmm-2.28" ,atkmm-2.28) ("cairomm-1.14" ,cairomm-1.14) diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index 7e9a49a31b..ccc36007b4 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -230,16 +230,7 @@ written in Go.") (build-system go-build-system) (arguments `(#:unpack-path "github.com/ipfs/go-ipfs" - #:import-path "github.com/ipfs/go-ipfs/cmd/ipfs" - #:phases (modify-phases %standard-phases - (add-before 'reset-gzip-timestamps 'make-files-writable - (lambda* (#:key outputs #:allow-other-keys) - ;; Make sure .gz files are writable so that the - ;; 'reset-gzip-timestamps' phase can do its work. - (let ((out (assoc-ref outputs "out"))) - (for-each make-file-writable - (find-files out "\\.gz$")) - #t)))))) + #:import-path "github.com/ipfs/go-ipfs/cmd/ipfs")) (native-inputs (list python-minimal-wrapper zsh)) (home-page "https://ipfs.io") diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm index 717d43190c..dec09ca791 100644 --- a/gnu/packages/kerberos.scm +++ b/gnu/packages/kerberos.scm @@ -216,40 +216,27 @@ After installation, the system administrator should generate keys using #~())) #:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure - ;; TODO(core-updates): Unconditionally use the - ;; %current-target-system branch. - (,(if (%current-target-system) - 'lambda* - 'lambda) - ,(if (%current-target-system) - '(#:key inputs #:allow-other-keys) - '_) - ,@(if (%current-target-system) - `((substitute* "configure" - ;; The e2fsprogs input is included for libcom_err, - ;; let's use it even if cross-compiling. - (("test \"\\$\\{krb_cv_com_err\\}\" = \"yes\"") - ":") - ;; Our 'compile_et' is not in --with-cross-tools, - ;; which confuses heimdal. - (("ac_cv_prog_COMPILE_ET=\\$\\{with_cross_tools\\}compile_et") - "ac_cv_PROG_COMPILE_ET=compile_et"))) - '()) - ,@(if (%current-target-system) - '((substitute* '("appl/afsutil/pagsh.c" "appl/su/su.c") - (("/bin/sh") - (search-input-file inputs "bin/sh")) - ;; Use the cross-compiled bash instead of the - ;; native bash (XXX shouldn't _PATH_BSHELL point - ;; to a cross-compiled bash?). - (("_PATH_BSHELL") - (string-append - "\"" (search-input-file inputs "bin/sh") "\""))) - (substitute* '("tools/Makefile.in") - (("/bin/sh") (which "sh")))) - '((substitute* '("appl/afsutil/pagsh.c" - "tools/Makefile.in") - (("/bin/sh") (which "sh"))))))) + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "configure" + ;; The e2fsprogs input is included for libcom_err, + ;; let's use it even if cross-compiling. + (("test \"\\$\\{krb_cv_com_err\\}\" = \"yes\"") + ":") + ;; Our 'compile_et' is not in --with-cross-tools, + ;; which confuses heimdal. + (("ac_cv_prog_COMPILE_ET=\\$\\{with_cross_tools\\}compile_et") + "ac_cv_PROG_COMPILE_ET=compile_et")) + (substitute* '("appl/afsutil/pagsh.c" "appl/su/su.c") + (("/bin/sh") + (search-input-file inputs "bin/sh")) + ;; Use the cross-compiled bash instead of the + ;; native bash (XXX shouldn't _PATH_BSHELL point + ;; to a cross-compiled bash?). + (("_PATH_BSHELL") + (string-append + "\"" (search-input-file inputs "bin/sh") "\""))) + (substitute* '("tools/Makefile.in") + (("/bin/sh") (which "sh"))))) (add-before 'check 'pre-check (lambda _ ;; For 'getxxyyy-test'. diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c3ea49fd6a..5f471beaaf 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1815,7 +1815,7 @@ providing the system administrator with some help in common tasks.") (define-public util-linux (package (name "util-linux") - (version "2.37.1") + (version "2.37.2") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -1823,7 +1823,7 @@ providing the system administrator with some help in common tasks.") "util-linux-" version ".tar.xz")) (sha256 (base32 - "0xkb7vw2040zi4m0sbhs5qn5l8nrq4xsf4sdxf3cy9mpachd8jwf")) + "1ng9517c37mdp858425a4zyybma7dh7jrpd6z1z61yz7mb0n81va")) (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet @@ -2903,42 +2903,33 @@ configuration (iptunnel, ipmaddr).") (define-public libcap (package (name "libcap") - (version "2.51") + (version "2.62") (source (origin - (method url-fetch) - (uri (string-append - "mirror://kernel.org/linux/libs/security/linux-privs/" - "libcap2/libcap-" version ".tar.xz")) - (sha256 - (base32 - "1ych13qc1mvzv8iscbims5b317vxcmy5ffpmfy98zk7bgamz62b6")))) + (method url-fetch) + (uri (string-append + "mirror://kernel.org/linux/libs/security/linux-privs/" + "libcap2/libcap-" version ".tar.xz")) + (sha256 + (base32 + "18l3pngsbaahdjzz01rmzrjgcqny4zld685fkq96mq5yr6m5n30r")))) (build-system gnu-build-system) - (arguments `(#:phases - ,#~(modify-phases %standard-phases - (replace 'configure - ;; Add $libdir to the RUNPATH of executables. - (lambda _ - (substitute* "Make.Rules" - (("LDFLAGS \\?= #-g") - (string-append "LDFLAGS ?= -Wl,-rpath=" - ;; TODO(core-updates): Use #$output - ;; unconditionally. - #$(if (%current-target-system) - #~#$output - '%output) - "/lib")))))) - #:test-target "test" - #:make-flags - (list "lib=lib" - (string-append "prefix=" (assoc-ref %outputs "out")) - "RAISE_SETFCAP=no" - ;; Tell the makefile to use TARGET-gcc and friends - ;; when cross-compiling. - ,@(if (%current-target-system) - `(,(string-append "CROSS_COMPILE=" - (%current-target-system) "-") - "BUILD_CC=gcc") - '())))) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (delete 'configure)) + #:test-target "test" + #:make-flags + #~(list "lib=lib" + (string-append "prefix=" #$output) + (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib") + "RAISE_SETFCAP=no" + ;; Tell the makefile to use TARGET-gcc and friends + ;; when cross-compiling. + #$@(if (%current-target-system) + `((list (string-append "CROSS_COMPILE=" + ,(%current-target-system) "-") + "BUILD_CC=gcc")) + '())))) (native-inputs (list perl)) (supported-systems (delete "i586-gnu" %supported-systems)) (home-page "https://sites.google.com/site/fullycapable/") @@ -3776,7 +3767,7 @@ to the in-kernel OOM killer.") ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "3.2.9") + (version "3.2.11") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/gentoo/eudev") @@ -3784,36 +3775,19 @@ to the in-kernel OOM killer.") (file-name (git-file-name name version)) (sha256 (base32 - "1g9z3d33m0i3hmbhm0wxpvkzf6ac7xj1drwcfrhzlfhhi63sg9h7")) + "0dzaqwjnl55f69ird57wb6skahc6l7zs1slsrzqqfhww33icp6av")) (patches (search-patches "eudev-rules-directory.patch")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'make-source-writable - (lambda _ - ;; XXX: Git checkouts are read-only, but this package needs to - ;; modify some of its files. - (for-each make-file-writable (find-files ".")) - #t)) (add-before 'bootstrap 'patch-file-names (lambda* (#:key inputs native-inputs #:allow-other-keys) (substitute* "man/make.sh" (("/usr/bin/xsltproc") (string-append (assoc-ref (or native-inputs inputs) "xsltproc") - "/bin/xsltproc"))) - #t)) - (add-before 'configure 'patch-bindir-in-btrfs-rules - (lambda* (#:key outputs #:allow-other-keys) - ;; The "@bindir@" substitution incorrectly expands to a literal - ;; "${exec_prefix}" (see ). Work - ;; around it. - (let ((out (assoc-ref outputs "out"))) - (substitute* "rules/64-btrfs.rules.in" - (("@bindir@") - (string-append out "/bin"))) - #t))) + "/bin/xsltproc"))))) (add-after 'install 'move-static-library (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -3827,8 +3801,7 @@ to the in-kernel OOM killer.") ;; such that Libtool looks for it in the usual places. (substitute* (string-append out "/lib/libudev.la") (("old_library=.*") - "old_library=''\n")) - #t))) + "old_library=''\n"))))) (add-after 'install 'build-hwdb (lambda* (#:key outputs #:allow-other-keys) ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and @@ -7386,11 +7359,8 @@ available in the kernel Linux.") (add-before 'install 'fix-makefile (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" - (("\\$\\(BUILDROOT\\)/usr") (assoc-ref outputs "out"))) - ;; Make the compressed manpages writable so that the - ;; reset-gzip-timestamps phase does not error out. - (substitute* "Makefile" - (("-m 444") "-m 644"))))))) + (("\\$\\(BUILDROOT\\)/usr") + (assoc-ref outputs "out")))))))) (inputs (list perl)) (supported-systems '("i686-linux" "x86_64-linux")) (home-page "http://www.etallen.com/cpuid.html") @@ -8323,7 +8293,7 @@ tools for managing PipeWire.") (define-public ell (package (name "ell") - (version "0.41") + (version "0.46") (source (origin (method git-fetch) (uri (git-reference @@ -8332,7 +8302,7 @@ tools for managing PipeWire.") (file-name (git-file-name name version)) (sha256 (base32 - "14scs8vqpcf2810gvabsplg9yzh9y4sz47407bjy6vd604z3w8ah")))) + "15hwqicmll23cbrj13h3wd4lgrby416ap7l6w0434jsza4s4yv82")))) (build-system gnu-build-system) (arguments `(#:phases @@ -8378,8 +8348,8 @@ platforms, it is not limited to resource-constrained systems.") ;; This variant of binutils is used for the 64 bit support needed to ;; assemble the `purgatory/arch/i386/compat_x86_64.S' program on i686-linux. (native-inputs (list (make-ld-wrapper "ld-wrapper" - #:binutils binutils-next) - binutils-next)) + #:binutils binutils) + binutils)) (home-page "https://projects.horms.net/projects/kexec/") (synopsis "Tools for booting directly into different kernels") (description "This package provides the @code{kexec} program and ancillary diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index e708c02884..83f57ec28e 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -578,11 +578,8 @@ output), and Binutils.") (propagated-inputs (list zlib)) ;to use output from llvm-config (arguments - ;; TODO(core-updates): Unconditionally use quasiquote `(#:configure-flags - ,#~(#$(if (%current-target-system) - #~quasiquote - #~quote) + ,#~(quasiquote ;; These options are required for cross-compiling LLVM according to ;; https://llvm.org/docs/HowToCrossCompileLLVM.html. (#$@(if (%current-target-system) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index e5dbba21dd..4f30ab6f9c 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1108,14 +1108,7 @@ computing environments.") (invoke "pytest" "sklearn" "-m" "not network" ;; This test tries to access the internet. - "-k" "not test_load_boston_alternative")))) - (add-before 'reset-gzip-timestamps 'make-files-writable - (lambda* (#:key outputs #:allow-other-keys) - ;; Make sure .gz files are writable so that the - ;; 'reset-gzip-timestamps' phase can do its work. - (let ((out (assoc-ref outputs "out"))) - (for-each make-file-writable - (find-files out "\\.gz$")))))))) + "-k" "not test_load_boston_alternative"))))))) (inputs (list openblas)) (native-inputs diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index c6d8b8881d..a434c70576 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -319,7 +319,7 @@ Linux kernel and C library interfaces employed by user-space programs.") ;; input "locales" contain the original (English) text. (package (name "help2man") - (version "1.48.3") + (version "1.48.5") (source (origin (method url-fetch) @@ -327,7 +327,7 @@ Linux kernel and C library interfaces employed by user-space programs.") version ".tar.xz")) (sha256 (base32 - "1b58s40dh2lflrkgbyxg1s48p8icb5a5yzp9ch83kg9zchygyqc3")))) + "1gl24n9am3ivhql1gs9lffb415irg758fhxyk4ryssiflk5f8fb7")))) (build-system gnu-build-system) (arguments `(;; There's no `check' target. #:tests? #f diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 8de79fd9fa..43b1059304 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2161,15 +2161,7 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (lambda* (#:key inputs #:allow-other-keys) (substitute* "jalv.select.cpp" (("echo \\$PATH.*tr ':'.*xargs ls") - (string-append "ls -1 " (assoc-ref inputs "jalv") "/bin"))) - #t)) - (add-before 'reset-gzip-timestamps 'make-manpages-writable - (lambda* (#:key outputs #:allow-other-keys) - (for-each make-file-writable - (find-files (string-append (assoc-ref outputs "out") - "/share/man") - ".*\\.gz$")) - #t))))) + (string-append "ls -1 " (assoc-ref inputs "jalv") "/bin")))))))) (inputs (list lilv lv2 jalv gtkmm-2)) (native-inputs @@ -4747,16 +4739,7 @@ are a C compiler and glib. Full API documentation and examples are included.") (assoc-ref outputs "out") "/lib/lmms" ":" (assoc-ref outputs "out") "/lib/lmms/ladspa" - "\"")) - #t)) - (add-before 'reset-gzip-timestamps 'make-manpages-writable - (lambda* (#:key outputs #:allow-other-keys) - (map (lambda (file) - (make-file-writable file)) - (find-files (string-append (assoc-ref outputs "out") - "/share/man") - ".*\\.gz$")) - #t))))) + "\""))))))) (native-inputs `(("pkg-config" ,pkg-config) ("qttools" ,qttools) @@ -6280,12 +6263,6 @@ MIDI drums and comes as two separate drumkits: Black Pearl and Red Zeppelin.") (substitute* "Makefile" (("/usr") "")) #t)) - (add-before 'reset-gzip-timestamps 'make-gz-files-writable - (lambda* (#:key outputs #:allow-other-keys) - (for-each make-file-writable - (find-files (string-append (assoc-ref outputs "out")) - ".*\\.gz$")) - #t)) (delete 'configure)))) (inputs `(("alsa-lib" ,alsa-lib) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 805df42abb..26f4be421a 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -2248,13 +2248,9 @@ sockets in Perl.") `(#:phases (modify-phases %standard-phases (replace 'check - ;; TODO(core-updates): Make this unconditional. - ,(if (%current-target-system) - '(lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "ctest" "-E" "url-test"))) - '(lambda _ - (invoke "ctest" "-E" "url-test"))))))) + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "ctest" "-E" "url-test"))))))) (synopsis "Library providing automatic proxy configuration management") (description "Libproxy handles the details of HTTP/HTTPS proxy configuration for applications across all scenarios. Applications using @@ -3529,7 +3525,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.") (define-public iwd (package (name "iwd") - (version "1.15") + (version "1.20") (source (origin ;; FIXME: We're using the bootstrapped sources because ;; otherwise using an external ell library is impossible. @@ -3539,7 +3535,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.") "/wireless/iwd-" version ".tar.xz")) (sha256 (base32 - "0ngng9a9ra5w0mp2813yy2ihfibyx10ns6v5icdcp99db608xax7")))) + "03q5scahyg86h4bdxqxm32shyssgpmfp5b3183j01ig7mg6f4lbx")))) (build-system gnu-build-system) (inputs (list dbus ell readline)) diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm index bb449352a6..aae8886095 100644 --- a/gnu/packages/nss.scm +++ b/gnu/packages/nss.scm @@ -112,7 +112,7 @@ in the Mozilla clients.") (name "nss") ;; Also update and test the nss-certs package, which duplicates version and ;; source to avoid a top-level variable reference & module cycle. - (version "3.71") + (version "3.72") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -123,7 +123,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "0ly2l3dv6z5hlxs72h5x6796ni3x1bq60saavaf42ddgv4ax7b4r")) + "0bnh683nij6s0gvjcgwhyw5d3yx9fpm42pxj5bm97r0ky6ghm9kf")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-3.56-pkgconfig.patch" "nss-getcwd-nonnull.patch" diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index e1ffc0ff23..1b0f278605 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -269,9 +269,9 @@ to docs.openstack.org and developer.openstack.org.") ;; when building the package. Skip the tests for now. `(#:tests? #f)) (propagated-inputs - (list python-stestr)) + (list python-babel python-stestr python-testrepository python-testtools)) (native-inputs - (list python-pbr python-testtools python-babel python-testrepository)) + (list python-pbr)) (home-page "https://www.openstack.org/") (synopsis "Testr wrapper to provide functionality for OpenStack projects") (description diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index ba5736f851..8891690daa 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1836,8 +1836,7 @@ cp -r /tmp/locale/*/en_US.*"))) ("python-pyparsing" ,python-pyparsing) ("socat" ,socat) ("which" ,which))) - (propagated-inputs (list glib-networking gnupg-2.2.32 - gsettings-desktop-schemas)) + (propagated-inputs (list glib-networking gnupg gsettings-desktop-schemas)) (inputs `(("appstream-glib" ,appstream-glib) ("bubblewrap" ,bubblewrap) diff --git a/gnu/packages/patches/binutils-CVE-2021-45078.patch b/gnu/packages/patches/binutils-CVE-2021-45078.patch new file mode 100644 index 0000000000..fca692bdb5 --- /dev/null +++ b/gnu/packages/patches/binutils-CVE-2021-45078.patch @@ -0,0 +1,257 @@ +Fix CVE-2021-45078 (incomplete fix for CVE-2018-12699): + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45078 +https://sourceware.org/bugzilla/show_bug.cgi?id=28694 + +Patch copied from upstream source repository: + +https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=161e87d12167b1e36193385485c1f6ce92f74f02 + +From 161e87d12167b1e36193385485c1f6ce92f74f02 Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Wed, 15 Dec 2021 11:48:42 +1030 +Subject: [PATCH] PR28694, Out-of-bounds write in stab_xcoff_builtin_type + + PR 28694 + * stabs.c (stab_xcoff_builtin_type): Make typenum unsigned. + Negate typenum earlier, simplifying bounds checking. Correct + off-by-one indexing. Adjust switch cases. +--- + binutils/stabs.c | 87 ++++++++++++++++++++++++------------------------ + 1 file changed, 43 insertions(+), 44 deletions(-) + +diff --git a/binutils/stabs.c b/binutils/stabs.c +index 274bfb0e7fa..83ee3ea5fa4 100644 +--- a/binutils/stabs.c ++++ b/binutils/stabs.c +@@ -202,7 +202,7 @@ static debug_type stab_find_type (void *, struct stab_handle *, const int *); + static bool stab_record_type + (void *, struct stab_handle *, const int *, debug_type); + static debug_type stab_xcoff_builtin_type +- (void *, struct stab_handle *, int); ++ (void *, struct stab_handle *, unsigned int); + static debug_type stab_find_tagged_type + (void *, struct stab_handle *, const char *, int, enum debug_type_kind); + static debug_type *stab_demangle_argtypes +@@ -3496,166 +3496,167 @@ stab_record_type (void *dhandle ATTRIBUTE_UNUSED, struct stab_handle *info, + + static debug_type + stab_xcoff_builtin_type (void *dhandle, struct stab_handle *info, +- int typenum) ++ unsigned int typenum) + { + debug_type rettype; + const char *name; + +- if (typenum >= 0 || typenum < -XCOFF_TYPE_COUNT) ++ typenum = -typenum - 1; ++ if (typenum >= XCOFF_TYPE_COUNT) + { +- fprintf (stderr, _("Unrecognized XCOFF type %d\n"), typenum); ++ fprintf (stderr, _("Unrecognized XCOFF type %d\n"), -typenum - 1); + return DEBUG_TYPE_NULL; + } +- if (info->xcoff_types[-typenum] != NULL) +- return info->xcoff_types[-typenum]; ++ if (info->xcoff_types[typenum] != NULL) ++ return info->xcoff_types[typenum]; + +- switch (-typenum) ++ switch (typenum) + { +- case 1: ++ case 0: + /* The size of this and all the other types are fixed, defined + by the debugging format. */ + name = "int"; + rettype = debug_make_int_type (dhandle, 4, false); + break; +- case 2: ++ case 1: + name = "char"; + rettype = debug_make_int_type (dhandle, 1, false); + break; +- case 3: ++ case 2: + name = "short"; + rettype = debug_make_int_type (dhandle, 2, false); + break; +- case 4: ++ case 3: + name = "long"; + rettype = debug_make_int_type (dhandle, 4, false); + break; +- case 5: ++ case 4: + name = "unsigned char"; + rettype = debug_make_int_type (dhandle, 1, true); + break; +- case 6: ++ case 5: + name = "signed char"; + rettype = debug_make_int_type (dhandle, 1, false); + break; +- case 7: ++ case 6: + name = "unsigned short"; + rettype = debug_make_int_type (dhandle, 2, true); + break; +- case 8: ++ case 7: + name = "unsigned int"; + rettype = debug_make_int_type (dhandle, 4, true); + break; +- case 9: ++ case 8: + name = "unsigned"; + rettype = debug_make_int_type (dhandle, 4, true); + break; +- case 10: ++ case 9: + name = "unsigned long"; + rettype = debug_make_int_type (dhandle, 4, true); + break; +- case 11: ++ case 10: + name = "void"; + rettype = debug_make_void_type (dhandle); + break; +- case 12: ++ case 11: + /* IEEE single precision (32 bit). */ + name = "float"; + rettype = debug_make_float_type (dhandle, 4); + break; +- case 13: ++ case 12: + /* IEEE double precision (64 bit). */ + name = "double"; + rettype = debug_make_float_type (dhandle, 8); + break; +- case 14: ++ case 13: + /* This is an IEEE double on the RS/6000, and different machines + with different sizes for "long double" should use different + negative type numbers. See stabs.texinfo. */ + name = "long double"; + rettype = debug_make_float_type (dhandle, 8); + break; +- case 15: ++ case 14: + name = "integer"; + rettype = debug_make_int_type (dhandle, 4, false); + break; +- case 16: ++ case 15: + name = "boolean"; + rettype = debug_make_bool_type (dhandle, 4); + break; +- case 17: ++ case 16: + name = "short real"; + rettype = debug_make_float_type (dhandle, 4); + break; +- case 18: ++ case 17: + name = "real"; + rettype = debug_make_float_type (dhandle, 8); + break; +- case 19: ++ case 18: + /* FIXME */ + name = "stringptr"; + rettype = NULL; + break; +- case 20: ++ case 19: + /* FIXME */ + name = "character"; + rettype = debug_make_int_type (dhandle, 1, true); + break; +- case 21: ++ case 20: + name = "logical*1"; + rettype = debug_make_bool_type (dhandle, 1); + break; +- case 22: ++ case 21: + name = "logical*2"; + rettype = debug_make_bool_type (dhandle, 2); + break; +- case 23: ++ case 22: + name = "logical*4"; + rettype = debug_make_bool_type (dhandle, 4); + break; +- case 24: ++ case 23: + name = "logical"; + rettype = debug_make_bool_type (dhandle, 4); + break; +- case 25: ++ case 24: + /* Complex type consisting of two IEEE single precision values. */ + name = "complex"; + rettype = debug_make_complex_type (dhandle, 8); + break; +- case 26: ++ case 25: + /* Complex type consisting of two IEEE double precision values. */ + name = "double complex"; + rettype = debug_make_complex_type (dhandle, 16); + break; +- case 27: ++ case 26: + name = "integer*1"; + rettype = debug_make_int_type (dhandle, 1, false); + break; +- case 28: ++ case 27: + name = "integer*2"; + rettype = debug_make_int_type (dhandle, 2, false); + break; +- case 29: ++ case 28: + name = "integer*4"; + rettype = debug_make_int_type (dhandle, 4, false); + break; +- case 30: ++ case 29: + /* FIXME */ + name = "wchar"; + rettype = debug_make_int_type (dhandle, 2, false); + break; +- case 31: ++ case 30: + name = "long long"; + rettype = debug_make_int_type (dhandle, 8, false); + break; +- case 32: ++ case 31: + name = "unsigned long long"; + rettype = debug_make_int_type (dhandle, 8, true); + break; +- case 33: ++ case 32: + name = "logical*8"; + rettype = debug_make_bool_type (dhandle, 8); + break; +- case 34: ++ case 33: + name = "integer*8"; + rettype = debug_make_int_type (dhandle, 8, false); + break; +@@ -3664,9 +3665,7 @@ stab_xcoff_builtin_type (void *dhandle, struct stab_handle *info, + } + + rettype = debug_name_type (dhandle, name, rettype); +- +- info->xcoff_types[-typenum] = rettype; +- ++ info->xcoff_types[typenum] = rettype; + return rettype; + } + +-- +2.27.0 + diff --git a/gnu/packages/patches/gtk-introspection-test.patch b/gnu/packages/patches/gtk-introspection-test.patch new file mode 100644 index 0000000000..570ea806a9 --- /dev/null +++ b/gnu/packages/patches/gtk-introspection-test.patch @@ -0,0 +1,22 @@ +# Extend rather than stomp environment variables. +# Upstream status: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4268 +diff --git a/testsuite/introspection/meson.build b/testsuite/introspection/meson.build +index 6202fb7446..b59191eb0f 100644 +--- a/testsuite/introspection/meson.build ++++ b/testsuite/introspection/meson.build +@@ -1,9 +1,10 @@ ++env = environment() ++env.prepend('GI_TYPELIB_PATH', ++ join_paths(project_build_root, 'gtk'), ++ gi_dep.get_pkgconfig_variable('typelibdir')) ++env.prepend('LD_PRELOAD', join_paths(project_build_root, 'gtk', 'libgtk-4.so')) + + test('api', + find_program('api.py', dirs: meson.current_source_dir()), + suite: ['introspection'], +- env: [ +- 'GI_TYPELIB_PATH=@0@/gtk:@1@'.format(project_build_root, +- gi_dep.get_pkgconfig_variable('typelibdir')), +- 'LD_PRELOAD=@0@/gtk/libgtk-4.so'.format(project_build_root), +- ]) ++ env: env) diff --git a/gnu/packages/patches/libtool-skip-tests2.patch b/gnu/packages/patches/libtool-skip-tests2.patch index c9d61e3b41..3f86191b4f 100644 --- a/gnu/packages/patches/libtool-skip-tests2.patch +++ b/gnu/packages/patches/libtool-skip-tests2.patch @@ -1,4 +1,4 @@ -Skip the nopic test on ARM and MIPS systems. +Skip the nopic test on ARM, MIPS and RISC-V systems. --- libtool-2.4.6/tests/demo.at.orig 2015-01-16 13:52:04.000000000 -0500 +++ libtool-2.4.6/tests/demo.at 2015-02-16 10:48:51.435851966 -0500 @@ -7,7 +7,7 @@ Skip the nopic test on ARM and MIPS systems. AT_CHECK([case $host in -hppa*|x86_64*|s390*) -+hppa*|x86_64*|s390*|arm*|mips*) ++hppa*|x86_64*|s390*|arm*|mips*|riscv*) # These hosts cannot use non-PIC shared libs exit 77 ;; *-solaris*|*-sunos*) @@ -18,7 +18,7 @@ Skip the nopic test on ARM and MIPS systems. { set +x $as_echo "$at_srcdir/demo.at:535: case \$host in -hppa*|x86_64*|s390*) -+hppa*|x86_64*|s390*|arm*|mips*) ++hppa*|x86_64*|s390*|arm*|mips*|riscv*) # These hosts cannot use non-PIC shared libs exit 77 ;; *-solaris*|*-sunos*) @@ -27,7 +27,7 @@ Skip the nopic test on ARM and MIPS systems. at_fn_check_prepare_notrace 'a `...` command substitution' "demo.at:535" ( $at_check_trace; case $host in -hppa*|x86_64*|s390*) -+hppa*|x86_64*|s390*|arm*|mips*) ++hppa*|x86_64*|s390*|arm*|mips*|riscv*) # These hosts cannot use non-PIC shared libs exit 77 ;; *-solaris*|*-sunos*) diff --git a/gnu/packages/patches/shadow-hurd-pctrl.patch b/gnu/packages/patches/shadow-hurd-pctrl.patch deleted file mode 100644 index 2e376e19a9..0000000000 --- a/gnu/packages/patches/shadow-hurd-pctrl.patch +++ /dev/null @@ -1,16 +0,0 @@ -Avoid including sys/prctl.h on the Hurd. - -Upstream status: Not submitted. - ---- shadow-4.8.1/libmisc/idmapping.c.orig 2020-03-07 16:32:05.000000000 -0500 -+++ shadow-4.8.1/libmisc/idmapping.c 2020-03-07 16:32:27.000000000 -0500 -@@ -36,8 +36,8 @@ - #include - #include "prototypes.h" - #include "idmapping.h" --#include - #if HAVE_SYS_CAPABILITY_H -+#include - #include - #endif - diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index 47275a8ff0..b6b1e3ad85 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -87,8 +87,7 @@ (("^IDSDIR=.*$") ;; Installation directory of 'pci.ids.gz'. - "IDSDIR = $(SHAREDIR)/hwdata\n")) - #t)) + "IDSDIR = $(SHAREDIR)/hwdata\n")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) ;; Install the commands, library, and .pc files. @@ -111,9 +110,7 @@ (native-inputs (list which pkg-config)) (inputs - `(,@(if (member (or (%current-target-system) - (%current-system)) - (package-supported-systems kmod)) + `(,@(if (not (hurd-target?)) `(("kmod" ,kmod)) '()) ,@(if (hurd-target?) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index de4ad2582a..d4e97e1d82 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -632,8 +632,7 @@ by using the poppler rendering engine.") (files '("lib/zathura"))))) (build-system meson-build-system) (arguments - `(#:meson ,meson-0.59 - #:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (add-before 'check 'start-xserver ;; Tests require a running X server. (lambda* (#:key inputs #:allow-other-keys) diff --git a/gnu/packages/phabricator.scm b/gnu/packages/phabricator.scm index b0d5a04a24..df9b369506 100644 --- a/gnu/packages/phabricator.scm +++ b/gnu/packages/phabricator.scm @@ -62,13 +62,7 @@ `("PATH" ":" prefix (,@(map (lambda (i) (string-append (assoc-ref %build-inputs i) "/bin")) - '("php" "git" "mercurial" "subversion")))))) - #t)) - (add-before 'reset-gzip-timestamps 'make-compressed-files-writable - (lambda _ - (for-each make-file-writable - (find-files %output ".*\\.t?gz$")) - #t))))) + '("php" "git" "mercurial" "subversion"))))))))))) (inputs (list php git mercurial subversion)) (home-page "https://github.com/phacility/arcanist") diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 913e1070f7..a05fd166b8 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -622,7 +622,6 @@ such as Batch image processing.") (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t - #:meson ,meson-0.59 ;fails to build with Meson 0.60 #:phases (modify-phases %standard-phases (add-after 'unpack 'skip-gtk-update-icon-cache diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm index 1db5a6b335..2abb781f76 100644 --- a/gnu/packages/python-build.scm +++ b/gnu/packages/python-build.scm @@ -26,6 +26,7 @@ #:use-module (gnu packages) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system python) + #:use-module (guix gexp) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix packages)) @@ -41,14 +42,14 @@ (define-public python-wheel (package (name "python-wheel") - (version "0.33.6") + (version "0.37.0") (source (origin (method url-fetch) (uri (pypi-uri "wheel" version)) (sha256 (base32 - "0ii6f34rvpjg3nmw4bc2h7fhdsy38y1h93hghncfs5akfrldmj8h")))) + "1bbga5i49rj1cwi4sjpkvfhl1f8vl9lfky2lblsy768nk4wp5vz2")))) (build-system python-build-system) (arguments ;; FIXME: The test suite runs "python setup.py bdist_wheel", which in turn @@ -92,6 +93,38 @@ installed with a newer @code{pip} or with wheel's own command line utility.") Language (TOML) configuration files.") (license license:expat))) +(define-public python-tomli-w + (package + (name "python-tomli-w") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tomli_w" version)) + (sha256 + (base32 "1fg13bfq5qy1ym4x77815nhxh1xpfs0drhn9r9464cz00m1l6qzl")))) + (build-system python-build-system) + (arguments + (list + #:tests? #f ;to avoid extra dependencies + #:phases + #~(modify-phases %standard-phases + ;; XXX: PEP 517 manual build copied from python-isort. + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (replace 'install + (lambda _ + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl))))))) + (native-inputs (list python-pypa-build python-flit-core)) + (home-page "https://github.com/hukkin/tomli-w") + (synopsis "Minimal TOML writer") + (description "Tomli-W is a Python library for writing TOML. It is a +write-only counterpart to Tomli, which is a read-only TOML parser.") + (license license:expat))) + (define-public python-pytoml (package (name "python-pytoml") @@ -138,13 +171,13 @@ Python file, so it can be easily copied into your project.") (define-public python-tomli (package (name "python-tomli") - (version "1.2.2") + (version "2.0.0") (source (origin (method url-fetch) (uri (pypi-uri "tomli" version)) (sha256 - (base32 "1vjg44narb7hdiazdmbv8bfv7pi6phnq7nxm6aphx0iqxcah1kn6")))) + (base32 "1q8lrh9ypa6zpgbc5f7z23p7phzblp4vpxdrpfr1wajhb17w74n2")))) (build-system python-build-system) (arguments `(#:tests? #f ;disabled to avoid extra dependencies @@ -163,7 +196,7 @@ Python file, so it can be easily copied into your project.") (invoke "pip" "--no-cache-dir" "--no-input" "install" "--no-deps" "--prefix" out whl))))))) (native-inputs - `(("python-flit-core" ,python-flit-core) + `(("python-flit-core-bootstrap" ,python-flit-core-bootstrap) ("python-pypa-build" ,python-pypa-build) ("python-six", python-six-bootstrap))) (home-page "https://github.com/hukkin/tomli") @@ -199,13 +232,13 @@ Python file, so it can be easily copied into your project.") (define-public python-pyparsing (package (name "python-pyparsing") - (version "2.4.7") + (version "3.0.6") (source (origin (method url-fetch) (uri (pypi-uri "pyparsing" version)) (sha256 - (base32 "1hgc8qrbq1ymxbwfbjghv01fm3fbpjwpjwi0bcailxxzhf3yq0y2")))) + (base32 "109b9r802wb472hgmxclljprh5cid0w3p6mk9alba7pg2c0frgfr")))) (build-system python-build-system) (outputs '("out" "doc")) (arguments @@ -234,8 +267,10 @@ Python file, so it can be easily copied into your project.") executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions. The pyparsing module provides a library of classes that client code uses to construct the grammar directly in Python code.") - (license license:expat))) + (license license:expat) + (properties `((python2-variant . ,(delay python2-pyparsing)))))) +;;; This is the last release compatible with Python 2. (define-public python-pyparsing-2.4.7 (package (inherit python-pyparsing) @@ -248,22 +283,19 @@ that client code uses to construct the grammar directly in Python code.") (base32 "1hgc8qrbq1ymxbwfbjghv01fm3fbpjwpjwi0bcailxxzhf3yq0y2")))))) (define-public python2-pyparsing - (package-with-python2 python-pyparsing)) + (package-with-python2 (strip-python2-variant python-pyparsing-2.4.7))) (define-public python-packaging-bootstrap (package (name "python-packaging-bootstrap") - (version "20.0") + (version "21.3") (source (origin (method url-fetch) (uri (pypi-uri "packaging" version)) - ;; XXX: The URL in the patch file is wrong, it should be - ;; . - (patches (search-patches "python-packaging-test-arch.patch")) (sha256 (base32 - "1y2ip3a4ykkpgnwgn85j6hkspcl0cg3mzms97f40mk57vwqq67gy")))) + "1sygirdrqgv4f1ckh9nhpcw1yfidrh3qjl86wq8vk6nq4wlw8iyx")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;disabled to avoid extra dependencies (propagated-inputs @@ -280,7 +312,19 @@ information.") (license (list license:asl2.0 license:bsd-2)))) (define-public python2-packaging-bootstrap - (package-with-python2 python-packaging-bootstrap)) + (let ((base (package-with-python2 python-packaging-bootstrap))) + (package/inherit base + (version "20.0") ;last version with Python 2 support + (source + (origin + (method url-fetch) + (uri (pypi-uri "packaging" version)) + ;; XXX: The URL in the patch file is wrong, it should be + ;; . + (patches (search-patches "python-packaging-test-arch.patch")) + (sha256 + (base32 + "1y2ip3a4ykkpgnwgn85j6hkspcl0cg3mzms97f40mk57vwqq67gy"))))))) ;;; The name 'python-pypa-build' is chosen rather than 'python-build' to avoid ;;; a name clash with python-build from (guix build-system python). @@ -336,16 +380,17 @@ a light weight, fully compliant, self-contained package allowing PEP 517 compatible build front-ends to build Poetry managed projects.") (license license:expat))) -(define-public python-flit-core +;;; This package exists to bootstrap python-tomli. +(define-public python-flit-core-bootstrap (package - (name "python-flit-core") - (version "3.4.0") + (name "python-flit-core-bootstrap") + (version "3.5.1") (source (origin (method url-fetch) (uri (pypi-uri "flit" version)) (sha256 - (base32 "10vjqnybvjdqdbmyc0asbhhvq51yjnnj00645yiq9849gnr8h0ir")))) + (base32 "04152qj46sqbnlrj7ch9p7svjrrlpzbk0qr39g2yr0s4f5vp6frf")))) (build-system python-build-system) (propagated-inputs (list python-toml)) @@ -376,3 +421,10 @@ compatible build front-ends to build Poetry managed projects.") backend for packages using Flit. The only public interface is the API specified by PEP 517, @code{flit_core.buildapi}.") (license license:bsd-3))) + +(define-public python-flit-core + (package/inherit python-flit-core-bootstrap + (name "python-flit-core") + (propagated-inputs + (modify-inputs (package-propagated-inputs python-flit-core-bootstrap) + (replace "python-toml" python-tomli))))) diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm index afb2caf13b..e7f008e112 100644 --- a/gnu/packages/python-compression.scm +++ b/gnu/packages/python-compression.scm @@ -28,6 +28,7 @@ #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages) @@ -416,6 +417,38 @@ wrapper. It provides a backport of the @code{Path} object.") (native-inputs `(("python-setuptools-scm" ,python2-setuptools-scm)))))) +(define-public python-zopfli + (package + (name "python-zopfli") + (version "0.1.9") + (source + (origin + (method url-fetch) + (uri (pypi-uri "zopfli" version ".zip")) + (sha256 + (base32 "0yqdwvlpbvhhri0qmzag076ddi0sv43qjlk17l0siylfib03rpkq")))) + (build-system python-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'use-system-zopfli + (lambda _ + (setenv "USE_SYSTEM_ZOPFLI" "1"))) + (add-before 'build 'set-version + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "tests/tests.py" "-v"))))))) + (native-inputs (list unzip python-setuptools-scm)) + (inputs (list zopfli)) + (home-page "https://github.com/fonttools/py-zopfli") + (synopsis "Python bindings for Zopfli") + (description "@code{pyzopfli} is a straight forward wrapper around the +@code{ZlibCompress} method of the the @code{zopfli} library.") + (license license:asl2.0))) + (define-public python-zstandard (package (name "python-zstandard") diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 1ecd4fbc7a..1cfc8e5869 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016-2020, 2022 Marius Bakke ;;; Copyright © 2019 Tobias Geerinckx-Rice -;;; Copyright © 2019 Maxim Cournoyer +;;; Copyright © 2019, 2021 Maxim Cournoyer ;;; Copyright © 2019 Giacomo Leidi ;;; Copyright © 2020 Pierre Langlois ;;; Copyright © 2020, 2021 Vinicius Monego @@ -330,13 +330,13 @@ of the SGP4 satellite tracking algorithm.") (define-public python-pandas (package (name "python-pandas") - (version "1.3.4") + (version "1.3.5") (source (origin (method url-fetch) (uri (pypi-uri "pandas" version)) (sha256 - (base32 "1z3gm521wpm3j13rwhlb4f2x0645zvxkgxij37i3imdpy39iiam2")))) + (base32 "1wd92ra8xcjgigbypid53gvby89myg68ica6r8hdw4hhvvsqahhy")))) (build-system python-build-system) (arguments `(#:modules ((guix build utils) @@ -373,23 +373,23 @@ of the SGP4 satellite tracking algorithm.") (invoke "pytest" "-vv" "pandas" "--skip-slow" "--skip-network" "-k" - ;; These tets access the internet: - ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[lxml] - ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[etree] - ;; TODO: the excel tests fail for unknown reasons - (string-append "not test_wrong_url" - " and not test_excelwriter_fspath" - " and not test_ExcelWriter_dispatch" - ;; TODO: Missing input - " and not TestS3" - " and not s3")))))))))) + (string-append + ;; These test access the internet (see: + ;; https://github.com/pandas-dev/pandas/issues/45085).: + ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[lxml] + ;; pandas/tests/io/xml/test_xml.py::test_wrong_url[etree] + "not test_wrong_url" + ;; TODO: Missing input + " and not TestS3" + " and not s3")))))))))) (propagated-inputs (list python-jinja2 python-numpy python-openpyxl python-pytz python-dateutil - python-xlrd)) + python-xlrd + python-xlsxwriter)) (inputs (list which xclip xsel)) (native-inputs @@ -397,7 +397,6 @@ of the SGP4 satellite tracking algorithm.") python-beautifulsoup4 python-lxml python-html5lib - python-nose python-pytest python-pytest-mock ;; Needed to test clipboard support. diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 708528983c..997b98e2a9 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -689,7 +689,7 @@ other HTTP libraries.") '(#:tests? #f)) (propagated-inputs (list python-colorama python-pygments python-requests - python-requests-toolbelt-0.9.1)) + python-requests-toolbelt)) (home-page "https://httpie.io") (synopsis "cURL-like tool for humans") (description @@ -2667,30 +2667,6 @@ portions of your testing code.") (define-public python-requests-toolbelt (package (name "python-requests-toolbelt") - (version "0.8.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "requests-toolbelt" version)) - (sha256 - (base32 - "1dc7l42i4080r8i4m9fj51jx367lqkai170vrv7wd93gdj9k39gn")))) - (build-system python-build-system) - (native-inputs - (list python-betamax python-mock python-pytest)) - (propagated-inputs - (list python-requests)) - (synopsis "Extensions to python-requests") - (description "This is a toolbelt of useful classes and functions to be used -with python-requests.") - (home-page "https://github.com/sigmavirus24/requests-toolbelt") - (license license:asl2.0))) - -(define-public python2-requests-toolbelt - (package-with-python2 python-requests-toolbelt)) - -(define-public python-requests-toolbelt-0.9.1 - (package - (inherit python-requests-toolbelt) (version "0.9.1") (source (origin (method url-fetch) @@ -2698,9 +2674,25 @@ with python-requests.") (sha256 (base32 "1h3gm88dcjbd7gm229a7x5qkkhnsqsjz0m0l2xyavm2ab3a8k04n")))) + (build-system python-build-system) (arguments - `(;; FIXME: Some tests require network access. - #:tests? #f)))) + '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'delete-problematic-tests + (lambda _ + ;; Fails because of expired certificate. + (delete-file "tests/test_x509_adapter.py") + ;; Fails due to networking (socket.gaierror: [Errno -2] + ;; Name or service not known). + (delete-file "tests/test_multipart_encoder.py")))))) + (native-inputs + (list python-betamax python-mock python-pytest)) + (propagated-inputs + (list python-requests)) + (synopsis "Extensions to python-requests") + (description "This is a toolbelt of useful classes and functions to be used +with python-requests.") + (home-page "https://github.com/requests/toolbelt/") + (license license:asl2.0))) (define-public python-requests-ftp (package @@ -3223,7 +3215,7 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients." (define-public python-cachecontrol (package (name "python-cachecontrol") - (version "0.12.5") + (version "0.12.10") (source (origin (method git-fetch) @@ -3234,7 +3226,7 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients." (file-name (git-file-name name version)) (sha256 (base32 - "03lgc65sl04n0cgzmmgg99bk83f9i6k8yrmcd4hpl46q1pymn0kz")))) + "0fviacb13h72l5c77p35lgr6kvlidfdb9xsicg3v6lblmp9cn2ws")))) (build-system python-build-system) (arguments ;; Versions > 0.11.6 depend on CherryPy for testing. @@ -5960,7 +5952,7 @@ Encoding for HTTP.") (list python-js2py python-polling2 python-requests - python-requests-toolbelt-0.9.1 + python-requests-toolbelt python-responses python-pyparsing-2.4.7)) (native-inputs diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 80ce58400a..42670f34c3 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2400,7 +2400,7 @@ of @code{xmlfile}.") (define-public python-openpyxl (package (name "python-openpyxl") - (version "3.0.5") + (version "3.0.9") (source (origin ;; We use the upstream repository, as the tests are not included in the @@ -2411,7 +2411,7 @@ of @code{xmlfile}.") (changeset version))) (file-name (string-append name "-" version "-checkout")) (sha256 - (base32 "0s6fgwwkcfz1bnrp5gjd4g2lcbl4a76147ylkrmkbabi2nf4xlli")))) + (base32 "1p8xvc2gjw6zyzbd7qdvc3x178sm00ymrbyh9539l4fpzgxh0j9c")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -6333,17 +6333,19 @@ comparison. (define-public python-matplotlib (package (name "python-matplotlib") - (version "3.4.3") + (version "3.5.1") (source (origin (method url-fetch) (uri (pypi-uri "matplotlib" version)) (sha256 - (base32 "06032j0ccjxldx4z9kf97qps2g36mfgvy1nap3b9n75kzmnm4kzw")))) + (base32 "076f8qi265x8jy89c03r3vv5h4is4ir5mawwrrrpp96314783sdj")))) (build-system python-build-system) - (propagated-inputs ; the following packages are all needed at run time + (propagated-inputs ; the following packages are all needed at run time `(("python-cycler" ,python-cycler) + ("python-fonttools" ,python-fonttools) ("python-kiwisolver" ,python-kiwisolver) + ("python-packaging" ,python-packaging) ("python-pyparsing" ,python-pyparsing) ("python-pygobject" ,python-pygobject) ("python-certifi" ,python-certifi) @@ -6354,6 +6356,7 @@ comparison. ("python-pillow" ,python-pillow) ("python-pytz" ,python-pytz) ("python-six" ,python-six) + ("python-wxpython" ,python-wxpython) ;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of ;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context' ;; object. For this reason we need to import both libraries. @@ -6366,101 +6369,87 @@ comparison. qhull cairo glib - ;; FIXME: Add backends when available. - ;("python-wxpython" ,python-wxpython) tcl tk)) (native-inputs `(("pkg-config" ,pkg-config) ("python-pytest" ,python-pytest) - ("python-mock" ,python-mock) - ("python-wheel" ,python-wheel) - ("unzip" ,unzip) - ("jquery-ui" - ,(origin - (method url-fetch) - (uri "https://jqueryui.com/resources/download/jquery-ui-1.12.1.zip") - (sha256 - (base32 - "0kb21xf38diqgxcdi1z3s9ssq36pldvyqxy56hn6pcva6rs3c8zq")))))) + ("python-pytest-timeout" ,python-pytest-timeout) + ("python-pytest-xdist" ,python-pytest-xdist) + ("python-setuptools-scm" ,python-setuptools-scm) + ("python-setuptools-scm-git-archive" ,python-setuptools-scm-git-archive))) (arguments - `(#:phases - (modify-phases %standard-phases - ;; XXX We disable all image comparison tests because we're using a - ;; newer version of FreeType than matplotlib expects. This leads to - ;; minor differences throughout the tests. - (add-after 'unpack 'fix-and-disable-failing-tests - (lambda _ - (substitute* (append (find-files "lib/matplotlib/tests/" - "test_.*\\.py$") - (find-files "lib/mpl_toolkits/tests" - "test_.*\\.py$")) - (("^from matplotlib" match) - (string-append "import pytest\n" match)) - (("( *)@([^_]+_)*(image_comparison|check_figures_equal)" match - indent) - (string-append indent - "@pytest.mark.skip(reason=\"unknown minor image differences\")\n" - match))) - (substitute* "lib/matplotlib/tests/test_animation.py" - (("/bin/sh") (which "sh"))) - (for-each delete-file - ;; test_normal_axes, test_get_tightbbox_polar - '("lib/matplotlib/tests/test_axes.py" - "lib/matplotlib/tests/test_polar.py" - ;; We don't use the webagg backend and this test - ;; forces it. - "lib/matplotlib/tests/test_backend_webagg.py" - ;; test_outward_ticks - "lib/matplotlib/tests/test_tightlayout.py" - ;; test_hidden_axes fails with minor extent - ;; differences, possibly due to the use of a - ;; different version of FreeType. - "lib/matplotlib/tests/test_constrainedlayout.py" - ;; Fontconfig returns no fonts. - "lib/matplotlib/tests/test_font_manager.py")) - #t)) - (add-before 'install 'install-jquery-ui - (lambda* (#:key outputs inputs #:allow-other-keys) - (let* ((python-version (python-version - (assoc-ref inputs "python"))) - (dir - (string-append (assoc-ref outputs "out") - "/lib/python" python-version - "/site-packages" - "/matplotlib/backends/web_backend/"))) - (mkdir-p dir) - (invoke "unzip" - (assoc-ref inputs "jquery-ui") - "-d" dir)) - #t)) - (replace 'check - (lambda* (#:key outputs inputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "python" "tests.py" "-v" - "-m" "not network and not webagg"))) - (add-before 'build 'configure-environment - (lambda* (#:key outputs inputs #:allow-other-keys) - (let ((cairo (assoc-ref inputs "cairo"))) - ;; Setting this directory in the 'basedirlist' of 'setup.cfg' - ;; has not effect. - (setenv "LD_LIBRARY_PATH" (string-append cairo "/lib")) - (setenv "HOME" (getcwd)) - ;; Fix rounding errors when using the x87 FPU. - (when (string-prefix? "i686" ,(%current-system)) - (setenv "CFLAGS" "-ffloat-store")) - (call-with-output-file "setup.cfg" - (lambda (port) - (format port "[libs]~% + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'pretend-version + ;; The version string is usually derived via setuptools-scm, but + ;; without the git metadata available, the version string is set to + ;; '0.0.0'. + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))) + (add-after 'unpack 'fix-and-disable-failing-tests + ;; XXX: Disable all image comparison tests because we're using a + ;; newer version of FreeType than matplotlib expects. This leads + ;; to minor differences throughout the tests. + (lambda _ + (substitute* (append (find-files "lib/matplotlib/tests/" + "test_.*\\.py$") + (find-files "lib/mpl_toolkits/tests" + "test_.*\\.py$")) + (("^from matplotlib" match) + (string-append "import pytest\n" match)) + (("( *)@([^_]+_)*(image_comparison|check_figures_equal)" match + indent) + (string-append indent "@pytest.mark.skip(\ +reason=\"unknown minor image differences\")\n" match))) + (substitute* "lib/matplotlib/tests/test_animation.py" + (("/bin/sh") (which "sh"))) + (for-each delete-file + ;; test_normal_axes, test_get_tightbbox_polar + '("lib/matplotlib/tests/test_axes.py" + "lib/matplotlib/tests/test_polar.py" + ;; We don't use the webagg backend and this test + ;; forces it. + "lib/matplotlib/tests/test_backend_webagg.py" + ;; test_outward_ticks + "lib/matplotlib/tests/test_tightlayout.py" + ;; test_hidden_axes fails with minor extent + ;; differences, possibly due to the use of a + ;; different version of FreeType. + "lib/matplotlib/tests/test_constrainedlayout.py" + ;; Fontconfig returns no fonts. + "lib/matplotlib/tests/test_font_manager.py")))) + (add-before 'build 'configure-environment + (lambda* (#:key inputs #:allow-other-keys) + ;; Fix rounding errors when using the x87 FPU. + (when (string-prefix? "i686" #$(%current-system)) + (setenv "CFLAGS" "-ffloat-store")) + (call-with-output-file "mplsetup.cfg" + (lambda (port) + (format port "\ +[libs] system_freetype = true system_qhull = true -[directories]~% -basedirlist = ~a,~a~% -[packages]~% -tests = True~%" - (assoc-ref inputs "tcl") - (assoc-ref inputs "tk"))))) - #t))))) + +[rc_options] +backend=Agg + +[directories] +basedirlist = ~a,~a + +[packages] +tests = True~%" (assoc-ref inputs "tcl") (assoc-ref inputs "tk")))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Step out of the source directory to avoid interference. + (with-directory-excursion "/tmp" + ;; Run the installed tests, which is what we want since not + ;; everything gets built in the source directory. + (invoke "pytest" + "-n" (number->string (parallel-job-count)) + "-m" "not network" "--pyargs" "matplotlib")))))))) (home-page "https://matplotlib.org/") (synopsis "2D plotting library for Python") (description @@ -6475,53 +6464,47 @@ toolkits.") (define-public python2-matplotlib (let ((matplotlib (package-with-python2 (strip-python2-variant python-matplotlib)))) - (package (inherit matplotlib) - (version "2.2.4") + (package/inherit matplotlib + (version "2.2.5") (source (origin (method url-fetch) (uri (pypi-uri "matplotlib" version)) (sha256 (base32 - "09i1gnrra1590brc1f8d5rh2zvnknmfgzp613ab0462qkrwj15h2")))) + "1sk05fdai9rw35l983rw2ymvz0nafs7szs7yz4nxrpyr1j27l0x3")))) (arguments (substitute-keyword-arguments (package-arguments matplotlib) ((#:phases phases) - `(modify-phases ,phases - (replace 'install-jquery-ui - (lambda* (#:key outputs inputs #:allow-other-keys) - (let ((dir (string-append (assoc-ref outputs "out") - "/lib/python2.7/site-packages/" - "matplotlib/backends/web_backend/"))) - (mkdir-p dir) - (invoke "unzip" - (assoc-ref inputs "jquery-ui") - "-d" dir)))) - ;; Without this file mpl_toolkits cannot be imported. - (add-after 'install 'create-init-file - (lambda* (#:key outputs #:allow-other-keys) - (with-output-to-file - (string-append - (assoc-ref outputs "out") - "/lib/python2.7/site-packages/mpl_toolkits/__init__.py") - (lambda _ (display ""))))) - (delete 'fix-and-disable-failing-tests) - (delete 'check))))) ; These tests weren't run the the past. - ;; Make sure to use special packages for Python 2 instead - ;; of those automatically rewritten by package-with-python2. + #~(modify-phases #$phases + (add-after 'install 'create-init-file + (lambda _ + (with-output-to-file + (string-append + #$output + "/lib/python2.7/site-packages/mpl_toolkits/__init__.py") + (lambda _ (display ""))))) + (delete 'fix-and-disable-failing-tests) + (delete 'check))))) ; These tests weren't run the the past. + (native-inputs + `(("pkg-config" ,pkg-config))) (propagated-inputs - `(("python2-pycairo" ,python2-pycairo) - ("python2-backports-functools-lru-cache" - ,python2-backports-functools-lru-cache) + `(("gobject-introspection" ,gobject-introspection) + ("python2-backports-functools-lru-cache" ,python2-backports-functools-lru-cache) + ("python2-certifi" ,python2-certifi) + ("python2-cycler" ,python2-cycler) + ("python2-dateutil" ,python2-dateutil) ("python2-functools32" ,python2-functools32) + ("python2-kiwisolver" ,python2-kiwisolver) + ("python2-numpy" ,python2-numpy) + ("python2-pillow" ,python2-pillow) + ("python2-pycairo" ,python2-pycairo) ("python2-pygobject-2" ,python2-pygobject-2) + ("python2-pyparsing" ,python2-pyparsing) + ("python2-pytz" ,python2-pytz) + ("python2-six" ,python2-six) ("python2-subprocess32" ,python2-subprocess32) - ("python2-tkinter" ,python-2 "tk") - ,@(fold alist-delete (package-propagated-inputs matplotlib) - '("python-cairocffi" - "python-pycairo" - "python-pygobject" - "python-tkinter"))))))) + ("python2-tkinter" ,python-2 "tk")))))) (define-public python-matplotlib-documentation (package @@ -9259,27 +9242,17 @@ the GObject Introspection bindings to libnotify for non-GTK applications.") (define-public python-beautifulsoup4 (package (name "python-beautifulsoup4") - (version "4.9.3") + (version "4.10.0") (source (origin (method url-fetch) (uri (pypi-uri "beautifulsoup4" version)) (sha256 (base32 - "09gbd49mwz86k572r1231x2rdp82p42zlnw0bz9b9mfi58r9wwl4")))) + "14c8z4gh9bi38agx9ls8ym5rscc02pc6f6hmliaqk08xa8yd4fn2")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; The Python 2 source is the definitive source of beautifulsoup4. We - ;; must use this conversion script when building with Python 3. The - ;; conversion script also runs the tests. - ;; For more information, see the file 'convert-py3k' in the source - ;; distribution. - (replace 'check - (lambda _ (invoke "./convert-py3k")))))) (propagated-inputs - (list python-soupsieve)) + (list python-soupsieve python-html5lib python-lxml)) (home-page "https://www.crummy.com/software/BeautifulSoup/bs4/") (synopsis @@ -9296,8 +9269,16 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.") (define-public python2-beautifulsoup4 (let ((base (package-with-python2 (strip-python2-variant python-beautifulsoup4)))) - (package/inherit base - (arguments `(#:python ,python-2))))) + (package/inherit base + (version "4.9.3") ;last version to support Python 2 + (source + (origin + (method url-fetch) + (uri (pypi-uri "beautifulsoup4" version)) + (sha256 + (base32 + "09gbd49mwz86k572r1231x2rdp82p42zlnw0bz9b9mfi58r9wwl4")))) + (arguments `(#:python ,python-2))))) (define-public python-soupsieve (package @@ -10834,28 +10815,170 @@ add functionality and customization to your projects with their own plugins.") (define-public python2-straight-plugin (package-with-python2 python-straight-plugin)) -(define-public python-fonttools +(define-public python-pysendfile (package - (name "python-fonttools") - (version "4.6.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "fonttools" version ".zip")) - (sha256 - (base32 - "1mq9kdzhcsp96bhv7smnrpdg1s4z5wh70bsl99c0jmcrahqdisqq")))) + (name "python-pysendfile") + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pysendfile" version)) + (sha256 + (base32 "05qf0m32isflln1zjgxlpw0wf469lj86vdwwqyizp1h94x5l22ji")))) (build-system python-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "HOME" "/tmp") + (invoke "make" "test"))))))) + (home-page "https://github.com/giampaolo/pysendfile") + (synopsis "Python interface to sendfile(2)") + (description "The @{pysendfile} Python library provides an interface to +the @code{sendfile(2)} system call.") + (license license:expat))) + +(define-public python-pyftpdlib + (package + (name "python-pyftpdlib") + (version "1.5.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyftpdlib" version)) + (sha256 + (base32 "0pnv2byzmzg84q5nmmhn1xafvfil85qa5y52bj455br93zc5b9px")))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke + "pytest" + ;; Deselect failing tests. + "-k" (string-append + ;; Using Pytest instead of the Makefile causes the + ;; command line tests to fail on unknown Pytest + ;; arguments. + "not TestCommandLineParser " + ;; https://github.com/giampaolo/pyftpdlib/issues/478 + "and not test_use_gmt_times " + ;; https://github.com/giampaolo/pyftpdlib/issues/550 + "and not test_masquerade_address " + ;; https://github.com/giampaolo/pyftpdlib/issues/500 + "and not test_rest_on_stor " + "and not test_stor_ascii")))))))) + (native-inputs (list python-psutil python-pytest)) + (propagated-inputs (list python-pyopenssl python-pysendfile)) + (home-page "https://github.com/giampaolo/pyftpdlib/") + (synopsis "Asynchronous and scalable Python FTP server library") + (description "The Python FTP server library provides a high-level +interface to write efficient, scalable and asynchronous FTP servers with +Python. It is the most complete @url{http://www.faqs.org/rfcs/rfc959.html, +RFC-959} FTP server implementation available for Python, and has the following +traits: +@itemize +@item +It is lightweight, fast and scalable. +@item +It uses the @code{sendfile(2)} system call for uploads. +@item +It uses @code{epoll}, @code{kqueue} and @code{select} to handle concurrency +asynchronously. +@item +It supports FTPS (@url{http://tools.ietf.org/html/rfc4217, RFC-4217}), +IPv6 (RFC-2428), Unicode file names (@url{http://tools.ietf.org/html/rfc2640, +RFC-2640}) and MLSD/MLST commands (RFC-3659). +@item +It has a flexible system of @samp{authorizers} able to manage both +@samp{virtual} and @samp{real} users. +@end itemize") + (license license:expat))) + +(define-public python-fs + (package + (name "python-fs") + (version "2.4.14") + (source + (origin + (method url-fetch) + (uri (pypi-uri "fs" version)) + (sha256 + (base32 "0v5kqzi0vd8ar4j4qf5440nzwa9dcagpxb3q6k0cln4cqlmxqmcm")))) + (build-system python-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "HOME" "/tmp") + (invoke "pytest" "-m" "not slow"))))))) + (propagated-inputs + (list python-appdirs python-pytz python-typing python-six)) (native-inputs - (list unzip python-pytest python-pytest-runner)) - (home-page "https://github.com/fonttools/fonttools") - (synopsis "Tools to manipulate font files") - (description - "FontTools/TTX is a library to manipulate font files from Python. It + (list python-mock python-parameterized python-pyftpdlib python-pytest)) + (home-page "https://github.com/PyFilesystem/pyfilesystem2/") + (synopsis "File system abstraction layer for Python") + (description "PyFilesystem's @code{FS} object is a file system abstraction +sharing similarities with Python's own @code{file} object for single files. +It allows opening all the files under a given directory recursively, as a +single @code{FS} object. This enables, for example, counting the combined +number of lines in the contained files easily.") + (license license:expat))) + +;;; Tests are left out in the main package to avoid cycles. +(define-public python-fonttools + (hidden-package + (package + (name "python-fonttools") + (version "4.28.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "fonttools" version ".zip")) + (sha256 + (base32 + "1jhl5n3rfqq7fznvsh6r80n7ylap1a7ppq1040y8cflhyz80ap2l")))) + (build-system python-build-system) + (native-inputs + (list unzip)) + (arguments '(#:tests? #f)) + (home-page "https://github.com/fonttools/fonttools") + (synopsis "Tools to manipulate font files") + (description + "FontTools/TTX is a library to manipulate font files from Python. It supports reading and writing of TrueType/OpenType fonts, reading and writing of AFM files, reading (and partially writing) of PS Type 1 fonts. The package also contains a tool called “TTX” which converts TrueType/OpenType fonts to and from an XML-based format.") - (license license:expat))) + (license license:expat) + (properties `((python2-variant . ,(delay python2-fonttools))))))) + +(define-public python-fonttools-with-tests + (package/inherit python-fonttools + (arguments + (substitute-keyword-arguments (package-arguments python-fonttools) + ((#:tests? _ #f) + #t) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest")))))))) + (native-inputs + (modify-inputs (package-inputs python-fonttools) + (append python-pytest ;FIXME: indentation is broken + python-brotli + python-fs + python-scipy + python-zopfli))) + (properties (alist-delete 'hidden? (package-properties python-fonttools))))) ;; Fonttools 4.x dropped support for Python 2, so stick with 3.x here. (define-public python2-fonttools @@ -10966,13 +11089,13 @@ third-party code.") (define-public python-msgpack (package (name "python-msgpack") - (version "1.0.0") + (version "1.0.3") (source (origin (method url-fetch) (uri (pypi-uri "msgpack" version)) (sha256 (base32 - "1h5mxh84rcw04dvxy1qbfn2hisavfqgilh9k09rgyjhd936dad4m")))) + "07m84yisf8m6gr68ip9v6vzxax7kqbn8qxg7ir18clk1jgxwgzai")))) (build-system python-build-system) (arguments `(#:modules ((guix build utils) @@ -11244,23 +11367,20 @@ native modules.") (define-public python-xlrd (package (name "python-xlrd") - (version "1.2.0") + (version "2.0.1") (source (origin - (method url-fetch) - (uri (pypi-uri "xlrd" version)) + ;; The tests are not included in the PyPI archive. + (method git-fetch) + (uri (git-reference + (url "https://github.com/python-excel/xlrd") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1ci93fda4n67qhdvfl16zasyxrpygzk53hs6m8z0rd4dxrnb6vjl")))) + "170asszffvf6rh5w169ic4h5kxgjkmdl3060vw737d4g1qfifvzz")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; Some tests depend on writing a temporary file to the user's home - ;; directory. - (add-after 'unpack 'fix-tests - (lambda _ - (delete-file "tests/test_open_workbook.py") - #t))))) + (native-inputs + (list python-pytest)) (home-page "http://www.python-excel.org/") (synopsis "Library for extracting data from Excel files") (description "This package provides a library to extract data from @@ -11272,6 +11392,7 @@ Unicode-aware. It is not intended as an end-user tool.") (define-public python2-xlrd (package-with-python2 python-xlrd)) +;;; Note: this package is unmaintained since 2018 (archived on GitHub). (define-public python-xlwt (package (name "python-xlwt") @@ -11361,11 +11482,16 @@ printing of sub-tables by specifying a row range.") `(#:phases (modify-phases %standard-phases (replace 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "pytest" "-vv" "-k" - ;; Tries to open an outgoing connection. - "not test_ssl_outgoing")))))) + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "-vv" "-k" + (string-append + ;; Tries to open an outgoing connection. + "not test_ssl_outgoing " + ;; This test fails since Python 3.9.9 (see: + ;; https://github.com/dabeaz/curio/issues/347). + "and not test_timeout")))))))) (native-inputs (list python-pytest)) (home-page "https://github.com/dabeaz/curio") @@ -15011,13 +15137,7 @@ module, adding support for Unicode strings.") #t)) (replace 'check (lambda _ - (invoke "make" "test"))) - (add-before 'reset-gzip-timestamps 'make-files-writable - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (for-each make-file-writable - (find-files out "\\.gz$")) - #t)))))) + (invoke "make" "test")))))) (propagated-inputs (list python-chardet python-cryptography python-sortedcontainers)) (native-inputs @@ -16172,29 +16292,25 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") (define-public poetry (package (name "poetry") - (version "1.1.11") - ;; Poetry can only be built from source with Poetry. + (version "1.1.12") (source (origin (method url-fetch) (uri (pypi-uri "poetry" version)) (sha256 (base32 - "17pnf2j4adlm9fhyg5jkkvs8bzcigb6nj72vr0687fxybzsj4zbx")))) + "0rr54mvcfcv9cv6vw2122y28xvd2pwqpv2x8c8j5ayz3gwsy4rjw")))) (build-system python-build-system) (arguments - `(#:tests? #f ;; Pypi does not have tests. + `(#:tests? #f ;PyPI does not have tests #:phases (modify-phases %standard-phases (add-before 'build 'patch-setup-py (lambda _ (substitute* "setup.py" - ;; Allow newer versions of python-keyring. + ;; Relax some of the requirements. (("(keyring>=21.2.0),<22.0.0" _ keyring) keyring) - ;; TODO: remove after the next release cycle, - ;; when packaging has been updated. - (("packaging>=20.4,<21.0") "packaging>=20.0,<21.0")) - #t))))) + (("(packaging>=20.4),<21.0" _ packaging) packaging))))))) (propagated-inputs (list python-cachecontrol python-cachy @@ -16212,7 +16328,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.") python-pkginfo python-poetry-core python-requests - python-requests-toolbelt-0.9.1 + python-requests-toolbelt python-shellingham python-tomlkit python-virtualenv)) @@ -18478,7 +18594,7 @@ multitouch applications.") (define-public python-astroid (package (name "python-astroid") - (version "2.6.6") + (version "2.9.0") (source (origin (method git-fetch) @@ -18487,12 +18603,12 @@ multitouch applications.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1amzf996inwmh4r3mlpzmch60xs6lrg86vppfnwl1y0l8r0y7zxh")))) + (base32 "19iiys4233cicpm48fd7lrkm31kk47qiv44wvk952rqbcn4rd2dh")))) (build-system python-build-system) (propagated-inputs (list python-lazy-object-proxy python-wrapt)) (native-inputs - (list python-pytest python-pytest-runner)) + (list python-pytest python-pytest-runner python-typing-extensions)) (home-page "https://github.com/PyCQA/astroid") (synopsis "Common base representation of python source code for pylint and other projects") @@ -18505,43 +18621,7 @@ multitouch applications.") additional methods and attributes for different usages. They include some support for static inference and local name scopes. Furthermore, astroid builds partial trees by inspecting living objects.") - (license license:lgpl2.1+) - (properties `((python2-variant . ,(delay python2-astroid)))))) - -(define-public python2-astroid - (let ((base (package-with-python2 - (strip-python2-variant python-astroid)))) - (package (inherit base) - ;; Version 2.x removes python2 support. - (version "1.6.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "astroid" version)) - (sha256 - (base32 - "0fir4b67sm7shcacah9n61pvq313m523jb4q80sycrh3p8nmi6zw")))) - (arguments - `(#:python ,python-2 - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'remove-spurious-test - (lambda _ - ;; https://github.com/PyCQA/astroid/issues/276 - (delete-file "astroid/tests/unittest_brain.py"))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "python" "-m" "unittest" "discover" - "-p" "unittest*.py"))))))) - (native-inputs `()) - (propagated-inputs - (list python2-backports-functools-lru-cache - python2-enum34 - python2-lazy-object-proxy - python2-singledispatch - python2-six - python2-wrapt))))) + (license license:lgpl2.1+))) (define-public python-isbnlib (package @@ -21169,7 +21249,7 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style (define-public python-typed-ast (package (name "python-typed-ast") - (version "1.4.2") + (version "1.5.1") (source (origin (method git-fetch) @@ -21177,7 +21257,7 @@ source bytes using the UTF-8 encoding and then rewrites Python 3.6 style (url "https://github.com/python/typed_ast") (commit version))) (sha256 - (base32 "1wr6pkvvrq6rzjjw88pd5xy8fy06msam4hlxbkglvdmwh4c083l0")) + (base32 "1xfcs5246c8v5600aaa8zs7ii4sxb62q6r3sb2fgazyjx97wrxd9")) (file-name (git-file-name name version)))) (build-system python-build-system) (arguments @@ -21257,13 +21337,13 @@ Python 3.6+ type hints.") (define-public python-typing (package (name "python-typing") - (version "3.7.4.3") + (version "3.10.0.0") (source (origin (method url-fetch) (uri (pypi-uri "typing" version)) (sha256 - (base32 "1j8wnz8c9s049w9xbf7ssr1dmgg4rz7vdfq7m880srzxhafgp1qi")))) + (base32 "0c5il4d68fd4qrm5k3dps70j0xz0n5krj6lhwn9vzpal3whsvd0k")))) (build-system python-build-system) (home-page "https://docs.python.org/3/library/typing.html") (synopsis "Type hints for Python") @@ -21281,17 +21361,41 @@ and other tools.") (define-public python-typing-extensions (package (name "python-typing-extensions") - (version "3.10.0.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "typing_extensions" version)) - (sha256 - (base32 - "0zk7kbcms828by6avmqp09bsag1az37qr60viqjwvw8izwb5vxs9")))) + (version "4.0.1") + (source (origin + ;; The test script is missing from the PyPI archive. + (method git-fetch) + (uri (git-reference + (url "https://github.com/python/typing") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0a35fh5wk9s538x0w3dz95y0avnhd2srzyv9s1a372711n8hdl4p")))) (build-system python-build-system) - (home-page - "https://github.com/python/typing/blob/master/typing_extensions/README.rst") + (arguments + (list + #:tests? #f ;requires Python's test module, not available in Guix + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'enter-source-directory + (lambda _ + (chdir "typing_extensions"))) + ;; XXX: PEP 517 manual build copied from python-isort. + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "src/test_typing_extensions.py")))) + (replace 'install + (lambda _ + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl))))))) + (native-inputs (list python-pypa-build python-flit-core)) + (home-page "https://github.com/python/typing/typing_extensions") (synopsis "Experimental type hints for Python") (description "The typing_extensions module contains additional @code{typing} hints not @@ -24341,92 +24445,52 @@ the syntactic logic to configure and launch jobs in an execution environment.") (define-public python-flit (package (name "python-flit") - (version "3.3.0") - ;; We fetch the sources via git because on pypi the package is split into - ;; two parts: flit and flit_core; flit_core cannot be built without flit. - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/takluyver/flit") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0mvyymw3zqsnip4x4ca6anr5rbx30hcmpqwrnhjwcm7s8mycd01x")))) + (version "3.5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flit" version)) + (sha256 + (base32 "04152qj46sqbnlrj7ch9p7svjrrlpzbk0qr39g2yr0s4f5vp6frf")))) (build-system python-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'build 'bootstrap - (lambda* (#:key inputs #:allow-other-keys) - (let ((home (string-append (getcwd) "/home"))) - (mkdir-p home) - (setenv "HOME" home)) - (for-each make-file-writable (find-files ".")) - (copy-recursively (assoc-ref inputs "python-testpath") - (string-append (getcwd) "/testpath")) - (substitute* "pyproject.toml" - (("\"testpath\",") "")) - (invoke "python" "bootstrap_dev.py"))) - (replace 'build - (lambda _ - ;; A ZIP archive should be generated, but it fails with "ZIP does - ;; not support timestamps before 1980". Luckily, - ;; SOURCE_DATE_EPOCH is respected, which we set to some time in - ;; 1980. - (setenv "SOURCE_DATE_EPOCH" "315532800") - (for-each (lambda (toml) - (invoke "python3" "-m" "flit" - "--debug" "--ini-file" toml - "build")) - '("testpath/pyproject.toml" - "pyproject.toml")) - (with-directory-excursion "flit_core" - (invoke "python" "build_dists.py")))) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (let ((out (assoc-ref outputs "out"))) - (delete-file-recursively "./home") - (for-each (lambda (wheel) - (format #true wheel) - (invoke "python" "-m" "pip" "install" - wheel (string-append "--prefix=" out))) - (append - (find-files "flit_core/dist" "\\.whl$") - (find-files "dist" "\\.whl$"))))))) - #:tests? #f)) ; XXX: Check requires network access. + (list + #:phases + #~(modify-phases %standard-phases + ;; XXX: PEP 517 manual build copied from python-isort. + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" "--no-isolation" "."))) + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (setenv "HOME" "/tmp") + (setenv "FLIT_NO_NETWORK" "1")))) + (replace 'install + (lambda _ + (let ((whl (car (find-files "dist" "\\.whl$")))) + (invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output whl))))))) (propagated-inputs - (list python-pytoml python-toml)) + (list python-pypa-build + python-tomli-w + python-flit-core + python-docutils + python-requests)) (native-inputs - `(("python-docutils" ,python-docutils) - ("python-responses" ,python-responses) - ("python-pygments-github-lexers" ,python-pygments-github-lexers) - ("python-pytest" ,python-pytest) - ("python-pytest-cov" ,python-pytest-cov) - ("python-sphinx" ,python-sphinx) - ("python-sphinxcontrib-github-alt" ,python-sphinxcontrib-github-alt) - ;; This package needs testpath, but testpath also needs flit... - ("python-testpath" - ,(let ((name "python-testpath") - (version "0.4.4")) - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jupyter/testpath") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1fwv4d3p54xx1x942s104irr35lszvv6jnr4nn1scsfvc0m1qmbk"))))))) + (list python-responses + python-pygments-github-lexers + python-pytest + python-pytest-cov + python-sphinx + python-sphinxcontrib-github-alt + python-testpath)) (home-page "https://flit.readthedocs.io/") - (synopsis - "Simple packaging tool for simple packages") - (description - "Flit is a simple way to put Python packages and modules on PyPI. Flit -packages a single importable module or package at a time, using the import -name as the name on PyPI. All subpackages and data files within a package -are included automatically.") + (synopsis "Simple packaging tool for simple packages") + (description "Flit is a simple way to put Python packages and modules on +PyPI. Flit packages a single importable module or package at a time, using +the import name as the name on PyPI. All subpackages and data files within a +package are included automatically.") (license license:bsd-3))) (define-public python-pathtools @@ -27960,13 +28024,21 @@ compatible with a wide range of versions of the Stripe API.") (base32 "1njz0h4iky8iglrb85cd07hpa3lp1a2dfr934dj65hxwzvfk61j4")))) (build-system python-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? (invoke "pytest" "-vv"))))))) + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'pretend-version + ;; The version string is usually derived via setuptools-scm, but + ;; without the git metadata available, the version string is set to + ;; '0.0.0'. + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" ,version))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest"))))))) (native-inputs - (list python-appdirs python-pytest python-pytest-mock - python-setuptools-scm)) + (list python-appdirs python-pytest python-pytest-cov + python-pytest-mock python-setuptools-scm)) (home-page "https://github.com/platformdirs/platformdirs") (synopsis "Determine the appropriate platform-specific directories") (description "When writing applications, finding the right location to diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 23f188c6f9..3bc3346c21 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -431,7 +431,7 @@ data types.") (package (inherit python-2) (name "python") - (version "3.9.6") + (version "3.9.9") (source (origin (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" @@ -445,7 +445,7 @@ data types.") "python-3-no-static-lib.patch")) (sha256 (base32 - "12hhw2685i68pwfx5hdkqngzhbji4ccyjmqb5rzvkigg6fpj0y9r")) + "09vd7g71i11iz5ydqghwc8kaxr0vgji94hhwwnj77h3kll28r0h6")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index f8a7222005..739ffb3192 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -122,7 +122,7 @@ ;;; to be used in source form. The latest support for bootstrapping from ;;; 1.39.0 is not yet released so use the latest commit (see: ;;; https://github.com/thepowersgang/mrustc/issues/185). -(define %mrustc-commit "474bec9cfd7862a20e7288cecd7fcf5e18648b9a") +(define %mrustc-commit "c7066542f8e93d320323749216bf3c82aecb67c2") (define %mrustc-source (let* ((version "0.9") (commit %mrustc-commit) @@ -136,7 +136,7 @@ (file-name (git-file-name name (git-version version revision commit))) (sha256 (base32 - "1zacz5qia0r457mv74wvrvznnv4az5g2w9j8ji9ssy727wljhvz7"))))) + "0zv1x6601s5fnnkcdlqkc4bknisqz569qb0iyb9rjsmaf1kh0na3"))))) ;;; Rust 1.39 is special in that it is built with mrustc, which shortens the ;;; bootstrap path. @@ -623,14 +623,29 @@ safety and thread safety guarantees.") (define rust-1.54 (let ((base-rust (rust-bootstrapped-package - rust-1.53 "1.54.0" - "0xk9dhfff16caambmwij67zgshd8v9djw6ha0fnnanlv7rii31dc"))) - (package - (inherit base-rust) + rust-1.53 + "1.54.0" "0xk9dhfff16caambmwij67zgshd8v9djw6ha0fnnanlv7rii31dc"))) + (package/inherit base-rust (source (origin (inherit (package-source base-rust)) - (snippet '(delete-file-recursively "src/llvm-project")))) + (snippet '(delete-file-recursively "src/llvm-project"))))))) + +(define rust-1.55 + (rust-bootstrapped-package + rust-1.54 "1.55.0" "07l28f7grdmi65naq71pbmvdd61hwcpi40ry7kp7dy7m233rldxj")) + +(define rust-1.56 + (rust-bootstrapped-package + rust-1.55 "1.56.1" "04cmqx7nn63hzz7z27b2b0dj2qx18rck9ifvip43s6dampx8v2f3")) + +(define rust-1.57 + (let ((base-rust + (rust-bootstrapped-package + rust-1.56 "1.57.0" + "06jw8ka2p3kls8p0gd4p0chhhb1ia1mlvj96zn78n7qvp71zjiim"))) + (package + (inherit base-rust) (outputs (cons "rustfmt" (package-outputs base-rust))) (arguments (substitute-keyword-arguments (package-arguments base-rust) @@ -718,11 +733,6 @@ safety and thread safety guarantees.") ((file) file)) (("fn ctrl_c_kills_everyone") "#[ignore]\nfn ctrl_c_kills_everyone")))) - (add-after 'configure 'enable-docs - (lambda _ - (substitute* "config.toml" - (("docs = false") - "docs = true")))) (add-after 'configure 'add-gdb-to-config (lambda* (#:key inputs #:allow-other-keys) (let ((gdb (assoc-ref inputs "gdb"))) @@ -772,20 +782,8 @@ safety and thread safety guarantees.") `("procps" ,procps) (package-native-inputs base-rust)))))) -(define-public rust-1.55 - (rust-bootstrapped-package - rust-1.54 "1.55.0" "07l28f7grdmi65naq71pbmvdd61hwcpi40ry7kp7dy7m233rldxj")) - -(define-public rust-1.56 - (rust-bootstrapped-package - rust-1.55 "1.56.1" "04cmqx7nn63hzz7z27b2b0dj2qx18rck9ifvip43s6dampx8v2f3")) - -(define-public rust-1.57 - (rust-bootstrapped-package - rust-1.56 "1.57.0" "06jw8ka2p3kls8p0gd4p0chhhb1ia1mlvj96zn78n7qvp71zjiim")) - ;;; Note: Only the latest versions of Rust are supported and tested. The ;;; intermediate rusts are built for bootstrapping purposes and should not ;;; be relied upon. This is to ease maintenance and reduce the time ;;; required to build the full Rust bootstrap chain. -(define-public rust rust-1.54) +(define-public rust rust-1.57) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index bb5b402eee..4330b1b9af 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2019 Rutger Helling ;;; Copyright © 2020 Pierre Langlois -;;; Copyright © 2020 Maxim Cournoyer +;;; Copyright © 2020, 2022 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +27,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages samba) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -55,6 +56,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) #:use-module (gnu packages time) @@ -181,64 +183,58 @@ external dependencies.") (define-public samba (package (name "samba") - (version "4.13.14") + (version "4.15.3") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 - (base32 "103zy09mszjlfrsnm2vzrw5d9ph5jckddb9cxsrhrslkzblah4b6")) - (modules '((guix build utils))) - (snippet - '(begin - ;; XXX: Some bundled libraries (e.g, popt, cmocka) are used from - ;; the system, but their bundled sources must be kept as they - ;; include the WAF scripts used for detecting them. - (delete-file-recursively "third_party/pyiso8601") - #t)))) + (base32 "1nrp85aya0pbbqdqjaqcw82cnzzys16yls37hi2h6mci8d09k4si")))) (build-system gnu-build-system) (arguments - `(#:make-flags '("TEST_OPTIONS=--quick") ;some tests are very long - #:phases - (modify-phases %standard-phases - (add-before 'configure 'setup-docbook-stylesheets - (lambda* (#:key inputs #:allow-other-keys) - ;; Append Samba's own DTDs to XML_CATALOG_FILES - ;; (c.f. docs-xml/build/README). - (copy-file "docs-xml/build/catalog.xml.in" - "docs-xml/build/catalog.xml") - (substitute* "docs-xml/build/catalog.xml" - (("/@abs_top_srcdir@") - (string-append (getcwd) "/docs-xml"))) - ;; Honor XML_CATALOG_FILES. - (substitute* "buildtools/wafsamba/wafsamba.py" - (("XML_CATALOG_FILES=\"\\$\\{SAMBA_CATALOGS\\}" all) - (string-append all " $XML_CATALOG_FILES"))) - #t)) - (replace 'configure - ;; Samba uses a custom configuration script that runs WAF. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (libdir (string-append out "/lib"))) - (invoke "./configure" - "--enable-selftest" - "--enable-fhs" - (string-append "--prefix=" out) - "--sysconfdir=/etc" - "--localstatedir=/var" - ;; Install public and private libraries into - ;; a single directory to avoid RPATH issues. - (string-append "--libdir=" libdir) - (string-append "--with-privatelibdir=" libdir))))) - (add-before 'install 'disable-etc,var-samba-directories-setup - (lambda _ - (substitute* "dynconfig/wscript" - (("bld\\.INSTALL_DIR.*") "")) - #t))) - ;; FIXME: The test suite seemingly hangs after failing to provision the - ;; test environment. - #:tests? #f)) + (list + #:make-flags #~(list "TEST_OPTIONS=--quick") ;some tests are very long + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'setup-docbook-stylesheets + (lambda* (#:key inputs #:allow-other-keys) + ;; Append Samba's own DTDs to XML_CATALOG_FILES + ;; (c.f. docs-xml/build/README). + (copy-file "docs-xml/build/catalog.xml.in" + "docs-xml/build/catalog.xml") + (substitute* "docs-xml/build/catalog.xml" + (("/@abs_top_srcdir@") + (string-append (getcwd) "/docs-xml"))) + ;; Honor XML_CATALOG_FILES. + (substitute* "buildtools/wafsamba/wafsamba.py" + (("XML_CATALOG_FILES=\"\\$\\{SAMBA_CATALOGS\\}" all) + (string-append all " $XML_CATALOG_FILES"))))) + (replace 'configure + ;; Samba uses a custom configuration script that runs WAF. + (lambda* (#:key inputs #:allow-other-keys) + (let* ((libdir (string-append #$output "/lib"))) + (invoke "./configure" + "--enable-selftest" + "--enable-fhs" + (string-append "--prefix=" #$output) + "--sysconfdir=/etc" + "--localstatedir=/var" + ;; Install public and private libraries into + ;; a single directory to avoid RPATH issues. + (string-append "--libdir=" libdir) + (string-append "--with-privatelibdir=" libdir) + "--with-system-mitkrb5" ;#$(this-package-input "mit-krb5") + (string-append "--with-system-mitkdc=" + (search-input-file inputs "sbin/krb5kdc")) + "--with-experimental-mit-ad-dc")))) + (add-before 'install 'disable-etc,var-samba-directories-setup + (lambda _ + (substitute* "dynconfig/wscript" + (("bld\\.INSTALL_DIR.*") ""))))) + ;; FIXME: The test suite seemingly hangs after failing to provision the + ;; test environment. + #:tests? #f)) (inputs (list acl cmocka @@ -247,12 +243,12 @@ external dependencies.") dbus gpgme gnutls - heimdal jansson libarchive libtirpc linux-pam lmdb + mit-krb5 openldap perl python @@ -263,15 +259,19 @@ external dependencies.") ;; In Requires or Requires.private of pkg-config files. (list ldb talloc tevent)) (native-inputs - `(("perl-parse-yapp" ,perl-parse-yapp) - ("pkg-config" ,pkg-config) - ("python-iso8601" ,python-iso8601) - ("rpcsvc-proto" ,rpcsvc-proto) ; for 'rpcgen' - ;; For generating man pages. - ("docbook-xml" ,docbook-xml-4.2) - ("docbook-xsl" ,docbook-xsl) - ("xsltproc" ,libxslt) - ("libxml2" ,libxml2))) ;for XML_CATALOG_FILES + (list perl-parse-yapp + pkg-config + python-cryptography ;for krb5 tests + python-dnspython + python-iso8601 + python-markdown + rpcsvc-proto ;for 'rpcgen' + python-pyasn1 ;for krb5 tests + ;; For generating man pages. + docbook-xml-4.2 + docbook-xsl + libxslt + libxml2)) ;for XML_CATALOG_FILES (home-page "https://www.samba.org/") (synopsis "The standard Windows interoperability suite of programs for GNU and Unix") @@ -286,15 +286,16 @@ Desktops into Active Directory environments using the winbind daemon.") (define-public samba/fixed ;; Version that rarely changes, depended on by libsoup. - (package/inherit samba - (version "4.13.10") - (source - (origin - (inherit (package-source samba)) - (uri (string-append "https://download.samba.org/pub/samba/stable/" - "samba-" version ".tar.gz")) - (sha256 - (base32 "00q5hf2r71dyma785dckcyksv3082mqfgyy9q6k6rc6kqjwkirzh")))))) + (hidden-package + (package/inherit samba + (version "4.15.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.samba.org/pub/samba/stable/" + "samba-" version ".tar.gz")) + (sha256 + (base32 "1nrp85aya0pbbqdqjaqcw82cnzzys16yls37hi2h6mci8d09k4si"))))))) (define-public talloc (package diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 52f675ea1d..2c3979ca18 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -952,7 +952,6 @@ files and text.") (build-system cargo-build-system) (arguments `(#:tests? #false ;missing files - #:rust ,rust-1.56 #:features '("extra") #:cargo-inputs (("rust-ctrlc" ,rust-ctrlc-3) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 75a69c8d87..c19cc97862 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -893,15 +893,6 @@ message streaming.") #:tests? #f #:phases (modify-phases %standard-phases - (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable - (lambda* (#:key outputs #:allow-other-keys) - (map (lambda (file) - (make-file-writable file)) - (find-files - (string-append (assoc-ref outputs "out") - "/src/github.com/prometheus/common/expfmt/testdata/") - ".*\\.gz$")) - #t)) ;; Source-only package (delete 'build)))) (propagated-inputs diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm index 6d4a61efbd..c3c5c243eb 100644 --- a/gnu/packages/syndication.scm +++ b/gnu/packages/syndication.scm @@ -247,7 +247,7 @@ cards.") #:install-source? #f #:cargo-inputs (("rust-backtrace" ,rust-backtrace-0.3) - ("rust-bitflags" ,rust-bitflags-1.3) + ("rust-bitflags" ,rust-bitflags-1) ("rust-chrono" ,rust-chrono-0.4) ("rust-curl-sys" ,rust-curl-sys-0.4) ("rust-cxx" ,rust-cxx-1) diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm index 427f281686..e5d8394f5f 100644 --- a/gnu/packages/tbb.scm +++ b/gnu/packages/tbb.scm @@ -89,7 +89,8 @@ tasks, synchronization primitives, atomic operations, and more.") (arguments `(#:test-target "test" #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib")) + (assoc-ref %outputs "out") "/lib") + "CFLAGS=-fuse-ld=gold") #:phases (modify-phases %standard-phases (add-after 'unpack 'fail-on-test-errors @@ -121,6 +122,13 @@ tasks, synchronization primitives, atomic operations, and more.") (copy-recursively "doc" doc) (copy-recursively "examples" examples) (copy-recursively "include" include))))))) + (native-inputs + ;; XXX: For some reason, since commit "gnu: binutils: Absorb + ;; binutils-next", the build of just this version of TBB crashes during + ;; tests. Workaround it by linking the binaries with ld.gold. + (list (module-ref (resolve-interface + '(gnu packages commencement)) + 'ld-gold-wrapper))) (home-page "https://www.threadingbuildingblocks.org") (synopsis "C++ library for parallel programming") (description diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 6601a49c59..bd4c2461a2 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2018, 2019, 2020, 2021 Efraim Flashner ;;; Copyright © 2016 Federico Beffa ;;; Copyright © 2016 Thomas Danckaert -;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus +;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2017, 2020, 2021 Marius Bakke ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice @@ -254,19 +254,17 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use. (modules '((guix build utils) (ice-9 ftw))) (snippet - '(begin - (with-directory-excursion "libs" - (let ((preserved-directories '("." ".." "lua53" "luajit" "pplib" "xpdf"))) - ;; Delete bundled software, except Lua which cannot easily be - ;; used as an external dependency, pplib and xpdf which aren't - ;; supported as system libraries (see m4/kpse-xpdf-flags.m4). - (for-each delete-file-recursively - (scandir "." - (lambda (file) - (and (not (member file preserved-directories)) - (eq? 'directory (stat:type (stat file))))))))) - ;; TODO: Unbundle stuff in texk/dvisvgm/dvisvgm-src/libs too. - #t)))) + ;; TODO: Unbundle stuff in texk/dvisvgm/dvisvgm-src/libs too. + '(with-directory-excursion "libs" + (let ((preserved-directories '("." ".." "lua53" "luajit" "pplib" "xpdf"))) + ;; Delete bundled software, except Lua which cannot easily be + ;; used as an external dependency, pplib and xpdf which aren't + ;; supported as system libraries (see m4/kpse-xpdf-flags.m4). + (for-each delete-file-recursively + (scandir "." + (lambda (file) + (and (not (member file preserved-directories)) + (eq? 'directory (stat:type (stat file)))))))))))) (build-system gnu-build-system) (inputs `(("texlive-extra-src" ,texlive-extra-src) @@ -368,24 +366,21 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use. (("gswin32c") "gs")) (substitute* "texk/texlive/linked_scripts/epstopdf/epstopdf.pl" (("\"gs\"") - (string-append "\"" (assoc-ref inputs "ghostscript") "/bin/gs\""))) - #t)) + (string-append "\"" (assoc-ref inputs "ghostscript") "/bin/gs\""))))) (add-after 'unpack 'patch-dvisvgm-build-files (lambda _ ;; XXX: Ghostscript is detected, but HAVE_LIBGS is never set, so ;; the appropriate linker flags are not added. (substitute* "texk/dvisvgm/configure" (("^have_libgs=yes" all) - (string-append all "\nHAVE_LIBGS=1"))) - #t)) + (string-append all "\nHAVE_LIBGS=1"))))) (add-after 'unpack 'disable-failing-test (lambda _ ;; FIXME: This test fails on 32-bit architectures since Glibc 2.28: ;; . (substitute* "texk/web2c/omegafonts/check.test" (("^\\./omfonts -ofm2opl \\$srcdir/tests/check tests/xcheck \\|\\| exit 1") - "./omfonts -ofm2opl $srcdir/tests/check tests/xcheck || exit 77")) - #t)) + "./omfonts -ofm2opl $srcdir/tests/check tests/xcheck || exit 77")))) ,@(if (target-ppc32?) ;; Some mendex tests fail on some architectures. `((add-after 'unpack 'skip-mendex-tests @@ -430,9 +425,16 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use. iso-8859-1-encoded-scripts)) (with-fluids ((%default-port-encoding "ISO-8859-1")) - (substitute-commands iso-8859-1-encoded-scripts)) - - #t))) + (substitute-commands iso-8859-1-encoded-scripts))))) + ;; When ST_NLINK_TRICK is set, kpathsea attempts to avoid work when + ;; searching files by assuming that a directory with exactly two + ;; links has no subdirectories. This assumption does not hold in our + ;; case, so some directories with symlinked subdirectories would not + ;; be traversed. + (add-after 'patch-scripts 'patch-directory-traversal + (lambda _ + (substitute* "texk/kpathsea/config.h" + (("#define ST_NLINK_TRICK") "")))) (add-after 'check 'customize-texmf.cnf ;; The default texmf.cnf is provided by this package, texlive-bin. ;; Every variable of interest is set relatively to the GUIX_TEXMF @@ -457,8 +459,7 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use. ;; Don't truncate lines. (("^error_line = .*$") "error_line = 254\n") (("^half_error_line = .*$") "half_error_line = 238\n") - (("^max_print_line = .*$") "max_print_line = 1000\n"))) - #t)) + (("^max_print_line = .*$") "max_print_line = 1000\n"))))) (add-after 'install 'post-install (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) (let* ((out (assoc-ref outputs "out")) @@ -480,11 +481,12 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use. (config.guess (search-input-file inputs "/bin/config.guess"))) - ;; Create symbolic links for the latex variants and their - ;; man pages. + ;; Create symbolic links for the latex variants and their man + ;; pages. We link lualatex to luahbtex; see issue #51252 for + ;; details. (with-directory-excursion (string-append out "/bin/") (for-each symlink - '("pdftex" "pdftex" "xetex" "luatex") + '("pdftex" "pdftex" "xetex" "luahbtex") '("latex" "pdflatex" "xelatex" "lualatex"))) (with-directory-excursion (string-append share "/man/man1/") (symlink "luatex.1" "lualatex.1")) @@ -497,6 +499,14 @@ files from LOCATIONS with expected checksum HASH. CODE is not currently in use. source "/texlive-scripts/source/") scripts) + ;; Patch them. + (let ((dirs (map dirname (list (which "sed") (which "awk"))))) + (with-directory-excursion scripts + (substitute* '("mktexpk" "mktexmf" "mktexlsr") + (("^version=" m) + (format #false "PATH=\"~{~a:~}$PATH\"; export PATH~%~a" + dirs m))))) + ;; Make sure that fmtutil can find its Perl modules. (substitute* (string-append scripts "/fmtutil.pl") (("\\$TEXMFROOT/") @@ -2580,48 +2590,65 @@ UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi8-r.") (license license:lppl)))) (define-public texlive-kpathsea - (package - (inherit (simple-texlive-package - "texlive-kpathsea" - (list "/web2c/amiga-pl.tcx" - "/web2c/cp1250cs.tcx" - "/web2c/cp1250pl.tcx" - "/web2c/cp1250t1.tcx" - "/web2c/cp227.tcx" - "/web2c/cp852-cs.tcx" - "/web2c/cp852-pl.tcx" - "/web2c/cp8bit.tcx" - "/web2c/empty.tcx" - "/web2c/fmtutil.cnf" - "/web2c/il1-t1.tcx" - "/web2c/il2-cs.tcx" - "/web2c/il2-pl.tcx" - "/web2c/il2-t1.tcx" - "/web2c/kam-cs.tcx" - "/web2c/kam-t1.tcx" - "/web2c/macce-pl.tcx" - "/web2c/macce-t1.tcx" - "/web2c/maz-pl.tcx" - "/web2c/mktex.cnf" - "/web2c/mktex.opt" - "/web2c/mktexdir" - "/web2c/mktexdir.opt" - "/web2c/mktexnam" - "/web2c/mktexnam.opt" - "/web2c/mktexupd" - "/web2c/natural.tcx" - "/web2c/tcvn-t5.tcx" - "/web2c/viscii-t5.tcx") - (base32 - "00q2nny7lw7jxyln6ch4h0alygbrzk8yynliyc291m53kds1h0mr") - #:trivial? #t)) - (home-page "https://www.tug.org/texlive/") - (synopsis "Files related to the path searching library for TeX") - (description "Kpathsea is a library and utility programs which provide + (let ((template (simple-texlive-package + "texlive-kpathsea" + (list "/web2c/amiga-pl.tcx" + "/web2c/cp1250cs.tcx" + "/web2c/cp1250pl.tcx" + "/web2c/cp1250t1.tcx" + "/web2c/cp227.tcx" + "/web2c/cp852-cs.tcx" + "/web2c/cp852-pl.tcx" + "/web2c/cp8bit.tcx" + "/web2c/empty.tcx" + "/web2c/fmtutil.cnf" + "/web2c/il1-t1.tcx" + "/web2c/il2-cs.tcx" + "/web2c/il2-pl.tcx" + "/web2c/il2-t1.tcx" + "/web2c/kam-cs.tcx" + "/web2c/kam-t1.tcx" + "/web2c/macce-pl.tcx" + "/web2c/macce-t1.tcx" + "/web2c/maz-pl.tcx" + "/web2c/mktex.cnf" + "/web2c/mktex.opt" + "/web2c/mktexdir" + "/web2c/mktexdir.opt" + "/web2c/mktexnam" + "/web2c/mktexnam.opt" + "/web2c/mktexupd" + "/web2c/natural.tcx" + "/web2c/tcvn-t5.tcx" + "/web2c/viscii-t5.tcx") + (base32 + "00q2nny7lw7jxyln6ch4h0alygbrzk8yynliyc291m53kds1h0mr") + #:trivial? #t))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-references + (lambda* (#:key inputs #:allow-other-keys) + (let ((dirs (map dirname (list (which "sed") + (which "awk"))))) + (substitute* '("web2c/mktexdir" + "web2c/mktexnam" + "web2c/mktexupd") + (("^version=" m) + (format #false "PATH=\"~{~a:~}$PATH\"; export PATH~%~a" + dirs m)))))))))) + (inputs + (list sed gawk)) + (home-page "https://www.tug.org/texlive/") + (synopsis "Files related to the path searching library for TeX") + (description "Kpathsea is a library and utility programs which provide path searching facilities for TeX file types, including the self-locating feature required for movable installations, layered on top of a general search mechanism. This package provides supporting files.") - (license license:lgpl3+))) + (license license:lgpl3+)))) (define-public texlive-latexconfig (package @@ -2673,8 +2700,7 @@ formats.") (add-after 'unpack 'fix-lua-sources (lambda _ (substitute* "source/latex/base/ltluatex.dtx" - ((" ") " ")) - #t)) + ((" ") " ")))) (replace 'build (lambda* (#:key inputs #:allow-other-keys) ;; Find required fonts @@ -2746,8 +2772,7 @@ formats.") "--fmtdir=web2c" (string-append "--cnffile=web2c/fmtutil.cnf")) ;; We don't actually want to install it. - (delete-file "web2c/fmtutil.cnf") - #t)) + (delete-file "web2c/fmtutil.cnf"))) (add-after 'install 'install-more (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -2768,8 +2793,7 @@ formats.") (for-each (cut install-file <> target) (find-files "build" ".*")) (for-each (cut install-file <> web2c) - (find-files "web2c" ".*")) - #t))))))) + (find-files "web2c" ".*"))))))))) (native-inputs `(("texlive-bin" ,texlive-bin) ("texlive-tex-ini-files" ,texlive-tex-ini-files) @@ -3657,35 +3681,21 @@ releases. The bundle consists of a Lua script to run the tasks and a @code{.tex} file which provides the testing environment.") (license license:lppl1.3c+)))) -;; The SVN directory contains little more than a dtx file that generates three -;; of the many lua files that should be installed as part of this package. -;; This is why we take the release from GitHub instead. -(define-public texlive-luatex-lualibs +(define-public texlive-lualibs (package - (name "texlive-luatex-lualibs") - (version "2.5") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/lualatex/lualibs/" - "releases/download/v" - version "/lualibs.zip")) - (file-name (string-append name "-" version ".zip")) - (sha256 - (base32 - "1xx9blvrmx9hyhrl345lpai9m6xxnw997261a1ahn1bm5r2j5fqy")))) - (build-system gnu-build-system) - (arguments - `(#:make-flags - (list (string-append "DESTDIR=" - (assoc-ref %outputs "out") - "/share/texmf-dist")) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) - (native-inputs - (list texlive-bin unzip zip)) - (home-page "https://github.com/lualatex/lualibs") - (synopsis "Lua modules for general programming (in the (La)TeX world)") + (inherit + (simple-texlive-package + "texlive-lualibs" + (list "doc/luatex/lualibs/" + "source/luatex/lualibs/" + "tex/luatex/lualibs/") + (base32 "0gf60vj9y75a7dlrmpbyqgsa00s1717r6if3lm5ldm41i9fm8ywz") + ;; The source dtx file only unpacks three files. This is why we + ;; install all the files as they are, because there is no clear + ;; way to generate them all. + #:trivial? #true)) + (home-page "https://ctan.org/macros/luatex/generic/lualibs") + (synopsis "Additional Lua functions for LuaTeX macro programmers") (description "Lualibs is a collection of Lua modules useful for general programming. The bundle is based on Lua modules shipped with ConTeXt, and made available in @@ -3693,6 +3703,23 @@ this bundle for use independent of ConTeXt.") ;; GPL version 2 only (license license:gpl2))) +(define-deprecated-package texlive-luatex-lualibs texlive-lualibs) + +(define-public texlive-lua-alt-getopt + (package + (inherit + (simple-texlive-package + "texlive-lua-alt-getopt" + (list "doc/support/lua-alt-getopt/" "scripts/lua-alt-getopt/") + (base32 "0cizxzn33n3pn98xkqnxb8s6vdwkar3xrwhraqrs05pjfdn9d4wz") + #:trivial? #t)) + (home-page "https://ctan.org/support/lualibs/lua-alt-getopt") + (synopsis "Process application arguments the same way as getopt_long") + (description + "This package provides a Lua module for processing application arguments +in the same way as BSD/GNU @code{getopt_long(3)} functions do.") + (license license:expat))) + ;; TODO: We should be able to build this from the sources on Github with ;; texlive-l3build, but I haven't been able to get it to work. (define-public texlive-luaotfload @@ -3711,7 +3738,8 @@ this bundle for use independent of ConTeXt.") (package (inherit template) (propagated-inputs - (list texlive-luatex-lualibs)) + (list texlive-lua-alt-getopt ;for luaotfload-tool + texlive-lualibs)) (home-page "https://github.com/lualatex/luaotfload") (synopsis "OpenType font loader for LuaTeX") (description @@ -3725,71 +3753,6 @@ loading fonts by their proper names instead of file names.") (define-deprecated-package texlive-luatex-luaotfload texlive-luaotfload) -;; FIXME: This package is a temporary workaround to provide ‘lualatex.fmt’ for -;; the LuaTeX engine. It is needed because it was discovered too late in the -;; core-updates-frozen cycle that texlive-latex-base only provides it for -;; LuaHBTeX. See https://issues.guix.gnu.org/51252. -(define-public texlive-latex-luatex - (package - (name "texlive-latex-luatex") - (version (number->string %texlive-revision)) - (source #f) - (build-system gnu-build-system) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 rdelim) - (ice-9 string-fun)) - #:phases - (modify-phases %standard-phases - (delete 'unpack) - (delete 'bootstrap) - (delete 'configure) - (delete 'check) - (replace 'build - (lambda* (#:key inputs #:allow-other-keys) - (mkdir "web2c") - (let ((fmtutil.cnf-in (open-file - (string-append - (assoc-ref inputs "texlive-kpathsea") - "/share/texmf-dist/web2c/fmtutil.cnf") - "r")) - (fmtutil.cnf-out (open-file "web2c/fmtutil.cnf" "w"))) - - ;; Copy ‘lualatex’ format lines to the new fmtutil.cnf, changing - ;; the engine from ‘luahbtex’ to ‘luatex’. - (do ((line "" (read-line fmtutil.cnf-in 'concat))) - ((eof-object? line)) - (when (string-prefix? "lualatex" line) - (display (string-replace-substring line "luahbtex" "luatex") - fmtutil.cnf-out))) - (close-port fmtutil.cnf-out) - (close-port fmtutil.cnf-in) - - (invoke "fmtutil" "--sys" "--all" "--fmtdir=web2c" - "--cnffile=web2c/fmtutil.cnf") - - ;; Don't risk this file interfering with anything else. - (delete-file "web2c/fmtutil.cnf")))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((web2c (string-append %output "/share/texmf-dist/web2c"))) - (mkdir-p web2c) - (copy-recursively "web2c" web2c))))))) - (native-inputs - (list texlive-bin - texlive-babel - texlive-cm - texlive-fonts-latex - texlive-kpathsea - texlive-latex-base - texlive-lm - texlive-tex-ini-files)) - (home-page (package-home-page texlive-latex-base)) - (synopsis "LuaLaTeX format files for LuaTeX") - (description "This package is necessary to use LaTeX with the LuaTeX engine.") - (license (package-license texlive-latex-base)))) - (define-public texlive-latex-amsmath (package (name "texlive-latex-amsmath") diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 5ff1fe9901..5a78dc3a6f 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1675,14 +1675,7 @@ visualize your public Git repositories on a web interface.") "not test_install_existing_hooks_no_overwrite" " and not test_uninstall_restores_legacy_hooks" " and not test_installed_from_venv" - " and not test_healthy_venv_creator"))))) - (add-before 'reset-gzip-timestamps 'make-gz-writable - (lambda* (#:key outputs #:allow-other-keys) - ;; Make sure .gz files are writable so that the - ;; 'reset-gzip-timestamps' phase can do its work. - (let ((out (assoc-ref outputs "out"))) - (for-each make-file-writable - (find-files out "\\.gz$")))))))) + " and not test_healthy_venv_creator")))))))) (native-inputs `(("git" ,git-minimal) ("python-covdefaults" ,python-covdefaults) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index a9996e477e..89738e83b0 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -49,7 +49,7 @@ ;;; Copyright © 2021 Alexey Abramov ;;; Copyright © 2021 Andrew Tropin ;;; Copyright © 2021 David Wilson -;;; Copyright © 2021 Maxim Cournoyer +;;; Copyright © 2021,2022 Maxim Cournoyer ;;; Copyright © 2020 Hartmut Goebel ;;; Copyright © 2021 Raghav Gururajan ;;; Copyright © 2021 Thiago Jung Bauermann @@ -4387,9 +4387,6 @@ tools for styling them, including a built-in real-time video preview.") ("pkg-config" ,pkg-config))) (arguments `(#:glib-or-gtk? #t - ;; Pitivi is not yet compatible with Meson 0.60: - ;; https://gitlab.gnome.org/GNOME/pitivi/-/issues/2593 - #:meson ,meson-0.59 #:phases (modify-phases %standard-phases (add-after 'glib-or-gtk-wrap 'wrap-other-dependencies @@ -5206,7 +5203,7 @@ result in several formats: (define-public rav1e (package (name "rav1e") - (version "0.4.1") + (version "0.5.1") (source (origin (method url-fetch) @@ -5215,15 +5212,18 @@ result in several formats: (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00rjil6qbrwfxhhlq9yvidxm0gp9qdbywhf5zvkj85lykbhyff09")))) + "006bfcmjwg0phg8gc25b1sl2ngjrb2bh1b3fd0s5gbf9nlkr8qsn")))) (build-system cargo-build-system) (arguments - `(#:cargo-inputs - (("rust-aom-sys" ,rust-aom-sys-0.2) + `(;; Strip the '--release' flag to work around the doctest failures with + ;; Rust 1.57 (see: https://github.com/xiph/rav1e/issues/2851). + #:cargo-test-flags '() + #:cargo-inputs + (("rust-aom-sys" ,rust-aom-sys-0.3) ("rust-arbitrary" ,rust-arbitrary-0.4) ("rust-arg-enum-proc-macro" ,rust-arg-enum-proc-macro-0.3) - ("rust-arrayvec" ,rust-arrayvec-0.5) - ("rust-av-metrics" ,rust-av-metrics-0.6) + ("rust-arrayvec" ,rust-arrayvec-0.7) + ("rust-av-metrics" ,rust-av-metrics-0.7) ("rust-backtrace" ,rust-backtrace-0.3) ("rust-bitstream-io" ,rust-bitstream-io-1) ("rust-byteorder" ,rust-byteorder-1) @@ -5231,7 +5231,7 @@ result in several formats: ("rust-clap" ,rust-clap-2) ("rust-console" ,rust-console-0.14) ("rust-crossbeam" ,rust-crossbeam-0.8) - ("rust-dav1d-sys" ,rust-dav1d-sys-0.3.2) + ("rust-dav1d-sys" ,rust-dav1d-sys-0.3) ("rust-fern" ,rust-fern-0.6) ("rust-image" ,rust-image-0.23) ("rust-interpolate-name" ,rust-interpolate-name-0.2) @@ -5250,7 +5250,7 @@ result in several formats: ("rust-rayon" ,rust-rayon-1) ("rust-regex" ,rust-regex-1) ("rust-rust-hawktracer" ,rust-rust-hawktracer-0.7) - ("rust-rustc-version" ,rust-rustc-version-0.3) + ("rust-rustc-version" ,rust-rustc-version-0.4) ("rust-scan-fmt" ,rust-scan-fmt-0.2) ("rust-serde" ,rust-serde-1) ("rust-signal-hook" ,rust-signal-hook-0.3) @@ -5262,16 +5262,21 @@ result in several formats: ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2) ("rust-y4m" ,rust-y4m-0.7)) #:cargo-development-inputs - (("rust-assert-cmd" ,rust-assert-cmd-1) + (("rust-assert-cmd" ,rust-assert-cmd-2) ("rust-cc" ,rust-cc-1) ("rust-criterion" ,rust-criterion-0.3) ("rust-interpolate-name" ,rust-interpolate-name-0.2) - ("rust-pretty-assertions" ,rust-pretty-assertions-0.6) + ("rust-pretty-assertions" ,rust-pretty-assertions-0.7) ("rust-rand" ,rust-rand-0.8) ("rust-rand-chacha" ,rust-rand-chacha-0.3) - ("rust-semver" ,rust-semver-0.11)) + ("rust-semver" ,rust-semver-1)) #:phases (modify-phases %standard-phases + (add-after 'unpack 'relax-versions + (lambda _ + (substitute* "Cargo.toml" + ;; Allow using more recent versions of + (("~3.1.2") "~3")))) (replace 'build (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 4a9ac08bc9..a16a12c7aa 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1340,8 +1340,6 @@ to integrate other virtualization mechanisms if needed.") (base32 "1gdcvqz88qkp402zra9csc6391f2xki1270x683n6ixakl3gf8w4")))) (build-system meson-build-system) - (arguments - `(#:meson ,meson-0.59)) ;KeyError: 'install_dir' with meson 0.60 (inputs (list openssl cyrus-sasl lvm2 ; for libdevmapper libyajl)) diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 8e9aa2b1b5..cfe24f41b0 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -251,15 +251,7 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.") "-DUSE_SYSTEMD=OFF" (string-append ; uses lib64 by default "-DLIB_INSTALL_DIR=" - (assoc-ref %outputs "out") "/lib") - ;; XXX Adding GStreamer GL support would apparently - ;; require adding gst-plugins-bad to the inputs, - ;; which might entail a security risk as a result of - ;; the plugins of dubious code quality that are - ;; included. More investigation is needed. For - ;; now, we explicitly disable it to prevent an error - ;; at configuration time. - "-DUSE_GSTREAMER_GL=OFF") + (assoc-ref %outputs "out") "/lib")) #:make-flags ;; Never build with unsupported -j1: https://issues.guix.gnu.org/47964#5 (list "-j" (number->string (max 2 (parallel-job-count)))) @@ -350,7 +342,10 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.") (description "WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid -HTML/CSS applications to full-fledged web browsers.") +HTML/CSS applications to full-fledged web browsers. WebKitGTK+ video playing +capabilities can be extended through the use of GStreamer plugins (not +propagated by default) such as @code{gst-plugins-good} and +@code{gst-plugins-bad}.") ;; WebKit's JavaScriptCore and WebCore components are available under ;; the GNU LGPL, while the rest is available under a BSD-style license. (license (list license:lgpl2.0 diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 74a6ea38b8..865ffdb61f 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -431,7 +431,7 @@ avoiding password prompts when X11 forwarding has already been setup.") wayland-protocols xkeyboard-config)) (native-inputs - (list bison doxygen pkg-config)) + (list bison doxygen pkg-config python)) (arguments `(#:configure-flags (list (string-append "-Dxkb-config-root=" diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index c54417c586..14e35d19ae 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5532,18 +5532,18 @@ Wayland.") (define-public libx11 (package (name "libx11") - (version "1.7.2") + (version "1.7.3.1") (source - (origin - (method url-fetch) - (uri (string-append "mirror://xorg/individual/lib/libX11-" - version ".tar.bz2")) - (sha256 - (base32 - "0v7aj8q3rlchdyfwdna7n7vgpyzyir391dlv5rwy9fxagbikbyhw")))) + (origin + (method url-fetch) + (uri (string-append "https://xorg.freedesktop.org/archive/" + "/individual/lib/libX11-" version ".tar.xz")) + (sha256 + (base32 + "1289nvs52q9fnp7zl30bdpbvqggnjjb39vy0zll511zvcrr43z9g")))) (build-system gnu-build-system) (outputs '("out" - "doc")) ;8 MiB of man pages + XML + "doc")) ;8 MiB of man pages + XML (arguments `(#:configure-flags (list (string-append "--mandir=" @@ -5552,9 +5552,9 @@ Wayland.") "--disable-static" ,@(malloc0-flags)))) (propagated-inputs - (list xorgproto libxcb)) + (list xorgproto libxcb)) (inputs - (list xtrans)) + (list xtrans)) (native-inputs (list pkg-config xorgproto)) (home-page "https://www.x.org/wiki/") diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index d0f7413268..d84411c090 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -598,6 +598,8 @@ and 'man/'. This phase moves directories to the right place if needed." (string-suffix? ".tgz" file)) (gzip-file? file))) #:stat lstat))) + ;; Ensure the files are writable. + (for-each make-file-writable files) (for-each reset-gzip-timestamp files))) (match outputs diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 3beb7da67a..dd5a91f52f 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2020 Efraim Flashner ;;; Copyright © 2020, 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -1462,10 +1463,9 @@ not supported." `(let ((cl (command-line))) (apply execl ,interpreter (car cl) - (cons (car cl) - (append - ',(string-split args #\space) - cl)))))) + (append + ',(string-tokenize args char-set:graphic) + cl))))) (template (string-append prog ".XXXXXX")) (out (mkstemp! template)) (st (stat prog)) diff --git a/guix/lint.scm b/guix/lint.scm index 379bd0e80b..3ca7a0b608 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -571,9 +571,7 @@ or \"bash-minimal\" is not in its inputs. 'wrap-script' is not supported." input-names))) (define (check-procedure-body body) (match body - ;; Explicitely setting an interpreter is acceptable, - ;; #:sh support is added on 'core-updates'. - ;; TODO(core-updates): remove mention of core-updates. + ;; Explicitely setting an interpreter is acceptable. (('wrap-program _ '#:sh . _) '()) (('wrap-program _ . _) (list (report-wrap-program-error package 'wrap-program))) diff --git a/tests/build-utils.scm b/tests/build-utils.scm index 6b131c0af8..7f4f12ccc7 100644 --- a/tests/build-utils.scm +++ b/tests/build-utils.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2019 Ricardo Wurmus ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -167,9 +168,7 @@ echo hello world")) "/some/path:/some/other/path")))) '(let ((cl (command-line))) (apply execl "/anything/cabbage-bash-1.2.3/bin/sh" - (car cl) - (cons (car cl) - (append '("") cl))))) + (car cl) (append (quote ()) cl)))) script-contents) (call-with-temporary-directory (lambda (directory) @@ -208,8 +207,7 @@ print('hello world')")) `(let ((cl (command-line))) (apply execl "/anything/cabbage-bash-1.2.3/bin/python3" (car cl) - (cons (car cl) - (append '("" "-and" "-args") cl))))) + (append '("-and" "-args") cl)))) script-contents) (call-with-temporary-directory (lambda (directory) @@ -243,6 +241,54 @@ print('hello world')")) "/some/other/path"))) #f))))) +(define (arg-test bash-args) + (call-with-temporary-directory + (lambda (directory) + (let ((script-file-name (string-append directory "/bash-test.sh"))) + (call-with-output-file script-file-name + (lambda (port) + (display (string-append "\ +#!" (which "bash") bash-args " +echo \"$#$0$*${A}\"") + port))) + + (display "Unwrapped script contents:\n") + (call-with-input-file script-file-name + (lambda (port) (display (get-string-all port)))) + (newline) (newline) + (chmod script-file-name #o777) + (setenv "A" "A") + (let* ((run-script (lambda _ + (open-pipe* + OPEN_READ + script-file-name "1" "2" "3 3" "4"))) + (pipe (run-script)) + (unwrapped-output (get-string-all pipe))) + (close-pipe pipe) + + (wrap-script script-file-name `("A" = ("A\nA"))) + + (display "Wrapped script contents:\n") + (call-with-input-file script-file-name + (lambda (port) (display (get-string-all port)))) + (newline) (newline) + + (let* ((pipe (run-script)) + (wrapped-output (get-string-all pipe))) + (close-pipe pipe) + (display "./bash-test.sh 1 2 3\\ 3 4 # Output:\n") + (display unwrapped-output) (newline) + (display "./bash-test.sh 1 2 3\\ 3 4 # Output (wrapped):\n") + (display wrapped-output) (newline) + (string=? (string-append unwrapped-output "A\n") + wrapped-output))))))) + +(test-assert "wrap-script, argument handling" + (arg-test "")) + +(test-assert "wrap-script, argument handling, bash --norc" + (arg-test " --norc")) + (test-equal "substitute*, text contains a NUL byte, UTF-8" "c\0d" (with-fluids ((%default-port-encoding "UTF-8") @@ -287,5 +333,4 @@ print('hello world')")) ("guile/bin" . ,(dirname (which "guile")))) "guile")))) - (test-end)