diff options
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r-- | gnu/packages/linux.scm | 252 |
1 files changed, 146 insertions, 106 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 41902e7785..6e3b43ae66 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> @@ -141,10 +141,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) @@ -562,14 +562,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) @@ -580,32 +578,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/") @@ -647,11 +650,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) ;;; @@ -1720,7 +1723,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.36.2") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/" @@ -1728,7 +1731,7 @@ providing the system administrator with some help in common tasks.") "util-linux-" version ".tar.xz")) (sha256 (base32 - "1yfpy6bkab4jw61mpx48gfy24yrqp4a7arvpis8csrkk53fkxpnr")) + "0psc0asjp1rmfx1j7468zfnk9nphlphybw2n8dcl74v8v2lnnlgp")) (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet @@ -1746,7 +1749,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" @@ -1772,16 +1778,14 @@ 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")) @@ -1793,23 +1797,18 @@ providing the system administrator with some help in common tasks.") ;; 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")) @@ -1828,9 +1827,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"))) @@ -1838,8 +1835,7 @@ 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))))) + (("^(exec_)?prefix=.*") "")))))))) (inputs `(("zlib" ,zlib) ("ncurses" ,ncurses) @@ -2291,24 +2287,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 @@ -2720,10 +2788,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.49") (source (origin (method url-fetch) (uri (string-append @@ -2731,7 +2799,7 @@ configuration (iptunnel, ipmaddr).") "libcap2/libcap-" version ".tar.xz")) (sha256 (base32 - "0ikwm0kngrqa4ci80lqnrkk17kg09q7dxrz28y0gm5qw3vj8s266")))) + "10g13s1kihqpvrvmfl2w8s18icqjlz8hy2vkhz3jw2256vcw92z9")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -2739,10 +2807,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=" @@ -2759,37 +2826,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") @@ -3473,7 +3509,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 @@ -3481,16 +3517,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 @@ -5817,6 +5856,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" @@ -8077,7 +8117,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 |