summaryrefslogtreecommitdiff
path: root/gnu/packages/linux.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r--gnu/packages/linux.scm588
1 files changed, 381 insertions, 207 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 1e51dd8d83..7dd565bff8 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -22,7 +22,7 @@
;;; Copyright © 2017, 2018, 2020, 2021 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, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017, 2019, 2021 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
@@ -52,7 +52,13 @@
;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
;;; Copyright © 2021 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
;;; Copyright © 2021 Olivier Dion <olivier.dion@polymtl.ca>
+;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -76,6 +82,7 @@
#:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages avahi)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
@@ -144,10 +151,10 @@
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages groff)
- #:use-module (gnu packages rsync)
#:use-module (gnu packages selinux)
#:use-module (gnu packages swig)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
@@ -542,14 +549,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
,@(if (version>=? version "4.16")
`(("flex" ,flex)
("bison" ,bison))
- '())
- ,@(if (version>=? version "5.3")
- `(("rsync" ,rsync))
'())))
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
- (srfi srfi-1))
+ (srfi srfi-1)
+ (ice-9 match))
#:phases
(modify-phases %standard-phases
(delete 'configure)
@@ -560,32 +565,37 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(%current-system))))
(defconfig ,(system->defconfig
(or (%current-target-system)
- (%current-system)))))
+ (%current-system))))
+ (make-target ,(if (version>=? version "5.3")
+ "headers"
+ "headers_check")))
(setenv "ARCH" arch)
(format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
(invoke "make" defconfig)
- (invoke "make" "mrproper" "headers_check"))))
+ (invoke "make" "mrproper" make-target))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
- (invoke "make"
- (string-append "INSTALL_HDR_PATH=" out)
- "headers_install")
+
+ ;; Mimic the quiet_cmd_headers_install target to avoid a
+ ;; dependency on rsync.
+ (for-each (lambda (file)
+ (let ((destination (string-append
+ out "/include/"
+ ;; Drop the 'usr/include' prefix.
+ (match (string-split file #\/)
+ ((_ _ path ...)
+ (string-join path "/"))))))
+ (format #t "`~a' -> `~a'~%" file destination)
+ (install-file file (dirname destination))))
+ (find-files "usr/include" "\\.h$"))
(mkdir (string-append out "/include/config"))
(call-with-output-file
(string-append out
"/include/config/kernel.release")
(lambda (p)
- (format p "~a-default~%" ,version)))
-
- ;; Remove the '.install' and '..install.cmd' files; the
- ;; latter contains store paths, which pulls in bootstrap
- ;; binaries in the build environment, and prevents bit
- ;; reproducibility for the bootstrap binaries.
- (for-each delete-file (find-files out "\\.install"))
-
- #t))))
+ (format p "~a-default~%" ,version)))))))
#:allowed-references ()
#:tests? #f))
(home-page "https://www.gnu.org/software/linux-libre/")
@@ -630,11 +640,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The following package is used in the early bootstrap, and thus must be kept
;; stable and with minimal build requirements.
-(define-public linux-libre-headers-5.4.20
- (make-linux-libre-headers "5.4.20" "gnu"
- "1qxhf6dmcwjblzx8fgn6vr10p38xw10iwh6d1y1v1mxb25y30b47"))
+(define-public linux-libre-headers-5.10.35
+ (make-linux-libre-headers "5.10.35" "gnu"
+ "0q2rnchad55d49f3rajrkazz0fcjv1irwrdb1hwjnl01fzm2gjk3"))
-(define-public linux-libre-headers linux-libre-headers-5.4.20)
+(define-public linux-libre-headers linux-libre-headers-5.10.35)
;;;
@@ -804,15 +814,18 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
(add-after 'unpack 'patch-/bin/pwd
(lambda _
(substitute* (find-files "." "^Makefile(\\.include)?$")
- (("/bin/pwd") "pwd"))
- #t))
+ (("/bin/pwd") "pwd"))))
(replace 'configure
(lambda* (#:key inputs native-inputs target #:allow-other-keys)
- ;; Avoid introducing timestamps
+ ;; Avoid introducing timestamps.
(setenv "KCONFIG_NOTIMESTAMP" "1")
(setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
- ;; Set ARCH and CROSS_COMPILE
+ ;; Other variables useful for reproducibility.
+ (setenv "KBUILD_BUILD_USER" "guix")
+ (setenv "KBUILD_BUILD_HOST" "guix")
+
+ ;; Set ARCH and CROSS_COMPILE.
(let ((arch ,(system->linux-architecture
(or (%current-target-system)
(%current-system)))))
@@ -883,8 +896,7 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
(false-if-file-not-found
(delete-file (string-append moddir "/" version "/build")))
(false-if-file-not-found
- (delete-file (string-append moddir "/" version "/source"))))
- #t))))
+ (delete-file (string-append moddir "/" version "/source"))))))))
#:tests? #f))
(home-page "https://www.gnu.org/software/linux-libre/")
(synopsis "100% free redistribution of a cleaned Linux kernel")
@@ -1805,7 +1817,7 @@ providing the system administrator with some help in common tasks.")
(define-public util-linux
(package
(name "util-linux")
- (version "2.35.1")
+ (version "2.37.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/utils/"
@@ -1813,7 +1825,7 @@ providing the system administrator with some help in common tasks.")
"util-linux-" version ".tar.xz"))
(sha256
(base32
- "1yfpy6bkab4jw61mpx48gfy24yrqp4a7arvpis8csrkk53fkxpnr"))
+ "0xkb7vw2040zi4m0sbhs5qn5l8nrq4xsf4sdxf3cy9mpachd8jwf"))
(patches (search-patches "util-linux-tests.patch"))
(modules '((guix build utils)))
(snippet
@@ -1831,7 +1843,10 @@ providing the system administrator with some help in common tasks.")
"static")) ;2.9 MiB static .a libraries
(arguments
`(#:configure-flags (list "--disable-use-tty-group"
- "--enable-fs-paths-default=/run/current-system/profile/sbin"
+ (string-append
+ "--enable-fs-paths-default="
+ "/run/setuid-programs"
+ ":/run/current-system/profile/sbin")
;; Don't try to chown root:root mount and umount
"--disable-makeinstall-chown"
"--localstatedir=/var"
@@ -1857,44 +1872,45 @@ providing the system administrator with some help in common tasks.")
;; libraries below $exec_prefix when $libdir does not
;; match any of the "usual" locations. Fix that.
(("usrlib_execdir='\\$\\{exec_prefix\\}'\\$libdir")
- "usrlib_execdir=$libdir"))
- #t))
+ "usrlib_execdir=$libdir"))))
(add-before 'build 'set-umount-file-name
(lambda* (#:key outputs #:allow-other-keys)
;; Tell 'eject' the right file name of 'umount'.
(let ((out (assoc-ref outputs "out")))
(substitute* "sys-utils/eject.c"
(("\"/bin/umount\"")
- (string-append "\"" out "/bin/umount\"")))
- #t)))
+ (string-append "\"" out "/bin/umount\""))))))
(add-before 'check 'pre-check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (net (assoc-ref inputs "net-base")))
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (let ((services (search-input-file (or native-inputs inputs)
+ "etc/services")))
;; Change the test to refer to the right file.
(substitute* "tests/ts/misc/mcookie"
(("/etc/services")
- (string-append net "/etc/services")))
+ services))
;; The C.UTF-8 locale does not exist in our libc.
(substitute* "tests/ts/column/invalid-multibyte"
- (("C\\.UTF-8") "en_US.utf8"))
- #t)))
- ;; TODO: Remove the conditional on the next rebuild cycle.
- ,@(if (string-prefix? "arm" (%current-system))
- '((add-before 'check 'disable-setarch-test
- (lambda _
- ;; The setarch tests are unreliable in QEMU's
- ;; user-mode emulation, which is our primary
- ;; method of building ARMv7 packages.
- ;; <https://github.com/karelzak/util-linux/issues/601>
- (substitute* "tests/ts/misc/setarch"
- (("ts_init_subtest.*" all)
- (string-append
- all "\n"
- "ts_skip \"setarch tests are unreliable under QEMU\"")))
- #t)))
- '())
+ (("C\\.UTF-8") "en_US.utf8")))))
+ (add-before 'check 'disable-setarch-test
+ (lambda _
+ ;; The setarch tests are unreliable in QEMU's user-mode
+ ;; emulation, which is our primary method of building
+ ;; ARMv7 packages. See
+ ;; <https://github.com/karelzak/util-linux/issues/601>.
+ (substitute* "tests/ts/misc/setarch"
+ (("ts_init_subtest.*" all)
+ (string-append
+ all "\n"
+ "ts_skip \"setarch tests are unreliable under QEMU\"")))))
+ (add-before 'check 'disable-lsns-test
+ (lambda _
+ ;; The lsns tests can fail due to ioctl(_, NS_GET_USERNS)
+ ;; returning ENOTTY, indicating this kernel does not
+ ;; support user namespaces. Curiously, this test can fail
+ ;; on i686 even if the same test passes on x86_64 on the
+ ;; same machine. See <https://issues.guix.gnu.org/49933>.
+ (delete-file "tests/ts/lsns/ioctl_ns")))
(add-after 'install 'move-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (assoc-ref outputs "lib"))
@@ -1913,9 +1929,7 @@ providing the system administrator with some help in common tasks.")
;; files so that Libtool does the right thing when both
;; the shared and static library is available.
(substitute* (find-files "lib" "\\.la$")
- (("old_library=.*") "old_library=''\n")))
-
- #t)))
+ (("old_library=.*") "old_library=''\n"))))))
(add-after 'install 'adjust-pkg-config-files
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (assoc-ref outputs "lib")))
@@ -1923,18 +1937,14 @@ providing the system administrator with some help in common tasks.")
;; the pkg-config files to avoid a cyclic reference on "out".
(substitute* (find-files (string-append lib "/lib/pkgconfig")
"\\.pc$")
- (("^(exec_)?prefix=.*") "")))
- #t)))))
- (inputs `(("zlib" ,zlib)
- ("ncurses" ,ncurses)
-
- ;; XXX: This is so that the 'pre-check' phase can find it.
- ,@(if (%current-target-system)
- `(("net-base" ,net-base))
- '())))
+ (("^(exec_)?prefix=.*") ""))))))))
+ (inputs
+ (list file ;for libmagic
+ ncurses
+ zlib))
(native-inputs
- `(("perl" ,perl)
- ("net-base" ,net-base))) ;for tests
+ (list net-base ;for tests
+ perl))
(home-page "https://www.kernel.org/pub/linux/utils/util-linux/")
(synopsis "Collection of utilities for the Linux kernel")
(description "Util-linux is a diverse collection of Linux kernel
@@ -2163,7 +2173,7 @@ module.")
(define-public e2fsprogs
(package
(name "e2fsprogs")
- (version "1.45.6")
+ (version "1.46.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2172,7 +2182,7 @@ module.")
"e2fsprogs-" version ".tar.xz"))
(sha256
(base32
- "0mj2yizwygs7xww8jfy5mxjn8ww4pvc0b1hg1p2vsnirailsx9zz"))))
+ "04wp77fg842dhribgn0xvbd77idh0n7a839ga4bwy78v7i9l445i"))))
(build-system gnu-build-system)
(inputs `(("util-linux" ,util-linux "lib")))
(native-inputs `(("pkg-config" ,pkg-config)
@@ -2214,8 +2224,7 @@ module.")
"INSTALL_SYMLINK = sh"))
(substitute* (find-files "." "^Makefile.in$")
(("#!/bin/sh")
- (string-append "#!" (which "sh"))))
- #t))
+ (string-append "#!" (which "sh"))))))
(add-after 'install 'install-libs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -2230,8 +2239,7 @@ module.")
(let ((archives (find-files lib "\\.a$")))
(for-each (lambda (file)
(chmod file #o666))
- archives))
- #t))))))
+ archives))))))))
(home-page "http://e2fsprogs.sourceforge.net/")
(synopsis "Creating and checking ext2/ext3/ext4 file systems")
(description
@@ -2267,8 +2275,7 @@ module.")
(ice-9 ftw)
(srfi srfi-26))
- (let ((e2fsck (string-append (assoc-ref %build-inputs "e2fsprogs")
- "/sbin/e2fsck"))
+ (let ((e2fsck (search-input-file %build-inputs "/sbin/e2fsck"))
(bin (string-append (assoc-ref %outputs "out") "/sbin")))
(mkdir-p bin)
(with-directory-excursion bin
@@ -2343,7 +2350,7 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
(define-public strace
(package
(name "strace")
- (version "5.8")
+ (version "5.13")
(home-page "https://strace.io")
(source (origin
(method url-fetch)
@@ -2351,23 +2358,28 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
"/strace-" version ".tar.xz"))
(sha256
(base32
- "1abs3svkg9985f4jrxx34sj1dcpsf95vv1a0g01c777zgygncjnz"))))
+ "0mmns22bjjvakxj29si0x4dcylcgy26llpcimkb0llcxif439k2s"))
+ (patches (search-patches "strace-readlink-tests.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-/bin/sh
(lambda _
- (substitute* "strace.c"
+ (substitute* "src/strace.c"
(("/bin/sh") (which "sh")))
#t))
(add-after 'unpack 'disable-failing-tests
(lambda _
- ;; XXX These hang forever even if the test time-out is extended.
(substitute* "tests/Makefile.in"
- (("^\tstrace-DD?D?\\.test \\\\.*") ""))
+ ;; XXX: These hang forever even if the test time-out is
+ ;; extended.
+ (("^\tstrace-DD?D?\\.test \\\\.*") "")
+ (("^\tpidns-cache.test \\\\.*") "")
+ (("^\t.*--pidns-translation.test \\\\.*") ""))
#t)))
- ;; Don't fail if the architecture doesn't support different personalities.
+ ;; Don't fail if the architecture doesn't support different
+ ;; personalities.
#:configure-flags '("--enable-mpers=check")
;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32459>.
#:parallel-tests? #f)) ; undeterministic failures
@@ -2402,24 +2414,96 @@ an executed process and the signals received by that process. It can also
intercept and print the system calls executed by the program.")
(license license:gpl2+)))
+(define-public alsa-ucm-conf
+ (package
+ (name "alsa-ucm-conf")
+ (version "1.2.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "ftp://ftp.alsa-project.org/pub/lib/" name "-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "0h6kzi1cfdqyxp4pwpqh5wb89c8s9wrgix315bvamffwfxf56frc"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("ucm" "share/alsa/ucm")
+ ("ucm2" "share/alsa/ucm2"))))
+ (home-page "https://www.alsa-project.org/wiki/Main_Page")
+ (synopsis "The Advanced Linux Sound Architecture Use Case Manager")
+ (description
+ "This package contains Advanced Linux Sound Architecture Use Case Manager
+configuration of audio input/output names and routing for specific audio
+hardware.")
+ (license license:bsd-3)))
+
+(define-public alsa-topology-conf
+ (package
+ (name "alsa-topology-conf")
+ (version "1.2.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "ftp://ftp.alsa-project.org/pub/lib/" name "-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "01zdg6q4s6d01k39z96wi4vbhrfw1i2g4yi5dijwfk6a5vjfdq2m"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("topology" "share/alsa/topology"))))
+ (home-page "https://www.alsa-project.org/wiki/Main_Page")
+ (synopsis "The Advanced Linux Sound Architecture libraries")
+ (description
+ "This package contains Advanced Linux Sound Architecture topology
+configuration files that can be used for specific audio hardware.")
+ (license license:bsd-3)))
+
(define-public alsa-lib
(package
(name "alsa-lib")
(version "1.2.4")
(source (origin
- (method url-fetch)
- (uri (string-append
- "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-"
- version ".tar.bz2"))
- (sha256
- (base32
- "1xq8d48wfy59qw4x7383j32n8j5njndw5hcgnmlg9pvclphlnmgp"))))
+ (method url-fetch)
+ (uri (string-append
+ "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "1xq8d48wfy59qw4x7383j32n8j5njndw5hcgnmlg9pvclphlnmgp"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out")
- "/lib"))))
- (home-page "https://www.alsa-project.org/")
+ "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'pre-install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((ucm
+ (string-append (assoc-ref inputs "alsa-ucm-conf")))
+ (topology
+ (string-append (assoc-ref inputs "alsa-topology-conf")))
+ (alsa
+ (string-append (assoc-ref outputs "out") "/share/alsa"))
+ (ucm-share
+ (string-append ucm "/share/alsa/ucm"))
+ (ucm2-share
+ (string-append ucm "/share/alsa/ucm2"))
+ (topology-share
+ (string-append topology "/share/alsa/topology")))
+ (mkdir-p alsa)
+ (symlink ucm-share (string-append alsa "/ucm"))
+ (symlink ucm2-share (string-append alsa "/ucm2"))
+ (symlink topology-share (string-append alsa "/topology")))
+ #t)))))
+ (inputs
+ `(("alsa-ucm-conf" ,alsa-ucm-conf)
+ ("alsa-topology-conf" ,alsa-topology-conf)))
+ (home-page "https://www.alsa-project.org/wiki/Main_Page")
(synopsis "The Advanced Linux Sound Architecture libraries")
(description
"The Advanced Linux Sound Architecture (ALSA) provides audio and
@@ -2572,7 +2656,7 @@ external rate conversion.")
("bison" ,bison)))
(inputs
`(("libmnl" ,libmnl)
- ("libnftnl" ,libnftnl)))
+ ("libnftnl" ,libnftnl/fixed)))
(arguments
'(#:tests? #f ; no test suite
#:configure-flags ; add $libdir to the RUNPATH of executables
@@ -2831,10 +2915,10 @@ network hardware types (plipconfig, slattach) and advanced aspects of IP
configuration (iptunnel, ipmaddr).")
(license license:gpl2+))))
-(define-public libcap-2.31
+(define-public libcap
(package
(name "libcap")
- (version "2.31")
+ (version "2.51")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2842,23 +2926,34 @@ configuration (iptunnel, ipmaddr).")
"libcap2/libcap-" version ".tar.xz"))
(sha256
(base32
- "0ikwm0kngrqa4ci80lqnrkk17kg09q7dxrz28y0gm5qw3vj8s266"))))
- (build-system gnu-build-system)
- (arguments '(#:phases
- (modify-phases %standard-phases
- (replace 'configure
- ;; Add $libdir to the RUNPATH of executables.
- (lambda _
- (substitute* "Make.Rules"
- (("LDFLAGS := #-g")
- (string-append "LDFLAGS := -Wl,-rpath="
- %output "/lib")))
- #t)))
+ "1ych13qc1mvzv8iscbims5b317vxcmy5ffpmfy98zk7bgamz62b6"))))
+ (build-system gnu-build-system)
+ (arguments `(#:phases
+ ,#~(modify-phases %standard-phases
+ (replace 'configure
+ ;; Add $libdir to the RUNPATH of executables.
+ (lambda _
+ (substitute* "Make.Rules"
+ (("LDFLAGS \\?= #-g")
+ (string-append "LDFLAGS ?= -Wl,-rpath="
+ ;; TODO(core-updates): Use #$output
+ ;; unconditionally.
+ #$(if (%current-target-system)
+ #~#$output
+ '%output)
+ "/lib"))))))
#:test-target "test"
- #:make-flags (list "lib=lib"
- (string-append "prefix="
- (assoc-ref %outputs "out"))
- "RAISE_SETFCAP=no")))
+ #:make-flags
+ (list "lib=lib"
+ (string-append "prefix=" (assoc-ref %outputs "out"))
+ "RAISE_SETFCAP=no"
+ ;; Tell the makefile to use TARGET-gcc and friends
+ ;; when cross-compiling.
+ ,@(if (%current-target-system)
+ `(,(string-append "CROSS_COMPILE="
+ (%current-target-system) "-")
+ "BUILD_CC=gcc")
+ '()))))
(native-inputs `(("perl" ,perl)))
(supported-systems (delete "i586-gnu" %supported-systems))
(home-page "https://sites.google.com/site/fullycapable/")
@@ -2870,37 +2965,6 @@ Linux-based operating systems.")
;; License is BSD-3 or GPLv2, at the user's choice.
(license license:gpl2)))
-;; libcap 2.31 has problems with newer kernels, so provide this newer variant.
-;; Keep the old libcap around to avoid rebuilding 'coreutils' and 'avahi'.
-;; To be merged with libcap on the next rebuild cycle.
-(define-public libcap
- (package
- (inherit libcap-2.31)
- (version "2.45")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "mirror://kernel.org/linux/libs/security/linux-privs/"
- "libcap2/libcap-" version ".tar.xz"))
- (sha256
- (base32
- "11ijmi7jik9iw6pdszc6bylhggghr8cza03bcrbhbqf0cpvkjrnn"))))
- (arguments
- (substitute-keyword-arguments (package-arguments libcap-2.31)
- ((#:phases phases)
- `(modify-phases ,phases
- (replace 'configure
- (lambda _
- ;; Add $libdir to the RUNPATH of executables.
- (substitute* "Make.Rules"
- (("LDFLAGS \\?= #-g")
- (string-append "LDFLAGS ?= -Wl,-rpath="
- %output "/lib")))
- #t))))))))
-
-(define-deprecated libcap/next libcap)
-(export libcap/next)
-
(define-public bridge-utils
(package
(name "bridge-utils")
@@ -3126,6 +3190,9 @@ settings.")
(base32
"0a8fwyxnc5qdxff8sl2sfsbnvgh6pkij4yafiln0fxgg6bal7knj"))))
(build-system gnu-build-system)
+ (arguments
+ ;; Allow compilation with GCC 10.
+ '(#:configure-flags '("CFLAGS=-O2 -g -fcommon")))
(inputs `(("ncurses" ,ncurses)))
(home-page "http://www.jpj.net/~trevor/aumix.html")
(synopsis "Audio mixer for X and the console")
@@ -3202,11 +3269,12 @@ processes currently causing I/O.")
;; it refers to the right ones.
(substitute* '("lib/mount_util.c" "util/mount_util.c")
(("/bin/(u?)mount" _ maybe-u)
- (string-append (assoc-ref inputs "util-linux")
- "/bin/" maybe-u "mount")))
- (substitute* "util/mount.fuse.c"
- (("/bin/sh" command)
- (string-append (assoc-ref inputs "bash-minimal") command)))
+ (search-input-file inputs
+ (string-append "bin/"
+ maybe-u "mount"))))
+ (substitute* '("util/mount.fuse.c")
+ (("/bin/sh")
+ (search-input-file inputs "/bin/sh")))
;; This hack leads libfuse to search for 'fusermount' in
;; $PATH, where it may find a setuid-root binary, instead of
@@ -3228,6 +3296,66 @@ user-space processes.")
(license (list license:lgpl2.1 ;library
license:gpl2+)))) ;command-line utilities
+(define-public fuse-3
+ (package
+ (inherit fuse)
+ (name "fuse")
+ (version "3.10.5")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://github.com/libfuse/libfuse/releases/"
+ "download/fuse-" version
+ "/fuse-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0rlnnsiw614qcmgy8xz67044gqc1pbvvf2yxjv44lh27bm487qmj"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:configure-flags
+ ,#~(list
+ (string-append "-Dudevrulesdir=" #$output "/udev/rules.d")
+ "-Duseroot=false")
+ #:tests? #f
+ #:phases
+ ,#~(modify-phases %standard-phases
+ (add-after 'unpack 'set-file-names
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; libfuse calls out to mount(8) and umount(8). Make sure
+ ;; it refers to the right ones.
+ (substitute* '("lib/mount_util.c")
+ (("/bin/(u?)mount" _ maybe-u)
+ (search-input-file inputs
+ (string-append "bin/"
+ maybe-u "mount"))))
+ (substitute* '("util/mount.fuse.c")
+ (("/bin/sh")
+ (search-input-file inputs "/bin/sh")))
+
+ ;; This hack leads libfuse to search for 'fusermount' in
+ ;; $PATH, where it may find a setuid-root binary, instead of
+ ;; trying solely $out/sbin/fusermount and failing because
+ ;; it's not setuid.
+ (substitute* "lib/meson.build"
+ (("-DFUSERMOUNT_DIR=[[:graph:]]+")
+ "-DFUSERMOUNT_DIR=\"/var/empty\"'"))))
+ (add-after 'unpack 'fix-install
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* '("util/meson.build")
+ (("install_helper.sh") "true"))
+ (substitute* '("util/meson.build")
+ (("fuseconf_path = .*")
+ "fuseconf_path = '/etc/fuse.conf'"))))
+ (add-before 'configure 'set-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((dummy-init.d
+ (string-append (getcwd) "/etc/init.d")))
+ (setenv "MOUNT_FUSE_PATH"
+ (string-append #$output "/sbin"))
+ (setenv "UDEV_RULES_PATH"
+ (string-append #$output
+ "/lib/udev/rules.d"))))))))))
+
(define-public unionfs-fuse
(package
(name "unionfs-fuse")
@@ -3568,7 +3696,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.")
(define-public kmod
(package
(name "kmod")
- (version "27")
+ (version "29")
(source (origin
(method url-fetch)
(uri
@@ -3576,16 +3704,19 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.")
"kmod-" version ".tar.xz"))
(sha256
(base32
- "035wzfzjx4nwidk747p8n085mgkvy531ppn16krrajx2dkqzply1"))
+ "0am54mi5rk72g5q7k6l6f36gw3r9vwgjmyna43ywcjhqmakyx00b"))
(patches (search-patches "kmod-module-directory.patch"))))
(build-system gnu-build-system)
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("pkg-config" ,pkg-config)
+ ;; For tests.
+ ("zstd" ,zstd)))
(inputs
`(("xz" ,xz)
- ("zlib" ,zlib)))
+ ("zlib" ,zlib)
+ ("zstd-lib" ,zstd "lib")))
(arguments
- `(#:configure-flags '("--with-xz" "--with-zlib"
+ `(#:configure-flags '("--with-xz" "--with-zlib" "--with-zstd"
"--disable-test-modules")
#:phases
(modify-phases %standard-phases
@@ -4290,27 +4421,28 @@ country-specific regulations for the wireless spectrum.")
(substitute* '("prog/pwm/pwmconfig"
"prog/pwm/fancontrol")
(("gnuplot")
- (string-append (assoc-ref inputs "gnuplot")
- "/bin/gnuplot"))
+ (search-input-file inputs "/bin/gnuplot"))
(("cat ")
- (string-append (assoc-ref inputs "coreutils")
- "/bin/cat "))
+ (string-append (search-input-file inputs "/bin/cat")
+ " "))
(("e?grep " match)
- (string-append (assoc-ref inputs "grep")
- "/bin/" match))
+ (string-append (search-input-file inputs
+ (string-append
+ "/bin/"
+ (string-trim-right match)))
+ " "))
(("sed -e")
- (string-append (assoc-ref inputs "sed")
- "/bin/sed -e"))
+ (string-append (search-input-file inputs "/bin/sed")
+ " -e"))
(("cut -d")
- (string-append (assoc-ref inputs "coreutils")
- "/bin/cut -d"))
+ (string-append (search-input-file inputs "/bin/cut")
+ " -d"))
(("sleep ")
- (string-append (assoc-ref inputs "coreutils")
- "/bin/sleep "))
+ (string-append (search-input-file inputs "/bin/sleep")
+ " "))
(("readlink -f")
- (string-append (assoc-ref inputs "coreutils")
- "/bin/readlink -f")))
- #t)))))
+ (string-append (search-input-file inputs "/bin/readlink")
+ " -f"))))))))
(home-page "https://hwmon.wiki.kernel.org/lm_sensors")
(synopsis "Utilities to read temperature/voltage/fan sensors")
(description
@@ -5149,7 +5281,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
(define-public bluez
(package
(name "bluez")
- (version "5.55")
+ (version "5.61")
(source (origin
(method url-fetch)
(uri (string-append
@@ -5157,7 +5289,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
version ".tar.xz"))
(sha256
(base32
- "124v9s4y1s7s6klx5vlmzpk1jlr4x84ch7r7scm7x2f42dqp2qw8"))))
+ "0fs2kjsdhylxniqhii63i85fjszbqbz3iddwmgz4nmbr472xdbw3"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -5198,10 +5330,11 @@ Bluetooth audio output devices like headphones or loudspeakers.")
(("hid2hci --method")
(string-append out "/lib/udev/hid2hci --method"))
(("/sbin/udevadm")
- (string-append (assoc-ref inputs "eudev") "/bin/udevadm")))
+ (search-input-file inputs "/bin/udevadm")))
#t))))))
(native-inputs
`(("pkg-config" ,pkg-config)
+ ("rst2man" ,python-docutils)
("gettext" ,gettext-minimal)))
(inputs
`(("glib" ,glib)
@@ -5520,7 +5653,8 @@ obviously it can be shared with files outside our set).")
(build-system gnu-build-system)
(arguments
- `(#:phases
+ `(#:configure-flags '("CFLAGS=-fcommon")
+ #:phases
(modify-phases %standard-phases
(add-after 'install 'install-headers
(lambda* (#:key outputs #:allow-other-keys)
@@ -5899,6 +6033,7 @@ invocations of itself.")
(native-inputs `(("pkg-config" ,pkg-config)))
(arguments
'(#:configure-flags (list "--disable-static"
+ "--disable-ldconfig" ;not necessary
"--exec-prefix=${prefix}"
"--with-fuse=external" ;use our own FUSE
"--enable-mount-helper"
@@ -6660,7 +6795,8 @@ monitoring tools for Linux. These include @code{mpstat}, @code{iostat},
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
- `(#:phases
+ `(#:configure-flags '("CFLAGS=-fcommon")
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-udev-rules-absolute-path-bins
(lambda* (#:key inputs #:allow-other-keys)
@@ -6938,6 +7074,24 @@ libnftnl has been previously known as libnftables. This library is currently
used by nftables.")
(license license:gpl2+)))
+;; This is used in iptables, which contributes to rust. We're pinning this
+;; variant to avoid accidental rebuilds of rust.
+(define-public libnftnl/fixed
+ (package (inherit libnftnl)
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://netfilter.org/libnftnl/"
+ "libnftnl-" version ".tar.bz2"))
+ (sha256
+ (base32 "1xblq1cbcxhr6qmjpy98i1qdza148idgz99vbhjc7s4vzvfizc4h"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libmnl" ,libmnl)))))
+
(define-public nftables
(package
(name "nftables")
@@ -7296,6 +7450,11 @@ libraries, which are often integrated directly into libfabric.")
(arguments
'(#:make-flags `("PSM_USE_SYS_UUID=1" "CC=gcc" "WERROR="
,(string-append "INSTALL_PREFIX=" %output)
+ ,(string-append "CFLAGS=-Wall -fpic -fPIC -D_GNU_SOURCE"
+ " -funwind-tables -O3 -g3"
+ " -DPSM_USE_SYS_UUID"
+ " -Wno-strict-aliasing -DNVALGRIND"
+ " -fcommon")
,(string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
#:tests? #f
#:phases (modify-phases %standard-phases
@@ -7922,34 +8081,42 @@ without using the archiver.")
(license license:gpl3+)))
(define-public fakechroot
- (package
- (name "fakechroot")
- (version "2.20.1")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/dex4er/fakechroot/releases/download/"
- version "/fakechroot-" version ".tar.gz"))
- (sha256
- (base32
- "1aijkd0b45wav25v01qhw8zxwa3pl0nnp9fabmmy1nlx7hr09gas"))))
- (build-system gnu-build-system)
- (arguments
- ;; XXX: The tests heavily assume they run on an FHS system so for now
- ;; skip them.
- '(#:tests? #f
- #:configure-flags '("--disable-static")))
- (synopsis "Emulate @code{chroot} by overriding file system calls")
- (description
- "@command{fakechroot} runs a command in an environment were is additional
+ ;; XXX: Build from the change submitted at
+ ;; <https://github.com/dex4er/fakechroot/pull/85> to allow compilation
+ ;; against glibc 2.33. Switch back to the official repository on the next
+ ;; release.
+ (let ((commit "e7c1f3a446e594a4d0cce5f5d499c9439ce1d5c5")
+ (revision "0"))
+ (package
+ (name "fakechroot")
+ (version (git-version "2.20.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lipnitsk/fakechroot")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0gac6a6djx3nf343vd33sr5qqngz8ss3aij54zl8x9wb47pc11kb"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; XXX: The tests heavily assume they run on an FHS system so for now
+ ;; skip them.
+ '(#:tests? #f
+ #:configure-flags '("--disable-static")))
+ (native-inputs (list autoconf automake libtool perl))
+ (synopsis "Emulate @code{chroot} by overriding file system calls")
+ (description
+ "@command{fakechroot} runs a command in an environment were is additional
possibility to use @code{chroot} command without root privileges. This is
useful for allowing users to create own chrooted environment with possibility
to install another packages without need for root privileges.
It works by providing @file{libfakechroot.so}, a shared library meant to be
set as @code{LD_PRELOAD} to override the C library file system functions.")
- (home-page "https://github.com/dex4er/fakechroot/")
- (license license:lgpl2.1+)))
+ (home-page "https://github.com/dex4er/fakechroot/")
+ (license license:lgpl2.1+))))
(define-public inputattach
(package
@@ -7972,10 +8139,8 @@ set as @code{LD_PRELOAD} to override the C library file system functions.")
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "inputattach"
- (invoke (string-append (assoc-ref inputs "gcc")
- "/bin/gcc")
- "-O2" "-o" "inputattach" "inputattach.c"))
- #t))
+ (invoke "gcc" "-O2" "-o" "inputattach"
+ "inputattach.c"))))
(delete 'check)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
@@ -8005,7 +8170,8 @@ types and interfaces and translates so that the X server can use them.")
(file-name (git-file-name name version))
(sha256
(base32
- "1q5wrqnhhs6r49p8yvkw1pl0cnsd4rndxy4h5lvdydwgf1civcwc"))))
+ "1q5wrqnhhs6r49p8yvkw1pl0cnsd4rndxy4h5lvdydwgf1civcwc"))
+ (patches (search-patches "pipewire-0.2.7-fno-common.patch"))))
(build-system meson-build-system)
(arguments
'(#:configure-flags '("-Dsystemd=false")))
@@ -8038,7 +8204,7 @@ of Linux application development.")
(package
(inherit pipewire)
(name "pipewire")
- (version "0.3.29")
+ (version "0.3.40")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -8047,20 +8213,23 @@ of Linux application development.")
(file-name (git-file-name name version))
(sha256
(base32
- "16jjxcnahxqfcawz77ywx837ybhwzcivn7hgqb9cmlp1y2syy8gk"))))
+ "1c6gni23l5w3ghwqnfs712kjj6l1825f0ib8a6r2xc1ymr0sx3kr"))))
(arguments
'(#:configure-flags
(list (string-append "-Dudevrulesdir=" (assoc-ref %outputs "out")
"/lib/udev/rules.d")
- "-Dsystemd=disabled")
+ "-Dsystemd=disabled"
+ "-Dsession-managers=[]")
#:phases
(modify-phases %standard-phases
;; Skip shrink-runpath, otherwise validate-runpath fails.
(delete 'shrink-runpath))))
(inputs
(append (package-inputs pipewire)
- `(("bluez" ,bluez)
+ `(("avahi" ,avahi)
+ ("bluez" ,bluez)
("jack" ,jack-2)
+ ("ldacbt" ,ldacbt)
("pulseaudio" ,pulseaudio)
("vulkan-loader" ,vulkan-loader)
("vulkan-headers" ,vulkan-headers))))))
@@ -8266,6 +8435,11 @@ bindings, and the command-line tool @command{babeltrace2}.")
(arguments
;; There are no automated tests.
'(#:tests? #f))
+ ;; This variant of binutils is used for the 64 bit support needed to
+ ;; assemble the `purgatory/arch/i386/compat_x86_64.S' program on i686-linux.
+ (native-inputs (list (make-ld-wrapper "ld-wrapper"
+ #:binutils binutils-next)
+ binutils-next))
(home-page "https://projects.horms.net/projects/kexec/")
(synopsis "Tools for booting directly into different kernels")
(description "This package provides the @code{kexec} program and ancillary
@@ -8415,7 +8589,7 @@ headers.")
(lambda (python-executable)
(format #t "Wrapping: ~A.~%" python-executable)
(wrap-program python-executable
- `("PYTHONPATH" ":" prefix
+ `("GUIX_PYTHONPATH" ":" prefix
(,(string-append lib
"/python"
,(version-major+minor