diff options
110 files changed, 2057 insertions, 1427 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 9d1028a5be..efbd9067bf 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -711,7 +711,6 @@ dist_patch_DATA = \ %D%/packages/patches/arm-trusted-firmware-optional-bin-generation.patch \ %D%/packages/patches/arm-trusted-firmware-rockchip-disable-binary.patch \ %D%/packages/patches/aspell-default-dict-dir.patch \ - %D%/packages/patches/aspell-gcc-compat.patch \ %D%/packages/patches/ath9k-htc-firmware-binutils.patch \ %D%/packages/patches/ath9k-htc-firmware-gcc.patch \ %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \ @@ -740,8 +739,10 @@ dist_patch_DATA = \ %D%/packages/patches/azr3.patch \ %D%/packages/patches/bash-reproducible-linux-pgrp-pipe.patch \ %D%/packages/patches/bash-completion-directories.patch \ + %D%/packages/patches/bash-linux-pgrp-pipe.patch \ %D%/packages/patches/bastet-change-source-of-unordered_set.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ + %D%/packages/patches/bc-fix-cross-compilation.patch \ %D%/packages/patches/beignet-correct-file-names.patch \ %D%/packages/patches/benchmark-unbundle-googletest.patch \ %D%/packages/patches/biber-fix-encoding-write.patch \ @@ -749,6 +750,7 @@ dist_patch_DATA = \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ %D%/packages/patches/blender-2.79-python-3.7-fix.patch \ + %D%/packages/patches/boost-dumpversion.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-remove-test-bs4.patch \ @@ -791,6 +793,7 @@ dist_patch_DATA = \ %D%/packages/patches/cube-nocheck.patch \ %D%/packages/patches/cursynth-wave-rand.patch \ %D%/packages/patches/cvs-CVE-2017-12836.patch \ + %D%/packages/patches/cyrus-sasl-ac-try-run-fix.patch \ %D%/packages/patches/darkice-workaround-fpermissive-error.patch \ %D%/packages/patches/dbus-helper-search-path.patch \ %D%/packages/patches/dbus-c++-gcc-compat.patch \ @@ -849,11 +852,8 @@ dist_patch_DATA = \ %D%/packages/patches/fbreader-curl-7.62.patch \ %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ %D%/packages/patches/fifo-map-remove-catch.hpp.patch \ - %D%/packages/patches/file-CVE-2018-10360.patch \ - %D%/packages/patches/findutils-gnulib-libio.patch \ + %D%/packages/patches/file-CVE-2019-18218.patch \ %D%/packages/patches/findutils-localstatedir.patch \ - %D%/packages/patches/findutils-makedev.patch \ - %D%/packages/patches/findutils-test-xargs.patch \ %D%/packages/patches/flann-cmake-3.11.patch \ %D%/packages/patches/flint-ldconfig.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ @@ -910,7 +910,6 @@ dist_patch_DATA = \ %D%/packages/patches/ghostscript-no-header-id.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \ - %D%/packages/patches/giflib-make-reallocarray-private.patch \ %D%/packages/patches/glib-tests-timer.patch \ %D%/packages/patches/glibc-CVE-2015-5180.patch \ %D%/packages/patches/glibc-CVE-2015-7547.patch \ @@ -924,6 +923,7 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-CVE-2018-11237.patch \ %D%/packages/patches/glibc-CVE-2019-7309.patch \ %D%/packages/patches/glibc-CVE-2019-9169.patch \ + %D%/packages/patches/glibc-CVE-2019-19126.patch \ %D%/packages/patches/glibc-allow-kernel-2.6.32.patch \ %D%/packages/patches/glibc-boot-2.16.0.patch \ %D%/packages/patches/glibc-boot-2.2.5.patch \ @@ -961,7 +961,6 @@ dist_patch_DATA = \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \ %D%/packages/patches/grub-efi-fat-serial-number.patch \ - %D%/packages/patches/gsl-test-i686.patch \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-2.2-default-utf8.patch \ @@ -974,6 +973,7 @@ dist_patch_DATA = \ %D%/packages/patches/guile-relocatable.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ %D%/packages/patches/guile-emacs-fix-configure.patch \ + %D%/packages/patches/guile-sqlite3-fix-cross-compilation.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-theme-paths.patch \ @@ -1086,7 +1086,6 @@ dist_patch_DATA = \ %D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnomeui-utf8.patch \ %D%/packages/patches/libgpg-error-gawk-compat.patch \ - %D%/packages/patches/libffi-3.2.1-complex-alpha.patch \ %D%/packages/patches/libjpeg-turbo-CVE-2019-2201.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-typos.patch \ @@ -1308,6 +1307,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-CVE-2018-14647.patch \ %D%/packages/patches/python-axolotl-AES-fix.patch \ %D%/packages/patches/python-cairocffi-dlopen-path.patch \ + %D%/packages/patches/python-cross-compile.patch \ %D%/packages/patches/python-cffi-x87-stack-clean.patch \ %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \ %D%/packages/patches/python-configobj-setuptools.patch \ @@ -1391,7 +1391,6 @@ dist_patch_DATA = \ %D%/packages/patches/superlu-dist-fix-mpi-deprecations.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/supertux-unbundle-squirrel.patch \ - %D%/packages/patches/swig-guile-gc.patch \ %D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-format-security.patch \ %D%/packages/patches/symmetrica-bruch.patch \ @@ -1405,8 +1404,8 @@ dist_patch_DATA = \ %D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tcc-boot-0.9.27.patch \ %D%/packages/patches/tclxml-3.2-install.patch \ + %D%/packages/patches/tcl-fix-cross-compilation.patch \ %D%/packages/patches/tcsh-fix-autotest.patch \ - %D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \ %D%/packages/patches/teensy-loader-cli-help.patch \ %D%/packages/patches/teeworlds-use-latest-wavpack.patch \ %D%/packages/patches/texinfo-5-perl-compat.patch \ diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 6afd559c9c..7d33613e64 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -682,15 +683,23 @@ binary.") (uri (string-append "mirror://gnu/bc/bc-" version ".tar.gz")) (sha256 (base32 - "0amh9ik44jfg66csyvf4zz1l878c4755kjndq9j0270akflgrbb2")))) + "0amh9ik44jfg66csyvf4zz1l878c4755kjndq9j0270akflgrbb2")) + (patches (search-patches "bc-fix-cross-compilation.patch")))) (build-system gnu-build-system) (native-inputs - `(("ed" ,ed) + `(("automake" ,automake) + ("autoconf" ,autoconf) + ("ed" ,ed) ("flex" ,flex) ("texinfo" ,texinfo))) (arguments '(#:configure-flags - (list "--with-readline"))) + (list "--with-readline") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + (invoke "autoreconf" "-vif")))))) (home-page "https://www.gnu.org/software/bc/") (synopsis "Arbitrary precision numeric processing language") (description diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index af38c149c2..56d69fdb05 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il> @@ -38,7 +38,7 @@ (define-public aspell (package (name "aspell") - (version "0.60.6.1") + (version "0.60.8") (source (origin (method url-fetch) @@ -46,9 +46,8 @@ version ".tar.gz")) (sha256 (base32 - "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm")) - (patches (search-patches "aspell-default-dict-dir.patch" - "aspell-gcc-compat.patch")))) + "1wi60ankalmh8ds7nplz434jd7j94gdvbahdwsr539rlad8pxdzr")) + (patches (search-patches "aspell-default-dict-dir.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -65,14 +64,6 @@ (("\"filter-path(.*)DICT_DIR" _ middle) (string-append "\"filter-path" middle "\"" libdir "\""))) - #t))) - (add-after 'install 'wrap-aspell - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin/aspell (string-append (assoc-ref outputs "out") - "/bin/aspell"))) - (wrap-program bin/aspell - '("ASPELL_CONF" "" = - ("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}"))) #t)))))) (inputs `(("perl" ,perl))) diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index ceb70dfee7..98f31f6bca 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -354,21 +355,22 @@ Makefile, simplifying the entire process for the developer.") ;; XXX: There are test failures on mips64el-linux starting from 2.4.4: ;; <http://hydra.gnu.org/build/181662>. - #:tests? ,(not (string-prefix? "mips64" - (or (%current-target-system) + ;; Also, do not run tests when cross compiling + #:tests? ,(not (or (%current-target-system) + (string-prefix? "mips64" (%current-system)))) #:phases (modify-phases %standard-phases (add-before 'check 'pre-check - (lambda* (#:key inputs #:allow-other-keys) + (lambda* (#:key inputs native-inputs #:allow-other-keys) ;; Run the test suite in parallel, if possible. (setenv "TESTSUITEFLAGS" (string-append "-j" (number->string (parallel-job-count)))) ;; Patch references to /bin/sh. - (let ((bash (assoc-ref inputs "bash"))) + (let ((bash (assoc-ref (or native-inputs inputs) "bash"))) (substitute* "tests/testsuite" (("/bin/sh") (string-append bash "/bin/sh"))) diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm index e84fed6a71..f82a421e08 100644 --- a/gnu/packages/avahi.scm +++ b/gnu/packages/avahi.scm @@ -35,7 +35,6 @@ (package (name "avahi") (version "0.7") - (replacement avahi/fixed) (home-page "http://avahi.org") (source (origin (method url-fetch) @@ -44,7 +43,10 @@ (sha256 (base32 "0128n7jlshw4bpx0vg8lwj8qwdisjxi7mvniwfafgnkzzrfrpaap")) - (patches (search-patches "avahi-localstatedir.patch")))) + (patches (search-patches "avahi-localstatedir.patch" + "avahi-CVE-2018-1000845.patch")))) + ;; Hide a duplicate of the CVE fixed above. + (properties `((lint-hidden-cve . ("CVE-2017-6519")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-distro=none" @@ -75,17 +77,6 @@ network. It is an implementation of the mDNS (for \"Multicast DNS\") and DNS-SD (for \"DNS-Based Service Discovery\") protocols.") (license lgpl2.1+))) -(define avahi/fixed - (package - (inherit avahi) - (source (origin - (inherit (package-source avahi)) - (patches - (append (search-patches "avahi-CVE-2018-1000845.patch") - (origin-patches (package-source avahi)))))) - ;; Hide a duplicate of the CVE fixed above. - (properties `((lint-hidden-cve . ("CVE-2017-6519")))))) - (define-public nss-mdns (package (name "nss-mdns") diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 7a95ae77e0..e663cdc4cb 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -230,24 +231,34 @@ backups (called chunks) to allow easy burning to CD/DVD.") (("/bin/pwd") (which "pwd"))) #t)) (replace 'check - (lambda _ - ;; XXX: The test_owner_parse, test_read_disk, and - ;; test_write_disk_lookup tests expect user 'root' to exist, but - ;; the chroot's /etc/passwd doesn't have it. Turn off those tests. - ;; - ;; XXX: Adjust test that fails with zstd 1.4.1 because the default - ;; options compresses two bytes better than this test expects. - ;; https://github.com/libarchive/libarchive/issues/1226 - (substitute* "libarchive/test/test_write_filter_zstd.c" - (("compression-level\", \"6\"") - "compression-level\", \"7\"")) - - ;; The tests allow one to disable tests matching a globbing pattern. - (invoke "make" "libarchive_test" "bsdcpio_test" "bsdtar_test") - ;; XXX: This glob disables too much. - (invoke "./libarchive_test" "^test_*_disk*") - (invoke "./bsdcpio_test" "^test_owner_parse") - (invoke "./bsdtar_test"))) + (lambda* (#:key (tests? #t) #:allow-other-keys) + (if tests? + ;; XXX: The test_owner_parse, test_read_disk, and + ;; test_write_disk_lookup tests expect user 'root' to + ;; exist, but the chroot's /etc/passwd doesn't have + ;; it. Turn off those tests. + ;; + ;; XXX: Adjust test that fails with zstd 1.4.1 + ;; because the default options compresses two bytes + ;; better than this test expects. + ;; https://github.com/libarchive/libarchive/issues/1226 + (begin + (substitute* "libarchive/test/test_write_filter_zstd.c" + (("compression-level\", \"6\"") + "compression-level\", \"7\"")) + + ;; The tests allow one to disable tests matching a globbing pattern. + (invoke "make" + "libarchive_test" + "bsdcpio_test" + "bsdtar_test") + + ;; XXX: This glob disables too much. + (invoke "./libarchive_test" "^test_*_disk*") + (invoke "./bsdcpio_test" "^test_owner_parse") + (invoke "./bsdtar_test")) + ;; Tests may be disabled if cross-compiling. + (format #t "Test suite not run.~%")))) (add-after 'install 'add--L-in-libarchive-pc (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index e8150708c0..a336f5e6d0 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -253,40 +253,28 @@ interactive means to merge two files.") (define-public findutils (package (name "findutils") - (version "4.6.0") + (version "4.7.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/findutils/findutils-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "178nn4dl7wbcw499czikirnkniwnx36argdnqgz4ik9i6zvwkm6y")) - (patches (search-patches - "findutils-gnulib-libio.patch" - "findutils-localstatedir.patch" - "findutils-makedev.patch" - "findutils-test-xargs.patch")) - (modules '((guix build utils))) - (snippet - '(begin - ;; The gnulib test-lock test is prone to writer starvation - ;; with our glibc@2.25, which prefers readers, so disable it. - ;; The gnulib commit b20e8afb0b2 should fix this once - ;; incorporated here. - (substitute* "tests/Makefile.in" - (("test-lock\\$\\(EXEEXT\\) ") "")) - #t)))) + "16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5")) + (patches (search-patches "findutils-localstatedir.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list ;; Tell 'updatedb' to write to /var. - "--localstatedir=/var" - - ;; Work around cross-compilation failure. See - ;; <http://savannah.gnu.org/bugs/?27299#comment1>. - ,@(if (%current-target-system) - '("gl_cv_func_wcwidth_works=yes") - '())))) + "--localstatedir=/var") + #:phases (modify-phases %standard-phases + (add-before 'check 'adjust-test-shebangs + (lambda _ + (substitute* '("tests/xargs/verbose-quote.sh" + "tests/find/exec-plus-last-file.sh") + (("#!/bin/sh") + (string-append "#!" (which "sh")))) + #t))))) (synopsis "Operating on files matching given criteria") (description "Findutils supplies the basic file directory searching utilities of the @@ -414,14 +402,14 @@ change. GNU make offers many powerful extensions over the standard utility.") (define-public binutils (package (name "binutils") - (version "2.32") + (version "2.33.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/binutils/binutils-" version ".tar.bz2")) (sha256 (base32 - "0b8767nyal1bc4cyzg5h9iis8kpkln1i3wkamig75cifj1fb2f6y")) + "1cmd0riv37bqy9mwbg6n3523qgr8b3bbm5kwj19sjrasl4yq9d0c")) (patches (search-patches "binutils-loongson-workaround.patch")))) (build-system gnu-build-system) @@ -567,13 +555,13 @@ the store.") ;; version 2.28, GNU/Hurd used a different glibc branch. (package (name "glibc") - (version "2.29") + (version "2.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) (sha256 (base32 - "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk")) + "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72")) (snippet ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc.so @@ -585,9 +573,7 @@ the store.") #t)) (modules '((guix build utils))) (patches (search-patches "glibc-ldd-x86_64.patch" - "glibc-CVE-2019-7309.patch" - "glibc-CVE-2019-9169.patch" - "glibc-2.29-git-updates.patch" + "glibc-CVE-2019-19126.patch" "glibc-hidden-visibility-ldconfig.patch" "glibc-versioned-locpath.patch" "glibc-allow-kernel-2.6.32.patch" @@ -819,6 +805,26 @@ with the Linux kernel.") ;; Below are old libc versions, which we use mostly to build locale data in ;; the old format (which the new libc cannot cope with.) +(define-public glibc-2.29 + (package + (inherit glibc) + (version "2.29") + (source (origin + (inherit (package-source glibc)) + (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) + (sha256 + (base32 + "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk")) + (patches (search-patches "glibc-ldd-x86_64.patch" + "glibc-CVE-2019-7309.patch" + "glibc-CVE-2019-9169.patch" + "glibc-2.29-git-updates.patch" + "glibc-hidden-visibility-ldconfig.patch" + "glibc-versioned-locpath.patch" + "glibc-allow-kernel-2.6.32.patch" + "glibc-reinstate-prlimit64-fallback.patch" + "glibc-supported-locales.patch")))))) + (define-public glibc-2.28 (package (inherit glibc) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 3af13a612a..88005f4618 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -69,7 +69,11 @@ (4 "021gqqvgydixkrmqss64b6srfdlkvnx88lyfzpxfrn5d6bc7li0l") (5 "0xl2kyzm84nlyklrqzkn73ixabhzfhn9x91lzcmis89cppclvxav") (6 "0844749ixk1z60437nkznzms1f0nzh9an62kj7sny6r0zyk2k1fn") - (7 "16xg37gp1b8zlj5969w8mcrparwqlcbj9695vn3qhgb7wdz1xd0p"))) + (7 "16xg37gp1b8zlj5969w8mcrparwqlcbj9695vn3qhgb7wdz1xd0p") + (8 "1qyp19krjh8zxvb0jgwmyjz40djslwcf4xi7kc1ab0iaca44bipf") + (9 "00yrjjqd95s81b21qq3ba1y7h879q8jaajlkjggc6grhcwbs4g7d") + (10 "04ca5bjv456v538mkspzvn4xb2zdphh31r4fpvfm9p5my0jw7yyn") + (11 "1sklyixvsv8993kxzs0jigacpdchjrq7jv5xpdx7kbqyp4rf6k9c"))) (define (download-patches store count) "Download COUNT Bash patches into store. Return a list of @@ -116,7 +120,8 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." (base32 "0kgvfwqdcd90waczf4gx39xnrxzijhjrzyzv7s8v4w31qqm0za5l")) (patch-flags '("-p0")) - (patches %patch-series-5.0))) + (patches (cons (search-patch "bash-linux-pgrp-pipe.patch") + %patch-series-5.0)))) (version (string-append version "." (number->string (length %patch-series-5.0)))) (build-system gnu-build-system) diff --git a/gnu/packages/bison.scm b/gnu/packages/bison.scm index 12f19b785e..eae8673edc 100644 --- a/gnu/packages/bison.scm +++ b/gnu/packages/bison.scm @@ -31,7 +31,7 @@ (define-public bison (package (name "bison") - (version "3.4.1") + (version "3.5") (source (origin (method url-fetch) @@ -39,7 +39,7 @@ version ".tar.xz")) (sha256 (base32 - "03c2pmq3bs0drdislnz6gm1rwz3n4pb2rz9navyxydppxg2rl597")))) + "0hd6lgkxb9i46alcwn87jygs53q4vkq7k0jzb84ikbdln4is1r2m")))) (build-system gnu-build-system) (arguments '(;; Building in parallel on many-core systems may cause an error such as diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index 0a2a5c5c01..3665dccb56 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org> ;;; ;;; This file is part of GNU Guix. @@ -55,6 +56,8 @@ (string-append "https://dl.bintray.com/boostorg/release/" version "/source/boost_" version-with-underscores ".tar.bz2")))) + (patches + (search-patches "boost-dumpversion.patch")) (sha256 (base32 "0y47nc7w0arwgj4x1phadxbvl7wyfcgknbz5kv8lzpl98wsyh2j3")))) @@ -63,7 +66,9 @@ ("zlib" ,zlib))) (native-inputs `(("perl" ,perl) - ("python" ,python-2) + ,@(if (%current-target-system) + '() + `(("python" ,python-2))) ("tcsh" ,tcsh))) (arguments `(#:tests? #f @@ -77,7 +82,24 @@ ;; Set the RUNPATH to $libdir so that the libs find each other. (string-append "linkflags=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib")) + (assoc-ref %outputs "out") "/lib") + ,@(if (%current-target-system) + `("--user-config=user-config.jam" + ;; Python is not supported when cross-compiling. + "--without-python" + "binary-format=elf" + "target-os=linux" + ,@(cond + ((string-prefix? "arm" (%current-target-system)) + '("abi=aapcs" + "address-model=32" + "architecture=arm")) + ((string-prefix? "aarch64" (%current-target-system)) + '("abi=aapcs" + "address-model=64" + "architecture=arm")) + (else '()))) + '())) #:phases (modify-phases %standard-phases (delete 'bootstrap) @@ -95,6 +117,14 @@ (setenv "SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh")) + ,@(if (%current-target-system) + `((call-with-output-file "user-config.jam" + (lambda (port) + (format port + "using gcc : cross : ~a-c++ ;" + ,(%current-target-system))))) + '()) + (invoke "./bootstrap.sh" (string-append "--prefix=" out) ;; Auto-detection looks for ICU only in traditional @@ -109,17 +139,20 @@ (replace 'install (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "./b2" "install" make-flags))) - (add-after 'install 'provide-libboost_python - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; Boost can build support for both Python 2 and Python 3 since - ;; version 1.67.0, and suffixes each library with the Python - ;; version. Many consumers only check for libboost_python - ;; however, so we provide it here as suggested in - ;; <https://github.com/boostorg/python/issues/203>. - (with-directory-excursion (string-append out "/lib") - (symlink "libboost_python27.so" "libboost_python.so")) - #t)))))) + ,@(if (%current-target-system) + '() + '((add-after 'install 'provide-libboost_python + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Boost can build support for both Python 2 and + ;; Python 3 since version 1.67.0, and suffixes each + ;; library with the Python version. Many consumers + ;; only check for libboost_python however, so we + ;; provide it here as suggested in + ;; <https://github.com/boostorg/python/issues/203>. + (with-directory-excursion (string-append out "/lib") + (symlink "libboost_python27.so" "libboost_python.so")) + #t)))))))) (home-page "https://www.boost.org") (synopsis "Peer-reviewed portable C++ source libraries") diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 342f5f59cd..cffe59f309 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -168,7 +168,7 @@ files and generates build instructions for the Ninja build system.") (define-public meson (package (name "meson") - (version "0.50.1") + (version "0.52.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -176,7 +176,7 @@ files and generates build instructions for the Ninja build system.") version ".tar.gz")) (sha256 (base32 - "1k2fw5qk4mqjcb4j5dhp8xfn0caqphb11yh8zkw7v9w01kb5d3zn")))) + "0df0iw94cx6jiqd0liw8ax1by3dqaw6fdqrxgr9sal4rwir789qc")))) (build-system python-build-system) (arguments `(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index e2c244c1a7..806a7396e9 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,7 +51,7 @@ (define-public cmake-minimal (package (name "cmake-minimal") - (version "3.15.1") + (version "3.16.0") (source (origin (method url-fetch) (uri (string-append "https://www.cmake.org/files/v" @@ -58,7 +59,7 @@ "/cmake-" version ".tar.gz")) (sha256 (base32 - "1xyprly3sf4wi0n1x79k4n22yxm6pb7fv70gqr9lvc7qv14cbphq")) + "0pwcgvk75577rdizpzjrk2n43a6l7rvfhmhn7sd6xarwqrb6b9bd")) (modules '((guix build utils))) (snippet '(begin @@ -74,7 +75,8 @@ "cmliblzma" ;; "cmlibuv" "cmzlib")) - #t))))) + #t))) + (patches (search-patches "cmake-curl-certificates.patch")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -99,6 +101,8 @@ (let ((skipped-tests (list "BundleUtilities" ; This test fails on Guix. "CTestTestSubdir" ; This test fails to build 2 of the 3 tests. + ;; This test requires 'ldconfig' which is not available in Guix. + "RunCMake.install" ;; These tests requires network access. "CTestCoverageCollectGCOV" "CTestTestUpload"))) @@ -123,7 +127,7 @@ ;; files. (substitute* '("Modules/CompilerId/Xcode-3.pbxproj.in" - "Modules/CPack.RuntimeScript.in" + "Modules/Internal/CPack/CPack.RuntimeScript.in" "Source/cmGlobalXCodeGenerator.cxx" "Source/cmLocalUnixMakefileGenerator3.cxx" "Source/cmExecProgramCommand.cxx" @@ -145,16 +149,17 @@ (replace 'configure (lambda* (#:key (configure-flags '()) #:allow-other-keys) (apply invoke "./configure" configure-flags)))))) - (inputs + (native-inputs `(("bzip2" ,bzip2) ("curl" ,curl) ("expat" ,expat) ("file" ,file) ("libarchive" ,libarchive) ("libuv" ,libuv) - ("ncurses" ,ncurses) ; required for ccmake ("rhash" ,rhash) ("zlib" ,zlib))) + (inputs + `(("ncurses" ,ncurses))) ; required for ccmake (native-search-paths (list (search-path-specification (variable "CMAKE_PREFIX_PATH") @@ -207,33 +212,13 @@ and workspaces that can be used in the compiler environment of your choice.") (outputs '("out" "doc")) (properties (alist-delete 'hidden? (package-properties cmake-minimal))))) -(define-public cmake/fixed - ;; This is a variant of CMake that fixes X.509 certificate lookup: - ;; <https://issues.guix.gnu.org/issue/37371>. - (package - (inherit cmake) - (version (string-append (package-version cmake) "-1")) - (source (origin - (inherit (package-source cmake)) - (patches - (append (search-patches "cmake-curl-certificates.patch") - (origin-patches (package-source cmake)))))))) - -(define-public cmake-3.15.5 - ;; CMake 3.15.5 fixes some issues, but declare another version to - ;; avoid triggering the rebuild of all CMake-based packages. - ;; See <https://issues.guix.gnu.org/issue/38060>. +(define-public cmake-minimal-cross (package - (inherit cmake) - (version "3.15.5") - (source (origin - (inherit (package-source cmake)) - (uri (string-append "https://www.cmake.org/files/v" - (version-major+minor version) - "/cmake-" version ".tar.gz")) - (sha256 - (base32 - "1d5y8d92axcc6rfqlsxamayfs3fc1vdby91hn5mx1kn02ppprpgv")))))) + (inherit cmake-minimal) + (name "cmake-minimal-cross") + (native-search-paths '()) + (search-paths + (package-native-search-paths cmake-minimal)))) (define-public emacs-cmake-mode (package diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 021181bd8f..35d81d95dc 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -30,6 +30,7 @@ (define-module (gnu packages code) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (guix download) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) @@ -659,9 +660,24 @@ the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.") ;; overrides this to be in PREFIX/doc. Fix this. (substitute* "doc/Makefile.in" (("^docdir = .*$") "docdir = @docdir@\n")) + #t)) + (add-after 'unpack 'fix-configure + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.sub and config.guess: + (with-directory-excursion "config" + (for-each (lambda (file) + (install-file + (string-append (assoc-ref + (or native-inputs inputs) "automake") + "/share/automake-" + ,(version-major+minor + (package-version automake)) + "/" file) ".")) + '("config.sub" "config.guess"))) #t))))) (native-inputs - `(("texinfo" ,texinfo))) + `(("texinfo" ,texinfo) + ("automake" ,automake))) ; For up to date 'config.guess' and 'config.sub'. (synopsis "Code reformatter") (description "Indent is a program that makes source code easier to read by diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 14ecf246d4..973e57c154 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1452,7 +1452,15 @@ exec " gcc "/bin/" program (arguments `(#:implicit-inputs? #f #:guile ,%bootstrap-guile - ,@(package-arguments findutils))))) + + ;; The build system assumes we have done a mistake when time_t is 32-bit + ;; on a 64-bit system. Ignore that for our bootstrap toolchain. + ,@(if (target-64bit?) + (substitute-keyword-arguments (package-arguments findutils) + ((#:configure-flags flags ''()) + `(cons "TIME_T_32_BIT_OK=yes" + ,flags))) + (package-arguments findutils)))))) (define file-boot0 (package @@ -1718,20 +1726,13 @@ exec " gcc "/bin/" program #:implicit-inputs? #f ,@(package-arguments m4))))) -(define m4-boot0* - (package - ;; TODO: On the next rebuild cycle, use M4-BOOT0 as is. - (inherit m4-boot0) - (name "m4"))) - (define bison-boot0 ;; This Bison is needed to build MiG so we need it early in the process. ;; Recent versions of Linux-Libre headers also depend on this. (package (inherit bison) - ;; TODO: On the next build cycle, do: - ;;(name "bison-boot0") - (propagated-inputs `(("m4" ,m4-boot0*))) + (name "bison-boot0") + (propagated-inputs `(("m4" ,m4-boot0))) (native-inputs `(("perl" ,perl-boot0))) (inputs (%boot0-inputs)) ;remove Flex... (arguments @@ -1739,17 +1740,6 @@ exec " gcc "/bin/" program #:implicit-inputs? #f #:guile ,%bootstrap-guile - ;; XXX: These flags should be unconditional, but for now - ;; we just add them on x86 to avoid a full rebuild. - ;; TODO: On the next core-updates, use - ;; 'substitute-keyword-arguments' to inherit them from - ;; BISON. - ,@(if (member (%current-system) - '("x86_64-linux" "i686-linux")) - '(#:parallel-build? #f - #:parallel-tests? #f) - '()) - ;; Zero timestamps in liby.a; this must be done ;; explicitly here because the bootstrap Binutils don't ;; do that (default is "cru".) @@ -1760,19 +1750,16 @@ exec " gcc "/bin/" program "RANLIB=ranlib") (_ "RANLIB=ranlib -D")) - "V=1"))))) + "V=1") + + ,@(package-arguments bison))))) (define flex-boot0 ;; This Flex is needed to build MiG as well as Linux-Libre headers. (package (inherit flex) (native-inputs `(("bison" ,bison-boot0))) - (propagated-inputs - ;; XXX: Here we use an 'm4-boot0' package that's not eq? so that it - ;; appears twice in '%build-inputs', like when we were using - ;; 'package-with-explicit-inputs'. - ;; TODO: Remove this hack on the next rebuild cycle. - `(("m4" ,(package (inherit m4-boot0*))))) + (propagated-inputs `(("m4" ,m4-boot0))) (inputs (%boot0-inputs)) (arguments `(#:implicit-inputs? #f @@ -2400,9 +2387,6 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" (define gnu-make-final ;; The final GNU Make, which uses the final Guile. - ;; FIXME: This is a mistake: we shouldn't be propagating GUILE-FINAL to - ;; PKG-CONFIG. - ;; TODO: Fix that on the next rebuild cycle. (let ((pkg-config (package (inherit %pkg-config) ;the native pkg-config (inputs `(("guile" ,guile-final) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index cf23e88547..888401125b 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1371,18 +1371,18 @@ or junctions, and always follows hard links.") (define-public zstd (package (name "zstd") - (version "1.4.2") + (version "1.4.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/facebook/zstd/releases/download/" "v" version "/zstd-" version ".tar.gz")) (sha256 - (base32 "1ja3nrjynmiwwdjrf6crraizkbagp7y414bqqq2ady91nn1hjwqj")))) + (base32 "05ckxap00qvc0j51d3ci38150cxsw82w7s9zgd5fgzspnzmp1vsr")))) (build-system gnu-build-system) - (outputs '("out" ;1.1MiB executables and documentation - "lib" ;1MiB shared library and headers - "static")) ;1MiB static library + (outputs '("out" ;1.2MiB executables and documentation + "lib" ;1.2MiB shared library and headers + "static")) ;1.2MiB static library (arguments `(#:phases (modify-phases %standard-phases @@ -1402,12 +1402,10 @@ or junctions, and always follows hard links.") (delete-file ar)) (find-files shared-libs "\\.a$")) - ;; While here, remove prefix= from the pkg-config file because it - ;; is unused, and because it contains a needless reference to $out. - ;; XXX: It would be great if #:disallow-references worked between - ;; outputs. + ;; Make sure the pkg-config file refers to the right output. (substitute* (string-append shared-libs "/pkgconfig/libzstd.pc") - (("^prefix=.*") "")) + (("^prefix=.*") + (string-append "prefix=" lib "\n"))) #t)))) #:make-flags diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index aa5d24c401..a05c8e2c79 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -50,15 +50,14 @@ (define-public curl (package (name "curl") - (version "7.65.3") - (replacement curl-7.66.0) + (version "7.67.0") (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" version ".tar.xz")) (sha256 (base32 - "1sjz4fq7jg96mpmpqq82nd61njna6jp3c4m9yrbx2j1rh5a8ingj")))) + "0v2k1v28ams5fa9gkybmnpnlkfqa2im5diywa8wqqcvr0crfglpm")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.2 MiB of man3 pages @@ -143,18 +142,6 @@ tunneling, and so on.") "See COPYING in the distribution.")) (home-page "https://curl.haxx.se/"))) -(define curl-7.66.0 - (package - (inherit curl) - (version "7.66.0") - (source (origin - (method url-fetch) - (uri (string-append "https://curl.haxx.se/download/curl-" - version ".tar.xz")) - (sha256 - (base32 - "1hcqxpibhknhjy56wcxz5vd6m9ggx3ykwp3wp5wx05ih36481d6v")))))) - (define-public kurly (package (name "kurly") diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm index f84136e631..3e65a1faf6 100644 --- a/gnu/packages/cyrus-sasl.scm +++ b/gnu/packages/cyrus-sasl.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,7 @@ (define-module (gnu packages cyrus-sasl) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages dbm) #:use-module (gnu packages kerberos) #:use-module (gnu packages tls) @@ -41,8 +43,13 @@ "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-" version ".tar.gz"))) (sha256 (base32 - "1m85zcpgfdhm43cavpdkhb1s2zq1b31472hq1w1gs3xh94anp1i6")))) + "1m85zcpgfdhm43cavpdkhb1s2zq1b31472hq1w1gs3xh94anp1i6")) + (patches (search-patches "cyrus-sasl-ac-try-run-fix.patch")))) (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) (inputs `(("gdbm" ,gdbm) ("openssl" ,openssl))) (propagated-inputs @@ -57,7 +64,13 @@ ;; 'plugin_common.c'. When building the shared libraries there, libtool ;; ends up doing "ln -s plugin_common.lo plugin_common.o", which can ;; fail with EEXIST when building things in parallel. - #:parallel-build? #f)) + #:parallel-build? #f + + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + (invoke "autoreconf" "-vif")))))) (synopsis "Simple Authentication Security Layer implementation") (description "SASL (Simple Authentication Security Layer) is an Internet diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm index 5191c475c2..ea812c9715 100644 --- a/gnu/packages/dbm.scm +++ b/gnu/packages/dbm.scm @@ -55,7 +55,7 @@ #:phases (modify-phases %standard-phases (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key target outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (doc (assoc-ref outputs "doc"))) ;; '--docdir' is not honored, so we need to patch. @@ -74,6 +74,10 @@ '("--build=aarch64-unknown-linux-gnu") '()) + ,@(if (%current-target-system) ; cross building + '((string-append "--host=" target)) + '()) + ;; Remove 7 MiB of .a files. "--disable-static" @@ -134,7 +138,8 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") (sha256 (base32 "1p4ibds6z3ccy65lkmd6lm7js0kwifvl53r0fd759fjxgr917rl6")))) - (arguments `(#:configure-flags '("--enable-libgdbm-compat"))) + (arguments `(#:configure-flags '("--enable-libgdbm-compat" + "--disable-static"))) (build-system gnu-build-system) (home-page "http://www.gnu.org.ua/software/gdbm") (synopsis diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 19c42b00eb..c512a9803b 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,6 +32,7 @@ #:use-module (guix build-system cmake) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages python) #:use-module (gnu packages bison) @@ -123,7 +125,7 @@ markup) can be customized and extended by the user.") (define-public doxygen (package (name "doxygen") - (version "1.8.15") + (version "1.8.16") (home-page "http://www.doxygen.nl/") (source (origin (method url-fetch) @@ -134,7 +136,7 @@ markup) can be customized and extended by the user.") ".src.tar.gz"))) (sha256 (base32 - "0p94b4yb6bk2dxzs5kyl82xxgq2qakgbx5yy3ssbbadncb20x75x")) + "10iwv8bcz5b5cd85gg8pgn0bmyg04n9hs36xn7ggjjnvynv1z67z")) (patches (search-patches "doxygen-test.patch")))) (build-system cmake-build-system) (native-inputs @@ -145,8 +147,23 @@ markup) can be customized and extended by the user.") (inputs `(("bash" ,bash-minimal))) (arguments - `(#:test-target "tests" + ;; Force cmake to use iconv header from cross-libc instead of the one + ;; from native libc. + `(,@(if (%current-target-system) + '(#:configure-flags + (list (string-append "-DICONV_INCLUDE_DIR=" + (assoc-ref %build-inputs "cross-libc") + "/include"))) + '()) + #:test-target "tests" #:phases (modify-phases %standard-phases + (add-after 'unpack 'remove-git-requirement + (lambda _ + ;; TODO: Remove this for > 1.8.16. + (substitute* "cmake/git_watcher.cmake" + (("Git QUIET REQUIRED") + "Git QUIET")) + #t)) (add-before 'configure 'patch-sh (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/portable.cpp" diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index be7bec8df6..c591a608eb 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -9521,15 +9521,12 @@ It should enable you to implement low-level X11 applications.") ;; Add a .desktop file to xsessions (mkdir-p xsessions) (mkdir-p bin) - (with-output-to-file - (string-append xsessions "/exwm.desktop") - (lambda _ - (format #t "[Desktop Entry]~@ - Name=~a~@ - Comment=~a~@ - Exec=~a~@ - TryExec=~:*~a~@ - Type=Application~%" ,name ,synopsis exwm-executable))) + (make-desktop-entry-file + (string-append xsessions "/exwm.desktop") + #:name ,name + #:comment ,synopsis + #:exec exwm-executable + #:try-exec exwm-executable) ;; Add a shell wrapper to bin (with-output-to-file exwm-executable (lambda _ diff --git a/gnu/packages/file.scm b/gnu/packages/file.scm index 9ba51d1b74..cf770297c4 100644 --- a/gnu/packages/file.scm +++ b/gnu/packages/file.scm @@ -30,15 +30,15 @@ (define-public file (package (name "file") - (version "5.33") + (version "5.37") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.astron.com/pub/file/file-" version ".tar.gz")) - (patches (search-patches "file-CVE-2018-10360.patch")) + (patches (search-patches "file-CVE-2019-18218.patch")) (sha256 (base32 - "1iipnwjkag7q04zjkaqic41r9nlw0ml6mhqian6qkkbisb1whlhw")))) + "0zz0p9bqnswfx0c16j8k62ivjq1m16x10xqv4hy9lcyxyxkkkhg9")))) (build-system gnu-build-system) ;; When cross-compiling, this package depends upon a native install of diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 12b40389d0..c4bcf19d17 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,7 +60,7 @@ '(#:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) + (lambda* (#:key inputs native-inputs #:allow-other-keys) (chdir "target_firmware") ;; 'configure' is a simple script that runs 'cmake' with @@ -67,7 +68,7 @@ (substitute* "configure" (("^TOOLCHAIN=.*$") (string-append "TOOLCHAIN=" - (assoc-ref inputs "cross-gcc") + (assoc-ref (or native-inputs inputs) "cross-gcc") "\n"))) #t)) (replace 'install diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index aba6f07537..97d4cae872 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -525,16 +525,18 @@ using the above tables.") (define-public libspiro (package (name "libspiro") - (version "0.5.20150702") + (version "20190731") (source (origin (method url-fetch) (uri (string-append "https://github.com/fontforge/libspiro/releases" - "/download/" version "/libspiro-dist-" version ".tar.gz")) + "/download/" version "/libspiro-" version ".tar.gz")) (sha256 (base32 - "153ckwj6h3wwlsgcppzqj8cymv1927hi8ar8fzpchq5q89cj2kai")))) + "0m63x97b7aciviijprvy85gm03p2jsgslxn323zl9zn7qz6d3ir4")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (synopsis "Clothoid to bezier conversion library") (description "Raph Levien's Spiro package as a library. A mechanism for drawing @@ -762,7 +764,7 @@ maintain the Noto Fonts project.") ("desktop-file-utils" ,desktop-file-utils))) (inputs `(("json-glib" ,json-glib) - ("sqlite-with-column-metadata" ,sqlite-with-column-metadata) + ("sqlite" ,sqlite) ("fonconfig" ,fontconfig) ("freetype" ,freetype) ("gtk+" ,gtk+))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index a26cbea542..2096cdb49f 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -555,7 +555,7 @@ Python.") (define-public wayland (package (name "wayland") - (version "1.17.0") + (version "1.18.0") (source (origin (method url-fetch) (uri (string-append "https://wayland.freedesktop.org/releases/" diff --git a/gnu/packages/fribidi.scm b/gnu/packages/fribidi.scm index 61aa6fd726..b6cabdc4b0 100644 --- a/gnu/packages/fribidi.scm +++ b/gnu/packages/fribidi.scm @@ -27,9 +27,8 @@ (define-public fribidi (package - (replacement fribidi/fixed) (name "fribidi") - (version "1.0.5") + (version "1.0.7") (source (origin (method url-fetch) @@ -38,7 +37,8 @@ "/download/v" version "/fribidi-" version ".tar.bz2")) (sha256 - (base32 "1kp4b1hpx2ky20ixgy2xhj5iygfl7ps5k9kglh1z5i7mhykg4r3a")))) + (base32 "0pckda4fcn0aw32lpycwdp25r2m7vca8zspq815ppi9gkwgg5das")) + (patches (search-patches "fribidi-CVE-2019-18397.patch")))) (build-system gnu-build-system) (synopsis "Implementation of the Unicode bidirectional algorithm") (description @@ -47,10 +47,3 @@ Algorithm. This algorithm is used to properly display text in left-to-right or right-to-left ordering as necessary.") (home-page "https://github.com/fribidi/fribidi") (license lgpl2.1+))) - -(define fribidi/fixed - (package - (inherit fribidi) - (source - (origin (inherit (package-source fribidi)) - (patches (search-patches "fribidi-CVE-2019-18397.patch")))))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 80ea82c123..6e6490412d 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -5283,19 +5283,13 @@ Crowther & Woods, its original authors, in 1995. It has been known as (copy-recursively "game" (string-append data "/game")) ;; launcher (mkdir-p applications) - (with-output-to-file (string-append applications "/" - ,name ".desktop") - (lambda () - (display - (string-append - "[Desktop Entry] -Name=ToME4 -Comment=" ,synopsis "\n" -"Exec=" ,name "\n" -"Icon=" icon "\n" -"Terminal=false -Type=Application -Categories=Game;RolePlaying;\n"))))) + (make-desktop-entry-file + (string-append applications "/" ,name ".desktop") + #:name "ToME4" + #:comment ,synopsis + #:exec ,name + #:icon icon + #:categories '("Game" "RolePlaying"))) #t))))) (home-page "https://te4.org") (description "Tales of Maj’Eyal (ToME) RPG, featuring tactical turn-based @@ -7580,22 +7574,18 @@ on items and player adaptability for character progression.") ;; game, so we borrow SCUMMVM's. (let ((apps (string-append out "/share/applications"))) (mkdir-p apps) - (with-output-to-file (string-append apps "/drascula.desktop") - (lambda _ - (format #t - "[Desktop Entry]~@ - Name=Drascula: The Vampire Strikes Back~@ - GenericName=Drascula~@ - Exec=~a/bin/drascula~@ - Icon=~a/share/icons/hicolor/scalable/apps/scummvm.svg~@ - Categories=AdventureGame;Game;RolePlaying;~@ - Keywords=game;adventure;roleplaying;2D,fantasy;~@ - Comment=Classic 2D point and click adventure game~@ - Comment[de]=klassisches 2D-Abenteuerspiel in Zeigen-und-Klicken-Manier~@ - Comment[fr]=Jeux classique d'aventure pointer-et-cliquer en 2D~@ - Comment[it]=Gioco classico di avventura punta e clicca 2D~@ - Type=Application~%" - out scummvm)))) + (make-desktop-entry-file + (string-append apps "/drascula.desktop") + #:name "Drascula: The Vampire Strikes Back" + #:generic-name "Drascula" + #:exec (string-append out "/bin/drascula") + #:icon (string-append scummvm "/share/icons/hicolor/scalable/apps/scummvm.svg") + #:categories '("AdventureGame" "Game" "RolePlaying") + #:keywords '("game" "adventure" "roleplaying" "2D" "fantasy") + #:comment '((#f "Classic 2D point and click adventure game") + ("de" "Klassisches 2D-Abenteuerspiel in Zeigen-und-Klicken-Manier") + ("fr" "Jeu classique d'aventure pointer-et-cliquer en 2D") + ("it" "Gioco classico di avventura punta e clicca 2D")))) #t)))) (native-inputs `(("bash" ,bash) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 29b9d34569..40cc9ed631 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -491,14 +491,14 @@ Go. It also includes runtime support libraries for these languages.") (define-public gcc-7 (package (inherit gcc-6) - (version "7.4.0") + (version "7.5.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gcc/gcc-" version "/gcc-" version ".tar.xz")) (sha256 (base32 - "0lgy170b0pp60j9cczqkmaqyjjb584vfamj4c30swd7k0j6y5pgd")) + "0qg6kqc5l72hpnj4vr6l0p69qav0rh4anlkk3y55540zy3klc6dq")) (patches (search-patches "gcc-strmov-store-file-names.patch" "gcc-5.0-libvtv-runpath.patch")))) (description diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 3b74a96966..72a38fddf5 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -84,6 +85,24 @@ Consortium standard (ICC), approved as ISO 15076-1.") (sha256 (base32 "0zhcx67afb6b5r936w5jmaydj3ks8zh83n9rm5sv3m3k8q8jib1q")))) (build-system gnu-build-system) + (native-inputs + `(("automake" ,automake))) ; For up to date 'config.guess' and 'config.sub'. + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-configure + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.sub and config.guess: + (for-each (lambda (file) + (install-file + (string-append (assoc-ref + (or native-inputs inputs) "automake") + "/share/automake-" + ,(version-major+minor + (package-version automake)) + "/" file) ".")) + '("config.sub" "config.guess")) + #t))))) (synopsis "Library for handling paper sizes") (description "The paper library and accompanying files are intended to provide a simple @@ -137,13 +156,7 @@ printing, and psresize, for adjusting page sizes.") (define-public ghostscript (package (name "ghostscript") - (version "9.27") - - ;; The problems addressed by GHOSTSCRIPT/FIXED are not security-related, - ;; but they have a significant impact on usability, hence this graft. - ;; TODO: Ungraft on next update cycle. - (replacement ghostscript/fixed) - + (version "9.50") (source (origin (method url-fetch) @@ -153,7 +166,7 @@ printing, and psresize, for adjusting page sizes.") "/ghostscript-" version ".tar.xz")) (sha256 (base32 - "06dnj0mxyaryfbwlsjwaqf847w91w2h8f108kxxcc41nrnx1y3zw")) + "1m770dwc82afdgzgq2kar3120r1lbybm3mssdm79f8kggf0v16yv")) (patches (search-patches "ghostscript-no-header-creationdate.patch" "ghostscript-no-header-id.patch" "ghostscript-no-header-uuid.patch")) @@ -186,6 +199,10 @@ printing, and psresize, for adjusting page sizes.") (string-append "ZLIBDIR=" (assoc-ref %build-inputs "zlib") "/include") "--enable-dynamic" + "--disable-compile-inits" + (string-append "--with-fontpath=" + (assoc-ref %build-inputs "gs-fonts") + "/share/fonts/type1/ghostscript") ,@(if (%current-target-system) '(;; Specify the native compiler, which is used to build 'echogs' @@ -249,6 +266,7 @@ printing, and psresize, for adjusting page sizes.") #t)))))) (native-inputs `(("perl" ,perl) + ("pkg-config" ,pkg-config) ;needed for freetype ("python" ,python-wrapper) ("tcl" ,tcl) @@ -259,7 +277,9 @@ printing, and psresize, for adjusting page sizes.") ("libjpeg/native" ,libjpeg)) '()))) (inputs - `(("freetype" ,freetype) + `(("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("gs-fonts" ,gs-fonts) ("jbig2dec" ,jbig2dec) ("libjpeg" ,libjpeg) ("libpaper" ,libpaper) @@ -275,25 +295,6 @@ output file formats and printers.") (home-page "https://www.ghostscript.com/") (license license:agpl3+))) -(define ghostscript/fixed - ;; This adds the Freetype dependency (among other things), which fixes the - ;; rendering issues described in <https://issues.guix.gnu.org/issue/34877>. - (package/inherit - ghostscript - (arguments - (substitute-keyword-arguments (package-arguments ghostscript) - ((#:configure-flags flags ''()) - `(append (list "--disable-compile-inits" - (string-append "--with-fontpath=" - (assoc-ref %build-inputs "gs-fonts") - "/share/fonts/type1/ghostscript")) - ,flags)))) - (native-inputs `(("pkg-config" ,pkg-config) ;needed for freetype - ,@(package-native-inputs ghostscript))) - (inputs `(("gs-fonts" ,gs-fonts) - ("fontconfig" ,fontconfig) - ,@(package-inputs ghostscript))))) - (define-public ghostscript/x (package/inherit ghostscript (name (string-append (package-name ghostscript) "-with-x")) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 528b67e6cf..369bd373ac 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -105,6 +105,9 @@ ;; Install the session bus socket under /tmp. "--with-session-socket-dir=/tmp" + ;; Build shared libraries only. + "--disable-static" + ;; Use /etc/dbus-1 for system-wide config. ;; Look for configuration file under ;; /etc/dbus-1. This is notably required by @@ -199,11 +202,17 @@ shared NFS home directories.") ("perl" ,perl) ; needed by GIO tests ("tzdata" ,tzdata-for-tests))) ; for tests/gdatetime.c (arguments - `(;; TODO: Uncomment on the next rebuild cycle. - ;; #:disallowed-references (,tzdata-for-tests) - + `(#:disallowed-references (,tzdata-for-tests) #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-dbus-launch-path + (lambda* (#:key inputs #:allow-other-keys) + (let ((dbus (assoc-ref inputs "dbus"))) + (substitute* "gio/gdbusaddress.c" + (("command_line = g_strdup_printf \\(\"dbus-launch") + (string-append "command_line = g_strdup_printf (\"" + dbus "/bin/dbus-launch"))) + #t))) (add-before 'build 'pre-build (lambda* (#:key inputs outputs #:allow-other-keys) ;; For tests/gdatetime.c. @@ -529,16 +538,6 @@ information in their documents, such as whether a particular element should be translated.") (license license:gpl3+))) -(define-public itstool/fixed - ;; This variant fixes a python-libxml2 crash when processing UTF-8 - ;; sequences: <https://bugs.gnu.org/37468>. Since the issue is quite rare, - ;; create this variant here to avoid a full rebuild. - (package/inherit - itstool - (inputs - `(("python-libxml2" ,python-libxml2/fixed) - ,@(alist-delete "python-libxml2" (package-inputs itstool)))))) - (define dbus-glib (package (name "dbus-glib") diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e0712bf99a..dd9ac29f4e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2534,7 +2534,7 @@ Hints specification (EWMH).") `(("bison" ,bison) ("docbook-xml" ,docbook-xml) ("intltool" ,intltool) - ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468> + ("itstool" ,itstool) ("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) (home-page "http://www.gnumeric.org") @@ -5070,17 +5070,6 @@ lifting is done by packages like yelp-xsl and itstool. This package just wraps things up in a developer-friendly way.") (license license:gpl2+))) -(define-public yelp-tools/fixed - ;; This variant fixes a python-libxml2 crash when processing UTF-8 - ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in - ;; the next rebuild cycle. - (hidden-package - (package/inherit - yelp-tools - (propagated-inputs - `(("itstool" ,itstool/fixed) - ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools))))))) - (define-public libgee (package (name "libgee") diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index b31280e39b..4e8869a658 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -97,6 +98,31 @@ (("namespace=errnos") "pkg_namespace=errnos")) #t)))) (build-system gnu-build-system) + (arguments + (if (%current-target-system) + `(#:modules ((ice-9 match) + (guix build gnu-build-system) + (guix build utils)) + #:phases + (modify-phases %standard-phases + ;; When cross-compiling, some platform specific properties cannot + ;; be detected. Create a symlink to the appropriate platform + ;; file. See Cross-Compiling section at: + ;; https://github.com/gpg/libgpg-error/blob/master/README + (add-after 'unpack 'cross-symlinks + (lambda* (#:key target inputs #:allow-other-keys) + (let ((triplet + (match (string-take target + (string-index target #\-)) + ("armhf" "arm-unknown-linux-gnueabi") + (x + (string-append x "-unknown-linux-gnu"))))) + (symlink + (string-append "lock-obj-pub." triplet ".h") + "src/syscfg/lock-obj-pub.linux-gnu.h")) + #t)))) + '())) + (native-inputs `(("gettext" ,gettext-minimal))) (home-page "https://gnupg.org") (synopsis "Library of error values for GnuPG components") (description @@ -111,15 +137,14 @@ Daemon and possibly more in the future.") (define-public libgcrypt (package (name "libgcrypt") - (version "1.8.4") - (replacement libgcrypt-1.8.5) + (version "1.8.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" version ".tar.bz2")) (sha256 (base32 - "09r27ywj9zplq6n9qw3mn7zmvf6y2jdmwx5d1kg8yqkj0qx18f7n")))) + "1hvsazms1bfd769q0ngl0r9g5i4m9mpz9jmvvrdzyzk3rfa2ljiv")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error-host" ,libgpg-error))) @@ -145,18 +170,6 @@ generation.") (properties '((ftp-server . "ftp.gnupg.org") (ftp-directory . "/gcrypt/libgcrypt"))))) -(define-public libgcrypt-1.8.5 - (package - (inherit libgcrypt) - (version "1.8.5") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-" - version ".tar.bz2")) - (sha256 - (base32 - "1hvsazms1bfd769q0ngl0r9g5i4m9mpz9jmvvrdzyzk3rfa2ljiv")))))) - (define-public libassuan (package (name "libassuan") @@ -468,11 +481,26 @@ gpgpme starting with version 1.7.") "0n232iyayc46f7hywmjw0jr7pbmmz5h4b04jskhkzz9gxz0ci99c")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) + (arguments + ;; When cross-compiling, the bash script libgcrypt-config provided by + ;; libgcrypt must be accessible during configure phase. + `(,@(if (%current-target-system) + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'add-libgrypt-config + (lambda _ + (setenv "PATH" (string-append + (assoc-ref %build-inputs "libgcrypt") + "/bin:" + (getenv "PATH"))) + #t)))) + '()))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) ("automake" ,automake) - ("texinfo" ,texinfo))) + ("texinfo" ,texinfo) + ("guile" ,guile-2.2))) (inputs `(("guile" ,guile-2.2) ("libgcrypt" ,libgcrypt))) diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index f9667e873b..0d3b1e8339 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -55,15 +55,15 @@ (define-public graphviz (package (name "graphviz") - (version "2.40.1") + (version "2.42.3") (source (origin (method url-fetch) (uri (string-append - "http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-" - version ".tar.gz")) + "https://www2.graphviz.org/Packages/stable/portable_source/" + "graphviz-" version ".tar.gz")) (sha256 (base32 - "08d4ygkxz2f553bxj6087da56a23kx1khv0j8ycxa102vvx1hlna")))) + "1pbswjbx3fjdlsxcm7cmlsl5bvaa3d6gcnr0cr8x3c8pag13zbwg")))) (build-system gnu-build-system) (arguments ;; FIXME: rtest/rtest.sh is a ksh script (!). Add ksh as an input. diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm index 98f17914bf..5fe353a901 100644 --- a/gnu/packages/groff.scm +++ b/gnu/packages/groff.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,12 +56,28 @@ ;; from 'inputs'. (inputs `(("ghostscript" ,ghostscript))) - (native-inputs `(("bison" ,bison) + + ;; When cross-compiling, this package depends upon a native install of + ;; itself. + (native-inputs `(,@(if (%current-target-system) + `(("self" ,this-package)) + '()) + ("bison" ,bison) ("perl" ,perl) ("psutils" ,psutils) ("texinfo" ,texinfo))) (arguments `(#:parallel-build? #f ; parallel build fails + ,@(if (%current-target-system) + `(#:make-flags + ;; In groff-minimal package, that inherits from this package, + ;; we'll need to locate "groff" instead of "self". + (let ((groff (or (assoc-ref %build-host-inputs "groff") + (assoc-ref %build-host-inputs "self")))) + (list + (string-append "GROFF_BIN_PATH=" groff) + (string-append "GROFFBIN=" groff "/bin/groff")))) + '()) #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-relocatability @@ -115,7 +132,8 @@ is usually the formatter of \"man\" documentation pages.") ;; Omit the DVI, PS, PDF, and HTML backends. (inputs '()) (native-inputs `(("bison" ,bison) - ("perl" ,perl))) + ("perl" ,perl) + ("groff" ,groff))) (arguments `(#:disallowed-references (,perl) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 777601ed97..67b129c2a1 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -145,7 +145,8 @@ tools have full access to view and control running applications.") ("python" ,python-wrapper))) (arguments `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html - #:configure-flags '("--enable-tee"))) ; needed for GNU Icecat + #:configure-flags '("--enable-tee" ;needed for GNU Icecat + "--disable-static"))) (synopsis "2D graphics library") (description "Cairo is a 2D graphics library with support for multiple output devices. @@ -181,7 +182,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public harfbuzz (package (name "harfbuzz") - (version "2.5.3") + (version "2.6.4") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" @@ -189,7 +190,7 @@ affine transformation (scale, rotation, shear, etc.).") version ".tar.xz")) (sha256 (base32 - "0p45xk5bblsw8lfs7y7z80b4rvda9f2hlpr28flkrfmpjz3hvl7y")))) + "04iwq13w6zkdhljmsxrzgg4fyh04qnwfn57rgrl9kmijc7cvh4wl")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo @@ -671,7 +672,7 @@ is part of the GNOME accessibility project.") "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch" "gtk2-theme-paths.patch")))) (build-system gnu-build-system) - (outputs '("out" "doc")) + (outputs '("out" "bin" "doc")) (propagated-inputs `(("atk" ,atk) ("gdk-pixbuf" ,gdk-pixbuf+svg) @@ -698,14 +699,19 @@ is part of the GNOME accessibility project.") (assoc-ref %outputs "doc") "/share/gtk-doc/html")) #:phases - (alist-cons-before - 'configure 'disable-tests - (lambda _ - ;; FIXME: re-enable tests requiring an X server - (substitute* "gtk/Makefile.in" - (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits .")) - #t) - %standard-phases))) + (modify-phases %standard-phases + (add-before 'configure 'disable-tests + (lambda _ + ;; FIXME: re-enable tests requiring an X server + (substitute* "gtk/Makefile.in" + (("SUBDIRS = theme-bits . tests") "SUBDIRS = theme-bits .")) + #t)) + (add-after 'install 'remove-cache + (lambda* (#:key outputs #:allow-other-keys) + (for-each + delete-file + (find-files (assoc-ref outputs "out") "immodules.cache")) + #t))))) (native-search-paths (list (search-path-specification (variable "GUIX_GTK2_PATH") @@ -733,7 +739,6 @@ application suites.") "10xyyhlfb0yk4hglngxh2zsv9xrxkqv343df8h01dvagc6jyp10k")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) - (outputs '("out" "bin" "doc")) (propagated-inputs `(("at-spi2-atk" ,at-spi2-atk) ("atk" ,atk) diff --git a/gnu/packages/guile-wm.scm b/gnu/packages/guile-wm.scm index 622fc560d9..3a6eebc91a 100644 --- a/gnu/packages/guile-wm.scm +++ b/gnu/packages/guile-wm.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Alex ter Weele <alex.ter.weele@gmail.com> ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 ng0 <ng0@n0.is> +;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,7 +58,8 @@ "--with-guile-site-ccache-dir=" (assoc-ref %outputs "out") "/lib/guile/2.2/site-ccache")))) - (native-inputs `(("pkg-config" ,pkg-config) + (native-inputs `(("guile" ,guile-2.2) + ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) (inputs `(("guile" ,guile-2.2) ("xcb" ,xcb-proto))) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 43b3e026d1..1f767e3b3d 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -554,6 +554,8 @@ Guile's foreign function interface.") (base32 "1nv8j7wk6b5n4p22szyi8lv8fs31rrzxhzz16gyj8r38c1fyp9qp")) (file-name (string-append name "-" version "-checkout")) + (patches + (search-patches "guile-sqlite3-fix-cross-compilation.patch")) (modules '((guix build utils))) (snippet '(begin @@ -566,6 +568,7 @@ Guile's foreign function interface.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) + ("guile" ,guile-2.2) ("pkg-config" ,pkg-config))) (inputs `(("guile" ,guile-2.2) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 922dfbd348..717ed277ee 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,56 +28,43 @@ #:use-module (gnu packages python) #:use-module (guix licenses) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (guix download) #:use-module (guix build-system ant) #:use-module (guix build-system gnu)) -;; These patches are taken from ICUs 'maint-64' branch and will be included in -;; 64.3. The latter patch is needed because many packages use "invalid" -;; locales which misbehave with ICU 64.2. See discussion at -;; <https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00343.html>. -(define %icu4c-patches - (list (origin - (method url-fetch) - (uri (string-append "https://github.com/unicode-org/icu/commit/" - "7788f04eb9be0d7ecade6af46cf7b9825447763d.patch")) - (file-name "icu4c-datetime-regression.patch") - (sha256 - (base32 - "0gs2sbdfpzwwdjqcqr0c16fw3g7wy3gb1gbgvzs9k1ciw0bhpv4w"))) - (origin - (method url-fetch) - (uri (string-append "https://github.com/unicode-org/icu/commit/" - "cfb20862909ff105d4f2c43923c97561bc5a5815.patch")) - (file-name "icu4c-locale-mapping.patch") - (sha256 - (base32 - "0s5psb60aisj6icziblvlp9dqcz56n3887i8ib0yidbjnnrw5b97"))))) - (define-public icu4c (package (name "icu4c") - (version "64.2") + (version "65.1") (source (origin (method url-fetch) (uri (string-append - "http://download.icu-project.org/files/icu4c/" - version + "https://github.com/unicode-org/icu/releases/download/release-" + (string-map (lambda (x) (if (char=? x #\.) #\- x)) version) "/icu4c-" (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) "-src.tgz")) - (patches %icu4c-patches) - (patch-flags '("-p2")) (sha256 - (base32 "0v0xsf14xwlj125y9fd8lrhsaych4d8liv8gr746zng6g225szb2")))) + (base32 "0j6r6qqnhfr5iqkx53k63ifkm93kv1kkb7h2mlgd1mnnndk79qsk")))) (build-system gnu-build-system) + ;; When cross-compiling, this package needs a source directory of a + ;; native-build of itself. (native-inputs - `(("python" ,python-minimal))) + `(("python" ,python-minimal) + ,@(if (%current-target-system) + `(("icu4c-build-root" ,icu4c-build-root)) + '()))) (inputs `(("perl" ,perl))) (arguments `(#:configure-flags - '("--enable-rpath") + (list + "--enable-rpath" + ,@(if (%current-target-system) + '((string-append "--with-cross-build=" + (assoc-ref %build-inputs "icu4c-build-root"))) + '())) #:phases (modify-phases %standard-phases (add-after 'unpack 'chdir-to-source @@ -105,6 +93,25 @@ C/C++ part.") (license x11) (home-page "http://site.icu-project.org/"))) +(define-public icu4c-build-root + (package + (inherit icu4c) + (name "icu4c-build-root") + (arguments + (substitute-keyword-arguments (package-arguments icu4c) + ((#:tests? _ '()) + #f) + ((#:out-of-source? _ '()) + #t) + ((#:phases phases) + `(modify-phases ,phases + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (copy-recursively "../build" out) + #t))))))) + (native-inputs '()))) + (define-public java-icu4j (package (name "java-icu4j") diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index e07ab15aec..c433429656 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -543,7 +543,7 @@ extracting icontainer icon files.") (define-public libtiff (package (name "libtiff") - (version "4.0.10") + (version "4.1.0") (source (origin (method url-fetch) @@ -551,7 +551,7 @@ extracting icontainer icon files.") version ".tar.gz")) (sha256 (base32 - "1r4np635gr6zlc0bic38dzvxia6iqzcrary4n1ylarzpr8fd2lic")))) + "0d46bdvxdiv59lxnb0xz9ywm8arsr6xsapi5s6y6vnys2wjz6aax")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.3 MiB of HTML documentation @@ -560,7 +560,8 @@ extracting icontainer icon files.") `(#:configure-flags (list (string-append "--with-docdir=" (assoc-ref %outputs "doc") "/share/doc/" - ,name "-" ,version)))) + ,name "-" ,version) + "--disable-static"))) (inputs `(("zlib" ,zlib) ("libjpeg" ,libjpeg))) (synopsis "Library for handling TIFF files") @@ -628,15 +629,15 @@ arithmetic ops.") (define-public jbig2dec (package (name "jbig2dec") - (version "0.16") + (version "0.17") (source (origin (method url-fetch) (uri (string-append "https://github.com/ArtifexSoftware" "/ghostpdl-downloads/releases/download" - "/gs927/" name "-" version ".tar.gz")) + "/gs950/" name "-" version ".tar.gz")) (sha256 (base32 - "00h61y7bh3z6mqfzxyb318gyh0f8jwarg4hvlrm83rqps8avzxm4")) + "0wpvslmwazia3z8gyk343kbq6yj47pxr4x5yjvx332v309qssazp")) (patches (search-patches "jbig2dec-ignore-testtest.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static"))) @@ -781,31 +782,31 @@ error-resilience, a Java-viewer for j2k-images, ...") (define-public giflib (package (name "giflib") - (version "5.1.4") + (version "5.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/giflib/giflib-" - version ".tar.bz2")) + version ".tar.gz")) (sha256 (base32 - "1md83dip8rf29y40cm5r7nn19705f54iraz6545zhwa6y8zyq9yz")) - (patches (search-patches - "giflib-make-reallocarray-private.patch")))) + "1gbrg03z1b6rlrvjyc6d41bc8j1bsr7rm8206gb1apscyii5bnii")))) (build-system gnu-build-system) (outputs '("bin" ; utility programs "out")) ; library - (inputs `(("libx11" ,libx11) - ("libice" ,libice) - ("libsm" ,libsm) - ("perl" ,perl))) (arguments - `(#:phases + '(#:make-flags (list "CC=gcc" + (string-append "PREFIX=" + (assoc-ref %outputs "out")) + (string-append "BINDIR=" + (assoc-ref %outputs "bin") "/bin")) + #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-html-doc-gen (lambda _ - (substitute* "doc/Makefile.in" + (substitute* "doc/Makefile" (("^all: allhtml manpages") "")) #t)) + (delete 'configure) (add-after 'install 'install-manpages (lambda* (#:key outputs #:allow-other-keys) (let* ((bin (assoc-ref outputs "bin")) @@ -1486,15 +1487,15 @@ is hereby granted.")))) (define-public libjpeg-turbo (package (name "libjpeg-turbo") - (version "2.0.2") - (replacement libjpeg-turbo/fixed) + (version "2.0.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/libjpeg-turbo/" version "/libjpeg-turbo-" version ".tar.gz")) + (patches (search-patches "libjpeg-turbo-CVE-2019-2201.patch")) (sha256 (base32 - "1v9gx1gdzgxf51nd55ncq7rghmj4x9x91rby50ag36irwngmkf5c")))) + "1ds16bnj17v6hzd43w8pzijz3imd9am4hw75ir0fxm240m8dwij2")))) (build-system cmake-build-system) (native-inputs `(("nasm" ,nasm))) @@ -1517,20 +1518,6 @@ and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.).") license:ijg ;the libjpeg library and associated tools license:zlib)))) ;the libjpeg-turbo SIMD extensions -;; Replacement package to fix CVE-2019-13960 and CVE-2019-2201. -(define libjpeg-turbo/fixed - (package - (inherit libjpeg-turbo) - (version "2.0.3") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/libjpeg-turbo/" - version "/libjpeg-turbo-" version ".tar.gz")) - (sha256 - (base32 - "1ds16bnj17v6hzd43w8pzijz3imd9am4hw75ir0fxm240m8dwij2")) - (patches (search-patches "libjpeg-turbo-CVE-2019-2201.patch")))))) - (define-public niftilib (package (name "niftilib") diff --git a/gnu/packages/jemalloc.scm b/gnu/packages/jemalloc.scm index aa8493fd1d..2eabf4403f 100644 --- a/gnu/packages/jemalloc.scm +++ b/gnu/packages/jemalloc.scm @@ -32,7 +32,7 @@ (define-public jemalloc (package (name "jemalloc") - (version "5.2.0") + (version "5.2.1") (source (origin (method url-fetch) (uri (string-append @@ -40,7 +40,7 @@ version "/jemalloc-" version ".tar.bz2")) (sha256 (base32 - "1d73a5c5qdrwck0fa5pxz0myizaf3s9alsvhiqwrjahdlr29zgkl")))) + "1xl7z0vwbn5iycg7amka9jd6hxd8nmfk7nahi4p9w2bnw9f0wcrl")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/kerberos.scm b/gnu/packages/kerberos.scm index 1253a58546..bf344ce8ce 100644 --- a/gnu/packages/kerberos.scm +++ b/gnu/packages/kerberos.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -68,9 +69,21 @@ ("perl" ,perl))) (arguments `(;; XXX: On 32-bit systems, 'kdb5_util' hangs on an fcntl/F_SETLKW call - ;; while running the tests in 'src/tests'. - #:tests? ,(string=? (%current-system) "x86_64-linux") + ;; while running the tests in 'src/tests'. Also disable tests when + ;; cross-compiling. + #:tests? ,(and (not (%current-target-system)) + (string=? (%current-system) "x86_64-linux")) + ,@(if (%current-target-system) + '(#:configure-flags + (list "krb5_cv_attr_constructor_destructor=yes" + "ac_cv_func_regcomp=yes" + "ac_cv_printf_positional=yes" + "ac_cv_file__etc_environment=yes" + "ac_cv_file__etc_TIMEZONE=no") + #:make-flags + (list "CFLAGS+=-DDESTRUCTOR_ATTR_WORKS=1")) + '()) #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source-directory @@ -78,8 +91,8 @@ (chdir "src") #t)) (add-before 'check 'pre-check - (lambda* (#:key inputs #:allow-other-keys) - (let ((perl (assoc-ref inputs "perl"))) + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (let ((perl (assoc-ref (or native-inputs inputs) "perl"))) (substitute* "plugins/kdb/db2/libdb2/test/run.test" (("/bin/cat") (string-append perl "/bin/perl")) (("D/bin/sh") (string-append "D" (which "sh"))) diff --git a/gnu/packages/libbsd.scm b/gnu/packages/libbsd.scm index a616de70bd..9d0dff10f1 100644 --- a/gnu/packages/libbsd.scm +++ b/gnu/packages/libbsd.scm @@ -25,14 +25,14 @@ (define-public libbsd (package (name "libbsd") - (version "0.9.1") + (version "0.10.0") (source (origin (method url-fetch) (uri (string-append "https://libbsd.freedesktop.org/releases/" "libbsd-" version ".tar.xz")) (sha256 (base32 - "1957w2wi7iqar978qlfsm220dwywnrh5m58nrnn9zmi74ds3bn2n")))) + "11x8q45jvjvf2dvgclds64mscyg10lva33qinf2hwgc84v3svf1l")))) (build-system gnu-build-system) (synopsis "Utility functions from BSD systems") (description "This library provides useful functions commonly found on BSD diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index 465ed95eb2..b59efecbe1 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -99,14 +99,14 @@ limited support for fork events.") (define-public libuv (package (name "libuv") - (version "1.30.1") + (version "1.34.0") (source (origin (method url-fetch) (uri (string-append "https://dist.libuv.org/dist/v" version "/libuv-v" version ".tar.gz")) (sha256 (base32 - "12s7ifwgbfxblhv46inqa8c2lsnl8cgmvd37y4a4248xhkx1d0s6")))) + "0j416x38cp6gh5isn3fwv331aw6bpfmrk8xgm07rq5py47kyqg52")))) (build-system gnu-build-system) (arguments '(;; XXX: Some tests want /dev/tty, attempt to make connections, etc. diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm index b61dbc8657..52654ddf3f 100644 --- a/gnu/packages/libffi.scm +++ b/gnu/packages/libffi.scm @@ -41,7 +41,7 @@ (define-public libffi (package (name "libffi") - (version "3.2.1") + (version "3.3") (source (origin (method url-fetch) (uri @@ -49,21 +49,12 @@ name "-" version ".tar.gz")) (sha256 (base32 - "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh")) - (patches (search-patches "libffi-3.2.1-complex-alpha.patch")))) + "0mi0cpf8aa40ljjmzxb7im6dbj45bb0kllcd09xgmp834y9agyvj")))) (build-system gnu-build-system) (arguments `(;; Prevent the build system from passing -march and -mtune to the ;; compiler. See "ax_cc_maxopt.m4" and "ax_gcc_archflag.m4". - #:configure-flags '("--enable-portable-binary" "--without-gcc-arch") - #:phases - (modify-phases %standard-phases - (add-after 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - (define out (assoc-ref outputs "out")) - (symlink (string-append out "/lib/libffi-3.2.1/include") - (string-append out "/include")) - #t))))) + #:configure-flags '("--enable-portable-binary" "--without-gcc-arch"))) (outputs '("out" "debug")) (synopsis "Foreign function call interface library") (description diff --git a/gnu/packages/libidn.scm b/gnu/packages/libidn.scm index ea9ce70dfb..8731ed3f83 100644 --- a/gnu/packages/libidn.scm +++ b/gnu/packages/libidn.scm @@ -59,14 +59,14 @@ Java libraries.") (define-public libidn2 (package (name "libidn2") - (version "2.2.0") + (version "2.3.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libidn/" name "-" version ".tar.lz")) (sha256 (base32 - "1a5cv79q6b719jv4fpwjl3r0mmx9qcpla98v9dk64cgxn8f8di10")))) + "14yw4w37ya6rcqa7h6p44x6711dwgq2j22xg6k79ybbf04sj88kb")))) (native-inputs `(("lzip" ,lzip))) (inputs diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 96df2172e6..9977be6bfe 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -22,7 +22,7 @@ ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.com> ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com> -;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 nee <nee-git@hidamari.blue> @@ -1222,10 +1222,16 @@ by Robert Shea and Robert Anton Wilson.") "0r84kwa5fl0sjdashcn4vh7hgfm7ahdcysig3mcjvpmkzi7p9g8h")))) (build-system gnu-build-system) (arguments - '(#:modules ((guix build utils) + `(#:modules ((guix build utils) (guix build gnu-build-system) (srfi srfi-1) (srfi srfi-26)) + ,@(if (%current-target-system) + '(#:configure-flags + (list + "ac_cv_func_malloc_0_nonnull=yes" + "ac_cv_func_realloc_0_nonnull=yes")) + '()) #:phases (modify-phases %standard-phases (add-after @@ -1595,12 +1601,13 @@ MIDI functionality to the Linux-based operating system.") (("\\$\\(MKDIR_P\\) .*ASOUND_STATE_DIR.*") "true\n")) #t))))) + (native-inputs + `(("gettext" ,gettext-minimal))) (inputs `(("libsamplerate" ,libsamplerate) ("ncurses" ,ncurses) ("alsa-lib" ,alsa-lib) - ("xmlto" ,xmlto) - ("gettext" ,gettext-minimal))) + ("xmlto" ,xmlto))) (home-page "http://www.alsa-project.org/") (synopsis "Utilities for the Advanced Linux Sound Architecture (ALSA)") (description @@ -2018,35 +2025,18 @@ transparently through a bridge.") "/libnl-doc-" version ".tar.gz")) (sha256 (base32 "19p5y8q3cm5wqvamqc4s5syxnnkvzxy3gw8ivxk6fv9ybn8jm35h")))))) - (inputs - `(("python-2" ,python-2) - ("python-3" ,python-3))) - (outputs '("out" "doc" "python2" "python3")) + (outputs `("out" "doc")) (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (srfi srfi-1)) - #:phases + `(#:phases (modify-phases %standard-phases - (add-after 'install 'install-python - (lambda* (#:key outputs #:allow-other-keys) - (define (python-inst python) - (invoke python "setup.py" "build") - (invoke python "setup.py" "install" - (string-append "--prefix=" - (assoc-ref %outputs python))) - (invoke python "setup.py" "clean")) - (setenv "LDFLAGS" (format #f "-Wl,-rpath=~a/lib" - (assoc-ref %outputs "out"))) - (with-directory-excursion "./python" - (for-each python-inst '("python2" "python3"))) - #t)) (add-after 'install 'install-doc - (lambda* (#:key inputs outputs #:allow-other-keys) + (lambda* (#:key inputs native-inputs outputs #:allow-other-keys) (let ((dest (string-append (assoc-ref outputs "doc") "/share/doc/libnl"))) (mkdir-p dest) - (invoke "tar" "xf" (assoc-ref inputs "libnl3-doc") + (invoke "tar" "xf" (assoc-ref + (or native-inputs inputs) + "libnl3-doc") "--strip-components=1" "-C" dest))))))) (home-page "https://www.infradead.org/~tgr/libnl/") (synopsis "NetLink protocol library suite") @@ -2061,6 +2051,43 @@ configuration and monitoring interfaces.") ;; 'nl-addr-add.c'), so the result is GPLv2-only. (license license:gpl2))) +;; libnl python extensions used to be outputs of libnl. However, as +;; cross-compiling python extensions is currently broken, create separate +;; packages for libnl python extensions. +(define (libnl-python-package python) + (let ((name (string-append "libnl-" python))) + (package + (inherit libnl) + (name name) + (inputs `(,@(cond + ((string=? python "python2") + `(("python-2" ,python-2))) + ((string=? python "python3") + `(("python-3" ,python-3)))))) + (propagated-inputs `(("libnl" ,libnl))) + (outputs '("out")) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1)) + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (define (python-inst python) + (invoke python "setup.py" "build") + (invoke python "setup.py" "install" + (string-append "--prefix=" + (assoc-ref %outputs "out"))) + (invoke python "setup.py" "clean")) + (setenv "LDFLAGS" (format #f "-Wl,-rpath=~a/lib" + (assoc-ref inputs "libnl"))) + (with-directory-excursion "./python" (python-inst ,python)) + #t)))))))) + +(define-public libnl-python2 (libnl-python-package "python2")) +(define-public libnl-python3 (libnl-python-package "python3")) + (define-public iw (package (name "iw") @@ -2656,7 +2683,7 @@ from the module-init-tools project.") (patches (search-patches "eudev-rules-directory.patch")))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'make-source-writable (lambda _ @@ -2665,19 +2692,25 @@ from the module-init-tools project.") (for-each make-file-writable (find-files ".")) #t)) (add-before 'bootstrap 'patch-file-names - (lambda* (#:key inputs #:allow-other-keys) + (lambda* (#:key inputs native-inputs #:allow-other-keys) (substitute* "man/make.sh" (("/usr/bin/xsltproc") - (string-append (assoc-ref inputs "xsltproc") + (string-append (assoc-ref + (or native-inputs inputs) "xsltproc") "/bin/xsltproc"))) #t)) (add-after 'install 'build-hwdb (lambda* (#:key outputs #:allow-other-keys) ;; Build OUT/etc/udev/hwdb.bin. This allows 'lsusb' and ;; similar tools to display product names. + ;; + ;; XXX: This can't be done when cross-compiling. Find another way + ;; to generate hwdb.bin for cross-built systems. (let ((out (assoc-ref outputs "out"))) - (invoke (string-append out "/bin/udevadm") - "hwdb" "--update"))))) + ,@(if (%current-target-system) + '(#t) + '((invoke (string-append out "/bin/udevadm") + "hwdb" "--update"))))))) #:configure-flags (list "--enable-manpages"))) (native-inputs `(("autoconf" ,autoconf) @@ -2740,7 +2773,7 @@ time.") (inputs `(("udev" ,eudev))) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases (add-after 'configure 'set-makefile-shell (lambda _ @@ -2775,7 +2808,12 @@ time.") (assoc-ref %outputs "out") "/lib,-rpath=" (assoc-ref %outputs "out") - "/lib/device-mapper")) + "/lib/device-mapper") + ;; This is needed when cross-compiling. + ,@(if (%current-target-system) + '("ac_cv_func_malloc_0_nonnull=yes" + "ac_cv_func_realloc_0_nonnull=yes") + '())) ;; The tests use 'mknod', which requires root access. #:tests? #f)) @@ -2871,13 +2909,23 @@ interface.") (patches (search-patches "crda-optional-gcrypt.patch")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (delete 'configure) (add-after 'unpack 'gzip-determinism (lambda _ (substitute* "Makefile" (("gzip") "gzip --no-name")) #t)) + ,@(if (%current-target-system) + '((add-after + 'unpack 'fix-pkg-config + (lambda* (#:key target #:allow-other-keys) + (substitute* + "Makefile" + (("pkg-config") + (string-append target "-pkg-config"))) + #t))) + '()) (add-before 'build 'no-werror-no-ldconfig (lambda _ @@ -2887,37 +2935,44 @@ interface.") #t)) (add-before 'build 'set-regulator-db-file-name - (lambda* (#:key inputs #:allow-other-keys) + (lambda* (#:key native-inputs inputs #:allow-other-keys) ;; Tell CRDA where to find our database. - (let ((regdb (assoc-ref inputs "wireless-regdb"))) + (let ((regdb (assoc-ref (or native-inputs inputs) + "wireless-regdb"))) (substitute* "crda.c" (("\"/lib/crda/regulatory.bin\"") (string-append "\"" regdb "/lib/crda/regulatory.bin\""))) #t)))) #:test-target "verify" - #:make-flags (let ((out (assoc-ref %outputs "out")) - (regdb (assoc-ref %build-inputs "wireless-regdb"))) - (list "CC=gcc" "V=1" - - ;; Disable signature-checking on 'regulatory.bin'. - ;; The reason is that this simplifies maintenance - ;; on our side (no need to manage a distro key - ;; pair), and we can guarantee integrity of - ;; 'regulatory.bin' by other means anyway, such as - ;; 'guix gc --verify'. See - ;; <https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb> - ;; for a discssion. - "USE_OPENSSL=0" - - (string-append "PREFIX=" out) - (string-append "SBINDIR=" out "/sbin/") - (string-append "UDEV_RULE_DIR=" - out "/lib/udev/rules.d") - (string-append "LDFLAGS=-Wl,-rpath=" - out "/lib -L.") - (string-append "REG_BIN=" regdb - "/lib/crda/regulatory.bin"))))) + #:make-flags (let ((out (assoc-ref %outputs "out")) + (regdb (assoc-ref %build-inputs "wireless-regdb")) + (target ,(%current-target-system))) + (list + (string-append + "CC=" (if target + (string-append target "-gcc") "gcc")) + "V=1" + + ;; Disable signature-checking on 'regulatory.bin'. + ;; The reason is that this simplifies maintenance + ;; on our side (no need to manage a distro key + ;; pair), and we can guarantee integrity of + ;; 'regulatory.bin' by other means anyway, such as + ;; 'guix gc --verify'. See + ;; <https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb> + ;; for a discssion. + "USE_OPENSSL=0" + + (string-append "PREFIX=" out) + (string-append "SBINDIR=" out "/sbin/") + (string-append "UDEV_RULE_DIR=" + out "/lib/udev/rules.d") + (string-append "LDFLAGS=-Wl,-rpath=" + out "/lib -L.") + (string-append "REG_BIN=" regdb + "/lib/crda/regulatory.bin") + "all_noverify")))) (native-inputs `(("pkg-config" ,pkg-config) ("wireless-regdb" ,wireless-regdb))) (inputs `(("libnl" ,libnl))) @@ -3590,8 +3645,9 @@ MPEG-2 and audio over Linux IEEE 1394.") #:phases (modify-phases %standard-phases (add-before 'build 'patch-program-paths - (lambda* (#:key inputs #:allow-other-keys) - (let ((coreutils (assoc-ref inputs "coreutils"))) + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (let ((coreutils (assoc-ref (or native-inputs inputs) + "coreutils"))) (substitute* "udev-md-raid-arrays.rules" (("/usr/bin/(readlink|basename)" all program) (string-append coreutils "/bin/" program)))) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index a6f779e7f8..ae5fe72d93 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -89,6 +89,7 @@ as \"x86_64-linux\"." (base32 "0k124sxkfhfi1rca6kzkdraf4axhx99x3cw2rk55056628dvwwl8")))) (build-system cmake-build-system) + (outputs '("out" "opt-viewer")) (native-inputs `(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2 ("perl" ,perl))) @@ -106,16 +107,27 @@ as \"x86_64-linux\"." ;; Don't use '-g' during the build, to save space. #:build-type "Release" - #:phases (modify-phases %standard-phases - (add-before 'build 'shared-lib-workaround - ;; Even with CMAKE_SKIP_BUILD_RPATH=FALSE, llvm-tblgen - ;; doesn't seem to get the correct rpath to be able to run - ;; from the build directory. Set LD_LIBRARY_PATH as a - ;; workaround. - (lambda _ - (setenv "LD_LIBRARY_PATH" - (string-append (getcwd) "/lib")) - #t))))) + #:phases + (modify-phases %standard-phases + (add-before 'build 'shared-lib-workaround + ;; Even with CMAKE_SKIP_BUILD_RPATH=FALSE, llvm-tblgen + ;; doesn't seem to get the correct rpath to be able to run + ;; from the build directory. Set LD_LIBRARY_PATH as a + ;; workaround. + (lambda _ + (setenv "LD_LIBRARY_PATH" + (string-append (getcwd) "/lib")) + #t)) + (add-after 'install 'install-opt-viewer + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (opt-viewer-out (assoc-ref outputs "opt-viewer")) + (opt-viewer-share-dir (string-append opt-viewer-out "/share")) + (opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer"))) + (mkdir-p opt-viewer-share-dir) + (rename-file (string-append out "/share/opt-viewer") + opt-viewer-dir)) + #t))))) (home-page "https://www.llvm.org") (synopsis "Optimizing compiler infrastructure") (description diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index b8d1b2af3e..d149a7ec1a 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -167,15 +167,6 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (current-source-location) #:native-inputs native-inputs)) -(define static-bash-for-bootstrap - (package - (inherit static-bash) - (source (origin - (inherit (package-source static-bash)) - (patches - (cons (search-patch "bash-reproducible-linux-pgrp-pipe.patch") - (origin-patches (package-source static-bash)))))))) - (define %static-inputs ;; Packages that are to be used as %BOOTSTRAP-INPUTS. (let ((coreutils (package (inherit coreutils) @@ -252,7 +243,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (("-Wl,-export-dynamic") "")) #t))))))) (inputs (if (%current-target-system) - `(("bash" ,static-bash-for-bootstrap)) + `(("bash" ,static-bash)) '())))) (tar (package (inherit tar) (arguments @@ -298,7 +289,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ("sed" ,sed) ("grep" ,grep) ("gawk" ,gawk))) - ("bash" ,static-bash-for-bootstrap)))) + ("bash" ,static-bash)))) (define %static-binaries (package diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index f05efccece..f396eeafa9 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -216,6 +216,8 @@ Linux kernel and C library interfaces employed by user-space programs.") ;; ("perl-LocaleGettext" ,perl-LocaleGettext) ;; ("gettext" ,gettext-minimal) )) + (native-inputs + `(("perl" ,perl))) (home-page "https://www.gnu.org/software/help2man/") (synopsis "Automatically generate man pages from program --help") (description diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index d55d1b4461..ba90ccec73 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -565,7 +565,7 @@ assorted menu related utility programs.") `(("pkg-config" ,pkg-config) ("intltool" ,intltool) ("libxslt" ,libxslt) - ("yelp-tools" ,yelp-tools/fixed) + ("yelp-tools" ,yelp-tools) ("scrollkeeper" ,scrollkeeper) ("gettext" ,gettext-minimal) ("docbook-xml" ,docbook-xml) @@ -1279,7 +1279,7 @@ can be used as backgrounds in the MATE Desktop environment.") ("pkg-config" ,pkg-config) ("scrollkeeper" ,scrollkeeper) ("xorgproto" ,xorgproto) - ("yelp-tools" ,yelp-tools/fixed))) + ("yelp-tools" ,yelp-tools))) (inputs `(("atk" ,atk) ("cairo" ,cairo) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 0ed61ad4a1..930fe916a7 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -375,15 +375,14 @@ semiconductors.") (define-public gsl (package (name "gsl") - (version "2.5") + (version "2.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gsl/gsl-" version ".tar.gz")) (sha256 (base32 - "1395y9hlhqadn5g9j8q22224fds5sd92jxi9czfavjj24myasq04")) - (patches (search-patches "gsl-test-i686.patch")))) + "1a460zj9xmbgvcymkdhqh313c4l29mn9cffbi5vf33x3qygk70mp")))) (build-system gnu-build-system) (arguments `(;; Currently there are numerous tests that fail on "exotic" diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 549ee28400..75f611a2e0 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -769,7 +769,7 @@ on Axolotl and PEP.") ("libgcrypt" ,libgcrypt) ("libsoup" ,libsoup) ("qrencode" ,qrencode) - ("sqlite" ,sqlite-with-column-metadata) + ("sqlite" ,sqlite) ("gpgme" ,gpgme) ("gtk+" ,gtk+) ("glib-networking" ,glib-networking) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 9cd1c17a99..2a1dd57edd 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -297,7 +297,7 @@ score, keyboard, guitar, drum and controller views.") ("pulseaudio" ,pulseaudio) ("qtbase" ,qtbase) ("qtx11extras" ,qtx11extras) - ("sqlite" ,sqlite-with-column-metadata) + ("sqlite" ,sqlite) ("sparsehash" ,sparsehash) ("taglib" ,taglib))) (home-page "https://clementine-player.org") diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 83427d935f..753d2cc06a 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -45,14 +45,14 @@ (define-public node (package (name "node") - (version "10.16.0") + (version "10.17.0") (source (origin (method url-fetch) (uri (string-append "https://nodejs.org/dist/v" version "/node-v" version ".tar.xz")) (sha256 (base32 - "0236jlb1hxhzqjlmmlxipcycrndiq92c8434iyy7zshh3n4pzqqq")) + "13n5cvb340ba7vwm8il7bjrmpz89h6cibhk9rc3kq9ymdgbnf9j1")) (modules '((guix build utils))) (snippet `(begin diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm index 4f421f6e9d..6ed197b578 100644 --- a/gnu/packages/nss.scm +++ b/gnu/packages/nss.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. @@ -71,7 +71,6 @@ in the Mozilla clients.") (package (name "nss") (version "3.46.1") - (replacement nss/fixed) (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -84,7 +83,8 @@ in the Mozilla clients.") (base32 "0l9ns44rlkp1bpblplspfbqmyhb8rhvc89y56kqh725rgpny1xrv")) ;; Create nss.pc and nss-config. - (patches (search-patches "nss-pkgconfig.patch" + (patches (search-patches "nss-CVE-2019-11745.patch" + "nss-pkgconfig.patch" "nss-freebl-stubs.patch" "nss-increase-test-timeout.patch")))) (build-system gnu-build-system) @@ -184,11 +184,3 @@ applications. Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security standards.") (license license:mpl2.0))) - -(define nss/fixed - (package - (inherit nss) - (source (origin - (inherit (package-source nss)) - (patches (append (search-patches "nss-CVE-2019-11745.patch") - (origin-patches (package-source nss)))))))) diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm index 7abe9ab6f0..ec528787ca 100644 --- a/gnu/packages/openldap.scm +++ b/gnu/packages/openldap.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,6 +51,7 @@ #:use-module (gnu packages) #:use-module ((guix licenses) #:select (openldap2.8 lgpl2.1+ gpl3+ psfl)) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system python)) @@ -57,7 +59,7 @@ (define-public openldap (package (name "openldap") - (version "2.4.47") + (version "2.4.48") (source (origin (method url-fetch) @@ -74,21 +76,51 @@ "openldap-release/openldap-" version ".tgz"))) (sha256 (base32 - "02sj0p1pq12hqq29b22m3f5zs2rykgvc0q3wlynxjcsjhrvmhk7m")))) + "0k87qra4kirb6xgja4q1jyw6piwb9v8b8g6gkxq4plawmgy3ylnr")))) (build-system gnu-build-system) (inputs `(("bdb" ,bdb-5.3) ("cyrus-sasl" ,cyrus-sasl) ("gnutls" ,gnutls) - ("groff" ,groff) ("icu4c" ,icu4c) ("libgcrypt" ,libgcrypt) ("zlib" ,zlib))) - (native-inputs `(("libtool" ,libtool))) + (native-inputs `(("libtool" ,libtool) + ("groff" ,groff) + ("bdb" ,bdb-5.3) + ;; For up to date 'config.guess' and 'config.sub'. + ("automake" ,automake))) (arguments `(#:tests? #f - #:configure-flags '("--disable-static") + #:configure-flags + '("--disable-static" + ,@(if (%current-target-system) + '("--with-yielding_select=yes" + "ac_cv_func_memcmp_working=yes") + '())) + ;; Disable install stripping as it breaks cross-compiling. + #:make-flags '("STRIP=") #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-configure + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.sub and config.guess: + (with-directory-excursion "build" + (for-each (lambda (file) + (install-file (string-append + (assoc-ref + (or native-inputs inputs) "automake") + "/share/automake-" + ,(version-major+minor + (package-version automake)) + "/" file) ".")) + '("config.sub" "config.guess"))) + #t)) + ,@(if (%current-target-system) + '((add-before 'configure 'fix-cross-gcc + (lambda* (#:key target #:allow-other-keys) + (setenv "CC" (string-append target "-gcc")) + #t))) + '()) (add-after 'install 'patch-sasl-path ;; Give -L arguments for cyrus-sasl to avoid propagation. (lambda* (#:key inputs outputs #:allow-other-keys) diff --git a/gnu/packages/patches/aspell-default-dict-dir.patch b/gnu/packages/patches/aspell-default-dict-dir.patch index 17a6ff606f..5f759a66d9 100644 --- a/gnu/packages/patches/aspell-default-dict-dir.patch +++ b/gnu/packages/patches/aspell-default-dict-dir.patch @@ -8,12 +8,34 @@ However it is necessary for applications that use libaspell since --- a/common/config.cpp +++ b/common/config.cpp +@@ -651,7 +651,20 @@ namespace acommon { + } else { // sep == '|' + assert(replace[0] == '$'); + const char * env = getenv(replace.c_str()+1); +- final_str += env ? env : second; ++ if (env) { ++ final_str += env; ++ } else if (second[0] == '$') { ++ // Expand the right-hand side of '|', which starts with a ++ // reference to an environment variable. ++ auto slash = second.find('/'); ++ String variable = second.substr(1, slash - 1); ++ const char * env = getenv(variable.c_str()); ++ String value = env ? String(env) : ""; ++ value += second.substr(slash, second.size() - slash); ++ final_str += value; ++ } else { ++ final_str += second; ++ } + } + replace = ""; + in_replace = false; @@ -1349,6 +1349,9 @@ namespace acommon { # define REPL ".aspell.<lang>.prepl" #endif +#undef DICT_DIR -+#define DICT_DIR "<$ASPELL_DICT_DIR|home-dir/.guix-profile/lib/aspell>" ++#define DICT_DIR "<$ASPELL_DICT_DIR|$HOME/.guix-profile/lib/aspell>" + static const KeyInfo config_keys[] = { // the description should be under 50 chars diff --git a/gnu/packages/patches/aspell-gcc-compat.patch b/gnu/packages/patches/aspell-gcc-compat.patch deleted file mode 100644 index 94c44f8fb6..0000000000 --- a/gnu/packages/patches/aspell-gcc-compat.patch +++ /dev/null @@ -1,31 +0,0 @@ -Fix GCC7 warnings. - -Taken from upstream: -https://git.savannah.gnu.org/cgit/aspell.git/commit/?id=8089fa02122fed0a6394eba14bbedcb1d18e2384 - -diff --git a/modules/filter/tex.cpp b/modules/filter/tex.cpp -index a979539..19ab63c 100644 ---- a/modules/filter/tex.cpp -+++ b/modules/filter/tex.cpp -@@ -174,7 +174,7 @@ namespace { - - if (c == '{') { - -- if (top.in_what == Parm || top.in_what == Opt || top.do_check == '\0') -+ if (top.in_what == Parm || top.in_what == Opt || *top.do_check == '\0') - push_command(Parm); - - top.in_what = Parm; -diff --git a/prog/check_funs.cpp b/prog/check_funs.cpp -index db54f3d..89ee09d 100644 ---- a/prog/check_funs.cpp -+++ b/prog/check_funs.cpp -@@ -647,7 +647,7 @@ static void print_truncate(FILE * out, const char * word, int width) { - } - } - if (i == width-1) { -- if (word == '\0') -+ if (*word == '\0') - put(out,' '); - else if (word[len] == '\0') - put(out, word, len); diff --git a/gnu/packages/patches/bash-linux-pgrp-pipe.patch b/gnu/packages/patches/bash-linux-pgrp-pipe.patch new file mode 100644 index 0000000000..234a55e897 --- /dev/null +++ b/gnu/packages/patches/bash-linux-pgrp-pipe.patch @@ -0,0 +1,32 @@ +Unconditionally enable PGRP_PIPE on Linux (the kernel), regardless of +the kernel version in use on the build machine. + +--- configure.ac.orig 2019-01-02 09:38:44.000000000 -0500 ++++ configure.ac 2019-08-15 16:40:24.271758379 -0400 +@@ -1108,10 +1108,7 @@ + solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +- case "`uname -r`" in +- 1.*|2.[[0123]]*) : ;; +- *) AC_DEFINE(PGRP_PIPE) ;; +- esac ;; ++ AC_DEFINE(PGRP_PIPE) ;; + netbsd*|openbsd*) LOCAL_CFLAGS="-DDEV_FD_STAT_BROKEN" ;; + *qnx[[67]]*) LOCAL_LIBS="-lncurses" ;; + *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;; +--- configure.orig 2019-01-02 09:43:04.000000000 -0500 ++++ configure 2019-08-15 16:41:44.440155912 -0400 +@@ -16312,11 +16312,7 @@ + solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +- case "`uname -r`" in +- 1.*|2.[0123]*) : ;; +- *) $as_echo "#define PGRP_PIPE 1" >>confdefs.h +- ;; +- esac ;; ++ $as_echo "#define PGRP_PIPE 1" >>confdefs.h ;; + netbsd*|openbsd*) LOCAL_CFLAGS="-DDEV_FD_STAT_BROKEN" ;; + *qnx[67]*) LOCAL_LIBS="-lncurses" ;; + *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;; diff --git a/gnu/packages/patches/bc-fix-cross-compilation.patch b/gnu/packages/patches/bc-fix-cross-compilation.patch new file mode 100644 index 0000000000..14dfecdbde --- /dev/null +++ b/gnu/packages/patches/bc-fix-cross-compilation.patch @@ -0,0 +1,171 @@ +Patch taken from nix. + +commit fdda59736ddc048cf38a2c7103f4f5d9eeaf995e +Author: Ben Gamari <ben@smart-cactus.org> +Date: Tue Oct 17 10:51:34 2017 -0400 + + Try implementing cross-compilation + +diff --git a/bc/Makefile.am b/bc/Makefile.am +index d9d412e..fdef633 100644 +--- a/bc/Makefile.am ++++ b/bc/Makefile.am +@@ -17,6 +17,7 @@ MAINTAINERCLEANFILES = Makefile.in bc.c bc.h scan.c \ + + AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../h + LIBBC = ../lib/libbc.a ++LIBBC_HOST = ../lib/libbc_host.a + LIBL = @LEXLIB@ + LDADD = $(LIBBC) $(LIBL) @READLINELIB@ + +@@ -29,12 +30,20 @@ $(PROGRAMS): libmath.h $(LIBBC) + scan.o: bc.h + global.o: libmath.h ++ ++main_host.c : main.c ++ cp $< $@ + +-fbcOBJ = main.o bc.o scan.o execute.o load.o storage.o util.o warranty.o ++fbcOBJ = $(addsuffix _host,main.o bc.o scan.o execute.o load.o storage.o util.o warranty.o) ++ ++%.o_host : CC:=$(CC_FOR_BUILD) ++ ++%.o_host : %.c ++ $(COMPILE) -c $(CFLAGS) $(INCLUDES) -o $@ $< + +-libmath.h: libmath.b $(fbcOBJ) $(LIBBC) ++libmath.h: libmath.b $(fbcOBJ) $(LIBBC_HOST) + echo '{0}' > libmath.h +- $(MAKE) global.o +- $(LINK) -o fbc $(fbcOBJ) global.o $(LIBBC) $(LIBL) $(READLINELIB) $(LIBS) ++ $(MAKE) global.o_host ++ $(CC_FOR_BUILD) -o fbc $(fbcOBJ) global.o_host $(LIBBC_HOST) $(LIBL) ${READLINELIB} $(LIBS) + ./fbc -c $(srcdir)/libmath.b </dev/null >libmath.h + $(srcdir)/fix-libmath_h + rm -f ./fbc ./global.o +diff --git a/configure.ac b/configure.ac +index fc74573..5cabb73 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -20,6 +20,7 @@ m4_define([dc_version], 1.4.1) + + AC_INIT([bc],[bc_version]) + AC_CONFIG_SRCDIR(doc/bc.1) ++AC_CONFIG_MACRO_DIR([m4]) + AM_INIT_AUTOMAKE([dist-bzip2]) + AC_CONFIG_HEADERS(config.h) + +@@ -35,6 +36,7 @@ AC_DEFINE([DC_COPYRIGHT], + [Define the dc copyright line.]) + + AC_PROG_CC ++AX_CC_FOR_BUILD + AC_USE_SYSTEM_EXTENSIONS + + AM_PROG_LEX +diff --git a/lib/Makefile.am b/lib/Makefile.am +index ec4bf59..c670f5b 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -1,5 +1,5 @@ + ## Process this file with automake to produce Makefile.in +-noinst_LIBRARIES = libbc.a ++noinst_LIBRARIES = libbc.a libbc_host.a + + AM_CPPFLAGS = -I. -I.. -I$(srcdir)/../h + +@@ -24,3 +24,11 @@ testmul: testmul.o number.o + + specialnumber: newnumber.o + cp newnumber.o number.o ++ ++%.o_host : CC:=$(CC_FOR_BUILD) ++%.o_host : %.c ++ $(COMPILE) -c $(CFLAGS) $(INCLUDES) -o $@ $< ++ ++libbc_host.a : $(addsuffix _host,$(libbc_a_OBJECTS)) ++ ar cru $@ $+ ++ ranlib $@ +diff --git a/m4/cc_for_build.m4 b/m4/cc_for_build.m4 +new file mode 100644 +index 0000000..c62ffad +--- /dev/null ++++ b/m4/cc_for_build.m4 +@@ -0,0 +1,77 @@ ++# =========================================================================== ++# https://www.gnu.org/software/autoconf-archive/ax_cc_for_build.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_CC_FOR_BUILD ++# ++# DESCRIPTION ++# ++# Find a build-time compiler. Sets CC_FOR_BUILD and EXEEXT_FOR_BUILD. ++# ++# LICENSE ++# ++# Copyright (c) 2010 Reuben Thomas <rrt@sc3d.org> ++# Copyright (c) 1999 Richard Henderson <rth@redhat.com> ++# ++# This program is free software: you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by the ++# Free Software Foundation, either version 3 of the License, or (at your ++# option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ++# Public License for more details. ++# ++# You should have received a copy of the GNU General Public License along ++# with this program. If not, see <https://www.gnu.org/licenses/>. ++# ++# As a special exception, the respective Autoconf Macro's copyright owner ++# gives unlimited permission to copy, distribute and modify the configure ++# scripts that are the output of Autoconf when processing the Macro. You ++# need not follow the terms of the GNU General Public License when using ++# or distributing such scripts, even though portions of the text of the ++# Macro appear in them. The GNU General Public License (GPL) does govern ++# all other use of the material that constitutes the Autoconf Macro. ++# ++# This special exception to the GPL applies to versions of the Autoconf ++# Macro released by the Autoconf Archive. When you make and distribute a ++# modified version of the Autoconf Macro, you may extend this special ++# exception to the GPL to apply to your modified version as well. ++ ++#serial 3 ++ ++dnl Get a default for CC_FOR_BUILD to put into Makefile. ++AC_DEFUN([AX_CC_FOR_BUILD], ++[# Put a plausible default for CC_FOR_BUILD in Makefile. ++if test -z "$CC_FOR_BUILD"; then ++ if test "x$cross_compiling" = "xno"; then ++ CC_FOR_BUILD='$(CC)' ++ else ++ CC_FOR_BUILD=gcc ++ fi ++fi ++AC_SUBST(CC_FOR_BUILD) ++# Also set EXEEXT_FOR_BUILD. ++if test "x$cross_compiling" = "xno"; then ++ EXEEXT_FOR_BUILD='$(EXEEXT)' ++else ++ AC_CACHE_CHECK([for build system executable suffix], bfd_cv_build_exeext, ++ [rm -f conftest* ++ echo 'int main () { return 0; }' > conftest.c ++ bfd_cv_build_exeext= ++ ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5 ++ for file in conftest.*; do ++ case $file in ++ *.c | *.o | *.obj | *.ilk | *.pdb) ;; ++ *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;; ++ esac ++ done ++ rm -f conftest* ++ test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no]) ++ EXEEXT_FOR_BUILD="" ++ test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext} ++fi ++AC_SUBST(EXEEXT_FOR_BUILD)])dnl diff --git a/gnu/packages/patches/boost-dumpversion.patch b/gnu/packages/patches/boost-dumpversion.patch new file mode 100644 index 0000000000..7df779cfe6 --- /dev/null +++ b/gnu/packages/patches/boost-dumpversion.patch @@ -0,0 +1,24 @@ +This issue is described here: https://github.com/openwrt/packages/pull/8685 +and has not been solved as of 1.70.0 release. + +--- a/tools/build/src/tools/common.jam ++++ b/tools/build/src/tools/common.jam +@@ -973,18 +973,6 @@ + } + } + +- # From GCC 5, versioning changes and minor becomes patch +- if $(tag) = gcc && [ numbers.less 4 $(version[1]) ] +- { +- version = $(version[1]) ; +- } +- +- # Ditto, from Clang 4 +- if ( $(tag) = clang || $(tag) = clangw ) && [ numbers.less 3 $(version[1]) ] +- { +- version = $(version[1]) ; +- } +- + # On intel, version is not added, because it does not matter and it is the + # version of vc used as backend that matters. Ideally, we should encode the + # backend version but that would break compatibility with V1. diff --git a/gnu/packages/patches/cmake-curl-certificates.patch b/gnu/packages/patches/cmake-curl-certificates.patch index 36252083f8..7fe2615271 100644 --- a/gnu/packages/patches/cmake-curl-certificates.patch +++ b/gnu/packages/patches/cmake-curl-certificates.patch @@ -6,19 +6,19 @@ as well as /etc/ssl/certs. --- cmake-3.13.1/Source/cmCurl.cxx 2019-09-10 17:27:36.926907260 +0200 +++ cmake-3.13.1/Source/cmCurl.cxx 2019-09-10 17:52:35.475903919 +0200 -@@ -4,11 +4,8 @@ - - #include "cmThirdParty.h" +@@ -2,11 +2,8 @@ + file Copyright.txt or https://cmake.org/licensing for details. */ + #include "cmCurl.h" -#if !defined(CMAKE_USE_SYSTEM_CURL) && !defined(_WIN32) && \ - !defined(__APPLE__) && !defined(CURL_CA_BUNDLE) && !defined(CURL_CA_PATH) # define CMAKE_FIND_CAFILE # include "cmSystemTools.h" -#endif + #include "cmStringAlgorithms.h" // curl versions before 7.21.5 did not provide this error code - #if defined(LIBCURL_VERSION_NUM) && LIBCURL_VERSION_NUM < 0x071505 -@@ -29,6 +26,19 @@ std::string cmCurlSetCAInfo(::CURL* curl +@@ -30,6 +27,19 @@ ::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_CAINFO, cafile); check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: "); } diff --git a/gnu/packages/patches/cyrus-sasl-ac-try-run-fix.patch b/gnu/packages/patches/cyrus-sasl-ac-try-run-fix.patch new file mode 100644 index 0000000000..8662e812e9 --- /dev/null +++ b/gnu/packages/patches/cyrus-sasl-ac-try-run-fix.patch @@ -0,0 +1,12 @@ +--- a/m4/sasl2.m4 2018-11-18 22:33:29.902625600 +0300 ++++ b/m4/sasl2.m4 2018-11-18 22:33:59.828746176 +0300 +@@ -339,7 +339,8 @@ + ], + [ AC_DEFINE(HAVE_GSS_SPNEGO,,[Define if your GSSAPI implementation supports SPNEGO]) + AC_MSG_RESULT(yes) ], +- AC_MSG_RESULT(no)) ++ AC_MSG_RESULT(no), ++ AC_MSG_RESULT(no)) + LIBS="$cmu_save_LIBS" + + else diff --git a/gnu/packages/patches/doxygen-test.patch b/gnu/packages/patches/doxygen-test.patch index 8ccb9ec3c4..a2da54a3fa 100644 --- a/gnu/packages/patches/doxygen-test.patch +++ b/gnu/packages/patches/doxygen-test.patch @@ -5,19 +5,40 @@ test. diff -u -r doxygen-1.8.7.orig/testing/012/citelist.xml doxygen-1.8.7/testing/012/citelist.xml --- doxygen-1.8.7.orig/testing/012/citelist.xml 2014-04-24 23:43:34.000000000 +0200 +++ doxygen-1.8.7/testing/012/citelist.xml 2014-04-24 23:49:43.000000000 +0200 -@@ -6,17 +6,6 @@ +@@ -6,38 +6,6 @@ <briefdescription> </briefdescription> <detaileddescription> - <para> - <variablelist> - <varlistentry> -- <term><anchor id="citelist_1CITEREF_knuth79"/>[1]</term> +- <term><anchor id="citelist_1CITEREF_Be09"/>[1]</term> +- </varlistentry> +- <listitem> +- <para>P.<nonbreakablespace/>Belotti. <ulink url="http://doi.org/10.1007/978-1-4614-1927-3_5">Disjunctive cuts for non-convex MINLP</ulink>. In <ulink url="#CITEREF_LeLe12">Lee and Leyffer</ulink> <ulink url="#CITEREF_LeLe12">[4]</ulink>, pages 117<ndash/>144.</para> +- <para/> +- </listitem> +- <varlistentry> +- <term><anchor id="citelist_1CITEREF_BertholdHeinzVigerske2009"/>[2]</term> +- </varlistentry> +- <listitem> +- <para>T.<nonbreakablespace/>Berthold, S.<nonbreakablespace/>Heinz, and S.<nonbreakablespace/>Vigerske. <ulink url="http://doi.org/10.1007/978-1-4614-1927-3_15">Extending a CIP framework to solve MIQCPs</ulink>. In <ulink url="#CITEREF_LeLe12">Lee and Leyffer</ulink> <ulink url="#CITEREF_LeLe12">[4]</ulink>, pages 427<ndash/>444.</para> +- <para/> +- </listitem> +- <varlistentry> +- <term><anchor id="citelist_1CITEREF_knuth79"/>[3]</term> - </varlistentry> - <listitem> - <para>Donald<nonbreakablespace/>E. Knuth. <emphasis>Tex and Metafont, New Directions in Typesetting</emphasis>. American Mathematical Society and Digital Press, Stanford, 1979.</para> - <para/> - </listitem> +- <varlistentry> +- <term><anchor id="citelist_1CITEREF_LeLe12"/>[4]</term> +- </varlistentry> +- <listitem> +- <para>Jon Lee and Sven Leyffer, editors. <ulink url="http://doi.org/10.1007/978-1-4614-1927-3"><emphasis>Mixed Integer Nonlinear Programming</emphasis></ulink>, volume 154 of <emphasis>The IMA Volumes in Mathematics and its Applications</emphasis>. Springer, 2012.</para> +- <para/> +- </listitem> - </variablelist> - </para> </detaileddescription> @@ -26,13 +47,14 @@ diff -u -r doxygen-1.8.7.orig/testing/012/citelist.xml doxygen-1.8.7/testing/012 diff -u -r doxygen-1.8.7.orig/testing/012/indexpage.xml doxygen-1.8.7/testing/012/indexpage.xml --- doxygen-1.8.7.orig/testing/012/indexpage.xml 2014-04-24 23:43:34.000000000 +0200 +++ doxygen-1.8.7/testing/012/indexpage.xml 2014-04-24 23:44:05.000000000 +0200 -@@ -4,7 +4,7 @@ - <compoundname>index</compoundname> - <title>My Project</title> +@@ -6,8 +6,8 @@ + <briefdescription> + </briefdescription> <detaileddescription> -- <para>See <ref refid="citelist_1CITEREF_knuth79" kindref="member">[1]</ref> for more info. </para> -+ <para>See knuth79 for more info. </para> +- <para>See <ref refid="citelist_1CITEREF_knuth79" kindref="member">[3]</ref> for more info.</para> +- <para>Oter references with crosreference see <ref refid="citelist_1CITEREF_Be09" kindref="member">[1]</ref> and <ref refid="citelist_1CITEREF_BertholdHeinzVigerske2009" kindref="member">[2]</ref> for more info. </para> ++ <para>See knuth79 for more info.</para> ++ <para>Oter references with crosreference see Be09 and BertholdHeinzVigerske2009 for more info. </para> </detaileddescription> </compounddef> </doxygen> - diff --git a/gnu/packages/patches/file-CVE-2018-10360.patch b/gnu/packages/patches/file-CVE-2018-10360.patch deleted file mode 100644 index 9285611c04..0000000000 --- a/gnu/packages/patches/file-CVE-2018-10360.patch +++ /dev/null @@ -1,27 +0,0 @@ -https://github.com/file/file/commit/a642587a9c9e2dd7feacdf513c3643ce26ad3c22.patch -The leading part of the patch starting at line 27 was trimmed off. -This patch should be OK to drop with file@5.35. - -From a642587a9c9e2dd7feacdf513c3643ce26ad3c22 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas <christos@zoulas.com> -Date: Sat, 9 Jun 2018 16:00:06 +0000 -Subject: [PATCH] Avoid reading past the end of buffer (Rui Reis) - ---- - src/readelf.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/readelf.c b/src/readelf.c -index 79c83f9f5..1f41b4611 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -842,7 +842,8 @@ do_core_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, - - cname = (unsigned char *) - &nbuf[doff + prpsoffsets(i)]; -- for (cp = cname; *cp && isprint(*cp); cp++) -+ for (cp = cname; cp < nbuf + size && *cp -+ && isprint(*cp); cp++) - continue; - /* - * Linux apparently appends a space at the end diff --git a/gnu/packages/patches/file-CVE-2019-18218.patch b/gnu/packages/patches/file-CVE-2019-18218.patch new file mode 100644 index 0000000000..21069823b7 --- /dev/null +++ b/gnu/packages/patches/file-CVE-2019-18218.patch @@ -0,0 +1,55 @@ +Fix CVE-2019-18218: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-18218 + +Patch copied from upstream source repository: + +https://github.com/file/file/commit/46a8443f76cec4b41ec736eca396984c74664f84 + +From 46a8443f76cec4b41ec736eca396984c74664f84 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas <christos@zoulas.com> +Date: Mon, 26 Aug 2019 14:31:39 +0000 +Subject: [PATCH] Limit the number of elements in a vector (found by oss-fuzz) + +--- + src/cdf.c | 9 ++++----- + src/cdf.h | 1 + + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/cdf.c b/src/cdf.c +index 9d6396742..bb81d6374 100644 +--- a/src/cdf.c ++++ b/src/cdf.c +@@ -1027,8 +1027,9 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h, + goto out; + } + nelements = CDF_GETUINT32(q, 1); +- if (nelements == 0) { +- DPRINTF(("CDF_VECTOR with nelements == 0\n")); ++ if (nelements > CDF_ELEMENT_LIMIT || nelements == 0) { ++ DPRINTF(("CDF_VECTOR with nelements == %" ++ SIZE_T_FORMAT "u\n", nelements)); + goto out; + } + slen = 2; +@@ -1070,8 +1071,6 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h, + goto out; + inp += nelem; + } +- DPRINTF(("nelements = %" SIZE_T_FORMAT "u\n", +- nelements)); + for (j = 0; j < nelements && i < sh.sh_properties; + j++, i++) + { +diff --git a/src/cdf.h b/src/cdf.h +index 2f7e554b7..05056668f 100644 +--- a/src/cdf.h ++++ b/src/cdf.h +@@ -48,6 +48,7 @@ + typedef int32_t cdf_secid_t; + + #define CDF_LOOP_LIMIT 10000 ++#define CDF_ELEMENT_LIMIT 100000 + + #define CDF_SECID_NULL 0 + #define CDF_SECID_FREE -1 diff --git a/gnu/packages/patches/findutils-gnulib-libio.patch b/gnu/packages/patches/findutils-gnulib-libio.patch deleted file mode 100644 index 79f9fd914d..0000000000 --- a/gnu/packages/patches/findutils-gnulib-libio.patch +++ /dev/null @@ -1,114 +0,0 @@ -Adjust to removal of libio interface in glibc 2.28. - -Based on this gnulib commit: -https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=4af4a4a71827c0bc5e0ec67af23edef4f15cee8e - -diff --git a/gl/lib/fflush.c b/gl/lib/fflush.c -index 5ae3e41..7a82470 100644 ---- a/gl/lib/fflush.c -+++ b/gl/lib/fflush.c -@@ -33,7 +33,7 @@ - #undef fflush - - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - - /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */ - static void -@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp) - - #endif - --#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) -+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) - - # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */ -@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream) - if (stream == NULL || ! freading (stream)) - return fflush (stream); - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - - clear_ungetc_buffer_preserving_position (stream); - -diff --git a/gl/lib/fpurge.c b/gl/lib/fpurge.c -index f313b22..ecdf82d 100644 ---- a/gl/lib/fpurge.c -+++ b/gl/lib/fpurge.c -@@ -62,7 +62,7 @@ fpurge (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - <stdio.h>, because they need it for implementing getc() and putc() as - fast macros. */ --# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_IO_read_end = fp->_IO_read_ptr; - fp->_IO_write_ptr = fp->_IO_write_base; - /* Avoid memory leak when there is an active ungetc buffer. */ -diff --git a/gl/lib/freadahead.c b/gl/lib/freadahead.c -index 094daab..3f8101e 100644 ---- a/gl/lib/freadahead.c -+++ b/gl/lib/freadahead.c -@@ -25,7 +25,7 @@ - size_t - freadahead (FILE *fp) - { --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - if (fp->_IO_write_ptr > fp->_IO_write_base) - return 0; - return (fp->_IO_read_end - fp->_IO_read_ptr) -diff --git a/gl/lib/freading.c b/gl/lib/freading.c -index 0512b19..8c48fe4 100644 ---- a/gl/lib/freading.c -+++ b/gl/lib/freading.c -@@ -31,7 +31,7 @@ freading (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - <stdio.h>, because they need it for implementing getc() and putc() as - fast macros. */ --# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - return ((fp->_flags & _IO_NO_WRITES) != 0 - || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0 - && fp->_IO_read_base != NULL)); -diff --git a/gl/lib/fseeko.c b/gl/lib/fseeko.c -index 1c65d2a..9026408 100644 ---- a/gl/lib/fseeko.c -+++ b/gl/lib/fseeko.c -@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence) - #endif - - /* These tests are based on fpurge.c. */ --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - if (fp->_IO_read_end == fp->_IO_read_ptr - && fp->_IO_write_ptr == fp->_IO_write_base - && fp->_IO_save_base == NULL) -@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence) - return -1; - } - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_flags &= ~_IO_EOF_SEEN; - fp->_offset = pos; - #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ -diff --git a/gl/lib/stdio-impl.h b/gl/lib/stdio-impl.h -index 502d891..ea38ee2 100644 ---- a/gl/lib/stdio-impl.h -+++ b/gl/lib/stdio-impl.h -@@ -18,6 +18,12 @@ - the same implementation of stdio extension API, except that some fields - have different naming conventions, or their access requires some casts. */ - -+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this -+ problem by defining it ourselves. FIXME: Do not rely on glibc -+ internals. */ -+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN -+# define _IO_IN_BACKUP 0x100 -+#endif - - /* BSD stdio derived implementations. */ - diff --git a/gnu/packages/patches/findutils-makedev.patch b/gnu/packages/patches/findutils-makedev.patch deleted file mode 100644 index 2f16c625d8..0000000000 --- a/gnu/packages/patches/findutils-makedev.patch +++ /dev/null @@ -1,22 +0,0 @@ -Include <sys/sysmacros.h> for "makedev". - -Taken from this gnulib commit: -https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=4da63c5881f60f71999a943612da9112232b9161 - -diff --git a/gl/lib/mountlist.c b/gl/lib/mountlist.c -index bb4e4ee21..cf4020e2a 100644 ---- a/gl/lib/mountlist.c -+++ b/gl/lib/mountlist.c -@@ -37,6 +37,12 @@ - # include <sys/param.h> - #endif - -+#if MAJOR_IN_MKDEV -+# include <sys/mkdev.h> -+#elif MAJOR_IN_SYSMACROS -+# include <sys/sysmacros.h> -+#endif -+ - #if defined MOUNTED_GETFSSTAT /* OSF_1 and Darwin1.3.x */ - # if HAVE_SYS_UCRED_H - # include <grp.h> /* needed on OSF V4.0 for definition of NGROUPS, diff --git a/gnu/packages/patches/findutils-test-xargs.patch b/gnu/packages/patches/findutils-test-xargs.patch deleted file mode 100644 index 10c7bed28d..0000000000 --- a/gnu/packages/patches/findutils-test-xargs.patch +++ /dev/null @@ -1,22 +0,0 @@ -This test relies on 'xargs' being available in $PATH, which is not -the case when we build the initial Findutils doing bootstrapping. -Reported at <https://savannah.gnu.org/bugs/index.php?46786>. - ---- findutils-4.6.0/find/testsuite/sv-34976-execdir-fd-leak.sh 2015-12-31 19:37:59.401526288 +0100 -+++ findutils-4.6.0/find/testsuite/sv-34976-execdir-fd-leak.sh 2015-12-31 19:38:36.061770693 +0100 -@@ -50,13 +50,14 @@ die() { - # Create test files, each 98 in the directories ".", "one" and "two". - make_test_data() { - d="$1" -+ xargs="`cd ../../xargs; pwd -P`/xargs" - ( - cd "$1" || exit 1 - mkdir one two || exit 1 - for i in ${three_to_hundred} ; do - printf "./%03d one/%03d two/%03d " $i $i $i - done \ -- | xargs touch || exit 1 -+ | "$xargs" touch || exit 1 - ) \ - || die "failed to set up the test in ${outdir}" - } diff --git a/gnu/packages/patches/ghostscript-no-header-id.patch b/gnu/packages/patches/ghostscript-no-header-id.patch index da1aa5530f..45fc95fd6e 100644 --- a/gnu/packages/patches/ghostscript-no-header-id.patch +++ b/gnu/packages/patches/ghostscript-no-header-id.patch @@ -9,10 +9,10 @@ See: https://bugs.ghostscript.com/show_bug.cgi?id=698208 diff -ur orig/gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c --- orig/gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c 2017-07-09 23:30:28.960479189 +0200 +++ gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c 2017-07-09 23:34:34.306524488 +0200 -@@ -1785,8 +1785,11 @@ +@@ -1810,8 +1810,11 @@ * +1 for the linearisation dict and +1 for the primary hint stream. */ - linear_params->FirsttrailerOffset = gp_ftell_64(linear_params->Lin_File.file); + linear_params->FirsttrailerOffset = gp_ftell(linear_params->Lin_File.file); - gs_sprintf(LDict, "\ntrailer\n<</Size %ld/Info %d 0 R/Root %d 0 R/ID[%s%s]/Prev %d>>\nstartxref\r\n0\n%%%%EOF\n \n", - linear_params->LastResource + 3, pdev->ResourceUsage[linear_params->Info_id].NewObjectNumber, pdev->ResourceUsage[linear_params->Catalog_id].NewObjectNumber, fileID, fileID, 0); + gs_sprintf(LDict, "\ntrailer\n<</Size %ld/Info %d 0 R/Root %d 0 R", @@ -20,10 +20,10 @@ diff -ur orig/gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c gnu-ghostscript-9. + if (pdev->OwnerPassword.size > 0 || !(!getenv("GS_GENERATE_UUIDS") || (strcasecmp(getenv("GS_GENERATE_UUIDS"), "0") != 0 && strcasecmp(getenv("GS_GENERATE_UUIDS"), "no") != 0))) /* ID is mandatory when encrypting */ + gs_sprintf(LDict, "/ID[%s%s]", fileID, fileID); + gs_sprintf(LDict, "/Prev %d>>\nstartxref\r\n0\n%%%%EOF\n \n", 0); - fwrite(LDict, strlen(LDict), 1, linear_params->Lin_File.file); + gp_fwrite(LDict, strlen(LDict), 1, linear_params->Lin_File.file); /* Write document catalog (Part 4) */ -@@ -2321,8 +2324,11 @@ +@@ -2346,8 +2349,11 @@ if (code != 0) return_error(gs_error_ioerror); @@ -34,10 +34,10 @@ diff -ur orig/gnu-ghostscript-9.14.0/devices/vector/gdevpdf.c gnu-ghostscript-9. + if (pdev->OwnerPassword.size > 0 || !(!getenv("GS_GENERATE_UUIDS") || (strcasecmp(getenv("GS_GENERATE_UUIDS"), "0") != 0 || strcasecmp(getenv("GS_GENERATE_UUIDS"), "no") != 0))) /* ID is mandatory when encrypting */ + gs_sprintf(LDict, "/ID[%s%s]", fileID, fileID); + gs_sprintf(LDict, "/Prev %"PRId64">>\nstartxref\r\n0\n%%%%EOF\n", mainxref); - fwrite(LDict, strlen(LDict), 1, linear_params->sfile); + gp_fwrite(LDict, strlen(LDict), 1, linear_params->sfile); - code = gp_fseek_64(linear_params->sfile, pdev->ResourceUsage[HintStreamObj].LinearisedOffset, SEEK_SET); -@@ -3016,10 +3022,12 @@ + code = gp_fseek(linear_params->sfile, pdev->ResourceUsage[HintStreamObj].LinearisedOffset, SEEK_SET); +@@ -3012,10 +3018,12 @@ stream_puts(s, "trailer\n"); pprintld3(s, "<< /Size %ld /Root %ld 0 R /Info %ld 0 R\n", pdev->next_id, Catalog_id, Info_id); diff --git a/gnu/packages/patches/giflib-make-reallocarray-private.patch b/gnu/packages/patches/giflib-make-reallocarray-private.patch deleted file mode 100644 index 69228c5be8..0000000000 --- a/gnu/packages/patches/giflib-make-reallocarray-private.patch +++ /dev/null @@ -1,120 +0,0 @@ -Move the declaration from gif_lib.h to gif_lib_private.h to solve -conflicts when some .c-file #includes both stdlib.h and gif_lib.h. -See also https://sourceforge.net/p/giflib/bugs/110/ - -diff -ur giflib-5.1.4.orig/lib/dgif_lib.c giflib-5.1.4/lib/dgif_lib.c ---- giflib-5.1.4.orig/lib/dgif_lib.c 2018-02-28 20:31:02.294682673 +0100 -+++ giflib-5.1.4/lib/dgif_lib.c 2018-02-28 22:38:11.659126414 +0100 -@@ -396,7 +396,7 @@ - - if (GifFile->SavedImages) { - SavedImage* new_saved_images = -- (SavedImage *)reallocarray(GifFile->SavedImages, -+ (SavedImage *)giflib_private_reallocarray(GifFile->SavedImages, - (GifFile->ImageCount + 1), sizeof(SavedImage)); - if (new_saved_images == NULL) { - GifFile->Error = D_GIF_ERR_NOT_ENOUGH_MEM; -@@ -1108,7 +1108,7 @@ - if (ImageSize > (SIZE_MAX / sizeof(GifPixelType))) { - return GIF_ERROR; - } -- sp->RasterBits = (unsigned char *)reallocarray(NULL, ImageSize, -+ sp->RasterBits = (unsigned char *)giflib_private_reallocarray(NULL, ImageSize, - sizeof(GifPixelType)); - - if (sp->RasterBits == NULL) { -diff -ur giflib-5.1.4.orig/lib/gifalloc.c giflib-5.1.4/lib/gifalloc.c ---- giflib-5.1.4.orig/lib/gifalloc.c 2018-02-28 20:31:02.294682673 +0100 -+++ giflib-5.1.4/lib/gifalloc.c 2018-02-28 22:38:11.657126423 +0100 -@@ -8,7 +8,7 @@ - #include <stdio.h> - #include <string.h> - --#include "gif_lib.h" -+#include "gif_lib_private.h" - - #define MAX(x, y) (((x) > (y)) ? (x) : (y)) - -@@ -188,7 +188,7 @@ - - /* perhaps we can shrink the map? */ - if (RoundUpTo < ColorUnion->ColorCount) { -- GifColorType *new_map = (GifColorType *)reallocarray(Map, -+ GifColorType *new_map = (GifColorType *)giflib_private_reallocarray(Map, - RoundUpTo, sizeof(GifColorType)); - if( new_map == NULL ) { - GifFreeMapObject(ColorUnion); -@@ -232,7 +232,7 @@ - if (*ExtensionBlocks == NULL) - *ExtensionBlocks=(ExtensionBlock *)malloc(sizeof(ExtensionBlock)); - else { -- ExtensionBlock* ep_new = (ExtensionBlock *)reallocarray -+ ExtensionBlock* ep_new = (ExtensionBlock *)giflib_private_reallocarray - (*ExtensionBlocks, (*ExtensionBlockCount + 1), - sizeof(ExtensionBlock)); - if( ep_new == NULL ) -@@ -325,7 +325,7 @@ - if (GifFile->SavedImages == NULL) - GifFile->SavedImages = (SavedImage *)malloc(sizeof(SavedImage)); - else -- GifFile->SavedImages = (SavedImage *)reallocarray(GifFile->SavedImages, -+ GifFile->SavedImages = (SavedImage *)giflib_private_reallocarray(GifFile->SavedImages, - (GifFile->ImageCount + 1), sizeof(SavedImage)); - - if (GifFile->SavedImages == NULL) -@@ -355,7 +355,7 @@ - } - - /* next, the raster */ -- sp->RasterBits = (unsigned char *)reallocarray(NULL, -+ sp->RasterBits = (unsigned char *)giflib_private_reallocarray(NULL, - (CopyFrom->ImageDesc.Height * - CopyFrom->ImageDesc.Width), - sizeof(GifPixelType)); -@@ -369,7 +369,7 @@ - - /* finally, the extension blocks */ - if (sp->ExtensionBlocks != NULL) { -- sp->ExtensionBlocks = (ExtensionBlock *)reallocarray(NULL, -+ sp->ExtensionBlocks = (ExtensionBlock *)giflib_private_reallocarray(NULL, - CopyFrom->ExtensionBlockCount, - sizeof(ExtensionBlock)); - if (sp->ExtensionBlocks == NULL) { -diff -ur giflib-5.1.4.orig/lib/gif_lib.h giflib-5.1.4/lib/gif_lib.h ---- giflib-5.1.4.orig/lib/gif_lib.h 2018-02-28 20:31:02.294682673 +0100 -+++ giflib-5.1.4/lib/gif_lib.h 2018-02-28 20:31:43.135716712 +0100 -@@ -244,9 +244,6 @@ - GifPixelType ColorTransIn2[]); - extern int GifBitSize(int n); - --extern void * --reallocarray(void *optr, size_t nmemb, size_t size); -- - /****************************************************************************** - Support for the in-core structures allocation (slurp mode). - ******************************************************************************/ -diff -ur giflib-5.1.4.orig/lib/gif_lib_private.h giflib-5.1.4/lib/gif_lib_private.h ---- giflib-5.1.4.orig/lib/gif_lib_private.h 2018-02-28 20:31:02.294682673 +0100 -+++ giflib-5.1.4/lib/gif_lib_private.h 2018-02-28 22:38:11.657126423 +0100 -@@ -54,6 +54,9 @@ - bool gif89; - } GifFilePrivateType; - -+extern void * -+giflib_private_reallocarray(void *optr, size_t nmemb, size_t size); -+ - #endif /* _GIF_LIB_PRIVATE_H */ - - /* end */ -diff -ur giflib-5.1.4.orig/lib/openbsd-reallocarray.c giflib-5.1.4/lib/openbsd-reallocarray.c ---- giflib-5.1.4.orig/lib/openbsd-reallocarray.c 2018-02-28 20:31:02.295682659 +0100 -+++ giflib-5.1.4/lib/openbsd-reallocarray.c 2018-02-28 22:38:11.656126428 +0100 -@@ -27,7 +27,7 @@ - #define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4)) - - void * --reallocarray(void *optr, size_t nmemb, size_t size) -+giflib_private_reallocarray(void *optr, size_t nmemb, size_t size) - { - if ((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) && - nmemb > 0 && SIZE_MAX / nmemb < size) { diff --git a/gnu/packages/patches/glibc-CVE-2019-19126.patch b/gnu/packages/patches/glibc-CVE-2019-19126.patch new file mode 100644 index 0000000000..5b9ac58ab7 --- /dev/null +++ b/gnu/packages/patches/glibc-CVE-2019-19126.patch @@ -0,0 +1,22 @@ +Fix CVE-2019-19126: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-19126 +https://sourceware.org/bugzilla/show_bug.cgi?id=25204 + +Taken from upstream: +https://sourceware.org/git/?p=glibc.git;a=commit;h=37c90e117310728a4ad1eb998c0bbe7d79c4a398 + +diff --git a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h +index 975cbe2..df2cdfd 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h ++++ b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h +@@ -31,7 +31,8 @@ + environment variable, LD_PREFER_MAP_32BIT_EXEC. */ + #define EXTRA_LD_ENVVARS \ + case 21: \ +- if (memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \ ++ if (!__libc_enable_secure \ ++ && memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \ + GLRO(dl_x86_cpu_features).feature[index_arch_Prefer_MAP_32BIT_EXEC] \ + |= bit_arch_Prefer_MAP_32BIT_EXEC; \ + break; diff --git a/gnu/packages/patches/gsl-test-i686.patch b/gnu/packages/patches/gsl-test-i686.patch deleted file mode 100644 index 8828c08614..0000000000 --- a/gnu/packages/patches/gsl-test-i686.patch +++ /dev/null @@ -1,17 +0,0 @@ -Work around a test failure due to a rounding issue on 32-bit -platforms, as reported at: - - https://lists.gnu.org/archive/html/bug-gsl/2016-10/msg00000.html - ---- gsl-2.2.1/linalg/test.c 2016-10-05 13:27:42.464059730 +0200 -+++ gsl-2.2.1/linalg/test.c 2016-10-05 13:27:46.988095882 +0200 -@@ -4843,9 +4843,6 @@ main(void) - gsl_test(test_cholesky_decomp_unit(), "Cholesky Decomposition [unit triangular]"); - gsl_test(test_cholesky_solve(), "Cholesky Solve"); - -- gsl_test(test_cholesky_decomp(r), "Cholesky Decomposition"); -- gsl_test(test_cholesky_invert(r), "Cholesky Inverse"); -- gsl_test(test_pcholesky_decomp(r), "Pivoted Cholesky Decomposition"); - gsl_test(test_pcholesky_solve(r), "Pivoted Cholesky Solve"); - gsl_test(test_pcholesky_invert(r), "Pivoted Cholesky Inverse"); - gsl_test(test_mcholesky_decomp(r), "Modified Cholesky Decomposition"); diff --git a/gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch b/gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch new file mode 100644 index 0000000000..9ea9a47677 --- /dev/null +++ b/gnu/packages/patches/guile-sqlite3-fix-cross-compilation.patch @@ -0,0 +1,55 @@ +From a6e9e62a77ecc5012929613e20da23b2636450a5 Mon Sep 17 00:00:00 2001 +From: Mathieu Othacehe <mathieu.othacehe@parrot.com> +Date: Mon, 25 Mar 2019 11:00:38 +0100 +Subject: [PATCH] cross compile + +--- + build-aux/guile.am | 2 +- + configure.ac | 19 ++++++++++++------- + 2 files changed, 13 insertions(+), 8 deletions(-) + +diff --git a/build-aux/guile.am b/build-aux/guile.am +index dc1e63f..3126372 100644 +--- a/build-aux/guile.am ++++ b/build-aux/guile.am +@@ -16,4 +16,4 @@ EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES) + GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat + SUFFIXES = .scm .go + .scm.go: +- $(AM_V_GEN)$(top_builddir)/env $(GUILE_TOOLS) compile $(GUILE_WARNINGS) -o "$@" "$<" ++ $(AM_V_GEN)$(top_builddir)/env $(GUILE_TOOLS) compile $(GUILE_TARGET) $(GUILE_WARNINGS) -o "$@" "$<" +diff --git a/configure.ac b/configure.ac +index f648fcb..2d34d0a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -21,15 +21,20 @@ PKG_CHECK_MODULES([SQLITE], [sqlite3]) + SQLITE_LIBDIR="`"$PKG_CONFIG" sqlite3 --variable libdir`" + AC_SUBST([SQLITE_LIBDIR]) + +-AC_MSG_CHECKING([whether '$SQLITE_LIBDIR/libsqlite3' is usable]) +-GUILE_CHECK([retval], +- [(dynamic-func \"sqlite3_open_v2\" ++if test "$cross_compiling" = "no"; then ++ AC_MSG_CHECKING([whether '$SQLITE_LIBDIR/libsqlite3' is usable]) ++ GUILE_CHECK([retval], ++ [(dynamic-func \"sqlite3_open_v2\" + (dynamic-link \"$SQLITE_LIBDIR/libsqlite3\"))]) +-if test "$retval" != 0; then +- AC_MSG_RESULT([no]) +- AC_MSG_ERROR([failed to load '$SQLITE_LIBDIR/libsqlite3']) ++ if test "$retval" != 0; then ++ AC_MSG_RESULT([no]) ++ AC_MSG_ERROR([failed to load '$SQLITE_LIBDIR/libsqlite3']) ++ else ++ AC_MSG_RESULT([yes]) ++ fi + else +- AC_MSG_RESULT([yes]) ++ GUILE_TARGET="--target=$host_alias" ++ AC_SUBST([GUILE_TARGET]) + fi + + AC_CONFIG_FILES([Makefile sqlite3.scm]) +-- +2.17.1 + diff --git a/gnu/packages/patches/libffi-3.2.1-complex-alpha.patch b/gnu/packages/patches/libffi-3.2.1-complex-alpha.patch deleted file mode 100644 index ebbc0635a5..0000000000 --- a/gnu/packages/patches/libffi-3.2.1-complex-alpha.patch +++ /dev/null @@ -1,28 +0,0 @@ -The patch fixes build failure of form: - ../src/alpha/osf.S:298:2: error: #error "osf.S out of sync with ffi.h" -Upstream fixed the bug in a more invasive way -but didn't have releases since 3.2.1. - -The patch is taken from Gentoo: -https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-libs/libffi/files/libffi-3.2.1-complex_alpha.patch - ---- libffi-3.2.1/src/alpha/osf.S 2015-01-16 10:46:15.000000000 +0100 -+++ libffi-3.2.1/src/alpha/osf.S 2015-01-16 10:46:24.000000000 +0100 -@@ -279,6 +279,7 @@ - .gprel32 $load_64 # FFI_TYPE_SINT64 - .gprel32 $load_none # FFI_TYPE_STRUCT - .gprel32 $load_64 # FFI_TYPE_POINTER -+ .gprel32 $load_none # FFI_TYPE_COMPLEX - - /* Assert that the table above is in sync with ffi.h. */ - -@@ -294,7 +295,8 @@ - || FFI_TYPE_SINT64 != 12 \ - || FFI_TYPE_STRUCT != 13 \ - || FFI_TYPE_POINTER != 14 \ -- || FFI_TYPE_LAST != 14 -+ || FFI_TYPE_COMPLEX != 15 \ -+ || FFI_TYPE_LAST != 15 - #error "osf.S out of sync with ffi.h" - #endif - diff --git a/gnu/packages/patches/libxslt-generated-ids.patch b/gnu/packages/patches/libxslt-generated-ids.patch index 4273875c7c..1cd2363d6a 100644 --- a/gnu/packages/patches/libxslt-generated-ids.patch +++ b/gnu/packages/patches/libxslt-generated-ids.patch @@ -162,10 +162,10 @@ diff --git a/libxslt/xsltInternals.h b/libxslt/xsltInternals.h index 95e8fe6..8eedae4 100644 --- a/libxslt/xsltInternals.h +++ b/libxslt/xsltInternals.h -@@ -1786,6 +1786,8 @@ struct _xsltTransformContext { - int funcLevel; /* Needed to catch recursive functions issues */ - int maxTemplateDepth; +@@ -1782,6 +1782,8 @@ struct _xsltTransformContext { int maxTemplateVars; + unsigned long opLimit; + unsigned long opCount; + + unsigned long nextid;/* for generating stable ids */ }; diff --git a/gnu/packages/patches/python-2.7-search-paths.patch b/gnu/packages/patches/python-2.7-search-paths.patch index a012bc8fe0..5a345c7691 100644 --- a/gnu/packages/patches/python-2.7-search-paths.patch +++ b/gnu/packages/patches/python-2.7-search-paths.patch @@ -3,13 +3,17 @@ looking for headers and libraries. --- Python-2.7.10/setup.py 2015-10-07 18:33:18.125153186 +0200 +++ Python-2.7.10/setup.py 2015-10-07 18:33:47.497347552 +0200 -@@ -526,6 +526,10 @@ class PyBuildExt(build_ext): +@@ -526,6 +526,14 @@ class PyBuildExt(build_ext): inc_dirs += ['/system/include', '/atheos/autolnk/include'] inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) + # Always honor these variables. -+ lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) -+ inc_dirs += os.getenv('CPATH', '').split(os.pathsep) ++ if not cross_compiling: ++ lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) ++ inc_dirs += os.getenv('CPATH', '').split(os.pathsep) ++ else: ++ lib_dirs = os.getenv('CROSS_LIBRARY_PATH', '').split(os.pathsep) ++ inc_dirs = os.getenv('CROSS_CPATH', '').split(os.pathsep) + # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) if host_platform in ['osf1', 'unixware7', 'openunix8']: diff --git a/gnu/packages/patches/python-3-search-paths.patch b/gnu/packages/patches/python-3-search-paths.patch index 5fea9c66b6..cf1647207b 100644 --- a/gnu/packages/patches/python-3-search-paths.patch +++ b/gnu/packages/patches/python-3-search-paths.patch @@ -3,7 +3,7 @@ looking for headers and libraries. --- a/setup.py 2015-10-07 23:32:58.891329173 +0200 +++ b/setup.py 2015-10-07 23:46:29.653349924 +0200 -@@ -575,8 +575,8 @@ +@@ -575,15 +575,15 @@ # if a file is found in one of those directories, it can # be assumed that no additional -I,-L directives are needed. if not cross_compiling: @@ -14,3 +14,12 @@ looking for headers and libraries. else: # Add the sysroot paths. 'sysroot' is a compiler option used to # set the logical path of the standard system headers and + # libraries. +- lib_dirs = (self.compiler.library_dirs + ++ lib_dirs = (os.getenv('CROSS_LIBRARY_PATH', '').split(os.pathsep) + + sysroot_paths(('LDFLAGS', 'CC'), system_lib_dirs)) +- inc_dirs = (self.compiler.include_dirs + ++ inc_dirs = (os.getenv('CROSS_CPATH', '').split(os.pathsep) + + sysroot_paths(('CPPFLAGS', 'CFLAGS', 'CC'), + system_include_dirs)) + exts = [] diff --git a/gnu/packages/patches/python-cross-compile.patch b/gnu/packages/patches/python-cross-compile.patch new file mode 100644 index 0000000000..5a470e1852 --- /dev/null +++ b/gnu/packages/patches/python-cross-compile.patch @@ -0,0 +1,145 @@ +Patch taken from https://bugs.python.org/issue22724 and augmented with +following Nix patch +https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/python/cpython/2.7/cross-compile.patch +to fix the whole cross-compilation circus. + +--- + Makefile.pre.in | 14 +++++++------- + configure | 5 ++++- + setup.py | 9 ++++++--- + 3 files changed, 17 insertions(+), 11 deletions(-) + +diff --git a/Makefile.pre.in b/Makefile.pre.in +index 2a14f3323b..6239fc32fc 100644 +--- a/Makefile.pre.in ++++ b/Makefile.pre.in +@@ -492,7 +492,7 @@ $(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) + $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST) + + platform: $(BUILDPYTHON) pybuilddir.txt +- $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform ++ $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform + + # Create build directory and generate the sysconfig build-time data there. + # pybuilddir.txt contains the name of the build dir and is used for +@@ -503,7 +503,7 @@ platform: $(BUILDPYTHON) pybuilddir.txt + # or removed in case of failure. + pybuilddir.txt: $(BUILDPYTHON) + @echo "none" > ./pybuilddir.txt +- $(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ;\ ++ $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ;\ + if test $$? -ne 0 ; then \ + echo "generate-posix-vars failed" ; \ + rm -f ./pybuilddir.txt ; \ +@@ -525,7 +525,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o + esac; \ + $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \ + _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ +- $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build ++ $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build + + # Build static library + # avoid long command lines, same as LIBRARY_OBJS +@@ -928,7 +928,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoninstall bininstall maninstall @FRAMEWORKI + upgrade) ensurepip="--upgrade" ;; \ + install|*) ensurepip="" ;; \ + esac; \ +- $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ ++ $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -m ensurepip \ + $$ensurepip --root=$(DESTDIR)/ ; \ + fi + +@@ -939,7 +939,7 @@ altinstall: commoninstall + upgrade) ensurepip="--altinstall --upgrade --no-default-pip" ;; \ + install|*) ensurepip="--altinstall --no-default-pip" ;; \ + esac; \ +- $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \ ++ $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -m ensurepip \ + $$ensurepip --root=$(DESTDIR)/ ; \ + fi + +@@ -1270,7 +1270,7 @@ libainstall: @DEF_MAKE_RULE@ python-config + # Install the dynamically loadable modules + # This goes into $(exec_prefix) + sharedinstall: sharedmods +- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ ++ $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \ + --prefix=$(prefix) \ + --install-scripts=$(BINDIR) \ + --install-platlib=$(DESTSHARED) \ +@@ -1344,7 +1344,7 @@ frameworkinstallextras: + # This installs a few of the useful scripts in Tools/scripts + scriptsinstall: + SRCDIR=$(srcdir) $(RUNSHARED) \ +- $(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \ ++ $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \ + --prefix=$(prefix) \ + --install-scripts=$(BINDIR) \ + --root=$(DESTDIR)/ +diff --git a/configure b/configure +index 67300fe2b6..6050f588c5 100755 +--- a/configure ++++ b/configure +@@ -741,6 +741,7 @@ CONFIG_ARGS + SOVERSION + VERSION + PYTHON_FOR_BUILD ++PY_BUILD_ENVIRON + PYTHON_FOR_REGEN + host_os + host_vendor +@@ -2964,7 +2965,8 @@ $as_echo_n "checking for python interpreter for cross build... " >&6; } + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $interp" >&5 + $as_echo "$interp" >&6; } +- PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp ++ PY_BUILD_ENVIRON='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR)' ++ PYTHON_FOR_BUILD=$interp + fi + elif test "$cross_compiling" = maybe; then + as_fn_error $? "Cross compiling required --host=HOST-TUPLE and --build=ARCH" "$LINENO" 5 +@@ -2974,6 +2976,7 @@ fi + + + ++ + if test "$prefix" != "/"; then + prefix=`echo "$prefix" | sed -e 's/\/$//g'` + fi +diff --git a/setup.py b/setup.py +index cb47a2339c..472e7e2b26 100644 +--- a/setup.py ++++ b/setup.py +@@ -497,8 +497,6 @@ class PyBuildExt(build_ext): + if not cross_compiling: + add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') + add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') +- if cross_compiling: +- self.add_gcc_paths() + self.add_multiarch_paths() + + # Add paths specified in the environment variables LDFLAGS and +@@ -556,7 +554,10 @@ class PyBuildExt(build_ext): + # be assumed that no additional -I,-L directives are needed. + inc_dirs = self.compiler.include_dirs[:] + lib_dirs = self.compiler.library_dirs[:] +- if not cross_compiling: ++ if cross_compiling: ++ inc_dirs = [] ++ lib_dirs = [] ++ else: + for d in ( + '/usr/include', + ): +@@ -621,6 +622,8 @@ class PyBuildExt(build_ext): + # Some modules that are normally always on: + #exts.append( Extension('_weakref', ['_weakref.c']) ) + ++ self.compiler.library_dirs = lib_dirs + [ '.' ] ++ + # array objects + exts.append( Extension('array', ['arraymodule.c']) ) + +-- +2.17.1 + diff --git a/gnu/packages/patches/swig-guile-gc.patch b/gnu/packages/patches/swig-guile-gc.patch deleted file mode 100644 index 0e745a6247..0000000000 --- a/gnu/packages/patches/swig-guile-gc.patch +++ /dev/null @@ -1,76 +0,0 @@ -Fix garbage collection for Guile versions >= 2.0.12. This issue showed -up when running the tests on i686-linux. - -Taken from this upstream commit: -https://github.com/swig/swig/commit/38f2ab0c30e369e63bbd0a6152108488d0de68e1 - -diff --git a/Lib/guile/guile_scm_run.swg b/Lib/guile/guile_scm_run.swg -index 274f197158..0d04cb7c62 100644 ---- a/Lib/guile/guile_scm_run.swg -+++ b/Lib/guile/guile_scm_run.swg -@@ -99,6 +99,7 @@ SWIG_Guile_scm2newstr(SCM str, size_t *len) { - static int swig_initialized = 0; - static scm_t_bits swig_tag = 0; - static scm_t_bits swig_collectable_tag = 0; -+static scm_t_bits swig_finalized_tag = 0; - static scm_t_bits swig_destroyed_tag = 0; - static scm_t_bits swig_member_function_tag = 0; - static SCM swig_make_func = SCM_EOL; -@@ -163,7 +164,19 @@ SWIG_Guile_PointerType(SCM object) - } - else scm_wrong_type_arg("SWIG-Guile-PointerType", 1, object); - } -- -+ -+SWIGINTERN int -+SWIG_Guile_IsValidSmob(SCM smob) -+{ -+ /* We do not accept smobs representing destroyed pointers, but we have to -+ allow finalized smobs because Guile >= 2.0.12 sets all smob instances -+ to the 'finalized' type before calling their 'free' function. This change -+ was introduced to Guile in commit 8dff3af087c6eaa83ae0d72aa8b22aef5c65d65d */ -+ return SCM_SMOB_PREDICATE(swig_tag, smob) -+ || SCM_SMOB_PREDICATE(swig_collectable_tag, smob) -+ || SCM_SMOB_PREDICATE(swig_finalized_tag, smob); -+} -+ - SWIGINTERN int - SWIG_Guile_ConvertPtr(SCM s, void **result, swig_type_info *type, int flags) - { -@@ -179,8 +192,7 @@ SWIG_Guile_ConvertPtr(SCM s, void **result, swig_type_info *type, int flags) - *result = SCM_POINTER_VALUE(s); - return SWIG_OK; - #endif /* if SCM_MAJOR_VERSION >= 2 */ -- } else if (SCM_SMOB_PREDICATE(swig_tag, smob) || SCM_SMOB_PREDICATE(swig_collectable_tag, smob)) { -- /* we do not accept smobs representing destroyed pointers */ -+ } else if (SWIG_Guile_IsValidSmob(smob)) { - from = (swig_type_info *) SCM_CELL_WORD_2(smob); - if (!from) return SWIG_ERROR; - if (type) { -@@ -239,7 +251,7 @@ SWIG_Guile_MarkPointerNoncollectable(SCM s) - { - SCM smob = SWIG_Guile_GetSmob(s); - if (!SCM_NULLP(smob)) { -- if (SCM_SMOB_PREDICATE(swig_tag, smob) || SCM_SMOB_PREDICATE(swig_collectable_tag, smob)) { -+ if (SWIG_Guile_IsValidSmob(smob)) { - SCM_SET_CELL_TYPE(smob, swig_tag); - } - else scm_wrong_type_arg(NULL, 0, s); -@@ -252,7 +264,7 @@ SWIG_Guile_MarkPointerDestroyed(SCM s) - { - SCM smob = SWIG_Guile_GetSmob(s); - if (!SCM_NULLP(smob)) { -- if (SCM_SMOB_PREDICATE(swig_tag, smob) || SCM_SMOB_PREDICATE(swig_collectable_tag, smob)) { -+ if (SWIG_Guile_IsValidSmob(smob)) { - SCM_SET_CELL_TYPE(smob, swig_destroyed_tag); - } - else scm_wrong_type_arg(NULL, 0, s); -@@ -419,6 +431,8 @@ SWIG_Guile_Init () - scm_set_smob_print(swig_collectable_tag, print_collectable_swig); - scm_set_smob_equalp(swig_collectable_tag, equalp_swig); - scm_set_smob_free(swig_collectable_tag, free_swig); -+ /* For Guile >= 2.0.12. See libguile/smob.c:clear_smobnum */ -+ swig_finalized_tag = swig_collectable_tag & ~0xff00; - } - if (ensure_smob_tag(swig_module, &swig_destroyed_tag, - "destroyed-swig-pointer", "destroyed-swig-pointer-tag")) { diff --git a/gnu/packages/patches/tcl-fix-cross-compilation.patch b/gnu/packages/patches/tcl-fix-cross-compilation.patch new file mode 100644 index 0000000000..00c36b8f27 --- /dev/null +++ b/gnu/packages/patches/tcl-fix-cross-compilation.patch @@ -0,0 +1,39 @@ +From f7fa48c4c75a1e748dc5071e709c0b62ff739eaa Mon Sep 17 00:00:00 2001 +From: "jan.nijtmans" <nijtmans@users.sourceforge.net> +Date: Mon, 9 Dec 2019 10:02:20 +0000 +Subject: [PATCH] Fix [abd4abedd2]: Failed to build tk 8.6.10 with cross + compile + +Patch taken from upstream to fix cross-compilation. To be removed on next Tcl release. + +--- + compat/strtol.c | 2 +- + compat/strtoul.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/compat/strtol.c b/compat/strtol.c +index b7f69196ce2..811006a64c3 100644 +--- a/compat/strtol.c ++++ b/compat/strtol.c +@@ -53,7 +53,7 @@ strtol( + */ + + p = string; +- while (TclIsSpaceProc(*p)) { ++ while (isspace(UCHAR(*p))) { + p += 1; + } + +diff --git a/compat/strtoul.c b/compat/strtoul.c +index e37eb05f823..15587f1da1a 100644 +--- a/compat/strtoul.c ++++ b/compat/strtoul.c +@@ -74,7 +74,7 @@ strtoul( + */ + + p = string; +- while (TclIsSpaceProc(*p)) { ++ while (isspace(UCHAR(*p))) { + p += 1; + } + if (*p == '-') { diff --git a/gnu/packages/patches/tcsh-fix-autotest.patch b/gnu/packages/patches/tcsh-fix-autotest.patch index 78444a1b2a..200867cb9b 100644 --- a/gnu/packages/patches/tcsh-fix-autotest.patch +++ b/gnu/packages/patches/tcsh-fix-autotest.patch @@ -63,38 +63,14 @@ AT_DATA([comment2.csh], [[echo testing...@%:@\ -@@ -567,10 +567,10 @@ run=3 -# Adapt to changes in sed 4.3: -# https://github.com/tcsh-org/tcsh/commit/2ad4fc1705893207598ed5cd21713ddf3f17bba0 - ]]) - AT_DATA([uniformity_test.csh], - [[ --set SERVICE_NAME_LOG = `cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[:blank:]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g'` -+set SERVICE_NAME_LOG = `cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[[:blank:]]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g'` - echo -n "$SERVICE_NAME_LOG" > ./output1 - --cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[:blank:]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g' > ./output2 -+cat batchsystem.properties | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[[:blank:]]*\([^$]*\)$/\1/p' | perl -pe 's/\s//g' | perl -pe 's/\)/\\\)/g' | perl -pe 's/\(/\\\(/g' > ./output2 - - diff -uprN ./output1 ./output2 >& /dev/null - -@@ -587,7 +587,7 @@ AT_DATA([quoting_result_test.csh], - echo "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP\)(HOST=db\)(PORT=1521\)\)(CONNECT_DATA=(SERVER=DEDICATED\)(SERVICE_NAME=bns03\)\)\)" > ./expected_result - - set string = "jdbc_url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=bns03)))" --set SERVICE_NAME_LOG = `echo "$string" | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[:blank:]*\([^$]*\)$/\1/p' | perl -pe 's/\)/\\\)/g'` -+set SERVICE_NAME_LOG = `echo "$string" | grep '^jdbc_url' | sed -ne 's/^[^=]*=[^@]*@[[:blank:]]*\([^$]*\)$/\1/p' | perl -pe 's/\)/\\\)/g'` - - echo "$SERVICE_NAME_LOG" > ./actual_result - --- tests/subst.at +++ tests/subst.at -@@ -54,7 +54,7 @@ AT_CHECK([echo 'echo ~; echo "$HOME"' | tcsh -f | uniq | wc -l | tr -d ' \t'], +@@ -54,7 +54,7 @@ AT_CHECK([export HOME=$(getent passwd $(id -un) | awk -F: '{ print $(NF - 1) }') , [1 ]) --AT_CHECK([echo "echo ~$(id -un)/foo; echo \"$HOME/foo\"" | tcsh -f | uniq dnl -+AT_CHECK([echo "echo ~$(id -un)/foo; echo \"$HOME/foo\"" | tcsh -f | grep -v "/homeless-shelter" | uniq dnl +-AT_CHECK([export HOME=$(getent passwd $(id -un) | awk -F: '{ print $(NF - 1) }'); echo "echo ~$(id -un)/foo; echo \"\$HOME/foo\"" | tcsh -f | uniq dnl ++AT_CHECK([export HOME=$(getent passwd $(id -un) | awk -F: '{ print $(NF - 1) }'); echo "echo ~$(id -un)//foo; echo \"\$HOME/foo\"" | tcsh -f | uniq dnl | wc -l | tr -d ' \t'], , [1 ]) @@ -110,21 +86,6 @@ ]]) chmod a+x args.sh AT_CHECK([tcsh -f listflags.csh], , -@@ -704,9 +705,9 @@ AT_CHECK([tcsh -f mail.csh], , -# This test fails by trying to change to the build user's home -# directory, which does not exist. - AT_CLEANUP - - --AT_SETUP([$ cdtohome]) --AT_CHECK([tcsh -f -c 'cd'], 0) --AT_CLEANUP -+#AT_SETUP([$ cdtohome]) -+#AT_CHECK([tcsh -f -c 'cd'], 0) -+#AT_CLEANUP - AT_SETUP([$ noimplicithome]) - AT_CHECK([tcsh -f -c 'unset cdtohome; cd'], 1, , [cd: Too few arguments. - ]) @@ -728,55 +729,57 @@ TCSH_UNTESTED([$ oid]) AT_SETUP([$ owd]) diff --git a/gnu/packages/patches/tcsh-fix-out-of-bounds-read.patch b/gnu/packages/patches/tcsh-fix-out-of-bounds-read.patch deleted file mode 100644 index 48c294f78e..0000000000 --- a/gnu/packages/patches/tcsh-fix-out-of-bounds-read.patch +++ /dev/null @@ -1,31 +0,0 @@ -Fix out-of-bounds read in c_substitute(): - -http://seclists.org/oss-sec/2016/q4/612 - -Patch copied from upstream source repository: - -https://github.com/tcsh-org/tcsh/commit/6a542dc4fb2ba26518a47e9b3a9bcd6a91b94596 - -From 6a542dc4fb2ba26518a47e9b3a9bcd6a91b94596 Mon Sep 17 00:00:00 2001 -From: christos <christos> -Date: Fri, 2 Dec 2016 16:59:28 +0000 -Subject: [PATCH] Fix out of bounds read (Brooks Davis) (reproduce by starting - tcsh and hitting tab at the prompt) - ---- - ed.chared.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ed.chared.c b/ed.chared.c -index 1277e53..310393e 100644 ---- ed.chared.c -+++ ed.chared.c -@@ -750,7 +750,7 @@ c_substitute(void) - /* - * If we found a history character, go expand it. - */ -- if (HIST != '\0' && *p == HIST) -+ if (p >= InputBuf && HIST != '\0' && *p == HIST) - nr_exp = c_excl(p); - else - nr_exp = 0; diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index f8b79cf907..18d7c1e56c 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages compression) #:use-module (gnu packages pkg-config) @@ -42,12 +44,26 @@ "1wwkpglvvr1sdj2gxz9khq507y02c4px48njy25divzdhv4jwifv")))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key outputs #:allow-other-keys) ;; There's no 'configure' script, just a raw makefile. (substitute* "Makefile" + ,@(if (%current-target-system) + `((("^CROSS_COMPILE=.*$") + (string-append "CROSS_COMPILE=" + ,(%current-target-system) "-" + "\n")) + (("^HOST=.*$") + (string-append "HOST=" + ,(gnu-triplet->nix-system + (%current-target-system)) "\n")) + ;; Disable 'install' strip option, that would fail when + ;; we are cross-compiling. + (("^STRIP=.*$") + "STRIP=\n")) + '()) (("^PREFIX=.*$") (string-append "PREFIX := " (assoc-ref outputs "out") "\n")) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index ebe0168ff2..b5ce6e4c2c 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -90,14 +90,14 @@ (define-public poppler (package (name "poppler") - (version "0.79.0") + (version "0.83.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) (sha256 (base32 - "1j18jlv1q6h21azb939gqjsgcbsh5qcd8dwxdmad54p5ixha91gr")))) + "16vr1g5qsqwyxfnyikqw37i04x9zpp45far2x90c7qbijw6nap38")))) (build-system cmake-build-system) ;; FIXME: ;; use libcurl: no diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index f732c0ed46..89254de339 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -22,6 +22,7 @@ ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,14 +67,14 @@ ;; Yeah, Perl... It is required early in the bootstrap process by Linux. (package (name "perl") - (version "5.30.0") + (version "5.30.1") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/src/5.0/perl-" version ".tar.gz")) (sha256 (base32 - "1wkmz6xn3fswpqhz29akiklcxclnlykhp96a8bqcz36rak3i64l5")) + "0r7r8a7pkgxp3w5lza559ahxczw6hzpwvhkpc4c99vpi3xbjagdz")) (patches (search-patches "perl-no-sys-dirs.patch" "perl-autosplit-default-time.patch" @@ -81,7 +82,7 @@ "perl-reproducible-build-date.patch")))) (build-system gnu-build-system) (arguments - '(#:tests? #f + `(#:tests? #f #:configure-flags (let ((out (assoc-ref %outputs "out")) (libc (assoc-ref %build-inputs "libc"))) @@ -115,22 +116,12 @@ (lambda* (#:key configure-flags #:allow-other-keys) (format #t "Perl configure flags: ~s~%" configure-flags) (apply invoke "./Configure" configure-flags))) - (add-before - 'strip 'make-shared-objects-writable - (lambda* (#:key outputs #:allow-other-keys) - ;; The 'lib/perl5' directory contains ~50 MiB of .so. Make them - ;; writable so that 'strip' actually strips them. - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib"))) - (for-each (lambda (dso) - (chmod dso #o755)) - (find-files lib "\\.so$")) - #t))) - (add-after 'install 'remove-extra-references (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (libc (assoc-ref inputs "libc")) + (libc (assoc-ref inputs + ,(if (%current-target-system) + "cross-libc" "libc"))) (config1 (car (find-files (string-append out "/lib/perl5") "^Config_heavy\\.pl$"))) (config2 (find-files (string-append out "/lib/perl5") diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm index c3bc3025a3..9c632532be 100644 --- a/gnu/packages/pkg-config.scm +++ b/gnu/packages/pkg-config.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,7 +50,17 @@ (base32 "14fmwzki1rlz8bs2p810lk6jqdxsk966d8drgsjmi54cd00rrikg")))) (build-system gnu-build-system) - (arguments `(#:configure-flags '("--with-internal-glib"))) + (arguments + `(#:configure-flags + '("--with-internal-glib" + ;; Those variables are guessed incorrectly when cross-compiling. + ;; See: https://developer.gimp.org/api/2.0/glib/glib-cross-compiling.html. + ,@(if (%current-target-system) + '("glib_cv_stack_grows=no" + "glib_cv_uscore=no" + "ac_cv_func_posix_getpwuid_r=yes" + "ac_cv_func_posix_getgrgid_r=yes") + '())))) (native-search-paths (list (search-path-specification (variable "PKG_CONFIG_PATH") diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 671dcd1563..77b85550db 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix utils) #:use-module ((guix licenses) #:prefix l:) #:use-module (guix build-system gnu) #:use-module (guix build-system python) @@ -103,10 +105,28 @@ for reading and writing new sound file formats.") "1ha46i0nbibq0pl0pjwcqiyny4hj8lp1bnl4dpxm64zjw9lb2zha")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("automake" ,automake))) ;For up to date 'config.guess' and 'config.sub'. (propagated-inputs `(("libsndfile" ,libsndfile) ("fftw" ,fftw))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-configure + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.sub and config.guess: + (with-directory-excursion "Cfg" + (for-each (lambda (file) + (install-file (string-append + (assoc-ref + (or native-inputs inputs) "automake") + "/share/automake-" + ,(version-major+minor + (package-version automake)) + "/" file) ".")) + '("config.sub" "config.guess"))) + #t))))) (home-page "http://www.mega-nerd.com/SRC/index.html") (synopsis "Audio sample rate conversion library") (description diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index f41e59c047..574c596e5f 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -6799,13 +6799,13 @@ add functionality and customization to your projects with their own plugins.") (define-public python-fonttools (package (name "python-fonttools") - (version "3.38.0") + (version "4.2.0") (source (origin (method url-fetch) (uri (pypi-uri "fonttools" version ".zip")) (sha256 (base32 - "12ripk3s7skgxr1bs9r8n13r94ym3s8iir7ivfixls9fa4dabmlh")))) + "0psy6z52jn49wp93s3k7kj0jzji1cad3wnwgm6c26vphv5appk4v")))) (build-system python-build-system) (native-inputs `(("unzip" ,unzip) @@ -6821,8 +6821,18 @@ also contains a tool called “TTX” which converts TrueType/OpenType fonts to from an XML-based format.") (license license:expat))) +;; Fonttools 4.x dropped support for Python 2, so stick with 3.x here. (define-public python2-fonttools - (package-with-python2 python-fonttools)) + (let ((base (package-with-python2 (strip-python2-variant python-fonttools)))) + (package/inherit + base + (version "3.44.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "fonttools" version ".zip")) + (sha256 + (base32 + "0v6399g755f2hn1ry62i5b6gdinf2fpx2966v3bxh6bjw1accb5p"))))))) (define-public python-ly (package diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 048941e8a9..ef1c8e4a09 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -38,7 +38,7 @@ ;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com> ;;; Copyright © 2017, 2018 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au> -;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017, 2018 Kei Kebreau <kkebreau@posteo.net> @@ -110,7 +110,8 @@ "python-2-deterministic-build-info.patch" "python-2.7-site-prefixes.patch" "python-2.7-source-date-epoch.patch" - "python-2.7-adjust-tests.patch")) + "python-2.7-adjust-tests.patch" + "python-cross-compile.patch")) (modules '((guix build utils))) (snippet '(begin @@ -151,6 +152,13 @@ "INSTALL=install -c" "MKDIR_P=mkdir -p" + ;; Disable runtime check failing if cross-compiling, see: + ;; https://lists.yoctoproject.org/pipermail/poky/2013-June/008997.html + ,@(if (%current-target-system) + '("ac_cv_buggy_getaddrinfo=no" + "ac_cv_file__dev_ptmx=no" + "ac_cv_file__dev_ptc=no") + '()) (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) ;; With no -j argument tests use all available cpus, so provide one. @@ -171,6 +179,12 @@ (add-before 'configure 'patch-lib-shells (lambda _ + ;; This variable is used in setup.py to enable cross compilation + ;; specific switches. As it is not set properly by configure + ;; script, set it manually. + ,@(if (%current-target-system) + '((setenv "_PYTHON_HOST_PLATFORM" "")) + '()) ;; Filter for existing files, since some may not exist in all ;; versions of python that are built with this recipe. (substitute* (filter file-exists? @@ -250,7 +264,9 @@ (if (null? opt) "none" (car opt))) (for-each (lambda (file) (apply invoke - `(,(string-append out "/bin/python") + `(,,(if (%current-target-system) + "python2" + '(string-append out "/bin/python")) ,@opt "-m" "compileall" "-f" ; force rebuild @@ -293,7 +309,12 @@ ("tcl" ,tcl) ("tk" ,tk))) ; for tkinter (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ;; When cross-compiling, a native version of Python itself is needed. + ,@(if (%current-target-system) + `(("python2" ,this-package) + ("which" ,which)) + '()))) (native-search-paths (list (search-path-specification (variable "PYTHONPATH") @@ -356,19 +377,15 @@ data types.") " --exclude test_mmap" ;; test_socket may hang and eventually run out of memory ;; on some systems: <https://bugs.python.org/issue34587>. - " test_socket" - ;; XXX: test_ctypes fails on some platforms due to a problem in - ;; libffi 3.2.1: <https://bugs.python.org/issue23249>. - ,@(if (string-prefix? "aarch64" (%current-system)) - '(" test_ctypes") - '())))) + " test_socket"))) ((#:phases phases) `(modify-phases ,phases (add-before 'check 'set-TZDIR - (lambda* (#:key inputs #:allow-other-keys) + (lambda* (#:key inputs native-inputs #:allow-other-keys) ;; test_email requires the Olson time zone database. (setenv "TZDIR" - (string-append (assoc-ref inputs "tzdata") + (string-append (assoc-ref + (or native-inputs inputs) "tzdata") "/share/zoneinfo")) #t)) ;; Unset SOURCE_DATE_EPOCH while running the test-suite and set it @@ -389,18 +406,24 @@ data types.") (if (null? opt) "none" (car opt))) (for-each (lambda (file) (apply invoke - `(,(string-append out "/bin/python3") - ,@opt - "-m" "compileall" - "-f" ; force rebuild - ;; Don't build lib2to3, because it's Python 2 code. - "-x" "lib2to3/.*" - ,file))) + `(,,(if (%current-target-system) + "python3" + '(string-append out + "/bin/python3")) + ,@opt + "-m" "compileall" + "-f" ; force rebuild + ;; Don't build lib2to3, because it's Python 2 code. + "-x" "lib2to3/.*" + ,file))) (find-files out "\\.py$"))) (list '() '("-O") '("-OO"))) #t))))))) (native-inputs `(("tzdata" ,tzdata-for-tests) + ,@(if (%current-target-system) + `(("python3" ,this-package)) + '()) ,@(package-native-inputs python-2))) (native-search-paths (list (search-path-specification diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 795b5e9d2b..4036b27b4a 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -191,7 +191,7 @@ system, and the core design of Django is reused in Grantlee.") ("postgresql" ,postgresql) ("pulseaudio" ,pulseaudio) ("pcre2" ,pcre2) - ("sqlite" ,sqlite-with-column-metadata) + ("sqlite" ,sqlite) ("udev" ,eudev) ("unixodbc" ,unixodbc) ("wayland" ,wayland) @@ -387,7 +387,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") ("pcre2" ,pcre2) ("postgresql" ,postgresql) ("pulseaudio" ,pulseaudio) - ("sqlite" ,sqlite-with-column-metadata) + ("sqlite" ,sqlite) ("unixodbc" ,unixodbc) ("xcb-util" ,xcb-util) ("xcb-util-image" ,xcb-util-image) @@ -1970,7 +1970,7 @@ different kinds of sliders, and much more.") ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libwebp" ,libwebp) - ("sqlite" ,sqlite-with-column-metadata) + ("sqlite" ,sqlite) ("fontconfig" ,fontconfig) ("libxrender" ,libxrender) ("qtbase" ,qtbase) diff --git a/gnu/packages/readline.scm b/gnu/packages/readline.scm index 57d550d67f..9f886f9b6e 100644 --- a/gnu/packages/readline.scm +++ b/gnu/packages/readline.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,22 +31,29 @@ #:use-module (guix utils) #:use-module (ice-9 format)) -(define (patch-url seqno) - (format #f "mirror://gnu/readline/readline-7.0-patches/readline70-~3,'0d" seqno)) +(define (patch-url version seqno) + (format #f "mirror://gnu/readline/readline-~a-patches/readline~a-~3,'0d" + version (string-join (string-split version #\.) "") seqno)) -(define (readline-patch seqno sha256) +(define (readline-patch version seqno sha256) "Return the origin of Readline patch SEQNO, with expected hash SHA256" (origin (method url-fetch) - (uri (patch-url seqno)) + (uri (patch-url version seqno)) (sha256 sha256))) -(define-syntax-rule (patch-series (seqno hash) ...) - (list (readline-patch seqno (base32 hash)) +(define-syntax-rule (patch-series version (seqno hash) ...) + (list (readline-patch version seqno (base32 hash)) ...)) +(define %patch-series-8.0 + (patch-series + "8.0" + (1 "0sfh7wn0pr743xspnb1zndxndlv9rc0hcg14cbw5cmyg6f4ykrfq"))) + (define %patch-series-7.0 (patch-series + "7.0" (1 "0xm3sxvwmss7ddyfb11n6pgcqd1aglnpy15g143vzcf75snb7hcs") (2 "0n1dxmqsbjgrfxb1hgk5c6lsraw4ncbnzxlsx7m35nym6lncjiw7") (3 "1027kmymniizcy0zbdlrczxfx3clxcdln5yq05q9yzlc6y9slhwy") @@ -55,7 +63,8 @@ (define-public readline (package (name "readline") - (version "8.0") + (version (string-append "8.0." + (number->string (length %patch-series-8.0)))) (source (origin (method url-fetch) (uri (string-append "mirror://gnu/readline/readline-" @@ -63,7 +72,8 @@ (sha256 (base32 "0qg4924hf4hg0r0wbx2chswsr08734536fh5iagkd3a7f4czafg3")) - (patches (search-patches "readline-link-ncurses.patch")) + (patches (append %patch-series-8.0 + (search-patches "readline-link-ncurses.patch"))) (patch-flags '("-p0")))) (build-system gnu-build-system) (propagated-inputs `(("ncurses" ,ncurses))) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index ad675dc488..57d7fa91f3 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca> ;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de> +;;; Copyright © 2019 Brett Gilio <brettg@posteo.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -95,6 +96,7 @@ (build-system gnu-build-system) (arguments `(#:test-target "test" + #:configure-flags '("--enable-shared") ; dynamic linking #:phases (modify-phases %standard-phases (add-before 'configure 'replace-bin-sh-and-remove-libffi diff --git a/gnu/packages/selinux.scm b/gnu/packages/selinux.scm index 1c45cb8c7e..49362d129b 100644 --- a/gnu/packages/selinux.scm +++ b/gnu/packages/selinux.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,6 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages swig) - #:use-module (gnu packages textutils) #:use-module (gnu packages xml)) ;; Update the SELinux packages together! @@ -47,8 +47,8 @@ (define-public libsepol (package (name "libsepol") - (version "2.7") - (source (let ((release "20170804")) + (version "3.0") + (source (let ((release "20191204")) (origin (method git-fetch) (uri (git-reference @@ -57,7 +57,7 @@ (file-name (string-append "selinux-" release "-checkout")) (sha256 (base32 - "1l1nn8bx08v4cxkw5kb0wgr61rfqj5ra9dh1dy5jslillj93vivq"))))) + "05rpzm72cgprd0ccr6lvx9hm8j8b5nkqi4avshlsyg7s3sdlcxjs"))))) (build-system gnu-build-system) (arguments `(#:tests? #f ; tests require checkpolicy, which requires libsepol @@ -65,7 +65,7 @@ #:make-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "PREFIX=" out) - (string-append "DESTDIR=" out) + (string-append "SHLIBDIR=" out "/lib") (string-append "MAN3DIR=" out "/share/man/man3") (string-append "MAN5DIR=" out "/share/man/man5") (string-append "MAN8DIR=" out "/share/man/man8") @@ -139,7 +139,7 @@ module into a binary representation.") (string-append "LIBSEPOLA=" (assoc-ref %build-inputs "libsepol") "/lib/libsepol.a") - (string-append "PYSITEDIR=" + (string-append "PYTHONLIBDIR=" (assoc-ref %outputs "python") "/lib/python" ,(version-major+minor (package-version python)) @@ -150,19 +150,17 @@ module into a binary representation.") (delete 'portability) (replace 'enter-dir (lambda _ (chdir ,name) #t)) - (add-after 'enter-dir 'remove-Werror - (lambda _ - ;; GCC complains about the fact that the output does not (yet) - ;; have an "include" directory, even though it is referenced. - (substitute* '("src/Makefile" - "utils/Makefile") - (("-Werror ") "")) - #t)) (add-after 'build 'pywrap (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "pywrap" make-flags))) (add-after 'install 'install-pywrap - (lambda* (#:key make-flags #:allow-other-keys) + (lambda* (#:key make-flags outputs #:allow-other-keys) + ;; The build system uses "python setup.py install" to install + ;; Python bindings. Instruct it to use the correct output. + (substitute* "src/Makefile" + (("--prefix=\\$\\(PREFIX\\)") + (string-append "--prefix=" (assoc-ref outputs "python")))) + (apply invoke "make" "install-pywrap" make-flags))))))) ;; These libraries are in "Requires.private" in libselinux.pc. (propagated-inputs @@ -191,7 +189,7 @@ the core SELinux management utilities.") (substitute-keyword-arguments (package-arguments libsepol) ((#:make-flags flags) `(cons* "PYTHON=python3" - (string-append "PYSITEDIR=" + (string-append "PYTHONLIBDIR=" (assoc-ref %outputs "out") "/lib/python" ,(version-major+minor (package-version python)) @@ -202,6 +200,12 @@ the core SELinux management utilities.") (delete 'portability) (replace 'enter-dir (lambda _ (chdir ,name) #t)) + (add-before 'install 'adjust-semanage-conf-location + (lambda _ + (substitute* "src/Makefile" + (("DEFAULT_SEMANAGE_CONF_LOCATION=/etc") + "DEFAULT_SEMANAGE_CONF_LOCATION=$(PREFIX)/etc")) + #t)) (add-after 'build 'pywrap (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "pywrap" make-flags))) @@ -212,7 +216,6 @@ the core SELinux management utilities.") `(("libsepol" ,libsepol) ("libselinux" ,libselinux) ("audit" ,audit) - ("ustr" ,ustr) ;; For pywrap phase ("python" ,python-wrapper))) (native-inputs @@ -393,11 +396,6 @@ tools, and libraries designed to facilitate SELinux policy analysis.") (lambda _ (chdir ,name) #t)) (add-after 'enter-dir 'ignore-/usr-tests (lambda* (#:key inputs #:allow-other-keys) - ;; The Makefile decides to build restorecond only if it finds the - ;; inotify header somewhere under /usr. - (substitute* "Makefile" - (("ifeq.*") "") - (("endif.*") "")) ;; Rewrite lookup paths for header files. (substitute* '("newrole/Makefile" "setfiles/Makefile" diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 1d2f754e4a..0369a20e0c 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2019 Meiyo Peng <meiyo.peng@gmail.com> ;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -334,7 +335,7 @@ written by Paul Haahr and Byron Rakitzis.") (define-public tcsh (package (name "tcsh") - (version "6.20.00") + (version "6.22.02") (source (origin (method url-fetch) ;; Old tarballs are moved to old/. @@ -344,9 +345,8 @@ written by Paul Haahr and Byron Rakitzis.") "old/tcsh-" version ".tar.gz"))) (sha256 (base32 - "17ggxkkn5skl0v1x0j6hbv5l0sgnidfzwv16992sqkdm983fg7dq")) - (patches (search-patches "tcsh-fix-autotest.patch" - "tcsh-fix-out-of-bounds-read.patch")) + "0nw8prz1n0lmr82wnpyhrzmki630afn7p9cfgr3vl00vr9c72a7d")) + (patches (search-patches "tcsh-fix-autotest.patch")) (patch-flags '("-p0")))) (build-system gnu-build-system) (native-inputs @@ -357,6 +357,14 @@ written by Paul Haahr and Byron Rakitzis.") (arguments `(#:phases (modify-phases %standard-phases + ,@(if (%current-target-system) + '((add-before 'configure 'set-cross-cc + (lambda _ + (substitute* "configure" + (("CC_FOR_GETHOST=\"cc\"") + "CC_FOR_GETHOST=\"gcc\"")) + #t))) + '()) (add-before 'check 'patch-test-scripts (lambda _ ;; Take care of pwd diff --git a/gnu/packages/sqlite.scm b/gnu/packages/sqlite.scm index 6d6df17f90..195146aca2 100644 --- a/gnu/packages/sqlite.scm +++ b/gnu/packages/sqlite.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2016 David Craven <david@craven.ch> -;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2016, 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> @@ -46,7 +46,7 @@ (define-public sqlite (package (name "sqlite") - (version "3.28.0") + (version "3.30.1") (source (origin (method url-fetch) (uri (let ((numeric-version @@ -62,9 +62,10 @@ numeric-version ".tar.gz"))) (sha256 (base32 - "1hxpi45crbqp6lacl7z611lna02k956m9bsy2bjzrbb2y23546yn")))) + "0q4f57a5995wz9c7dfiqy9zwl0kn0b900nxwinqa3llv13dm0nlc")))) (build-system gnu-build-system) (inputs `(("readline" ,readline))) + (outputs '("out" "static")) (arguments `(#:configure-flags ;; Add -DSQLITE_SECURE_DELETE, -DSQLITE_ENABLE_FTS3, @@ -74,7 +75,25 @@ (list (string-append "CFLAGS=-O2 -DSQLITE_SECURE_DELETE " "-DSQLITE_ENABLE_FTS3 " "-DSQLITE_ENABLE_UNLOCK_NOTIFY " - "-DSQLITE_ENABLE_DBSTAT_VTAB")))) + "-DSQLITE_ENABLE_DBSTAT_VTAB " + ;; Column metadata is required by GNU Jami and Qt, et.al. + "-DSQLITE_ENABLE_COLUMN_METADATA")) + #:phases (modify-phases %standard-phases + (add-after 'install 'move-static-library + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (static (assoc-ref outputs "static")) + (source (string-append out "/lib/libsqlite3.a"))) + (mkdir-p (string-append static "/lib")) + (link source (string-append static "/lib/libsqlite3.a")) + (delete-file source) + + ;; Remove reference to the static library from the .la file + ;; so that Libtool looks for it in the usual places. + (substitute* (string-append out "/lib/libsqlite3.la") + (("^old_library=.*") + "old_library=''\n")) + #t)))))) (home-page "https://www.sqlite.org/") (synopsis "The SQLite database management system") (description @@ -83,15 +102,3 @@ zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.") (license license:public-domain))) - -;; This is used by Qt. -(define-public sqlite-with-column-metadata - (package/inherit sqlite - (name "sqlite-with-column-metadata") - (arguments - (substitute-keyword-arguments (package-arguments sqlite) - ((#:configure-flags flags) - `(list (string-append "CFLAGS=-O2 -DSQLITE_SECURE_DELETE " - "-DSQLITE_ENABLE_UNLOCK_NOTIFY " - "-DSQLITE_ENABLE_DBSTAT_VTAB " - "-DSQLITE_ENABLE_COLUMN_METADATA"))))))) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 45b8f0db00..ac95e11f7f 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2017 ng0 <ng0@n0.is> ;;; Copyright © 2018 Manuel Graf <graf@init.at> ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -165,7 +166,15 @@ a server that supports the SSH-2 protocol.") "--with-libedit" ;; Enable PAM support in sshd. - "--with-pam") + "--with-pam" + + ;; "make install" runs "install -s" by default, + ;; which doesn't work for cross-compiled binaries + ;; because it invokes 'strip' instead of + ;; 'TRIPLET-strip'. Work around this. + ,,@(if (%current-target-system) + '("--disable-strip") + '())) #:phases (modify-phases %standard-phases diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm index b1b17fc68d..3de6343da8 100644 --- a/gnu/packages/swig.scm +++ b/gnu/packages/swig.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,34 +25,28 @@ #:use-module (guix licenses) #:use-module (guix build-system gnu) #:use-module (gnu packages) - #:use-module (gnu packages pcre) - #:use-module (gnu packages guile) #:use-module (gnu packages boost) - #:use-module (gnu packages python) - #:use-module (gnu packages perl)) + #:use-module (gnu packages guile) + #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) + #:use-module (gnu packages python)) (define-public swig (package (name "swig") - (version "3.0.12") + (version "4.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version "/" name "-" version ".tar.gz")) - (patches (search-patches "swig-guile-gc.patch")) (sha256 (base32 - "0kf99ygrjs5616gsqhz1l7bib3a12izmxi7g48bwblbymr3z9ybw")))) + "1ac7g0gd8ndwv3ybqn5vjgqxa7090bby4db164a7mn9ssp8b803s")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'set-env - ;; Required since Perl 5.26.0's removal of the current - ;; working directory from @INC. - ;; TODO Try removing this for later versions of SWIG. - (lambda _ (setenv "PERL_USE_UNSAFE_INC" "1") #t)) (add-before 'configure 'workaround-gcc-bug (lambda _ ;; XXX: Don't add the -isystem flag, or GCCs #include_next @@ -60,17 +55,12 @@ (("-isystem ") "-I")) #t))))) (native-inputs `(("boost" ,boost) - ("pcre" ,pcre "bin"))) ;for 'pcre-config' - (inputs `(;; Provide these to run the corresponding tests. - ("guile" ,guile-2.0) - ("perl" ,perl))) - ;; FIXME: reactivate input python as soon as the test failures - ;; fatal error: Python.h: No such file or directory - ;; # include <Python.h> - ;; are fixed. - ;; The python part probably never worked and does not seem to - ;; be needed for currently dependent packages. -;; ("python" ,python-wrapper))) + ("pcre" ,pcre "bin") ;for 'pcre-config' + ;; The following are for tests and examples: + ("guile" ,guile-2.2) + ("perl" ,perl))) + ;;("python" ,python-wrapper) + (inputs `(("pcre" ,pcre))) (home-page "http://swig.org/") (synopsis "Interface compiler that connects C/C++ code to higher-level languages") diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 1e4aa13cc9..c88d0338cb 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,17 +44,18 @@ (define-public tcl (package (name "tcl") - (version "8.6.9") + (version "8.6.10") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/tcl/Tcl/" version "/tcl" version "-src.tar.gz")) (sha256 (base32 - "0kjzj7mkzfnb7ksxanbibibfpciyvsh5ffdlhs0bmfc75kgd435d")))) + "1vc7imilx6kcb5319r7hnrp4jn5pqb41an3vr3azhgcfcgvdp5ji")) + (patches (search-patches "tcl-fix-cross-compilation.patch")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases + `(#:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure (lambda _ (chdir "unix") #t)) (add-after 'install 'install-private-headers @@ -73,9 +75,16 @@ ;; PREFIX/share/man. The 'validate-documentation-location' phase is ;; not able to fix this up because the default install populates both ;; PREFIX/man and PREFIX/share/man. - #:configure-flags (list (string-append "--mandir=" - (assoc-ref %outputs "out") - "/share/man")) + #:configure-flags + (list (string-append "--mandir=" + (assoc-ref %outputs "out") + "/share/man") + ;; This is needed when cross-compiling, see: + ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=719247 + ,@(if (%current-target-system) + '("tcl_cv_strtod_buggy=1" + "ac_cv_func_strtod=yes") + '())) ;; XXX: There are a few test failures (related to HTTP, most ;; likely related to name resolution), but that doesn't cause @@ -138,7 +147,7 @@ X11 GUIs.") (define-public tk (package (name "tk") - (version "8.6.9.1") + (version "8.6.10") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/tcl/Tcl/" @@ -146,7 +155,7 @@ X11 GUIs.") version "-src.tar.gz")) (sha256 (base32 - "1d7bfkxpacy33w5nahf73lkwxqpff44w1jplg7i2gmwgiaawvjwg")) + "11p3ycqbr5116vpaxv6fl6md6gcav1ffspgr8wrlc2lxhn543pv3")) (patches (search-patches "tk-find-library.patch")))) (build-system gnu-build-system) (arguments @@ -179,9 +188,16 @@ X11 GUIs.") "/lib -lfontconfig"))) #t)))) - #:configure-flags (list (string-append "--with-tcl=" - (assoc-ref %build-inputs "tcl") - "/lib")) + #:configure-flags + (list (string-append "--with-tcl=" + (assoc-ref %build-inputs "tcl") + "/lib") + ;; This is needed when cross-compiling, see: + ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=719247 + ,@(if (%current-target-system) + '("tcl_cv_strtod_buggy=1" + "ac_cv_func_strtod=yes") + '())) ;; The tests require a running X server, so we just skip them. #:tests? #f)) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 0c9de8bd0c..ee8385d13c 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -63,7 +63,6 @@ #:use-module (gnu packages qt) #:use-module (gnu packages serialization) #:use-module (gnu packages speech) - #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages upnp) #:use-module (gnu packages video) @@ -899,19 +898,7 @@ This package provides a library common to all Jami clients.") ("clutter-gtk" ,clutter-gtk) ("gettext" ,gnu-gettext) ("libcanberra" ,libcanberra) - ("webkitgtk" ,webkitgtk) - ;; TODO: We must wrap ring-client-gnome to force using the - ;; `sqlite-with-column-metadata' package instead of `sqlite' or else it - ;; fails with: - ;; - ;; /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so: - ;; undefined symbol: sqlite3_column_table_name16 - ;; - ;; qtbase is built against sqlite-with-column-metadata but somehow - ;; jami-client-gnome ends up with both `sqlite' and - ;; `sqlite-with-column-metadata' as inputs and it seems that - ;; libqsqlite.so gets confused. - ("sqlite" ,sqlite-with-column-metadata))) + ("webkitgtk" ,webkitgtk))) (native-inputs `(("pkg-config" ,pkg-config) ("glib:bin" ,glib "bin") @@ -927,13 +914,6 @@ This package provides a library common to all Jami clients.") (add-after 'unpack 'change-directory (lambda _ (chdir "client-gnome") - #t)) - (add-after 'install 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (path (string-append (assoc-ref inputs "sqlite") "/lib"))) - (wrap-program (string-append out "/bin/jami-gnome") - `("LD_LIBRARY_PATH" ":" prefix (,path)))) #t))))) (synopsis "Distributed, privacy-respecting communication program") (description "Jami (formerly GNU Ring) is a secure and distributed voice, diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm index 44800b3961..ae8ecc868b 100644 --- a/gnu/packages/texinfo.scm +++ b/gnu/packages/texinfo.scm @@ -4,6 +4,8 @@ ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,10 +23,12 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages texinfo) + #:use-module (gnu packages autotools) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (gnu packages) @@ -47,8 +51,28 @@ (base32 "0rixv4c301djr0d0cnsxs8c1wjndi6bf9vi5axz6mwjkv80cmfcv")))) (build-system gnu-build-system) - (inputs `(("ncurses" ,ncurses) - ("perl" ,perl))) + (arguments + ;; When cross-compiling, the package is configured twice: once with the + ;; native compiler and once with the cross-compiler. During the configure + ;; with the native compiler, the environment is reset. This leads to + ;; multiple environment variables missing. Do not reset the environment + ;; to prevent that. + (if (%current-target-system) + '(#:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-cross-configure + (lambda _ + (substitute* "configure" + (("env -i") + "env ")) + #t)))) + '())) + (inputs `(("ncurses" ,ncurses))) + ;; When cross-compiling, texinfo will build some of its own binaries with + ;; the native compiler. This means ncurses is needed both in both inputs + ;; and native-inputs. + (native-inputs `(("perl" ,perl) + ("ncurses" ,ncurses))) (native-search-paths ;; This is the variable used by the standalone Info reader. @@ -89,8 +113,7 @@ is on expressing the content semantically, avoiding physical markup commands.") (patches (search-patches "texinfo-5-perl-compat.patch")) (sha256 (base32 - "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal")))) - (native-inputs '()))) + "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal")))))) (define-public texinfo-4 (package (inherit texinfo) @@ -104,8 +127,37 @@ is on expressing the content semantically, avoiding physical markup commands.") (sha256 (base32 "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d")))) - (native-inputs '()) - (inputs `(("ncurses" ,ncurses) ("xz" ,xz))))) + (inputs `(("ncurses" ,ncurses) + ("xz" ,xz))) + (native-inputs + `(("automake" ,automake) + ,@(package-native-inputs texinfo))) + (arguments + (substitute-keyword-arguments (package-arguments texinfo) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'fix-configure + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.sub and config.guess. + (with-directory-excursion "build-aux" + (for-each + (lambda (file) + (install-file (string-append + (assoc-ref + (or native-inputs inputs) "automake") + "/share/automake-" + ,(version-major+minor + (package-version automake)) + "/" file) ".")) + '("config.sub" "config.guess"))) + #t)) + ;; Build native version of tools before running 'build phase. + ,@(if (%current-target-system) + `((add-before 'build 'make-native-gnu-lib + (lambda* (#:key inputs #:allow-other-keys) + (invoke "make" "-C" "tools/gnulib/lib") + #t))) + '()))))))) (define-public info-reader ;; The idea of this package is to have the standalone Info reader without @@ -114,32 +166,32 @@ is on expressing the content semantically, avoiding physical markup commands.") (inherit texinfo) (name "info-reader") (arguments - `(#:disallowed-references ,(assoc-ref (package-inputs texinfo) - "perl") + `(,@(substitute-keyword-arguments (package-arguments texinfo) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install 'keep-only-info-reader + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove everything but 'bin/info' and associated + ;; files. + (define (files) + (scandir "." (lambda (file) + (not (member file '("." "..")))))) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion out + (for-each delete-file-recursively + (fold delete (files) '("bin" "share")))) + (with-directory-excursion (string-append out "/bin") + (for-each delete-file (delete "info" (files)))) + (with-directory-excursion (string-append out "/share") + (for-each delete-file-recursively + (fold delete (files) + '("info" "locale")))) + #t)))))) + #:disallowed-references ,(assoc-ref (package-inputs texinfo) + "perl") #:modules ((ice-9 ftw) (srfi srfi-1) - ,@%gnu-build-system-modules) - - #:phases (modify-phases %standard-phases - (add-after 'install 'keep-only-info-reader - (lambda* (#:key outputs #:allow-other-keys) - ;; Remove everything but 'bin/info' and associated - ;; files. - (define (files) - (scandir "." (lambda (file) - (not (member file '("." "..")))))) - - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion out - (for-each delete-file-recursively - (fold delete (files) '("bin" "share")))) - (with-directory-excursion (string-append out "/bin") - (for-each delete-file (delete "info" (files)))) - (with-directory-excursion (string-append out "/share") - (for-each delete-file-recursively - (fold delete (files) - '("info" "locale")))) - #t)))))) + ,@%gnu-build-system-modules))) (synopsis "Standalone Info documentation reader"))) (define-public texi2html diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 10d864348c..d01202c684 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -70,7 +71,7 @@ (define-public libtasn1 (package (name "libtasn1") - (version "4.14") + (version "4.15.0") (source (origin (method url-fetch) @@ -78,7 +79,7 @@ version ".tar.gz")) (sha256 (base32 - "025sqnlzji78ss2fi78dajc0v0h5fi02wp39hws41sn8qnjlnq4y")))) + "17kkh89zfnwszw657fj13y2gamzay33lsrfazgm4sc7mx2gm0xyx")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-static"))) @@ -162,7 +163,7 @@ living in the same process.") (define-public gnutls (package (name "gnutls") - (version "3.6.9") + (version "3.6.11.1") (source (origin (method url-fetch) (uri @@ -174,7 +175,7 @@ living in the same process.") (patches (search-patches "gnutls-skip-trust-store-test.patch")) (sha256 (base32 - "1jqz5s3lv8sa53348cfi9nr5pw5l55n8m40b8msdvv0pb2jzqca3")))) + "1y1wadpsrj5ai603xv5bgssl9v0pb1si2hg14zqdnmcsvgri5fpv")))) (build-system gnu-build-system) (arguments `(; Ensure we don't keep a reference to this buggy software. @@ -299,8 +300,7 @@ required structures.") (define-public openssl (package (name "openssl") - (version "1.1.1c") - (replacement openssl-1.1.1d) + (version "1.1.1d") (source (origin (method url-fetch) (uri (list (string-append "https://www.openssl.org/source/openssl-" @@ -312,7 +312,7 @@ required structures.") "/openssl-" version ".tar.gz"))) (sha256 (base32 - "142c7zdlz06hjrrvinb9f276czc78bnkyhd9xma621qmmmwk1yzn")) + "1whinyw402z3b9xlb3qaxv4b9sk4w1bgh9k0y8df1z4x3yy92fhy")) (patches (search-patches "openssl-1.1-c-rehash-in.patch")))) (build-system gnu-build-system) (outputs '("out" @@ -330,6 +330,23 @@ required structures.") #:disallowed-references ,(list (canonical-package perl)) #:phases (modify-phases %standard-phases + ,@(if (%current-target-system) + '((add-before + 'configure 'set-cross-compile + (lambda* (#:key target outputs #:allow-other-keys) + (setenv "CROSS_COMPILE" (string-append target "-")) + (setenv "CONFIGURE_TARGET_ARCH" + (cond + ((string-prefix? "i686" target) + "linux-x86") + ((string-prefix? "x86_64" target) + "linux-x86_64") + ((string-prefix? "arm" target) + "linux-armv4") + ((string-prefix? "aarch64" target) + "linux-aarch64"))) + #t))) + '()) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -339,7 +356,9 @@ required structures.") (("/usr/bin/env") (string-append (assoc-ref %build-inputs "coreutils") "/bin/env"))) - (invoke "./config" + (invoke ,@(if (%current-target-system) + '("./Configure") + '("./config")) "shared" ;build shared libraries "--libdir=lib" @@ -350,7 +369,10 @@ required structures.") "/share/openssl-" ,version) (string-append "--prefix=" out) - (string-append "-Wl,-rpath," lib))))) + (string-append "-Wl,-rpath," lib) + ,@(if (%current-target-system) + '((getenv "CONFIGURE_TARGET_ARCH")) + '()))))) (add-after 'install 'move-static-libraries (lambda* (#:key outputs #:allow-other-keys) ;; Move static libraries to the "static" output. @@ -402,24 +424,6 @@ required structures.") (license license:openssl) (home-page "https://www.openssl.org/"))) -(define openssl-1.1.1d - (package/inherit - openssl - (version "1.1.1d") - (source (origin - (method url-fetch) - (uri (list (string-append "https://www.openssl.org/source/openssl-" - version ".tar.gz") - (string-append "ftp://ftp.openssl.org/source/" - "openssl-" version ".tar.gz") - (string-append "ftp://ftp.openssl.org/source/old/" - (string-trim-right version char-set:letter) - "/openssl-" version ".tar.gz"))) - (patches (search-patches "openssl-1.1-c-rehash-in.patch")) - (sha256 - (base32 - "1whinyw402z3b9xlb3qaxv4b9sk4w1bgh9k0y8df1z4x3yy92fhy")))))) - (define-public openssl-1.0 (package (inherit openssl) @@ -466,21 +470,26 @@ required structures.") (("^MANDIR[[:blank:]]*=.*$") (string-append "MANDIR = " out "/share/man\n"))) #t))) - (replace 'configure - ;; Override this phase because OpenSSL 1.0 does not understand -rpath. - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (invoke "./config" - "shared" ;build shared libraries - "--libdir=lib" - - ;; The default for this catch-all directory is - ;; PREFIX/ssl. Change that to something more - ;; conventional. - (string-append "--openssldir=" out - "/share/openssl-" ,version) - - (string-append "--prefix=" out))))) + (replace 'configure + ;; Override this phase because OpenSSL 1.0 does not understand -rpath. + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (invoke ,@(if (%current-target-system) + '("./Configure") + '("./config")) + "shared" ;build shared libraries + "--libdir=lib" + + ;; The default for this catch-all directory is + ;; PREFIX/ssl. Change that to something more + ;; conventional. + (string-append "--openssldir=" out + "/share/openssl-" ,version) + + (string-append "--prefix=" out) + ,@(if (%current-target-system) + '((getenv "CONFIGURE_TARGET_ARCH")) + '()))))) (delete 'move-extra-documentation) (add-after 'install 'move-man3-pages (lambda* (#:key outputs #:allow-other-keys) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index d354a807a3..5f928716fa 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -141,6 +141,10 @@ changes to project files over time. It supports both a distributed workflow as well as the classic centralized workflow.") (license license:gpl2+))) +(define git-cross-configure-flags + '("ac_cv_fread_reads_directories=yes" + "ac_cv_snprintf_returns_bogus=no")) + (define-public git (package (name "git") @@ -238,7 +242,10 @@ as well as the classic centralized workflow.") ;; absolute file name to 'wish'. #:configure-flags (list (string-append "--with-tcltk=" (assoc-ref %build-inputs "tk") - "/bin/wish8.6")) ; XXX + "/bin/wish8.6") ; XXX + ,@(if (%current-target-system) + git-cross-configure-flags + '())) #:modules ((srfi srfi-1) (srfi srfi-26) @@ -255,6 +262,15 @@ as well as the classic centralized workflow.") (remove (cut string-prefix? bash-full <>) path) ":")) #t))) + ;; Add cross curl-config script to PATH when cross-compiling. + ,@(if (%current-target-system) + '((add-before 'configure 'add-cross-curl-config + (lambda* (#:key inputs #:allow-other-keys) + (setenv "PATH" + (string-append (assoc-ref inputs "curl") "/bin:" + (getenv "PATH"))) + #t))) + '()) (add-after 'configure 'patch-makefiles (lambda _ (substitute* "Makefile" @@ -513,7 +529,10 @@ everything from small to very large projects with speed and efficiency.") ((#:make-flags flags) `(delete "USE_LIBPCRE2=yes" ,flags)) ((#:configure-flags flags) - ''()) + `(list + ,@(if (%current-target-system) + git-cross-configure-flags + '()))) ((#:disallowed-references lst '()) `(,perl ,@lst)))) (outputs '("out")) @@ -552,7 +571,14 @@ everything from small to very large projects with speed and efficiency.") (build-system cmake-build-system) (outputs '("out" "debug")) (arguments - `(#:configure-flags '("-DUSE_SHA1DC=ON") ; SHA-1 collision detection + `(#:configure-flags + (list "-DUSE_SHA1DC=ON" ; SHA-1 collision detection + ,@(if (%current-target-system) + `((string-append + "-DPKG_CONFIG_EXECUTABLE=" + (assoc-ref %build-inputs "pkg-config") + "/bin/" ,(%current-target-system) "-pkg-config")) + '())) #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-hardcoded-paths @@ -567,9 +593,13 @@ everything from small to very large projects with speed and efficiency.") (lambda _ (for-each make-file-writable (find-files ".")) #t)) - ;; Run checks more verbosely. + ;; Run checks more verbosely, unless we are cross-compiling. (replace 'check - (lambda _ (invoke "./libgit2_clar" "-v" "-Q")))))) + (lambda* (#:key (tests? #t) #:allow-other-keys) + (if tests? + (invoke "./libgit2_clar" "-v" "-Q") + ;; Tests may be disabled if cross-compiling. + (format #t "Test suite not run.~%"))))))) (inputs `(("libssh2" ,libssh2) ("http-parser" ,http-parser))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index dd27454e79..b3d7d4c614 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -35,6 +35,8 @@ ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com> ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de> ;;; ;;; This file is part of GNU Guix. @@ -5551,10 +5553,22 @@ into your tests. It automatically starts up a HTTP server in a separate thread #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - "CC=gcc" "library") + "library" + ,@(if (%current-target-system) + '() + '("CC=gcc"))) #:phases (modify-phases %standard-phases - (delete 'configure)))) + ,@(if (%current-target-system) + '((replace 'configure + (lambda* (#:key target #:allow-other-keys) + (substitute* (find-files "." "Makefile") + (("CC\\?=.*$") + (string-append "CC=" target "-gcc\n")) + (("AR\\?=.*$") + (string-append "AR=" target "-ar\n"))) + #t))) + '((delete 'configure)))))) (synopsis "HTTP request/response parser for C") (description "This is a parser for HTTP messages written in C. It parses both requests and responses. The parser is designed to be used in @@ -6754,8 +6768,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") (define-public nghttp2 (package (name "nghttp2") - (version "1.39.1") - (replacement nghttp2-1.39.2) + (version "1.40.0") (source (origin (method url-fetch) @@ -6764,7 +6777,7 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") "nghttp2-" version ".tar.xz")) (sha256 (base32 - "0j0lk37k8k3f61r9nw647hg4b22z1753l36n3xrp9x01civ614b7")))) + "0wwhwv7cvi1vxpdjwvg0kpa4jzhszclpnwrwfcw728zz53a47z09")))) (build-system gnu-build-system) (outputs (list "out" "lib")) ; only libnghttp2 @@ -6802,9 +6815,10 @@ derivation by David Revoy from the original MonsterID by Andreas Gohr.") (assoc-ref outputs "lib"))) #t)) (add-before 'check 'set-timezone-directory - (lambda* (#:key inputs #:allow-other-keys) - (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") - "/share/zoneinfo")) + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (setenv "TZDIR" (string-append + (assoc-ref (or native-inputs inputs) "tzdata") + "/share/zoneinfo")) #t))))) (home-page "https://nghttp2.org/") (synopsis "HTTP/2 protocol client, proxy, server, and library") @@ -6833,19 +6847,6 @@ compressed JSON header blocks. @end itemize\n") (license license:expat))) -(define nghttp2-1.39.2 - (package - (inherit nghttp2) - (version "1.39.2") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/nghttp2/nghttp2/" - "releases/download/v" version "/" - "nghttp2-" version ".tar.xz")) - (sha256 - (base32 - "12yfsjghbaypp4w964d45ih9vs38g6anih80wbsflaxx192idlm2")))))) - (define-public hpcguix-web (let ((commit "f39c90b35e99e4122b0866ec4337020d61c81508") (revision "4")) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 9b198a02da..081d683759 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -437,6 +437,8 @@ following the mouse.") "1ryxzdf048x7wsx4dlvrr1p00gzwfs7lybnhgc7ygbj0dvyxcrns")) (patches (search-patches "pixman-CVE-2016-5296.patch")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (inputs `(("libpng" ,libpng) ("zlib" ,zlib))) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index bdbaf9300b..65e0608948 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -66,8 +66,7 @@ (define-public expat (package (name "expat") - (version "2.2.7") - (replacement expat-2.2.9) + (version "2.2.9") (source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c)))) (origin (method url-fetch) @@ -79,8 +78,10 @@ "/expat-" version ".tar.xz"))) (sha256 (base32 - "1y5yax6bq8p9xk49zqkd62pxk8bq266wrgbrqgaxp3wsrw5g9qrh"))))) + "1960mmgbb4cm64n1p0nz3hrs1pw03hkrfcw8prmnn4622mdrd9hy"))))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (home-page "https://libexpat.github.io/") (synopsis "Stream-oriented XML parser library written in C") (description @@ -89,23 +90,6 @@ stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags).") (license license:expat))) -(define expat-2.2.9 - (package - (inherit expat) - (version "2.2.9") - (source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c)))) - (origin - (method url-fetch) - (uri (list (string-append "mirror://sourceforge/expat/expat/" - version "/expat-" version ".tar.xz") - (string-append - "https://github.com/libexpat/libexpat/releases/download/R_" - (string-map dot->underscore version) - "/expat-" version ".tar.xz"))) - (sha256 - (base32 - "1960mmgbb4cm64n1p0nz3hrs1pw03hkrfcw8prmnn4622mdrd9hy"))))))) - (define-public libebml (package (name "libebml") @@ -133,14 +117,14 @@ hierarchical form with variable field lengths.") (define-public libxml2 (package (name "libxml2") - (version "2.9.9") + (version "2.9.10") (source (origin (method url-fetch) (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-" version ".tar.gz")) (sha256 (base32 - "0wd881jzvqayx0ihzba29jl80k06xj9ywp16kxacdqs3064p1ywl")))) + "07xynh8hcxb2yb1fs051xrgszjvj37wnxvxgsj10rzmqzy9y3zma")))) (build-system gnu-build-system) (outputs '("out" "static")) (arguments @@ -182,9 +166,12 @@ project (but it is usable outside of the Gnome platform).") (license license:x11))) (define-public python-libxml2 - ;; TODO: Merge with 'python-libxml2/fixed' on the next rebuild cycle. (package/inherit libxml2 (name "python-libxml2") + (source (origin + (inherit (package-source libxml2)) + (patches (cons (search-patch "python-libxml2-utf8.patch") + (origin-patches (package-source libxml2)))))) (build-system python-build-system) (outputs '("out")) (arguments @@ -210,40 +197,41 @@ project (but it is usable outside of the Gnome platform).") (inputs `(("libxml2" ,libxml2))) (synopsis "Python bindings for the libxml2 library"))) -(define-public python-libxml2/fixed - ;; This variant fixes a crash when processing UTF-8 sequences: - ;; <https://bugs.gnu.org/37468> - ;; TODO: Merge with 'python-libxml2' on the next rebuild cycle. - (package/inherit - python-libxml2 - (version (string-append (package-version python-libxml2) "-1")) - (source (origin - (inherit (package-source libxml2)) - (patches (cons (search-patch "python-libxml2-utf8.patch") - (origin-patches (package-source libxml2)))))))) - (define-public python2-libxml2 (package-with-python2 python-libxml2)) (define-public libxslt (package (name "libxslt") - (version "1.1.33") + (version "1.1.34") (source (origin (method url-fetch) (uri (string-append "ftp://xmlsoft.org/libxslt/libxslt-" version ".tar.gz")) (sha256 (base32 - "1j1q1swnsy8jgi9x7mclvkrqhfgn09886gdlr9wzk7a08i8n0dlf")) + "0zrzz6kjdyavspzik6fbkpvfpbd25r2qg6py5nnjaabrsr3bvccq")) (patches (search-patches "libxslt-generated-ids.patch")))) (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'check 'disable-fuzz-tests + (lambda _ + ;; Disable libFuzzer tests, because they require + ;; instrumentation builds of libxml2 and libxslt. + (substitute* "tests/Makefile" + (("exslt plugins fuzz") + "exslt plugins")) + #t))))) (home-page "http://xmlsoft.org/XSLT/index.html") (synopsis "C library for applying XSLT stylesheets to XML documents") (inputs `(("libgcrypt" ,libgcrypt) ("libxml2" ,libxml2) ("python" ,python-minimal-wrapper) - ("zlib" ,zlib))) + ("zlib" ,zlib) + ("xz" ,xz))) + (native-inputs + `(("pkg-config" ,pkg-config))) (description "Libxslt is an XSLT C library developed for the GNOME project. It is based on libxml for XML parsing, tree manipulation and XPath support.") @@ -954,6 +942,8 @@ code for classes that correspond to data structures defined by XMLSchema.") (assoc-ref %build-inputs "util-linux") "/bin/getopt")))) + (native-inputs + `(("util-linux" ,util-linux))) (inputs `(("util-linux" ,util-linux) ; for 'getopt' ("libxml2" ,libxml2) ; for 'xmllint' diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index fda61aff67..b3792122ac 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net> ;;; Copyright © 2019 nee <nee@cock.li> ;;; Copyright © 2019 Yoshinori Arai <kumagusu08@gmail.com> +;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -211,14 +212,14 @@ which can be read by any architecture.") (define-public xorgproto (package (name "xorgproto") - (version "2019.1") + (version "2019.2") (source (origin (method url-fetch) (uri (string-append "mirror://xorg/individual/proto/" "xorgproto-" version ".tar.bz2")) (sha256 (base32 - "16yll1kaffnslik5sizlw3qrigj1gpsgfgyq6903g3mwdixamnm6")))) + "13kvir8dz9dvzhvyfndpff1z7k8h14s7kkl7mbl427andhax1v26")))) (build-system gnu-build-system) (propagated-inputs ;; To get util-macros in (almost?) all package inputs. @@ -1039,6 +1040,8 @@ of new capabilities and controls for text keyboards.") (base32 "0hvjfhrcym770cr0zpqajdy3cda30aiwbjzv16iafkqkbl090gr5")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (inputs `(("xorgproto" ,xorgproto) ("libxext" ,libxext) @@ -1065,6 +1068,8 @@ of new capabilities and controls for text keyboards.") (base32 "1ir0j92mnd1nk37mrv9bz5swnccqldicgszvfsh62jd14q6k115q")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("xorgproto" ,xorgproto))) (home-page "https://www.x.org/") @@ -1092,6 +1097,8 @@ synchronization between the X server and direct-rendering clients.") (base32 "0y90170dp8wsidr1dzza0grxr1lfh30ji3b5vkjz4j6x1n0wxz1c")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (inputs `(("zlib" ,zlib) ("xorgproto" ,xorgproto))) @@ -1278,6 +1285,8 @@ with the Cygwin XWin server when running X11 in a rootless mode.") (base32 "13sfcglvz87vl58hd9rszwr73z0z4nwga3c12rfh7f5s2ln8l8dk")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs ;; xcomposite.pc refers to all these. `(("xorgproto" ,xorgproto) @@ -1307,6 +1316,8 @@ with the Cygwin XWin server when running X11 in a rootless mode.") (base32 "0ab53h0rkq721ihk5hi469x500f3pgbkm1wy01yf24x5m923nli0")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (inputs `(("libbsd" ,libbsd) ("xorgproto" ,xorgproto))) @@ -1333,6 +1344,8 @@ with the Cygwin XWin server when running X11 in a rootless mode.") (base32 "05lja9s54090xwh31r0bqms4v3pimng5xr09g2rdnafx2vk6hp12")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs ;; xft.pc refers to all these. `(("libxrender" ,libxrender) @@ -1367,6 +1380,8 @@ configuration files.") (base32 "1irq9crvscd3yb8sr802dhvvfr35jdy1n2yz094xplmd42mbv3bm")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (inputs `(("libx11" ,libx11))) (native-inputs @@ -1392,6 +1407,8 @@ configuration files.") (base32 "0cdpqnx6258i4l6qhphvkdiyspysg0i5caqjy820kp63wwjk4d4w")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (inputs `(("libxt" ,libxt) ("xorgproto" ,xorgproto) @@ -1424,6 +1441,8 @@ treat it as part of their software base when porting.") (base32 "1v5xaiw4zlhxspvx76y3hq4wpxv7mpj6parqnwdqvpj8vbinsspx")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (inputs `(("gettext" ,gettext-minimal) ("libxt" ,libxt) @@ -1452,6 +1471,8 @@ treat it as part of their software base when porting.") (base32 "1m0jr0lbz9ixpp9ihk68349q0i7ry2379lnfzdy4mrl86ijc2xgz")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (inputs `(("xorgproto" ,xorgproto) ("libxext" ,libxext) @@ -1479,6 +1500,8 @@ treat it as part of their software base when porting.") (base32 "1y4vx1vabg7j9hamp0vrfrax5b0lmgm3h0lbgbb3hnkv3dd0f5zr")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (inputs `(("libxext" ,libxext) ("libx11" ,libx11))) @@ -1504,6 +1527,8 @@ treat it as part of their software base when porting.") (sha256 (base32 "00vjvcdlc1sga251jkxn6gkxmx9h5n290ffxxpa40qbca1gvr61b")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4551,6 +4576,13 @@ cannot be adequately worked around on the client side of the wire.") (base32 "0azqxllcsfxc3ilhz6kwc6x7m8wc477p59ir9p0yrsldx766zbar")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--disable-static" + ;; Disable zero malloc check that fails when cross-compiling. + ,@(if (%current-target-system) + '("--disable-malloc0returnsnull") + '())))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4580,6 +4612,8 @@ cannot be adequately worked around on the client side of the wire.") (base32 "086p0axqj57nvkaqa6r00dnr9kyrn1m8blgf0zjy25zpxkbxn200")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4636,6 +4670,13 @@ cannot be adequately worked around on the client side of the wire.") (base32 "0j89cnb06g8x79wmmnwzykgkkfdhin9j7hjpvsxwlr3fz1wmjvf0")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--disable-static" + ;; Disable zero malloc check that fails when cross-compiling. + ,@(if (%current-target-system) + '("--disable-malloc0returnsnull") + '())))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4662,6 +4703,8 @@ cannot be adequately worked around on the client side of the wire.") (base32 "012jpyj7xfm653a9jcfqbzxyywdmwb2b5wr1dwylx14f3f54jma6")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("libxi" ,libxi) ("xorgproto" ,xorgproto))) @@ -4699,6 +4742,8 @@ protocol and arbitrary X extension protocol.") (base32 "125hn06bd3d8y97hm2pbf5j55gg4r2hpd3ifad651i4sr7m16v6j")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4727,8 +4772,21 @@ protocol and arbitrary X extension protocol.") "0c3563kw9fg15dpgx4dwvl12qz6sdqdns1pxa574hc7i5m42mman")))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-configure + (lambda* (#:key inputs native-inputs #:allow-other-keys) + ;; Replace outdated config.sub and config.guess: + (for-each (lambda (file) + (install-file (string-append + (assoc-ref + (or native-inputs inputs) "automake") + "/share/automake-" + ,(version-major+minor + (package-version automake)) + "/" file) ".")) + '("config.sub" "config.guess")) + #t)) (add-after 'install 'wrap-mkfontdir (lambda* (#:key inputs outputs #:allow-other-keys) (wrap-program (string-append (assoc-ref outputs "out") @@ -4740,7 +4798,8 @@ protocol and arbitrary X extension protocol.") (inputs `(("mkfontscale" ,mkfontscale))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("automake" ,automake))) ;For up to date 'config.guess' and 'config.sub'. (home-page "https://www.x.org/wiki/") (synopsis "Create an index of X font files in a directory") (description @@ -4797,6 +4856,8 @@ common definitions and porting layer.") (base32 "0j638yvmyna2k4mz465jywgdybgdchdqppfx6xfazg7l5khxr1kg")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4825,6 +4886,8 @@ common definitions and porting layer.") (base32 "1v3krc6x0zliaa66qq1bf9j60x5nqfy68v8axaiglxpnvgqcpy6c")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("xorgproto" ,xorgproto))) (native-inputs @@ -4851,6 +4914,8 @@ an X Window System display.") (base32 "1miana3y4hwdqdparsccmygqr3ic3hs5jrqfzp70hvi2zwxd676y")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4877,6 +4942,8 @@ an X Window System display.") (base32 "0hiji1bvpl78aj3a3141hkk353aich71wv8l5l2z51scfy878zqs")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("freetype" ,freetype) ("libfontenc" ,libfontenc) @@ -4924,6 +4991,8 @@ new API's in libXft, or the legacy API's in libX11.") (base32 "0q8hz3slga3w3ch8wp0k7ay9ilhz315qnab0w1y2x9w3cf7hv8rn")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("xorgproto" ,xorgproto) ("libx11" ,libx11) @@ -4951,6 +5020,8 @@ new API's in libXft, or the legacy API's in libX11.") (base32 "08z0mqywrm7ij8bxlfrx0d2wy6kladdmkva1nw5k6qix82z0xsla")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs ;; In accordance with xrandr.pc. `(("libx11" ,libx11) @@ -4980,6 +5051,8 @@ new API's in libXft, or the legacy API's in libX11.") (base32 "1kbdjsvkm5l7axv7g477qj18sab2wnqhliy6197syzizgfbsfgbb")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("libxv" ,libxv))) (inputs @@ -5008,6 +5081,8 @@ new API's in libXft, or the legacy API's in libX11.") (base32 "0mydhlyn72i7brjwypsqrpkls3nm6vxw0li8b2nw0caz7kwjgvmg")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("libxext" ,libxext) ("xorgproto" ,xorgproto))) @@ -5049,7 +5124,8 @@ protocol.") `(("pkg-config" ,pkg-config) ("python" ,python-minimal-wrapper))) (arguments - `(#:configure-flags '("--enable-xkb"))) + `(#:configure-flags '("--enable-xkb" + "--disable-static"))) (home-page "https://xcb.freedesktop.org/") (synopsis "The X C Binding (XCB) library") (description @@ -5238,7 +5314,7 @@ draggable titlebars and borders.") (define-public libx11 (package (name "libx11") - (version "1.6.8") + (version "1.6.9") (source (origin (method url-fetch) @@ -5248,21 +5324,29 @@ draggable titlebars and borders.") ".tar.bz2")) (sha256 (base32 - "1mbkwhhprhf49s2iwx7kiliprsdvd690zk44x3h53ql9q52si2dj")))) + "1ldyn9c6pyx54sxzaw120n3q42rqi7b503aqmyjky6fn038fiiww")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;8 MiB of man pages + XML (arguments - '(#:configure-flags (list (string-append "--mandir=" - (assoc-ref %outputs "doc") - "/share/man")))) + `(#:configure-flags + (list (string-append "--mandir=" + (assoc-ref %outputs "doc") + "/share/man") + "--disable-static" + + ;; Disable zero malloc check that fails when cross-compiling. + ,@(if (%current-target-system) + '("--disable-malloc0returnsnull") + '())))) (propagated-inputs `(("xorgproto" ,xorgproto) ("libxcb" ,libxcb))) (inputs `(("xtrans" ,xtrans))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("xorgproto" ,xorgproto))) (home-page "https://www.x.org/wiki/") (synopsis "Xorg Core X11 protocol client library") (description "Xorg Core X11 protocol client library.") @@ -5285,6 +5369,8 @@ draggable titlebars and borders.") (base32 "10l7c9fm0jmpkm9ab9dz8r6m1pr87vvgqjnbx1psz50h4pwfklrs")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("libx11" ,libx11) ("libxrender" ,libxrender) @@ -5325,9 +5411,15 @@ draggable titlebars and borders.") (outputs '("out" "doc")) ;2 MiB of man pages + XML (arguments - '(#:configure-flags (list (string-append "--mandir=" - (assoc-ref %outputs "doc") - "/share/man")))) + `(#:configure-flags + (list (string-append "--mandir=" + (assoc-ref %outputs "doc") + "/share/man") + "--disable-static" + ;; Disable zero malloc check that fails when cross-compiling. + ,@(if (%current-target-system) + '("--disable-malloc0returnsnull") + '())))) (propagated-inputs `(("libx11" ,libx11) ("libice" ,libice) @@ -5357,6 +5449,8 @@ draggable titlebars and borders.") (base32 "1kdhxplwrn43d9jp3v54llp05kwx210lrsdvqb6944jp29rhdy4f")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("libxext" ,libxext) ("libxmu" ,libxmu) @@ -5416,6 +5510,8 @@ keyboard focus, and user-specified key and pointer button bindings.") (base32 "1sahmrgbpyki4bb72hxym0zvxwnycmswsxiisgqlln9vrdlr9r26")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("libxcb" ,libxcb))) (native-inputs @@ -5452,6 +5548,8 @@ The XCB util module provides the following libraries: (base32 "0krr4rcw6r42cncinzvzzdqnmxk3nrgpnadyg2h8k9x10q3hm885")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (native-inputs `(("m4" ,m4) ("pkg-config" ,pkg-config))) @@ -5534,6 +5632,8 @@ numbers.") (base32 "1z1gxacg7q4cw6jrd26gvi5y04npsyavblcdad1xccc8swvnmf9d")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("libxcb" ,libxcb))) (inputs @@ -5568,6 +5668,8 @@ The XCB util-image module provides the following library: (base32 "1nbd45pzc1wm6v5drr5338j4nicbgxa5hcakvsvm5pnyy47lky0f")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("libxcb" ,libxcb))) (native-inputs @@ -5600,6 +5702,8 @@ The XCB util-keysyms module provides the following library: (base32 "0nza1csdvvxbmk8vgv8vpmq7q8h05xrw3cfx9lwxd1hjzd47xsf6")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("libxcb" ,libxcb))) (native-inputs @@ -5632,6 +5736,8 @@ The XCB util-renderutil module provides the following library: (base32 "0gra7hfyxajic4mjd63cpqvd20si53j1q3rbdlkqkahfciwq3gr8")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (propagated-inputs `(("libxcb" ,libxcb))) (native-inputs @@ -6384,25 +6490,28 @@ output.") " "))) #t)) (add-before 'build 'make-doubled-bdfs - (lambda* (#:key inputs #:allow-other-keys) + (lambda* (#:key native-inputs inputs #:allow-other-keys) (invoke "make" "-C" "Fonts" "doubled_bdfs" (string-append "SHELL=" - (assoc-ref inputs "bash") + (assoc-ref (or native-inputs inputs) + "bash") "/bin/bash")))) (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) + (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) (let ((out (assoc-ref %outputs "out"))) (invoke "make" "install-linux" (string-append "prefix=" out) (string-append "SHELL=" - (assoc-ref inputs "bash") + (assoc-ref (or native-inputs inputs) + "bash") "/bin/bash")))))))) (native-inputs `(("pkg-config" ,pkg-config) ("bdftopcf" ,bdftopcf) ("bdfresize" ,bdfresize) - ("sharutils" ,sharutils))) ;for 'uuencode' + ("sharutils" ,sharutils) ;for 'uuencode' + ("perl" ,perl))) (inputs `(("perl" ,perl))) ;used by 'ckbcomp' (synopsis "Set up the Linux console font and keyboard") diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm index ca88fadddf..aa0f4187ec 100644 --- a/guix/build-system/cmake.scm +++ b/guix/build-system/cmake.scm @@ -43,16 +43,19 @@ `((guix build cmake-build-system) ,@%gnu-build-system-modules)) -(define (default-cmake) +(define (default-cmake target) "Return the default CMake package." ;; Do not use `@' to avoid introducing circular dependencies. (let ((module (resolve-interface '(gnu packages cmake)))) - (module-ref module 'cmake-minimal))) + (module-ref module + (if target + 'cmake-minimal-cross + 'cmake-minimal)))) (define* (lower name #:key source inputs native-inputs outputs system target - (cmake (default-cmake)) + (cmake (default-cmake target)) #:allow-other-keys #:rest arguments) "Return a bag for NAME." diff --git a/guix/build/utils.scm b/guix/build/utils.scm index b8be73ead4..cee4e8aaa2 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -1324,6 +1324,105 @@ not supported." (&wrap-error (program prog) (type 'no-interpreter-found))))))))) +(define* (make-desktop-entry-file destination #:key + (type "Application") ; One of "Application", "Link" or "Directory". + (version "1.1") + name + (generic-name name) + (no-display #f) + comment + icon + (hidden #f) + only-show-in + not-show-in + (d-bus-activatable #f) + try-exec + exec + path + (terminal #f) + actions + mime-type + (categories "Application") + implements + keywords + (startup-notify #t) + startup-w-m-class + #:rest all-args) + "Create a desktop entry file at DESTINATION. +You must specify NAME. + +Values can be booleans, numbers, strings or list of strings. + +Additionally, locales can be specified with an alist where the key is the +locale. The #f key specifies the default. Example: + + #:name '((#f \"I love Guix\") (\"fr\" \"J'aime Guix\")) + +produces + + Name=I love Guix + Name[fr]=J'aime Guix + +For a complete description of the format, see the specifications at +https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html." + (define (escape-semicolon s) + (string-join (string-split s #\;) "\\;")) + (define* (parse key value #:optional locale) + (set! value (match value + (#t "true") + (#f "false") + ((? number? n) n) + ((? string? s) (escape-semicolon s)) + ((? list? value) + (catch 'wrong-type-arg + (lambda () (string-join (map escape-semicolon value) ";")) + (lambda args (error "List arguments can only contain strings: ~a" args)))) + (_ (error "Value must be a boolean, number, string or list of strings")))) + (format #t "~a=~a~%" + (if locale + (format #f "~a[~a]" key locale) + key) + value)) + + (define key-error-message "This procedure only takes key arguments beside DESTINATION") + + (unless name + (error "Missing NAME key argument")) + (unless (member #:type all-args) + (set! all-args (append (list #:type type) all-args))) + (mkdir-p (dirname destination)) + + (with-output-to-file destination + (lambda () + (format #t "[Desktop Entry]~%") + (let loop ((args all-args)) + (match args + (() #t) + ((_) (error key-error-message)) + ((key value . ...) + (unless (keyword? key) + (error key-error-message)) + (set! key + (string-join (map string-titlecase + (string-split (symbol->string + (keyword->symbol key)) + #\-)) + "")) + (match value + (((_ . _) . _) + (for-each (lambda (locale-subvalue) + (parse key + (if (and (list? (cdr locale-subvalue)) + (= 1 (length (cdr locale-subvalue)))) + ;; Support both proper and improper lists for convenience. + (cadr locale-subvalue) + (cdr locale-subvalue)) + (car locale-subvalue))) + value)) + (_ + (parse key value))) + (loop (cddr args)))))))) + ;;; ;;; Locales. diff --git a/guix/gexp.scm b/guix/gexp.scm index 12331052a6..cacc2bf183 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1390,14 +1390,9 @@ TARGET, a GNU triplet." (ice-9 format) (srfi srfi-1) (srfi srfi-26) + (system base target) (system base compile)) - ;; TODO: Inline this on the next rebuild cycle. - (ungexp-splicing - (if target - (gexp ((use-modules (system base target)))) - (gexp ()))) - (define (regular? file) (not (member file '("." "..")))) diff --git a/guix/profiles.scm b/guix/profiles.scm index 0d38b2513f..93ceafc4bc 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1113,6 +1113,8 @@ for both major versions of GTK+." ;; Don't run the hook when there's nothing to do. (let* ((pkg-gtk+ (module-ref ; lazy reference (resolve-interface '(gnu packages gtk)) 'gtk+)) + (pkg-gtk+2 (module-ref ; lazy reference + (resolve-interface '(gnu packages gtk)) 'gtk+-2)) (gexp #~(begin #$(if gtk+ (build @@ -1126,7 +1128,7 @@ for both major versions of GTK+." (build gtk+-2 "2.10.0" #~(string-append - #$gtk+-2 "/bin/gtk-query-immodules-2.0")) + #$pkg-gtk+2:bin "/bin/gtk-query-immodules-2.0")) #t)))) (if (or gtk+ gtk+-2) (gexp->derivation "gtk-im-modules" gexp |