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.scm252
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