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.scm108
1 files changed, 76 insertions, 32 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 9637fa53ba..ba90175513 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -84,6 +84,7 @@
;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com>
;;; Copyright © 2025 Mathieu Laparie <mlaparie@disr.it>
+;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -243,6 +244,7 @@
(linux linux-libre)
source
defconfig
+ modconfig
(configs "")
extra-version)
"Make a customized Linux package NAME derived from the LINUX package.
@@ -256,6 +258,10 @@ A DEFCONFIG file to be used can be given as an origin, as a file-like object
available in the Linux sources. If DEFCONFIG is not given, then a defconfig
file will be saved from the LINUX package configuration.
+MODCONFIG is an origin or file-like object used for make localmodconfig to
+disable unlisted modules. For instance, this can come from using modprobed-db
+periodically on a running machine to find all loaded modules.
+
Additional CONFIGS will be used to modify the given or saved defconfig, which
will finally be used to build Linux.
@@ -324,7 +330,12 @@ of 'uname -r' behind the Linux version numbers."
(chmod guix_defconfig #o644)
(modify-defconfig guix_defconfig '#$configs)
(invoke "make" "guix_defconfig")
- (verify-config ".config" guix_defconfig))))))))))
+ (verify-config ".config" guix_defconfig)
+ ;; Minimize module building if provided e.g. a modprobed-db
+ ;; database.
+ (if #$modconfig
+ (invoke "make" (string-append "LSMOD=" #$modconfig)
+ "localmodconfig")))))))))))
(define (make-defconfig uri sha256-as-base32)
(origin (method url-fetch)
@@ -515,6 +526,21 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
+(define-public linux-libre-6.16-version "6.16.4")
+(define-public linux-libre-6.16-gnu-revision "gnu")
+(define deblob-scripts-6.16
+ (linux-libre-deblob-scripts
+ linux-libre-6.16-version
+ linux-libre-6.16-gnu-revision
+ (base32 "1s44yaxib45834mjmvqkl70s2lazbzvpxhp4z7qwxkrkpw94mdxx")
+ (base32 "1i4kba2wpkc7jmj7b2qjkrgqsl0g0s1h7j9pfvc7zqyyn9v3kkqr")))
+(define-public linux-libre-6.16-pristine-source
+ (let ((version linux-libre-6.16-version)
+ (hash (base32 "08mnd8qir2vxjmgblhnqfrfbv2zlig68f4r5askk7d8h3b3y79fn")))
+ (make-linux-libre-source version
+ (%upstream-linux-source version hash)
+ deblob-scripts-6.16)))
+
(define-public linux-libre-6.15-version "6.15.11")
(define-public linux-libre-6.15-gnu-revision "gnu")
(define deblob-scripts-6.15
@@ -534,7 +560,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-6.12-version "6.12.43")
+(define-public linux-libre-6.12-version "6.12.44")
(define-public linux-libre-6.12-gnu-revision "gnu")
(define deblob-scripts-6.12
(linux-libre-deblob-scripts
@@ -544,12 +570,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1yl447396g454116j8v17wsqg5i0gyb2rrxvaygw6xdkbwrrj28j")))
(define-public linux-libre-6.12-pristine-source
(let ((version linux-libre-6.12-version)
- (hash (base32 "1vmxywg11z946i806sg7rk7jr9px87spmwwbzjxpps2nsjybpjqg")))
+ (hash (base32 "1bmx2vpxy6nkxnmm2a3zmv9smaajfhvslj6id54j4yq2sc722l5n")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.12)))
-(define-public linux-libre-6.6-version "6.6.102")
+(define-public linux-libre-6.6-version "6.6.103")
(define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6
(linux-libre-deblob-scripts
@@ -559,12 +585,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "11i7pvm5n31rvp05msbm3ciclr84cz9c94f5r5aa6mmzhslwpbxk")))
(define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version)
- (hash (base32 "0p6yjifwyrqlppn40isgxb0b5vqmljggmnp7w75vlc2c6fvzxll0")))
+ (hash (base32 "13mi8blsw0gps586qbvh7ga5r9pv9jld4fkbp9vaaaz6qcwdv26j")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.6)))
-(define-public linux-libre-6.1-version "6.1.148")
+(define-public linux-libre-6.1-version "6.1.149")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
@@ -574,12 +600,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0f3jgbfd2j7sz7h1hb30s1r9147g1cbb3ia09k9834fvbiz1ihaa")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
- (hash (base32 "18c024bqqc3srzv2gva55p95yghjc6x3p3f54v3hziki4wx3v86r")))
+ (hash (base32 "0fdyfxw80zhkwh29m5v7xfmbyks5wi6isdq6bv96cn4ssfw0dsf4")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
-(define-public linux-libre-5.15-version "5.15.189")
+(define-public linux-libre-5.15-version "5.15.190")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
@@ -589,12 +615,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0rg65s6kd9gxxa3wl6180pr39rb6zbcicwjik4kygs2ns0247y56")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
- (hash (base32 "1hshd26ahn6dbw6jnqi0v5afpk672w7p09mk7iri93i7hxdh5l73")))
+ (hash (base32 "0146lslj0my0mhcx7wfp984f270zr8iiyq9899v6f7cflkqi9f32")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
-(define-public linux-libre-5.10-version "5.10.240")
+(define-public linux-libre-5.10-version "5.10.241")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
@@ -604,12 +630,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0r1whrfhhhjyvppiidhihcvyzcab6dva6g9a4div8jkxm62s2cq3")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
- (hash (base32 "04sdcf4aqsqchii38anzmk9f9x65wv8q1x3m9dandmi6fabw724d")))
+ (hash (base32 "1mnqjvb1hmr7p035c66k3z0idirhsj9j5zwgb92gi0ac0s1fkh88")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
-(define-public linux-libre-5.4-version "5.4.296")
+(define-public linux-libre-5.4-version "5.4.297")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
@@ -619,7 +645,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0l7pwhgw9laxfypcpqlz411x3hybcw2269abh3lpcw96bgv5m1k2")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "0fm73yqzbzclh2achcj8arpg428d412k2wgmlfmyy6xzb1762qrx")))
+ (hash (base32 "0hd8x32xgvj4qnc6cls0q21zfgvxxfz7xhbwgl48hxfggbmgq37i")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
@@ -652,6 +678,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(patches (append (origin-patches source)
patches))))
+(define-public linux-libre-6.16-source
+ (source-with-patches linux-libre-6.16-pristine-source
+ (list %boot-logo-patch
+ %linux-libre-arm-export-__sync_icache_dcache-patch)))
+
(define-public linux-libre-6.15-source
(source-with-patches linux-libre-6.15-pristine-source
(list %boot-logo-patch
@@ -778,6 +809,11 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(description "Headers of the Linux-Libre kernel.")
(license license:gpl2)))
+(define-public linux-libre-headers-6.16
+ (make-linux-libre-headers* linux-libre-6.16-version
+ linux-libre-6.16-gnu-revision
+ linux-libre-6.16-source))
+
(define-public linux-libre-headers-6.15
(make-linux-libre-headers* linux-libre-6.15-version
linux-libre-6.15-gnu-revision
@@ -823,7 +859,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; linux-libre-headers-latest points to the latest headers package
;; and should be used as a dependency for packages that depend on
;; the headers.
-(define-public linux-libre-headers-latest linux-libre-headers-6.15)
+(define-public linux-libre-headers-latest linux-libre-headers-6.16)
;;;
@@ -1150,6 +1186,14 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
;;; Generic kernel packages.
;;;
+(define-public linux-libre-6.16
+ (make-linux-libre* linux-libre-6.16-version
+ linux-libre-6.16-gnu-revision
+ linux-libre-6.16-source
+ '("x86_64-linux" "i686-linux" "aarch64-linux"
+ "powerpc64le-linux" "riscv64-linux")
+ #:configuration-file kernel-config))
+
(define-public linux-libre-6.15
(make-linux-libre* linux-libre-6.15-version
linux-libre-6.15-gnu-revision
@@ -3381,24 +3425,20 @@ slabtop, tload, top, vmstat, w, watch and sysctl.")
(define-public usbutils
(package
(name "usbutils")
- (version "017")
+ (version "018")
(source
(origin
- (method url-fetch)
- (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/"
- "usbutils-" version ".tar.xz"))
- (sha256
- (base32 "0nz008kshcajc9asxr4j5dh4wgq72z52lws4ga6y60wirzymz8m6"))))
- (build-system gnu-build-system)
+ (method url-fetch)
+ (uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/"
+ "usbutils-" version ".tar.xz"))
+ (sha256
+ (base32 "14xd7j9fl3pm0z4dhqj3mf9paqk431kq4vi602f5hiw5nmcqpxl3"))))
+ (build-system meson-build-system)
(outputs (list "out" "python"))
(arguments
(list
#:phases
#~(modify-phases %standard-phases
- (add-before 'bootstrap 'patch-bootstrap-scripts
- (lambda _
- (substitute* "usbhid-dump/bootstrap"
- (("/bin/sh") (which "sh")))))
(add-after 'install 'separate-python-output
;; Separating one Python script shaves more than 106 MiB from :out.
(lambda _
@@ -3407,17 +3447,21 @@ slabtop, tload, top, vmstat, w, watch and sysctl.")
(new (string-append #$output:python "/" file)))
(mkdir-p (dirname new))
(rename-file old new)))
- (list "bin/lsusb.py")))))))
- (inputs
- (list eudev libusb python))
- (native-inputs
- (list autoconf automake libtool pkg-config))
+ (list "bin/lsusb.py"))))
+ (add-after 'install 'install-usbreset
+ (lambda _
+ (install-file "usbreset"
+ (string-append #$output "/bin")))))))
+ (native-inputs (list pkg-config))
+ (inputs (list eudev libusb python))
(home-page "http://www.linux-usb.org/")
(synopsis
"Tools for working with USB devices")
(description
- "Collection of tools to query what type of USB devices are connected to the
-system, including @command{lsusb}.")
+ "Collection of tools to query what type of USB devices are connected to
+the system, including @command{lsusb}. The experimental @command{usbreset}
+command included in the package, but be aware that it may not work for all
+devices.")
(license license:gpl2+)))
(define-public usbip-utils