aboutsummaryrefslogtreecommitdiff
# GNU Guix --- Functional package management for GNU
# Copyright © 2018, 2019, 2020, 2023 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2020 Eric Bavier <bavier@posteo.net>
#
# This file is part of GNU Guix.
#
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or (at
# your option) any later version.
#
# GNU Guix is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

#
# Test the 'guix pack --relocatable' using the external store, if any.
#

guix pack --version

# 'guix pack --relocatable' requires a C compiler and libc.a, which our
# bootstrap binaries don't provide.  To make the test relatively inexpensive,
# run it on the user's global store if possible, on the grounds that binaries
# may already be there or can be built or downloaded inexpensively.

storedir="`guile -c '(use-modules (guix config))(display %storedir)'`"
localstatedir="`guile -c '(use-modules (guix config))(display %localstatedir)'`"
NIX_STORE_DIR="$storedir"
GUIX_DAEMON_SOCKET="$localstatedir/guix/daemon-socket/socket"
export NIX_STORE_DIR GUIX_DAEMON_SOCKET

if ! guile -c '(use-modules (guix)) (exit (false-if-exception (open-connection)))'
then
    exit 77
fi

# Attempt to run the given command in a namespace where the store is
# invisible.  This makes sure the presence of the store does not hide
# problems.
run_without_store ()
{
    if unshare -r true		# Are user namespaces supported?
    then
	# Run that relocatable executable in a user namespace where we "erase"
	# the store by mounting an empty file system on top of it.  That way,
	# we exercise the wrapper code that creates the user namespace and
	# bind-mounts the store.
	unshare -mrf sh -c 'mount -t tmpfs -o ro none "$NIX_STORE_DIR"; '"$*"
    else
	# Run the relocatable program in the current namespaces.  This is a
	# weak test because we're going to access store items from the host
	# store.
	sh -c "$*"
    fi
}

# Wait for the given file to show up.  Error out if it doesn't show up in a
# timely fashion.
wait_for_file ()
{
    i=0
    while ! test -f "$1" && test $i -lt 20
    do
	sleep 0.3
	i=`expr $i + 1`
    done
    test -f "$1"
}

test_directory="`mktemp -d`"
export test_directory
trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT

if unshare -r true
then
    # Test the 'userns' execution engine.
    tarball="`guix pack -R -S /Bin=bin sed`"
    (cd "$test_directory"; tar xvf "$tarball")

    chmod +w "$test_directory"
    run_without_store "$test_directory/Bin/sed" --version > "$test_directory/output"
    grep 'GNU sed' "$test_directory/output"

    # Same with an explicit engine.
    run_without_store GUIX_EXECUTION_ENGINE="userns" \
		      "$test_directory/Bin/sed" --version > "$test_directory/output"
    grep 'GNU sed' "$test_directory/output"

    # Check whether the exit code is preserved.
    run_without_store "$test_directory/Bin/sed" --does-not-exist && false

    chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*
else
    echo "'userns' execution tests skipped" >&2
fi

case "`uname -m`" in
    x86_64|i?86)
	# Try '-RR' and PRoot.
	tarball="`guix pack -RR -S /Bin=bin sed`"
	tar tvf "$tarball" | grep /bin/proot
	(cd "$test_directory"; tar xf "$tarball")
	chmod +w "$test_directory"
	run_without_store GUIX_EXECUTION_ENGINE="proot" \
	"$test_directory/Bin/sed" --version > "$test_directory/output"
	grep 'GNU sed' "$test_directory/output"

	# Now with fakechroot.
	run_without_store GUIX_EXECUTION_ENGINE="fakechroot" \
	"$test_directory/Bin/sed" --version > "$test_directory/output"
	grep 'GNU sed' "$test_directory/output"
	unset GUIX_EXECUTION_ENGINE

	chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*

	if unshare -r true
	then
	    # Check whether the store contains everything it should.  Check
	    # once when erasing $STORE_PARENT ("/gnu") and once when erasing
	    # $NIX_STORE_DIR ("/gnu/store").
	    tarball="`guix pack -RR -S /bin=bin bash-minimal`"
	    (cd "$test_directory"; tar xf "$tarball")

	    STORE_PARENT="`dirname $NIX_STORE_DIR`"
	    export STORE_PARENT

	    for engine in userns proot fakechroot
	    do
		for i in $(guix gc -R $(guix build bash-minimal | grep -v -e '-doc$'))
		do
		    unshare -mrf sh -c "mount -t tmpfs none \"$NIX_STORE_DIR\"; GUIX_EXECUTION_ENGINE=$engine $test_directory/bin/sh -c 'echo $NIX_STORE_DIR/*'" | grep $(basename $i)
		    unshare -mrf sh -c "mount -t tmpfs none \"$STORE_PARENT\";  GUIX_EXECUTION_ENGINE=$engine $test_directory/bin/sh -c 'echo $NIX_STORE_DIR/*'" | grep $(basename $i)
		done
	    done

	    chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*
	fi
	;;
    *)
	echo "skipping PRoot and Fakechroot tests" >&2
	;;
esac

if unshare -r true
then
    # Check what happens if the wrapped binary forks and leaves child
    # processes behind, like a daemon.  The root file system should remain
    # available to those child processes.  See <https://bugs.gnu.org/44261>.
    cat > "$test_directory/manifest.scm" <<EOF
(use-modules (guix))

(define daemon
  (program-file "daemon"
                #~(begin
                    (use-modules (ice-9 match)
                                 (ice-9 ftw))

                    (call-with-output-file "parent-store"
                      (lambda (port)
                        (write (scandir (ungexp (%store-prefix)))
                               port)))

                    (match (primitive-fork)
                      (0 (sigaction SIGHUP (const #t))
                         (call-with-output-file "pid"
                           (lambda (port)
                             (display (getpid) port)))
                         (pause)
                         (call-with-output-file "child-store"
                           (lambda (port)
                             (write (scandir (ungexp (%store-prefix)))
                                    port))))
                      (_ #t)))))

(define package
  (computed-file "package"
                 #~(let ((out (ungexp output)))
                     (mkdir out)
                     (mkdir (string-append out "/bin"))
                     (symlink (ungexp daemon)
                              (string-append out "/bin/daemon")))))

(manifest (list (manifest-entry
                  (name "daemon")
                  (version "0")
                  (item package))))
EOF

    tarball="$(guix pack -S /bin=bin -R -m "$test_directory/manifest.scm")"
    (cd "$test_directory"; tar xf "$tarball")

    # Run '/bin/daemon', which forks, then wait for the child, send it SIGHUP
    # so that it dumps its view of the store, and make sure the child and
    # parent both see the same store contents.
    chmod +w "$test_directory"
    (cd "$test_directory"; run_without_store ./bin/daemon)
    wait_for_file "$test_directory/pid"
    kill -HUP $(cat "$test_directory/pid")
    wait_for_file "$test_directory/child-store"
    diff -u "$test_directory/parent-store" "$test_directory/child-store"

    chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*
fi

# Ensure '-R' works with outputs other than "out".
tarball="`guix pack -R -S /share=share groff:doc`"
(cd "$test_directory"; tar xf "$tarball")
test -d "$test_directory/share/doc/groff/html"
chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/*

# Ensure '-R' applies to propagated inputs.  Failing to do that, it would fail
# with a profile collision error in this case because 'python-scipy'
# propagates 'python-numpy'.  See <https://bugs.gnu.org/42510>.
guix pack -RR python-numpy python-scipy --no-grafts -n

# Check that packages that mix executable and support files (e.g. git) in the
# "binary" directories still work after wrapped.
cat >"$test_directory/manifest.scm" <<'EOF'
(use-modules (guix) (guix profiles) (guix search-paths)
             (gnu packages bootstrap))
(manifest
 (list (manifest-entry
        (name "test") (version "0")
        (item (file-union "test"
                          `(("bin/hello"
                             ,(program-file
                               "hello"
                               #~(begin
                                   (add-to-load-path (getenv "HELLO_EXEC_PATH"))
                                   (display (load-from-path "msg"))(newline))
                               #:guile %bootstrap-guile))
                            ("libexec/hello/msg"
                             ,(plain-file "msg" "42")))))
        (search-paths
         (list (search-path-specification
                (variable "HELLO_EXEC_PATH")
                (files '("libexec/hello"))
                (separator #f)))))))
EOF
tarball="`guix pack -RR -S /opt= -m $test_directory/manifest.scm`"
(cd "$test_directory"; tar xvf "$tarball")
chmod +w "$test_directory"
( export GUIX_PROFILE=$test_directory/opt
  . $GUIX_PROFILE/etc/profile
  run_without_store "$test_directory/opt/bin/hello" > "$test_directory/output" )
cat "$test_directory/output"
test "`cat $test_directory/output`" = "42"
th: 44.5%;'/> -rw-r--r--gnu/packages/compression.scm147
-rw-r--r--gnu/packages/cran.scm10
-rw-r--r--gnu/packages/crypto.scm4
-rw-r--r--gnu/packages/cups.scm557
-rw-r--r--gnu/packages/curl.scm172
-rw-r--r--gnu/packages/cyrus-sasl.scm70
-rw-r--r--gnu/packages/databases.scm2
-rw-r--r--gnu/packages/dbm.scm4
-rw-r--r--gnu/packages/dejagnu.scm100
-rw-r--r--gnu/packages/diffoscope.scm7
-rw-r--r--gnu/packages/django.scm6
-rw-r--r--gnu/packages/djvu.scm15
-rw-r--r--gnu/packages/docbook.scm46
-rw-r--r--gnu/packages/documentation.scm73
-rw-r--r--gnu/packages/ed.scm12
-rw-r--r--gnu/packages/elf.scm6
-rw-r--r--gnu/packages/emacs.scm2
-rw-r--r--gnu/packages/file.scm24
-rw-r--r--gnu/packages/fontutils.scm14
-rw-r--r--gnu/packages/freedesktop.scm7
-rw-r--r--gnu/packages/fribidi.scm4
-rw-r--r--gnu/packages/gawk.scm67
-rw-r--r--gnu/packages/gcc.scm65
-rw-r--r--gnu/packages/gd.scm15
-rw-r--r--gnu/packages/gettext.scm5
-rw-r--r--gnu/packages/ghostscript.scm412
-rw-r--r--gnu/packages/gl.scm117
-rw-r--r--gnu/packages/glib.scm357
-rw-r--r--gnu/packages/gnome.scm464
-rw-r--r--gnu/packages/gnupg.scm110
-rw-r--r--gnu/packages/gnuzilla.scm28
-rw-r--r--gnu/packages/graphics.scm114
-rw-r--r--gnu/packages/graphviz.scm39
-rw-r--r--gnu/packages/gsasl.scm4
-rw-r--r--gnu/packages/gstreamer.scm31
-rw-r--r--gnu/packages/gtk.scm517
-rw-r--r--gnu/packages/guile-xyz.scm2
-rw-r--r--gnu/packages/guile.scm55
-rw-r--r--gnu/packages/haskell.scm34
-rw-r--r--gnu/packages/icu4c.scm163
-rw-r--r--gnu/packages/image.scm115
-rw-r--r--gnu/packages/inkscape.scm120
-rw-r--r--gnu/packages/jemalloc.scm66
-rw-r--r--gnu/packages/kerberos.scm13
-rw-r--r--gnu/packages/libbsd.scm22
-rw-r--r--gnu/packages/libevent.scm6
-rw-r--r--gnu/packages/libffi.scm29
-rw-r--r--gnu/packages/libidn.scm10
-rw-r--r--gnu/packages/libreoffice.scm1
-rw-r--r--gnu/packages/libsigsegv.scm4
-rw-r--r--gnu/packages/libunistring.scm30
-rw-r--r--gnu/packages/libusb.scm4
-rw-r--r--gnu/packages/linux.scm408
-rw-r--r--gnu/packages/llvm.scm28
-rw-r--r--gnu/packages/m4.scm37
-rw-r--r--gnu/packages/mail.scm2
-rw-r--r--gnu/packages/make-bootstrap.scm6
-rw-r--r--gnu/packages/man.scm52
-rw-r--r--gnu/packages/maths.scm146
-rw-r--r--gnu/packages/matrix.scm4
-rw-r--r--gnu/packages/messaging.scm2
-rw-r--r--gnu/packages/music.scm6
-rw-r--r--gnu/packages/nettle.scm6
-rw-r--r--gnu/packages/networking.scm6
-rw-r--r--gnu/packages/ninja.scm6
-rw-r--r--gnu/packages/node.scm16
-rw-r--r--gnu/packages/nss.scm20
-rw-r--r--gnu/packages/onc-rpc.scm9
-rw-r--r--gnu/packages/openldap.scm124
-rw-r--r--gnu/packages/package-management.scm2
-rw-r--r--gnu/packages/patches/autotrace-glib-compat.patch50
-rw-r--r--gnu/packages/patches/bash-completion-directories.patch20
-rw-r--r--gnu/packages/patches/binutils-2.37-file-descriptor-leak.patch231
-rw-r--r--gnu/packages/patches/binutils-CVE-2021-45078.patch257
-rw-r--r--gnu/packages/patches/cmake-curl-certificates.patch15
-rw-r--r--gnu/packages/patches/coreutils-ls.patch117
-rw-r--r--gnu/packages/patches/curl-easy-lock.patch31
-rw-r--r--gnu/packages/patches/cyrus-sasl-CVE-2019-19906.patch25
-rw-r--r--gnu/packages/patches/gash-utils-ls-test.patch25
-rw-r--r--gnu/packages/patches/gcc-10-tree-sra-union-handling.patch33
-rw-r--r--gnu/packages/patches/gettext-libunicode-update.patch99
-rw-r--r--gnu/packages/patches/ghostscript-no-header-creationdate.patch20
-rw-r--r--gnu/packages/patches/ghostscript-no-header-id.patch29
-rw-r--r--gnu/packages/patches/ghostscript-no-header-uuid.patch11
-rw-r--r--gnu/packages/patches/glibc-hurd-clock_gettime_monotonic.patch4
-rw-r--r--gnu/packages/patches/gnupg-CVE-2022-34903.patch54
-rw-r--r--gnu/packages/patches/gnutls-guile-eintr-eagain.patch56
-rw-r--r--gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch51
-rw-r--r--gnu/packages/patches/gobject-introspection-cc.patch11
-rw-r--r--gnu/packages/patches/inkscape-poppler-compat.patch45
-rw-r--r--gnu/packages/patches/jsoncpp-pkg-config-version.patch24
-rw-r--r--gnu/packages/patches/libffi-3.3-powerpc-fixes.patch138
-rw-r--r--gnu/packages/patches/libffi-float128-powerpc64le.patch58
-rw-r--r--gnu/packages/patches/libssh2-CVE-2019-17498.patch126
-rw-r--r--gnu/packages/patches/libtool-grep-compat.patch51
-rw-r--r--gnu/packages/patches/libtool-skip-tests2.patch4
-rw-r--r--gnu/packages/patches/libwpd-gcc-compat.patch17
-rw-r--r--gnu/packages/patches/libxml2-parent-pointers.patch228
-rw-r--r--gnu/packages/patches/libxml2-terminating-newline.patch33
-rw-r--r--gnu/packages/patches/libxml2-xpath-recursion-limit.patch20
-rw-r--r--gnu/packages/patches/linux-pam-unix_chkpwd.patch9
-rw-r--r--gnu/packages/patches/llvm-8-missing-include.patch17
-rw-r--r--gnu/packages/patches/m4-gnulib-libio.patch128
-rw-r--r--gnu/packages/patches/mesa-skip-tests.patch19
-rw-r--r--gnu/packages/patches/mm-common-reproducible-tarball.patch40
-rw-r--r--gnu/packages/patches/pciutils-hurd-configure.patch35
-rw-r--r--gnu/packages/patches/pciutils-hurd-fix.patch23
-rw-r--r--gnu/packages/patches/python-2.7-expat-compat.patch59
-rw-r--r--gnu/packages/patches/source-highlight-gcc-compat.patch74
-rw-r--r--gnu/packages/patches/swig-support-gcc-12.patch16
-rw-r--r--gnu/packages/patches/texinfo-headings-single.patch21
-rw-r--r--gnu/packages/patches/util-linux-CVE-2021-3995.patch146
-rw-r--r--gnu/packages/patches/util-linux-CVE-2021-3996.patch233
-rw-r--r--gnu/packages/patches/zlib-cc.patch21
-rw-r--r--gnu/packages/patches/zlib-correct-crc32-inputs.patch44
-rw-r--r--gnu/packages/pciutils.scm51
-rw-r--r--gnu/packages/pcre.scm159
-rw-r--r--gnu/packages/pdf.scm148
-rw-r--r--gnu/packages/perl.scm10
-rw-r--r--gnu/packages/plotutils.scm12
-rw-r--r--gnu/packages/polkit.scm202
-rw-r--r--gnu/packages/pretty-print.scm1
-rw-r--r--gnu/packages/pulseaudio.scm102
-rw-r--r--gnu/packages/python-check.scm4
-rw-r--r--gnu/packages/python-web.scm2
-rw-r--r--gnu/packages/python-xyz.scm167
-rw-r--r--gnu/packages/python.scm5
-rw-r--r--gnu/packages/radio.scm4
-rw-r--r--gnu/packages/readline.scm47
-rw-r--r--gnu/packages/ruby.scm29
-rw-r--r--gnu/packages/rust.scm8
-rw-r--r--gnu/packages/samba.scm14
-rw-r--r--gnu/packages/sdl.scm42
-rw-r--r--gnu/packages/security-token.scm10
-rw-r--r--gnu/packages/serialization.scm26
-rw-r--r--gnu/packages/shells.scm67
-rw-r--r--gnu/packages/sphinx.scm14
-rw-r--r--gnu/packages/sqlite.scm20
-rw-r--r--gnu/packages/ssh.scm9
-rw-r--r--gnu/packages/statistics.scm6
-rw-r--r--gnu/packages/swig.scm4
-rw-r--r--gnu/packages/syndication.scm2
-rw-r--r--gnu/packages/tcl.scm8
-rw-r--r--gnu/packages/tex.scm2179
-rw-r--r--gnu/packages/texinfo.scm7
-rw-r--r--gnu/packages/tls.scm319
-rw-r--r--gnu/packages/version-control.scm744
-rw-r--r--gnu/packages/video.scm6
-rw-r--r--gnu/packages/vulkan.scm8
-rw-r--r--gnu/packages/web-browsers.scm6
-rw-r--r--gnu/packages/web.scm136
-rw-r--r--gnu/packages/wm.scm55
-rw-r--r--gnu/packages/xdisorg.scm32
-rw-r--r--gnu/packages/xfce.scm2
-rw-r--r--gnu/packages/xiph.scm4
-rw-r--r--gnu/packages/xml.scm157
-rw-r--r--gnu/packages/xorg.scm84
-rw-r--r--gnu/services/cups.scm101
-rw-r--r--gnu/services/dbus.scm11
-rw-r--r--gnu/services/security-token.scm9
-rw-r--r--gnu/system/pam.scm10
181 files changed, 7274 insertions, 9112 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index cc96b77e03..60299d0cea 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -10,7 +10,7 @@
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
# Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
-# Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+# Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
# Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
@@ -889,7 +889,6 @@ dist_patch_DATA = \
%D%/packages/patches/audiofile-hurd.patch \
%D%/packages/patches/audiofile-function-signature.patch \
%D%/packages/patches/automake-skip-amhello-tests.patch \
- %D%/packages/patches/autotrace-glib-compat.patch \
%D%/packages/patches/avahi-localstatedir.patch \
%D%/packages/patches/avidemux-install-to-lib.patch \
%D%/packages/patches/awesome-reproducible-png.patch \
@@ -919,12 +918,10 @@ dist_patch_DATA = \
%D%/packages/patches/beancount-disable-googleapis-fonts.patch \
%D%/packages/patches/beignet-correct-file-names.patch \
%D%/packages/patches/bidiv-update-fribidi.patch \
- %D%/packages/patches/binutils-2.37-file-descriptor-leak.patch \
%D%/packages/patches/binutils-boot-2.20.1a.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/binutils-mingw-w64-timestamp.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \
- %D%/packages/patches/binutils-CVE-2021-45078.patch \
%D%/packages/patches/bloomberg-bde-cmake-module-path.patch \
%D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
@@ -984,19 +981,15 @@ dist_patch_DATA = \
%D%/packages/patches/cool-retro-term-wctype.patch \
%D%/packages/patches/coreutils-gnulib-tests.patch \
%D%/packages/patches/coq-fix-envvars.patch \
- %D%/packages/patches/coreutils-ls.patch \
%D%/packages/patches/cpuinfo-system-libraries.patch \
%D%/packages/patches/cpulimit-with-glib-2.32.patch \
%D%/packages/patches/crawl-upgrade-saves.patch \
%D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/clucene-contribs-lib.patch \
%D%/packages/patches/cube-nocheck.patch \
- %D%/packages/patches/curl-easy-lock.patch \
%D%/packages/patches/curl-use-ssl-cert-env.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/cyrus-sasl-CVE-2019-19906.patch \
%D%/packages/patches/c++-gsl-find-system-gtest.patch \
%D%/packages/patches/c++-gsl-move-array-bounds-tests.patch \
%D%/packages/patches/date-output-pkg-config-files.patch \
@@ -1106,7 +1099,6 @@ dist_patch_DATA = \
%D%/packages/patches/ganeti-pyyaml-compat.patch \
%D%/packages/patches/ganeti-shepherd-master-failover.patch \
%D%/packages/patches/ganeti-shepherd-support.patch \
- %D%/packages/patches/gash-utils-ls-test.patch \
%D%/packages/patches/gawk-shell.patch \
%D%/packages/patches/gcc-arm-bug-71399.patch \
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
@@ -1150,6 +1142,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-12-strmov-store-file-names.patch \
%D%/packages/patches/gcc-10-cross-environment-variables.patch \
%D%/packages/patches/gcc-12-cross-environment-variables.patch \
+ %D%/packages/patches/gcc-10-tree-sra-union-handling.patch \
%D%/packages/patches/gcolor3-update-libportal-usage.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gd-brect-bounds.patch \
@@ -1163,6 +1156,7 @@ dist_patch_DATA = \
%D%/packages/patches/geeqie-clutter.patch \
%D%/packages/patches/genimage-mke2fs-test.patch \
%D%/packages/patches/geoclue-config.patch \
+ %D%/packages/patches/gettext-libunicode-update.patch \
%D%/packages/patches/ghc-4.patch \
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
@@ -1218,12 +1212,10 @@ dist_patch_DATA = \
%D%/packages/patches/gnome-shell-polkit-autocleanup.patch \
%D%/packages/patches/gnome-todo-libportal.patch \
%D%/packages/patches/gnome-tweaks-search-paths.patch \
- %D%/packages/patches/gnupg-CVE-2022-34903.patch \
%D%/packages/patches/gnupg-default-pinentry.patch \
%D%/packages/patches/gnupg-1-build-with-gcc10.patch \
%D%/packages/patches/gnutls-skip-trust-store-test.patch \
%D%/packages/patches/gnutls-cross.patch \
- %D%/packages/patches/gnutls-guile-eintr-eagain.patch \
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
%D%/packages/patches/gobject-introspection-cc.patch \
%D%/packages/patches/gobject-introspection-girepository.patch \
@@ -1312,6 +1304,7 @@ dist_patch_DATA = \
%D%/packages/patches/imagemagick-ReadDCMImage-fix.patch \
%D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch \
%D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch \
+ %D%/packages/patches/inkscape-poppler-compat.patch \
%D%/packages/patches/instead-use-games-path.patch \
%D%/packages/patches/intel-xed-fix-nondeterminism.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
@@ -1324,7 +1317,6 @@ dist_patch_DATA = \
%D%/packages/patches/jami-fix-esc-bug.patch \
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
- %D%/packages/patches/jsoncpp-pkg-config-version.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
@@ -1350,8 +1342,6 @@ dist_patch_DATA = \
%D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \
%D%/packages/patches/julia-tracker-16-compat.patch \
%D%/packages/patches/julia-allow-parallel-build.patch \
- %D%/packages/patches/libffi-3.3-powerpc-fixes.patch \
- %D%/packages/patches/libffi-float128-powerpc64le.patch \
%D%/packages/patches/libobjc2-unbundle-robin-map.patch \
%D%/packages/patches/librime-fix-build-with-gcc10.patch \
%D%/packages/patches/libvirt-add-install-prefix.patch \
@@ -1422,7 +1412,6 @@ dist_patch_DATA = \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \
%D%/packages/patches/librecad-support-for-boost-1.76.patch \
- %D%/packages/patches/libssh2-CVE-2019-17498.patch \
%D%/packages/patches/libtar-CVE-2013-4420.patch \
%D%/packages/patches/libtgvoip-disable-sse2.patch \
%D%/packages/patches/libtgvoip-disable-webrtc.patch \
@@ -1430,6 +1419,7 @@ dist_patch_DATA = \
%D%/packages/patches/libtirpc-CVE-2021-46828.patch \
%D%/packages/patches/libtirpc-hurd.patch \
%D%/packages/patches/libtommath-fix-linkage.patch \
+ %D%/packages/patches/libtool-grep-compat.patch \
%D%/packages/patches/libtool-skip-tests2.patch \
%D%/packages/patches/libunwind-julia-fix-GCC10-fno-common.patch \
%D%/packages/patches/libusb-0.1-disable-tests.patch \
@@ -1438,10 +1428,8 @@ dist_patch_DATA = \
%D%/packages/patches/libutils-remove-damaging-includes.patch \
%D%/packages/patches/libvdpau-va-gl-unbundle.patch \
%D%/packages/patches/libvpx-CVE-2016-2818.patch \
- %D%/packages/patches/libxml2-parent-pointers.patch \
- %D%/packages/patches/libxml2-terminating-newline.patch \
- %D%/packages/patches/libxml2-xpath-recursion-limit.patch \
%D%/packages/patches/libxml2-xpath0-Add-option-xpath0.patch \
+ %D%/packages/patches/libwpd-gcc-compat.patch \
%D%/packages/patches/libxslt-generated-ids.patch \
%D%/packages/patches/libxt-guix-search-paths.patch \
%D%/packages/patches/lierolibre-check-unaligned-access.patch \
@@ -1453,6 +1441,7 @@ dist_patch_DATA = \
%D%/packages/patches/linphone-desktop-without-sdk.patch \
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
%D%/packages/patches/linux-pam-no-setfsuid.patch \
+ %D%/packages/patches/linux-pam-unix_chkpwd.patch \
%D%/packages/patches/linuxdcpp-openssl-1.1.patch \
%D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
@@ -1461,6 +1450,7 @@ dist_patch_DATA = \
%D%/packages/patches/llvm-3.6-fix-build-with-gcc-10.patch \
%D%/packages/patches/llvm-3.x.1-fix-build-with-gcc.patch \
%D%/packages/patches/llvm-8-fix-build-with-gcc-10.patch \
+ %D%/packages/patches/llvm-8-missing-include.patch \
%D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch \
%D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch \
%D%/packages/patches/llvm-9-fix-scev-miscompilation.patch \
@@ -1501,7 +1491,6 @@ dist_patch_DATA = \
%D%/packages/patches/mercurial-hg-extension-path.patch \
%D%/packages/patches/mercurial-openssl-compat.patch \
%D%/packages/patches/mesa-opencl-all-targets.patch \
- %D%/packages/patches/mesa-skip-tests.patch \
%D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch \
%D%/packages/patches/mhash-keygen-test-segfault.patch \
%D%/packages/patches/mia-fix-boost-headers.patch \
@@ -1514,6 +1503,7 @@ dist_patch_DATA = \
%D%/packages/patches/mit-krb5-hurd.patch \
%D%/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch \
%D%/packages/patches/mixxx-system-googletest-benchmark.patch \
+ %D%/packages/patches/mm-common-reproducible-tarball.patch \
%D%/packages/patches/mpc123-initialize-ao.patch \
%D%/packages/patches/mpg321-CVE-2019-14247.patch \
%D%/packages/patches/mpg321-gcc-10.patch \
@@ -1527,7 +1517,6 @@ dist_patch_DATA = \
%D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \
%D%/packages/patches/musl-cross-locale.patch \
%D%/packages/patches/mutt-store-references.patch \
- %D%/packages/patches/m4-gnulib-libio.patch \
%D%/packages/patches/nautilus-add-libportal-gtk3.patch \
%D%/packages/patches/ncompress-fix-softlinks.patch \
%D%/packages/patches/ncftp-reproducible.patch \
@@ -1594,8 +1583,6 @@ dist_patch_DATA = \
%D%/packages/patches/pam-krb5-CVE-2020-10595.patch \
%D%/packages/patches/pango-skip-libthai-test.patch \
%D%/packages/patches/password-store-tree-compat.patch \
- %D%/packages/patches/pciutils-hurd-configure.patch \
- %D%/packages/patches/pciutils-hurd-fix.patch \
%D%/packages/patches/pjproject-install-libpjsua2.patch \
%D%/packages/patches/pokerth-boost.patch \
%D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \
@@ -1670,6 +1657,7 @@ dist_patch_DATA = \
%D%/packages/patches/pyqt-configure.patch \
%D%/packages/patches/python-2-deterministic-build-info.patch \
%D%/packages/patches/python-2.7-adjust-tests.patch \
+ %D%/packages/patches/python-2.7-expat-compat.patch \
%D%/packages/patches/python-2.7-search-paths.patch \
%D%/packages/patches/python-2.7-site-prefixes.patch \
%D%/packages/patches/python-2.7-source-date-epoch.patch \
@@ -1827,6 +1815,7 @@ dist_patch_DATA = \
%D%/packages/patches/syslinux-strip-gnu-property.patch \
%D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \
%D%/packages/patches/snappy-add-inline-for-GCC.patch \
+ %D%/packages/patches/source-highlight-gcc-compat.patch \
%D%/packages/patches/sphinxbase-fix-doxygen.patch \
%D%/packages/patches/spice-vdagent-glib-2.68.patch \
%D%/packages/patches/sssd-optional-systemd.patch \
@@ -1836,6 +1825,7 @@ dist_patch_DATA = \
%D%/packages/patches/superlu-dist-awpm-grid.patch \
%D%/packages/patches/superlu-dist-scotchmetis.patch \
%D%/packages/patches/supertux-unbundle-squirrel.patch \
+ %D%/packages/patches/swig-support-gcc-12.patch \
%D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \
%D%/packages/patches/symmetrica-bruch.patch \
@@ -1856,6 +1846,7 @@ dist_patch_DATA = \
%D%/packages/patches/tcsh-fix-autotest.patch \
%D%/packages/patches/teensy-loader-cli-help.patch \
%D%/packages/patches/tensorflow-c-api-fix.patch \
+ %D%/packages/patches/texinfo-headings-single.patch \
%D%/packages/patches/texinfo-5-perl-compat.patch \
%D%/packages/patches/telegram-purple-adjust-test.patch \
%D%/packages/patches/texi2html-document-encoding.patch \
@@ -1935,8 +1926,6 @@ dist_patch_DATA = \
%D%/packages/patches/upx-CVE-2021-20285.patch \
%D%/packages/patches/ustr-fix-build-with-gcc-5.patch \
%D%/packages/patches/util-linux-tests.patch \
- %D%/packages/patches/util-linux-CVE-2021-3995.patch \
- %D%/packages/patches/util-linux-CVE-2021-3996.patch \
%D%/packages/patches/valgrind-enable-arm.patch \
%D%/packages/patches/valgrind-fix-default-debuginfo-path.patch \
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \
@@ -1993,6 +1982,8 @@ dist_patch_DATA = \
%D%/packages/patches/xterm-370-explicit-xcursor.patch \
%D%/packages/patches/xygrib-fix-finding-data.patch \
%D%/packages/patches/yggdrasil-extra-config.patch \
+ %D%/packages/patches/zlib-cc.patch \
+ %D%/packages/patches/zlib-correct-crc32-inputs.patch \
%D%/packages/patches/zig-use-system-paths.patch
MISC_DISTRO_FILES = \
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 21f9176bfa..9206157b0a 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -826,14 +826,14 @@ re-executing them as necessary.")
(define-public inetutils
(package
(name "inetutils")
- (version "2.0")
+ (version "2.3")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/inetutils/inetutils-"
- version ".tar.gz"))
- (sha256
- (base32
- "0j1nb69bhg29cm4xkqqjh2ln1zqcj2lnpm92v638lpwrs11dypxl"))))
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/inetutils/inetutils-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1dj4ilxy1wrfxhxc85iya3x28h1mhjpqc5nv862xcq3ww2gqkv8w"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--localstatedir=/var"
@@ -857,19 +857,21 @@ re-executing them as necessary.")
;; Make sure that canonical "coreutils" package is not referred.
#:make-flags
(list (string-append "CPPFLAGS=-DPATHDEF_CP=\\\""
- (assoc-ref %build-inputs "coreutils*")
- "/bin/cp\\\""))
+ (search-input-file %build-inputs "bin/cp")
+ "\\\""))
;; On some systems, 'libls.sh' may fail with an error such as:
;; "Failed to tell switch -a apart from -A".
#:parallel-tests? #f))
- (inputs `(("coreutils*" ,coreutils)
- ("shadow" ,shadow) ;for login (used in telnetd and rlogind)
- ("ncurses" ,ncurses)
- ("readline" ,readline))) ;for 'ftp'
- (native-inputs (if (member (%current-system)
- (package-supported-systems net-tools))
- `(("netstat" ,net-tools)) ;for tests
- '()))
+ (inputs
+ (list coreutils
+ shadow ;for login (used in telnetd and rlogind)
+ ncurses
+ readline)) ;for 'ftp'
+ (native-inputs
+ (if (member (%current-system)
+ (package-supported-systems net-tools))
+ (list net-tools) ;for tests
+ '()))
(home-page "https://www.gnu.org/software/inetutils/")
(synopsis "Basic networking utilities")
(description
@@ -1464,7 +1466,7 @@ connection alive.")
(list config perl file))
(inputs `(("inetutils" ,inetutils)
- ("bash" ,(canonical-package bash-minimal)) ;for wrap-program
+ ("bash" ,bash-minimal)
,@(if (hurd-target?) '()
`(("net-tools" ,net-tools)
("iproute" ,iproute)))
diff --git a/gnu/packages/adns.scm b/gnu/packages/adns.scm
index 5703016549..913d885af4 100644
--- a/gnu/packages/adns.scm
+++ b/gnu/packages/adns.scm
@@ -65,7 +65,7 @@ scripts.")
(define-public c-ares
(package
(name "c-ares")
- (version "1.17.2")
+ (version "1.18.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -73,12 +73,10 @@ scripts.")
".tar.gz"))
(sha256
(base32
- "0gcincjvpll2qmlc906jx6mfq97s87mgi0zby0753ki0rr2ch0s8"))))
+ "1kxviskwsaa7dcgscvssxa8ps88pdq7kq4z93gxvz7sam2l54z8s"))))
(build-system gnu-build-system)
(arguments
- '(;; FIXME: Some tests require network access
- #:tests? #f
- #:phases
+ '(#:phases
(modify-phases %standard-phases
(add-before 'check 'filter-live-tests
(lambda _
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index ec0dafbc7a..d2737ee79a 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -47,7 +47,6 @@
(package
(name "aspell")
(version "0.60.8")
- (replacement aspell/replacement)
(source
(origin
(method url-fetch)
@@ -56,7 +55,8 @@
(sha256
(base32
"1wi60ankalmh8ds7nplz434jd7j94gdvbahdwsr539rlad8pxdzr"))
- (patches (search-patches "aspell-default-dict-dir.patch"))))
+ (patches (search-patches "aspell-default-dict-dir.patch"
+ "aspell-CVE-2019-25051.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -93,16 +93,6 @@ documents written in the UTF-8 encoding and its ability to use multiple
dictionaries, including personal ones.")
(license lgpl2.1+)))
-;; Replacement package with security fixes.
-(define aspell/replacement
- (package
- (inherit aspell)
- (source
- (origin
- (inherit (package-source aspell))
- (patches (append (origin-patches (package-source aspell))
- (search-patches "aspell-CVE-2019-25051.patch")))))))
-
;;;
;;; Dictionaries.
;;;
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index 118f25ba09..a35c8c7667 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -6,12 +6,13 @@
;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2019, 2021, 2022 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>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,6 +41,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix gexp)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (ice-9 match)
@@ -51,55 +53,55 @@
(version "2.69")
(source
(origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/autoconf/autoconf-"
- version ".tar.xz"))
- (sha256
- (base32
- "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4"))))
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/autoconf/autoconf-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4"))))
(build-system gnu-build-system)
(inputs
- `(("bash" ,bash-minimal)
- ("perl" ,perl)
- ("m4" ,m4)))
+ (list bash-minimal m4 perl))
(native-inputs
(list perl m4))
(arguments
- `(;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It
- ;; should use our own "cpp" instead of "/lib/cpp".
- #:tests? #f
- #:phases
- (modify-phases %standard-phases
- ,@(if (%current-target-system)
- '((add-after 'install 'patch-non-shebang-references
- (lambda* (#:key build inputs outputs #:allow-other-keys)
- ;; `patch-shebangs' patches shebangs only, and the Perl
- ;; scripts use a re-exec feature that references the
- ;; build hosts' perl. Also, BASH and M4 store references
- ;; hide in the scripts.
- (let ((bash (assoc-ref inputs "bash"))
- (m4 (assoc-ref inputs "m4"))
- (perl (assoc-ref inputs "perl"))
- (out (assoc-ref outputs "out"))
- (store-directory (%store-directory)))
- (substitute* (find-files (string-append out "/bin"))
- (((string-append store-directory "/[^/]*-bash-[^/]*"))
- bash)
- (((string-append store-directory "/[^/]*-m4-[^/]*"))
- m4)
- (((string-append store-directory "/[^/]*-perl-[^/]*"))
- perl))))))
- '())
- (add-after 'install 'unpatch-shebangs
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Scripts that "autoconf -i" installs (config.guess,
- ;; config.sub, and install-sh) must use a regular shebang
- ;; rather than a reference to the store. Restore it.
- (let* ((out (assoc-ref outputs "out"))
- (build-aux (string-append
- out "/share/autoconf/build-aux")))
- (substitute* (find-files build-aux)
- (("^#!.*/bin/sh") "#!/bin/sh"))))))))
+ (list
+ ;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It
+ ;; should use our own "cpp" instead of "/lib/cpp".
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ #$@(if (%current-target-system)
+ '((add-after 'install 'patch-non-shebang-references
+ (lambda* (#:key build inputs #:allow-other-keys)
+ ;; `patch-shebangs' patches shebangs only, and the Perl
+ ;; scripts use a re-exec feature that references the
+ ;; build hosts' perl. Also, BASH and M4 store references
+ ;; hide in the scripts.
+ (let ((bash (dirname (dirname
+ (search-input-file inputs "bin/bash"))))
+ (m4 (dirname (dirname
+ (search-input-file inputs "bin/m4"))))
+ (perl (dirname (dirname
+ (search-input-file inputs "bin/perl"))))
+ (store-directory (%store-directory)))
+ (substitute* (find-files (string-append #$output "/bin"))
+ (((string-append store-directory "/[^/]*-bash-[^/]*"))
+ bash)
+ (((string-append store-directory "/[^/]*-m4-[^/]*"))
+ m4)
+ (((string-append store-directory "/[^/]*-perl-[^/]*"))
+ perl))))))
+ '())
+ (add-after 'install 'unpatch-shebangs
+ (lambda _
+ ;; Scripts that "autoconf -i" installs (config.guess,
+ ;; config.sub, and install-sh) must use a regular shebang
+ ;; rather than a reference to the store. Restore it.
+ (let ((build-aux (string-append #$output
+ "/share/autoconf/build-aux")))
+ (substitute* (find-files build-aux)
+ (("^#!.*/bin/sh") "#!/bin/sh"))))))))
(home-page "https://www.gnu.org/software/autoconf/")
(synopsis "Create source code configuration scripts")
(description
@@ -129,17 +131,17 @@ know anything about Autoconf or M4.")
;; FIXME: To run the test suite, fix all the instances where scripts
;; generates "#! /bin/sh" shebangs.
#f)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-before 'check 'prepare-tests
- (lambda _
- (for-each patch-shebang
- (append (find-files "tests"
- (lambda (file stat)
- (executable-file? file)))
- (find-files "bin"
- (lambda (file stat)
- (executable-file? file)))))))))))))
+ ((#:phases phases #~%standard-phases)
+ #~(modify-phases #$phases
+ (add-before 'check 'prepare-tests
+ (lambda _
+ (for-each patch-shebang
+ (append (find-files "tests"
+ (lambda (file stat)
+ (executable-file? file)))
+ (find-files "bin"
+ (lambda (file stat)
+ (executable-file? file)))))))))))))
(define-public autoconf autoconf-2.69)
@@ -203,70 +205,65 @@ know anything about Autoconf or M4.")
use our own Bash instead of /bin/sh in shebangs. For that reason, it should
only be used internally---users should not end up distributing `configure'
files with a system-specific shebang."
- (package (inherit autoconf)
+ (package
+ (inherit autoconf)
(name (string-append (package-name autoconf) "-wrapper"))
(build-system trivial-build-system)
- (inputs `(("guile"
- ;; XXX: Kludge to hide the circular dependency.
- ,(module-ref (resolve-interface '(gnu packages guile))
- 'guile-3.0/fixed))
- ("autoconf" ,autoconf)
- ("bash" ,bash-minimal)))
+ (inputs
+ (list
+ ;; XXX: Kludge to hide the circular dependency.
+ (module-ref (resolve-interface '(gnu packages guile))
+ 'guile-3.0/fixed)
+ autoconf
+ bash-minimal))
(arguments
- '(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let* ((out (assoc-ref %outputs "out"))
- (bin (string-append out "/bin"))
- (autoconf (string-append
- (assoc-ref %build-inputs "autoconf")
- "/bin/autoconf"))
- (guile (string-append
- (assoc-ref %build-inputs "guile")
- "/bin/guile"))
- (sh (string-append
- (assoc-ref %build-inputs "bash")
- "/bin/sh"))
+ (list
+ #:modules '((guix build utils))
+ #:builder
+ #~(begin
+ (use-modules (guix build utils))
+ (let ((bin (string-append #$output "/bin"))
+ (autoconf (search-input-file %build-inputs "/bin/autoconf"))
+ (guile (search-input-file %build-inputs "/bin/guile"))
+ (sh (search-input-file %build-inputs "/bin/sh"))
(modules ((compose dirname dirname dirname)
(search-path %load-path
"guix/build/utils.scm"))))
- (mkdir-p bin)
-
- ;; Symlink all the binaries but `autoconf'.
- (with-directory-excursion bin
- (for-each (lambda (file)
- (unless (string=? (basename file) "autoconf")
- (symlink file (basename file))))
- (find-files (dirname autoconf) ".*")))
-
- ;; Add an `autoconf' binary that wraps the real one.
- (call-with-output-file (string-append bin "/autoconf")
- (lambda (port)
- ;; Shamefully, Guile can be used in shebangs only if a
- ;; single argument is passed (-ds); otherwise it gets
- ;; them all as a single argument and fails to parse them.
- (format port "#!~a
+ (mkdir-p bin)
+
+ ;; Symlink all the binaries but `autoconf'.
+ (with-directory-excursion bin
+ (for-each (lambda (file)
+ (unless (string=? (basename file) "autoconf")
+ (symlink file (basename file))))
+ (find-files (dirname autoconf) ".*")))
+
+ ;; Add an `autoconf' binary that wraps the real one.
+ (call-with-output-file (string-append bin "/autoconf")
+ (lambda (port)
+ ;; Shamefully, Guile can be used in shebangs only if a
+ ;; single argument is passed (-ds); otherwise it gets
+ ;; them all as a single argument and fails to parse them.
+ (format port "#!~a
export GUILE_LOAD_PATH=\"~a\"
export GUILE_LOAD_COMPILED_PATH=\"~a\"
exec ~a --no-auto-compile \"$0\" \"$@\"
!#~%"
- sh modules modules guile)
- (write
- `(begin
- (use-modules (guix build utils))
- (let ((result (apply system* ,autoconf
- (cdr (command-line)))))
- (when (and (file-exists? "configure")
- (not (file-exists? "/bin/sh")))
- ;; Patch regardless of RESULT, because `autoconf
- ;; -Werror' can both create a `configure' file and
- ;; return a non-zero exit code.
- (patch-shebang "configure"))
- (exit (status:exit-val result))))
- port)))
- (chmod (string-append bin "/autoconf") #o555)
- #t))))
+ sh modules modules guile)
+ (write
+ `(begin
+ (use-modules (guix build utils))
+ (let ((result (apply system* ,autoconf
+ (cdr (command-line)))))
+ (when (and (file-exists? "configure")
+ (not (file-exists? "/bin/sh")))
+ ;; Patch regardless of RESULT, because `autoconf
+ ;; -Werror' can both create a `configure' file and
+ ;; return a non-zero exit code.
+ (patch-shebang "configure"))
+ (exit (status:exit-val result))))
+ port)))
+ (chmod (string-append bin "/autoconf") #o555)))))
;; Do not show it in the UI since it's meant for internal use.
(properties '((hidden? . #t)))))
@@ -324,107 +321,104 @@ output is indexed in many ways to simplify browsing.")
(define-public automake
(package
(name "automake")
- (version "1.16.3")
+ (version "1.16.5")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/automake/automake-"
- version ".tar.xz"))
- (sha256
- (base32
- "0fmz2fhmzcpacnprl5msphvaflwiy0hvpgmqlgfny72ddijzfazz"))
- (patches
- (search-patches "automake-skip-amhello-tests.patch"))))
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/automake/automake-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0sdl32qxdy7m06iggmkkvf7j520rmmgbsjzbm7fgnxwxdp6mh7gh"))
+ (patches
+ (search-patches "automake-skip-amhello-tests.patch"))))
(build-system gnu-build-system)
(inputs
- `(("autoconf" ,autoconf-wrapper)
- ("bash" ,bash-minimal)
- ("perl" ,perl)))
+ (list autoconf-wrapper bash-minimal perl))
(native-inputs
- `(("autoconf" ,autoconf-wrapper)
- ("perl" ,perl)))
+ (list autoconf-wrapper perl))
(native-search-paths
(list (search-path-specification
(variable "ACLOCAL_PATH")
(files '("share/aclocal")))))
(arguments
- `(#:modules ((guix build gnu-build-system)
+ (list
+ #:modules '((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1)
(srfi srfi-26)
(rnrs io ports))
- #:phases
- (modify-phases %standard-phases
- (add-before 'patch-source-shebangs 'patch-tests-shebangs
- (lambda _
- (let ((sh (which "sh")))
- (substitute* (find-files "t" "\\.(sh|tap)$")
- (("#![[:blank:]]?/bin/sh")
- (string-append "#!" sh)))
-
- ;; Set these variables for all the `configure' runs
- ;; that occur during the test suite.
- (setenv "SHELL" sh)
- (setenv "CONFIG_SHELL" sh)
- #t)))
-
- (add-before 'check 'skip-test
- (lambda _
- ;; This test requires 'etags' and fails if it's missing.
- ;; Skip it.
- (substitute* "t/tags-lisp-space.sh"
- (("^required.*" all)
- (string-append "exit 77\n" all "\n")))
- #t))
-
- ,@(if (%current-target-system)
- `((add-after 'install 'patch-non-shebang-references
- (lambda* (#:key build inputs outputs #:allow-other-keys)
- ;; `patch-shebangs' patches shebangs only, and the Perl
- ;; scripts use a re-exec feature that references the
- ;; build hosts' perl. Also, AUTOCONF and BASH store
- ;; references hide in the scripts.
- (let ((autoconf (assoc-ref inputs "autoconf"))
- (bash (assoc-ref inputs "bash"))
- (perl (assoc-ref inputs "perl"))
- (out (assoc-ref outputs "out"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'patch-source-shebangs 'patch-tests-shebangs
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (let ((sh (search-input-file (or native-inputs inputs) "bin/sh")))
+ (substitute* (find-files "t" "\\.(sh|tap)$")
+ (("#![[:blank:]]?/bin/sh")
+ (string-append "#!" sh)))
+
+ ;; Set these variables for all the `configure' runs
+ ;; that occur during the test suite.
+ (setenv "SHELL" sh)
+ (setenv "CONFIG_SHELL" sh))))
+ (add-before 'check 'skip-test
+ (lambda _
+ ;; This test requires 'etags' and fails if it's missing.
+ ;; Skip it.
+ (substitute* "t/tags-lisp-space.sh"
+ (("^required.*" all)
+ (string-append "exit 77\n" all "\n")))))
+
+ #$@(if (%current-target-system)
+ '((add-after 'install 'patch-non-shebang-references
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; `patch-shebangs' patches shebangs only, and the Perl
+ ;; scripts use a re-exec feature that references the
+ ;; build hosts' perl. Also, AUTOCONF and BASH store
+ ;; references hide in the scripts.
+ (let ((autoconf
+ (dirname (dirname
+ (search-input-file inputs "bin/autoconf"))))
+ (bash
+ (dirname (dirname
+ (search-input-file inputs "bin/bash"))))
+ (perl
+ (dirname (dirname
+ (search-input-file inputs "bin/perl"))))
(store-directory (%store-directory)))
- (substitute* (find-files (string-append out "/bin"))
+ (substitute* (find-files (string-append #$output "/bin"))
(((string-append store-directory "/[^/]*-autoconf-[^/]*"))
autoconf)
(((string-append store-directory "/[^/]*-bash-[^/]*"))
bash)
(((string-append store-directory "/[^/]*-perl-[^/]*"))
- perl))
- #t))))
+ perl))))))
'())
- ;; Files like `install-sh', `mdate.sh', etc. must use
- ;; #!/bin/sh, otherwise users could leak erroneous shebangs
- ;; in the wild. See <http://bugs.gnu.org/14201> for an
- ;; example.
- (add-after 'install 'unpatch-shebangs
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (dir (string-append out "/share")))
- (define (starts-with-shebang? file)
- (equal? (call-with-input-file file
- (lambda (p)
- (list (get-u8 p) (get-u8 p))))
- (map char->integer '(#\# #\!))))
-
- (for-each (lambda (file)
- (when (and (starts-with-shebang? file)
- (executable-file? file))
- (format #t "restoring shebang on `~a'~%"
- file)
- (substitute* file
- (("^#!.*/bin/sh")
- "#!/bin/sh")
- (("^#!.*/bin/env(.*)$" _ args)
- (string-append "#!/usr/bin/env"
- args)))))
- (find-files dir ".*"))
- #t))))))
+ ;; Files like `install-sh', `mdate.sh', etc. must use
+ ;; #!/bin/sh, otherwise users could leak erroneous shebangs
+ ;; in the wild. See <http://bugs.gnu.org/14201> for an
+ ;; example.
+ (add-after 'install 'unpatch-shebangs
+ (lambda _
+ (let ((dir (string-append #$output "/share")))
+ (define (starts-with-shebang? file)
+ (equal? (call-with-input-file file
+ (lambda (p)
+ (list (get-u8 p) (get-u8 p))))
+ (map char->integer '(#\# #\!))))
+
+ (for-each (lambda (file)
+ (when (and (starts-with-shebang? file)
+ (executable-file? file))
+ (format #t "restoring shebang on `~a'~%"
+ file)
+ (substitute* file
+ (("^#!.*/bin/sh")
+ "#!/bin/sh")
+ (("^#!.*/bin/env(.*)$" _ args)
+ (string-append "#!/usr/bin/env"
+ args)))))
+ (find-files dir ".*"))))))))
(home-page "https://www.gnu.org/software/automake/")
(synopsis "Making GNU standards-compliant Makefiles")
(description
@@ -434,42 +428,30 @@ intuitive format and then Automake works with Autoconf to produce a robust
Makefile, simplifying the entire process for the developer.")
(license gpl2+))) ; some files are under GPLv3+
-(define-public automake-1.16.5
- (package
- (inherit automake)
- (version "1.16.5")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/automake/automake-"
- version ".tar.xz"))
- (sha256
- (base32
- "0sdl32qxdy7m06iggmkkvf7j520rmmgbsjzbm7fgnxwxdp6mh7gh"))
- (patches
- (search-patches "automake-skip-amhello-tests.patch"))))))
-
(define-public libtool
(package
(name "libtool")
- (version "2.4.6")
+ (version "2.4.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libtool/libtool-"
version ".tar.xz"))
(sha256
(base32
- "0vxj52zm709125gwv9qqlw02silj8bnjnh4y07arrz60r31ai1vw"))
- (patches (search-patches "libtool-skip-tests2.patch"))))
+ "0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg"))
+ (patches (search-patches "libtool-skip-tests2.patch"
+ "libtool-grep-compat.patch"))))
(build-system gnu-build-system)
(propagated-inputs (list m4))
- (native-inputs `(("m4" ,m4)
- ("perl" ,perl)
- ;; XXX: this shouldn't be necessary, but without it test
- ;; 102 fails because it cannot find ltdl/libltdl.la.
- ("libltdl" ,libltdl)
- ("help2man" ,help2man) ;because we modify ltmain.sh
- ("automake" ,automake) ;some tests rely on 'aclocal'
- ("autoconf" ,autoconf-wrapper))) ;others on 'autom4te'
+ (native-inputs
+ (list m4
+ perl
+ ;; XXX: this shouldn't be necessary, but without it test
+ ;; 102 fails because it cannot find ltdl/libltdl.la.
+ libltdl
+ help2man ; because we modify ltmain.sh
+ automake ; some tests rely on 'aclocal'
+ autoconf-wrapper)) ; others on 'autom4te'
(arguments
`(;; Libltdl is provided as a separate package, so don't install it here.
@@ -485,18 +467,18 @@ Makefile, simplifying the entire process for the developer.")
#:phases
(modify-phases %standard-phases
(add-before 'check 'pre-check
- (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ (lambda* (#:key inputs native-inputs parallel-tests? #:allow-other-keys)
;; Run the test suite in parallel, if possible.
(setenv "TESTSUITEFLAGS"
(string-append
"-j"
- (number->string (parallel-job-count))))
+ (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1")))
;; Patch references to /bin/sh.
- (let ((bash (assoc-ref (or native-inputs inputs) "bash")))
+ (let ((/bin/sh (search-input-file (or native-inputs inputs) "bin/sh")))
(substitute* "tests/testsuite"
- (("/bin/sh")
- (string-append bash "/bin/sh")))
- #t)))
+ (("/bin/sh") /bin/sh)))))
;; These files may be copied into source trees by libtoolize,
;; therefore they must not point to store file names that would be
;; leaked with tarballs generated by make dist.
@@ -508,8 +490,7 @@ Makefile, simplifying the entire process for the developer.")
(format #t "restoring shebang on `~a'~%" file)
(substitute* file
(("^#!.*/bin/sh") "#!/bin/sh")))
- (find-files dir ".*"))
- #t))))))
+ (find-files dir))))))))
(synopsis "Generic shared library support tools")
(description
@@ -519,18 +500,6 @@ complexity of working with shared libraries across platforms.")
(license gpl3+)
(home-page "https://www.gnu.org/software/libtool/")))
-(define-public libtool-2.4.7
- (package
- (inherit libtool)
- (version "2.4.7")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/libtool/libtool-"
- version ".tar.xz"))
- (sha256
- (base32
- "0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg"))))))
-
(define-public config
(let ((revision "1")
(commit "c8ddc8472f8efcadafc1ef53ca1d863415fddd5f"))
@@ -585,20 +554,20 @@ configuration in nearly all GNU packages (and many others).")
;; Libtool's extensive test suite isn't run.
(package
(name "libltdl")
- (version "2.4.6")
+ (version "2.4.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libtool/libtool-"
version ".tar.xz"))
(sha256
(base32
- "0vxj52zm709125gwv9qqlw02silj8bnjnh4y07arrz60r31ai1vw"))))
+ "0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-ltdl-install") ;really install it
#:phases (modify-phases %standard-phases
(add-before 'configure 'change-directory
- (lambda _ (chdir "libltdl") #t)))))
+ (lambda _ (chdir "libltdl"))))))
(synopsis "System-independent dlopen wrapper of GNU libtool")
(description (package-description libtool))
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 0d03d2e87f..d0d89bd910 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
@@ -239,7 +239,7 @@ backups (called chunks) to allow easy burning to CD/DVD.")
(define-public libarchive
(package
(name "libarchive")
- (version "3.5.1")
+ (version "3.6.1")
(source
(origin
(method url-fetch)
@@ -250,7 +250,7 @@ backups (called chunks) to allow easy burning to CD/DVD.")
version ".tar.xz")))
(sha256
(base32
- "16r95rlmikll1k8vbhh06vq6x3srkc10hzxjjf3021mjs2ld65qf"))))
+ "1rj8q5v26lxxr8x4b4nqbrj7p06qvl91hb8cdxi3xx3qp771lhas"))))
(build-system gnu-build-system)
(inputs
(list bzip2
@@ -261,69 +261,59 @@ backups (called chunks) to allow easy burning to CD/DVD.")
zlib
`(,zstd "lib")))
(arguments
- `(#:configure-flags '("--disable-static")
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'patch-pwd
- (lambda _
- (substitute* "Makefile"
- (("/bin/pwd") (which "pwd")))
- #t))
- (replace 'check
- (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")
+ (list
+ #:configure-flags #~'("--disable-static")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'patch-pwd
+ (lambda _
+ (substitute* "Makefile"
+ (("/bin/pwd") (which "pwd")))))
+ (replace 'check
+ (lambda* (#:key tests? #: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.
+ (begin
+ ;; 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"))
- (lib (string-append out "/lib"))
- (nettle (assoc-ref inputs "nettle"))
- (libxml2 (assoc-ref inputs "libxml2"))
- (xz (assoc-ref inputs "xz"))
- (zlib (assoc-ref inputs "zlib"))
- (zstd (assoc-ref inputs "zstd"))
- (bzip2 (assoc-ref inputs "bzip2")))
- ;; Embed absolute references to these inputs to avoid propagation.
- (substitute* (list (string-append lib "/pkgconfig/libarchive.pc")
- (string-append lib "/libarchive.la"))
- (("-lnettle")
- (string-append "-L" nettle "/lib -lnettle"))
- (("-lxml2")
- (string-append "-L" libxml2 "/lib -lxml2"))
- (("-llzma")
- (string-append "-L" xz "/lib -llzma"))
- (("-lz")
- (string-append "-L" zlib "/lib -lz"))
- (("-lzstd")
- (string-append "-L" zstd "/lib -lzstd"))
- (("-lbz2")
- (string-append "-L" bzip2 "/lib -lbz2")))
- #t))))))
+ ;; 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 #$output)
+ (lib (string-append out "/lib"))
+ (nettle (assoc-ref inputs "nettle"))
+ (libxml2 (assoc-ref inputs "libxml2"))
+ (xz (assoc-ref inputs "xz"))
+ (zlib (assoc-ref inputs "zlib"))
+ (zstd (assoc-ref inputs "zstd"))
+ (bzip2 (assoc-ref inputs "bzip2")))
+ ;; Embed absolute references to these inputs to avoid propagation.
+ (substitute* (list (string-append lib "/pkgconfig/libarchive.pc")
+ (string-append lib "/libarchive.la"))
+ (("-lnettle")
+ (string-append "-L" nettle "/lib -lnettle"))
+ (("-lxml2")
+ (string-append "-L" libxml2 "/lib -lxml2"))
+ (("-llzma")
+ (string-append "-L" xz "/lib -llzma"))
+ (("-lz")
+ (string-append "-L" zlib "/lib -lz"))
+ (("-lzstd")
+ (string-append "-L" zstd "/lib -lzstd"))
+ (("-lbz2")
+ (string-append "-L" bzip2 "/lib -lbz2")))))))))
(home-page "https://libarchive.org/")
(synopsis "Multi-format archive and compression library")
(description
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 4bdc3e7792..291f2e15f0 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1,16 +1,16 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
-;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2022 Ricardo Wurmus <rekado@elephly.net>
@@ -20,6 +20,7 @@
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -105,14 +106,14 @@ command-line arguments, multiple languages, and so on.")
(define-public grep
(package
(name "grep")
- (version "3.6")
+ (version "3.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grep/grep-"
version ".tar.xz"))
(sha256
(base32
- "0gipv6bzkm1aihj0ncqpyh164xrzgcxcv9r1kwzyk2g1mzl1azk6"))
+ "10n3mc9n1xmg85hpxyr4wiqzfp27ffxzwhvkv021j27vnk0pr3a9"))
(patches (search-patches "grep-timing-sensitive-test.patch"))))
(build-system gnu-build-system)
(native-inputs (list perl)) ;some of the tests require it
@@ -293,14 +294,14 @@ interactive means to merge two files.")
(define-public findutils
(package
(name "findutils")
- (version "4.8.0")
+ (version "4.9.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/findutils/findutils-"
version ".tar.xz"))
(sha256
(base32
- "0r3i72hnw0a30khlczi9k2c51aamaj6kfmp5mk3844nrjxz7n4jp"))
+ "1zk2sighc26bfdsm97bv7cd1cnvq7r4gll4zqpnp0rs3kp0bigx2"))
(patches (search-patches "findutils-localstatedir.patch"))))
(build-system gnu-build-system)
(arguments
@@ -328,16 +329,14 @@ used to apply commands with arbitrarily long arguments.")
(define-public coreutils
(package
(name "coreutils")
- (version "8.32")
+ (version "9.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/coreutils/coreutils-"
version ".tar.xz"))
(sha256
(base32
- "1yjcrh5hw70c0yn8zw55pd6j51dj90anpq8mmg649ps9g3gdhn24"))
- (patches (search-patches "coreutils-ls.patch"
- "coreutils-gnulib-tests.patch"))))
+ "08q4b0w7mwfxbqjs712l6wrwl2ijs7k50kssgbryg9wbsw8g98b1"))))
(build-system gnu-build-system)
(inputs `(,acl ;TODO: add SELinux
,attr ;for xattrs in ls, mv, etc
@@ -513,17 +512,15 @@ change. GNU make offers many powerful extensions over the standard utility.")
(define-public binutils
(package
(name "binutils")
- (version "2.37")
+ (version "2.38")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/binutils/binutils-"
version ".tar.bz2"))
(sha256
- (base32 "1m3b2rdfv1dmdpd0bzg1hy7i8a2qng53szc6livyi3nh6101mz37"))
- (patches (search-patches "binutils-loongson-workaround.patch"
- "binutils-2.37-file-descriptor-leak.patch"
- "binutils-CVE-2021-45078.patch"))))
+ (base32 "1y0fb4qgxaxfyf81x9fqq9w5609mkah0b7wm1f7ab9kpy0fcf3h7"))
+ (patches (search-patches "binutils-loongson-workaround.patch"))))
(build-system gnu-build-system)
(arguments
`(#:out-of-source? #t ;recommended in the README
@@ -552,7 +549,16 @@ change. GNU make offers many powerful extensions over the standard utility.")
"--enable-compressed-debug-sections=all"
"--enable-lto"
"--enable-separate-code"
- "--enable-threads")))
+ "--enable-threads")
+ ;; XXX: binutils 2.38 was released without generated manuals:
+ ;; <https://sourceware.org/bugzilla/show_bug.cgi?id=28909>. To avoid
+ ;; a circular dependency on texinfo, prevent the build system from
+ ;; creating the manuals by calling "true" instead of "makeinfo" ...
+ #:make-flags '("MAKEINFO=true")))
+
+ ;; ... and "hide" this package such that users who install binutils get
+ ;; the version with documentation defined below.
+ (properties '((hidden? . #t)))
(synopsis "Binary utilities: bfd gas gprof ld")
(description
@@ -565,6 +571,16 @@ included.")
(license gpl3+)
(home-page "https://www.gnu.org/software/binutils/")))
+(define-public binutils+documentation
+ (package/inherit binutils
+ (native-inputs
+ (list texinfo))
+ (arguments
+ (substitute-keyword-arguments (package-arguments binutils)
+ ((#:make-flags flags ''())
+ ''())))
+ (properties '())))
+
;; FIXME: ath9k-firmware-htc-binutils.patch do not apply on 2.34 because of a
;; big refactoring of xtensa-modules.c (commit 567607c11fbf7105 upstream).
;; Keep this version around until the patch is updated.
@@ -586,7 +602,7 @@ included.")
(properties '())))
(define-public binutils-gold
- (package/inherit binutils
+ (package/inherit binutils+documentation
(name "binutils-gold")
(arguments
(substitute-keyword-arguments (package-arguments binutils)
@@ -694,13 +710,13 @@ the store.")
;; version 2.28, GNU/Hurd used a different glibc branch.
(package
(name "glibc")
- (version "2.33")
+ (version "2.35")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
(sha256
(base32
- "1zvp0qdfbdyqrzydz18d9zg3n5ygy8ps7cmny1bvsp8h1q05c99f"))
+ "0bpm1kfi09dxl4c6aanc5c9951fmf6ckkzay60cx7k37dcpp68si"))
(patches (search-patches "glibc-ldd-powerpc.patch"
"glibc-ldd-x86_64.patch"
"glibc-dl-cache.patch"
@@ -738,10 +754,15 @@ the store.")
#:validate-runpath? #f
#:modules ((ice-9 ftw)
+ (srfi srfi-1)
(srfi srfi-26)
(guix build utils)
(guix build gnu-build-system))
+ ;; Strip binaries but preserve the symbol table needed by Valgrind:
+ ;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
+ #:strip-flags '("--strip-debug")
+
#:configure-flags
(list "--sysconfdir=/etc"
@@ -848,13 +869,34 @@ the store.")
(add-after 'install 'move-static-libs
(lambda* (#:key outputs #:allow-other-keys)
;; Move static libraries to the "static" output.
+ ;; Note: As of GNU libc 2.34, the contents of some ".a"
+ ;; files have been moved into "libc.so", and *both* empty
+ ;; ".so" and ".a" files have been introduced to avoid
+ ;; breaking existing executables and existing builds
+ ;; respectively. The intent of the seemingly redundant
+ ;; empty ".a" files is to avoid newly-compiled executables
+ ;; from having dependencies on the empty shared libraries,
+ ;; and as such, it is useful to have these ".a" files in
+ ;; OUT in addition to STATIC.
+
+ ;; XXX: It might be better to determine whether a static
+ ;; library is empty by some criterion (such as their file
+ ;; size equaling eight bytes) rather than hardcoding them
+ ;; by name.
+ (define empty-static-libraries
+ '("libpthread.a" "libdl.a" "libutil.a" "libanl.a"))
+ (define (empty-static-library? file)
+ (any (lambda (s)
+ (string=? file s)) empty-static-libraries))
+
(define (static-library? file)
;; Return true if FILE is a static library. The
;; "_nonshared.a" files are referred to by libc.so,
;; libpthread.so, etc., which are in fact linker
;; scripts.
(and (string-suffix? ".a" file)
- (not (string-contains file "_nonshared"))))
+ (not (string-contains file "_nonshared"))
+ (not (empty-static-library? file))))
(define (linker-script? file)
;; Guess whether FILE, a ".a" file, is actually a
@@ -865,6 +907,7 @@ the store.")
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(files (scandir lib static-library?))
+ (empty (scandir lib empty-static-library?))
(static (assoc-ref outputs "static"))
(slib (string-append static "/lib")))
(mkdir-p slib)
@@ -872,6 +915,10 @@ the store.")
(rename-file (string-append lib "/" base)
(string-append slib "/" base)))
files)
+ (for-each (lambda (base)
+ (copy-file (string-append lib "/" base)
+ (string-append slib "/" base)))
+ empty)
;; Usually libm.a is a linker script so we need to
;; change the file names in there to refer to STATIC
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 72758560cd..080db6acfb 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -1,8 +1,8 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2017, 2019-2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
@@ -72,7 +72,7 @@
...))
(define %patch-series-5.1
- ;; This is the current patches series for 5.0, generated using
+ ;; This is the current patches series for 5.1, generated using
;; 'download-patches' below.
(patch-series
(1 "1ymm8ppss6gyh9ifznjwiabrb4k91npd09c10y7mk66xp8yppc7b")
@@ -82,7 +82,15 @@
(5 "19bdyigdr81824nxvqr6a7k0cax60wq7376j6b91afbnwvlvbjyc")
(6 "051x8wlwrqk0yr0zg378vh824iklfl5g9pkmcdf62qp8gn9pvqbm")
(7 "0fir80pp1gmlpadmqcgkrv4y119pc7xllchjzg05fd7px73viz5c")
- (8 "1lfjgshk8i9vch92p5wgc9r90j3phw79aa7gbai89w183b2z6b7j")))
+ (8 "1lfjgshk8i9vch92p5wgc9r90j3phw79aa7gbai89w183b2z6b7j")
+ (9 "1vn36dzd9g4y1h3jiss6418crla0rbcd0d6wwsyv9d5l7aaxlp74")
+ (10 "0amfmvbzsand7bdypylkjdpcp88fa3cplfshn7vyzv2ff2rdgj52")
+ (11 "0yq24abb4fzfxqnwl20b330sxl9lr9ds0nc4yi30f81l94b1y6aq")
+ (12 "165bff97ffih49vfs4mkr5w3z5gn1w6zfyrf773iajkw6v48kw8h")
+ (13 "1bfmgv3lagbk3aq9a831d29xv7jz4sjq7jhn9hq89limyinvdb67")
+ (14 "1l43dw4kpddn7l41i8wmj406z9abxky1wb3rk8krcys33g4f0kka")
+ (15 "1w40vzadzx019v0zhs4q6yqycrk04x1k8xs6qb73vk7ny4p6jdqv")
+ (16 "0krqqljz4bkp9wrdnwfx51bxkb8rkwf8ivc93as1znx5fr7i96c8")))
(define (download-patches store count)
"Download COUNT Bash patches into store. Return a list of
@@ -109,7 +117,8 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
"-DSSH_SOURCE_BASHRC")
" "))
(configure-flags
- ``("--with-installed-readline"
+ ``("--without-bash-malloc"
+ "--with-installed-readline"
,,(string-append "CPPFLAGS=" cppflags)
,(string-append
"LDFLAGS=-Wl,-rpath -Wl,"
@@ -289,7 +298,7 @@ variant logs the history to syslog.")))
(define-public bash-completion
(package
(name "bash-completion")
- (version "2.8")
+ (version "2.11")
(source (origin
(method url-fetch)
(uri (string-append
@@ -297,38 +306,12 @@ variant logs the history to syslog.")))
version "/" name "-" version ".tar.xz"))
(sha256
(base32
- "0kgmflrr1ga9wfk770vmakna3nj46ylb5ky9ipd0v2k9ymq5a7y0"))
+ "1b0iz7da1sgifx1a5wdyx1kxbzys53v0kyk8nhxfipllmm5qka3k"))
(patches
(search-patches "bash-completion-directories.patch"))))
(build-system gnu-build-system)
- (native-inputs (list util-linux))
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-after
- 'install 'remove-redundant-completions
- (lambda* (#:key
- inputs native-inputs
- outputs #:allow-other-keys)
- ;; Util-linux comes with a bunch of completion files for
- ;; its own commands which are more sophisticated and
- ;; up-to-date than those of bash-completion. Remove those
- ;; from bash-completion.
- (let* ((out (assoc-ref outputs "out"))
- (util-linux (assoc-ref (or native-inputs inputs)
- "util-linux"))
- (completions (string-append out
- "/share/bash-completion"
- "/completions"))
- (already (find-files
- (string-append
- util-linux
- "/etc/bash_completion.d"))))
- (with-directory-excursion completions
- (for-each (lambda (file)
- (when (file-exists? file)
- (delete-file file)))
- (map basename already)))
- #t))))))
+ `(#:tests? #f)) ; Unclear how to make tests pass.
(synopsis "Bash completions for common commands")
(description
"This package provides extensions that allow Bash to provide adapted
diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm
index c812248e86..cfa037dec0 100644
--- a/gnu/packages/bdw-gc.scm
+++ b/gnu/packages/bdw-gc.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
-;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
@@ -25,6 +25,7 @@
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (gnu packages pkg-config)
@@ -33,40 +34,41 @@
(define-public libgc
(package
(name "libgc")
- (version "8.0.4")
+ (version "8.0.6")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ivmai/bdwgc/releases"
"/download/v" version "/gc-" version ".tar.gz"))
(sha256
(base32
- "1798rp3mcfkgs38ynkbg2p47bq59pisrc6mn0l20pb5iczf0ssj3"))))
+ "04ga3c95w5az5sznzm73j19lvvfpf6k4sgkpjqsmjxpsr6mi8j9v"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags
- (list
- ;; Install gc_cpp.h et al.
- "--enable-cplusplus"
+ (list
+ #:configure-flags
+ #~(list
+ ;; Install gc_cpp.h et al.
+ "--enable-cplusplus"
- ;; Work around <https://github.com/ivmai/bdwgc/issues/353>.
- "--disable-munmap"
+ ;; Work around <https://github.com/ivmai/bdwgc/issues/353>.
+ "--disable-munmap"
- ;; In GNU/Hurd systems during the 'check' phase,
- ;; there is a deadlock caused by the 'gctest' test.
- ;; To disable the error set "--disable-gcj-support"
- ;; to configure script. See bug report and discussion:
- ;; <https://lists.opendylan.org/pipermail/bdwgc/2017-April/006275.html>
- ;; <https://lists.gnu.org/archive/html/bug-hurd/2017-01/msg00008.html>
- ,@(if (target-hurd? (or (%current-system)
- (%current-target-system)))
- '("--disable-gcj-support")
- '()))))
+ ;; In GNU/Hurd systems during the 'check' phase,
+ ;; there is a deadlock caused by the 'gctest' test.
+ ;; To disable the error set "--disable-gcj-support"
+ ;; to configure script. See bug report and discussion:
+ ;; <https://lists.opendylan.org/pipermail/bdwgc/2017-April/006275.html>
+ ;; <https://lists.gnu.org/archive/html/bug-hurd/2017-01/msg00008.html>
+ #$@(if (target-hurd? (or (%current-system)
+ (%current-target-system)))
+ #~("--disable-gcj-support")
+ #~()))))
(native-inputs (list pkg-config))
(propagated-inputs
(if (%current-target-system)
;; The build system refuses to check for compiler intrinsics when
;; cross-compiling, and demands using libatomic-ops instead.
- `(("libatomic-ops" ,libatomic-ops))
+ (list libatomic-ops)
'()))
(outputs '("out" "debug"))
(synopsis "The Boehm-Demers-Weiser conservative garbage collector
@@ -94,9 +96,11 @@ C or C++ programs, though that is not its primary goal.")
(define-public libgc/static-libs
(package/inherit
libgc
- (arguments (substitute-keyword-arguments (package-arguments libgc)
- ((#:configure-flags flags ''())
- `(cons "--enable-static" ,flags))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments libgc)
+ ((#:configure-flags flags #~'())
+ #~(cons "--enable-static" #$flags))))
+
(properties '((hidden? . #t)))))
(define-public libgc-7
@@ -117,9 +121,9 @@ C or C++ programs, though that is not its primary goal.")
libgc
(name "libgc-back-pointers")
(arguments
- `(#:make-flags
- (list "CPPFLAGS=-DKEEP_BACK_PTRS=1")
- ,@(package-arguments libgc)))
+ (substitute-keyword-arguments (package-arguments libgc)
+ ((#:make-flags _ #~'())
+ #~(list "CPPFLAGS=-DKEEP_BACK_PTRS=1"))))
(synopsis "The BDW garbage collector, with back-pointer tracking")))
(define-public libatomic-ops
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index efc8514a63..9f95a3b3e7 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm