diff options
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r-- | gnu/packages/linux.scm | 520 |
1 files changed, 335 insertions, 185 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 949d415db1..b8997dd42b 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,6 +52,11 @@ ;;; 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> ;;; ;;; This file is part of GNU Guix. @@ -143,10 +148,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) @@ -547,14 +552,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) @@ -565,32 +568,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/") @@ -635,11 +643,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) ;;; @@ -1812,7 +1820,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/" @@ -1820,7 +1828,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 @@ -1838,7 +1846,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" @@ -1864,43 +1875,46 @@ 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 + (("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\""))))) + ,@(if (target-x86-32?) + `((add-before 'check 'disable-lsns-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))) + ;; 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) @@ -1920,9 +1934,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"))) @@ -1930,18 +1942,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 @@ -2280,8 +2288,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 @@ -2356,7 +2363,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) @@ -2364,23 +2371,31 @@ Zerofree requires the file system to be unmounted or mounted read-only.") "/strace-" version ".tar.xz")) (sha256 (base32 - "1abs3svkg9985f4jrxx34sj1dcpsf95vv1a0g01c777zgygncjnz")))) + "0mmns22bjjvakxj29si0x4dcylcgy26llpcimkb0llcxif439k2s")))) (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: This test fails because an extra readlink call is made + ;; by the glibc when using the ld.so cache. + (("readlink.gen.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 @@ -2415,24 +2430,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 @@ -2844,10 +2931,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 @@ -2855,23 +2942,34 @@ configuration (iptunnel, ipmaddr).") "libcap2/libcap-" version ".tar.xz")) (sha256 (base32 - "0ikwm0kngrqa4ci80lqnrkk17kg09q7dxrz28y0gm5qw3vj8s266")))) + "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=" - %output "/lib"))) - #t))) + (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/") @@ -2883,37 +2981,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") @@ -3139,6 +3206,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") @@ -3215,11 +3285,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 @@ -3241,6 +3312,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") @@ -3581,7 +3712,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 @@ -3589,16 +3720,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 @@ -4303,27 +4437,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 @@ -5211,7 +5346,7 @@ 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) @@ -5533,7 +5668,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) @@ -5912,6 +6048,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" @@ -6674,7 +6811,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) @@ -7309,6 +7447,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 @@ -7929,34 +8072,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 @@ -7979,10 +8130,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) @@ -8012,7 +8161,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"))) @@ -8366,7 +8516,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 |