diff options
Diffstat (limited to 'gnu/packages/linux.scm')
| -rw-r--r-- | gnu/packages/linux.scm | 335 | 
1 files changed, 184 insertions, 151 deletions
| diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 88ee89e717..415cb4e026 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -22,7 +22,7 @@  ;;; Copyright © 2017, 2018, 2020 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> @@ -142,10 +142,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 +542,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 +558,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/") @@ -623,11 +626,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" -                            "1qxhf6dmcwjblzx8fgn6vr10p38xw10iwh6d1y1v1mxb25y30b47")) +(define-public linux-libre-headers-5.10.35 +  (make-linux-libre-headers "5.10.35" +                            "0q2rnchad55d49f3rajrkazz0fcjv1irwrdb1hwjnl01fzm2gjk3")) -(define-public linux-libre-headers linux-libre-headers-5.4.20) +(define-public linux-libre-headers linux-libre-headers-5.10.35)  ;;; @@ -1715,7 +1718,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/" @@ -1723,7 +1726,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 @@ -1741,7 +1744,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" @@ -1767,44 +1773,37 @@ 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-after 'install 'move-static-libraries                      (lambda* (#:key outputs #:allow-other-keys)                        (let ((lib    (assoc-ref outputs "lib")) @@ -1823,9 +1822,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"))) @@ -1833,18 +1830,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 @@ -2286,24 +2279,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 @@ -2715,10 +2780,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 @@ -2726,7 +2791,7 @@ configuration (iptunnel, ipmaddr).")                     "libcap2/libcap-" version ".tar.xz"))               (sha256                (base32 -               "0ikwm0kngrqa4ci80lqnrkk17kg09q7dxrz28y0gm5qw3vj8s266")))) +               "1ych13qc1mvzv8iscbims5b317vxcmy5ffpmfy98zk7bgamz62b6"))))      (build-system gnu-build-system)      (arguments '(#:phases                   (modify-phases %standard-phases @@ -2734,10 +2799,9 @@ configuration (iptunnel, ipmaddr).")                              ;; Add $libdir to the RUNPATH of executables.                              (lambda _                                (substitute* "Make.Rules" -                                (("LDFLAGS := #-g") -                                 (string-append "LDFLAGS := -Wl,-rpath=" -                                                %output "/lib"))) -                              #t))) +                                (("LDFLAGS \\?= #-g") +                                 (string-append "LDFLAGS ?= -Wl,-rpath=" +                                                %output "/lib"))))))                   #:test-target "test"                   #:make-flags (list "lib=lib"                                      (string-append "prefix=" @@ -2754,37 +2818,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") @@ -3102,11 +3135,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 @@ -3468,7 +3502,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 @@ -3476,16 +3510,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 @@ -4191,27 +4228,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 @@ -5109,7 +5147,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) @@ -5813,6 +5851,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" @@ -7642,15 +7681,11 @@ the superuser to make device nodes.")            (lambda*  (#:key inputs #:allow-other-keys)              (substitute* "scripts/fakeroot.in"               (("getopt") -              (string-append (assoc-ref inputs "util-linux") -                             "/bin/getopt")) +              (search-input-file inputs "/bin/getopt"))               (("sed") -              (string-append (assoc-ref inputs "sed") -                             "/bin/sed")) +              (search-input-file inputs "/bin/sed"))               (("cut") -              (string-append (assoc-ref inputs "coreutils") -                             "/bin/cut")) ) -            #t)) +              (search-input-file inputs "/bin/cut")) )))          (add-before 'configure 'setenv            (lambda _              (setenv "LIBS" "-lacl") @@ -7751,10 +7786,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) @@ -8073,7 +8106,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 | 
