[PATCH] gnu: Improve hackability of the Linux kernel

  • Open
  • quality assurance status badge
Details
One participant
  • Stefan
Owner
unassigned
Submitted by
Stefan
Severity
normal
S
S
Stefan wrote on 25 Jan 15:10 +0100
ba8a5a04-0b3a-474c-9af4-6469f2b304e0@vodafonemail.de
Collect versions and hashes of Linux origins centrally in the public
function upstream-linux-source. The result of this function is usable for
the #:source argument of the customize-linux function.

gnu/packages/linux.scm (%upstream-linux-source): Rename function to
upstream-linux-source and export it.
(upstream-linux-source)[version, hash]: Make arguments optional, set the
default value of version to "6.12.10". Add a table of versions and hashes
to return a Linux kernel origin only based on the version, if no hash is
given but internally known.
(make-linux-libre-source)[upstream-source]: Make argument optional and set
its default to (upstream-linux-source version).
(linux-libre-6.12-pristine-source, linux-libre-6.6-pristine-source,
linux-libre-6.1-pristine-source, linux-libre-5.15-pristine-source,
linux-libre-5.10-pristine-source, linux-libre-5.4-pristine-source): Remove
hashes for origins and invoke make-linux-libre-source with the default
value for its upstream-source argument.
(default-extra-linux-options): Remove duplicate of CONFIG_CGROUP_FREEZER.

Change-Id: I9cba6686b83d21368814793fcdb6cc49f27b239e
---
gnu/packages/linux.scm | 63 +++++++++++++++++-------------------------
1 file changed, 26 insertions(+), 37 deletions(-)

Toggle diff (153 lines)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 77a53e4805..3d204f3109 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -69,7 +69,7 @@
;;; Copyright © 2022, 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2022 Hunter Jozwiak <hunter.t.joz@gmail.com>
;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
-;;; Copyright © 2022 Stefan <stefan-guix@vodafonemail.de>
+;;; Copyright © 2022, 2025 Stefan <stefan-guix@vodafonemail.de>
;;; Copyright © 2022, 2023 Demis Balbach <db@minikn.xyz>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
@@ -228,6 +228,7 @@ (define-module (gnu packages linux)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
+ #:use-module (ice-9 optargs)
#:use-module (ice-9 regex)
#:export (customize-linux
make-defconfig))
@@ -385,9 +386,11 @@ (define (linux-libre-deblob-scripts version gnu-revision
;; XXXX: Workaround 'snippet' limitations
(define computed-origin-method (@@ (guix packages) computed-origin-method))
-(define (make-linux-libre-source version
- upstream-source
- deblob-scripts)
+(define* (make-linux-libre-source version
+ deblob-scripts
+ #:optional
+ (upstream-source
+ (upstream-linux-source version)))
"Return a 'computed' origin that generates a Linux-libre tarball from the
corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(match deblob-scripts
@@ -503,13 +506,24 @@ (define (linux-libre-urls version gnu-revision)
"mirror://gnu/linux-libre/" version "-" gnu-revision "/linux-libre-"
version "-" gnu-revision ".tar.xz")))
-(define (%upstream-linux-source version hash)
+(define*-public (upstream-linux-source #:optional (version "6.12.10") hash)
(origin
(method url-fetch)
(uri (string-append "mirror://kernel.org"
"/linux/kernel/v" (version-major version) ".x/"
"linux-" version ".tar.xz"))
- (sha256 hash)))
+ (sha256
+ (or hash
+ (base32
+ (match version
+ ("6.12.10" "15xjjn8ff7g9q0ljr2g8k098ppxnpvxlgv22rdrplls8sxg6wlaa")
+ ("6.6.72" "0fggpba886340xi8gkxc6hmzplcm69nliddql3d6hn8djcafbfgy")
+ ("6.1.125" "0g0b23dm8kzijh9j1g4rv7b3r2lzz53g26xmz4zgchkybxfkbwnr")
+ ("5.15.176" "1cfk55469swywnf4r6pl7b3njxws8w3np81r99f0wnlaihrbajm8")
+ ("5.10.233" "0lkz2g8r032f027j3gih3f7crx991mrpng9qgqc5k4cc1wl5g7i3")
+ ("5.4.289" "043dl195h06hs3zdjd6j1m1zgvmky3s0plrpma75zqf8ab05yghy")
+ (_ (error
+ (format #f "unknown hash for linux version ~a" version)))))))))
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
@@ -523,11 +537,7 @@ (define deblob-scripts-6.12
(base32 "0i24k4zc6x5lvif12ba53c6cd5ydiah9j32ly2wpl88424ld389h")
(base32 "0jwnb1pd8ayfkck3sw3jjlsg7gayig0ymiay53mg7qchhycih8xs")))
(define-public linux-libre-6.12-pristine-source
- (let ((version linux-libre-6.12-version)
- (hash (base32 "15xjjn8ff7g9q0ljr2g8k098ppxnpvxlgv22rdrplls8sxg6wlaa")))
- (make-linux-libre-source version
- (%upstream-linux-source version hash)
- deblob-scripts-6.12)))
+ (make-linux-libre-source linux-libre-6.12-version deblob-scripts-6.12))
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
@@ -542,11 +552,7 @@ (define deblob-scripts-6.6
(base32 "1a28pdl645bj4d8gac71dmwmll6a2kgd3k7gkpfvi94yqkzd9r2z")
(base32 "1gqha26cxijizyhg6k5397bc9pn54wxz01d4gb7j2xx22rkxjwhb")))
(define-public linux-libre-6.6-pristine-source
- (let ((version linux-libre-6.6-version)
- (hash (base32 "0fggpba886340xi8gkxc6hmzplcm69nliddql3d6hn8djcafbfgy")))
- (make-linux-libre-source version
- (%upstream-linux-source version hash)
- deblob-scripts-6.6)))
+ (make-linux-libre-source linux-libre-6.6-version deblob-scripts-6.6))
(define-public linux-libre-6.1-version "6.1.125")
(define-public linux-libre-6.1-gnu-revision "gnu")
@@ -557,11 +563,7 @@ (define deblob-scripts-6.1
(base32 "1sf80f2i4vf888xjcn84ymn4w5ynn30ib9033zwmv7f09yvfhapy")
(base32 "060pbbvk3c1r9v6fz1qm5f0hjb29wi67lg7an0nwl6bpjsk5ci52")))
(define-public linux-libre-6.1-pristine-source
- (let ((version linux-libre-6.1-version)
- (hash (base32 "0g0b23dm8kzijh9j1g4rv7b3r2lzz53g26xmz4zgchkybxfkbwnr")))
- (make-linux-libre-source version
- (%upstream-linux-source version hash)
- deblob-scripts-6.1)))
+ (make-linux-libre-source linux-libre-6.1-version deblob-scripts-6.1))
(define-public linux-libre-5.15-version "5.15.176")
(define-public linux-libre-5.15-gnu-revision "gnu")
@@ -572,11 +574,7 @@ (define deblob-scripts-5.15
(base32 "18ac30kxg2mf2f6gk3p935hzhz2qs110jy4xwk21kblnnkskbxj8")
(base32 "1pbl08jzqh944z34bz25k2v7igsm3r89jbcg0hba3cvyybkkfc2g")))
(define-public linux-libre-5.15-pristine-source
- (let ((version linux-libre-5.15-version)
- (hash (base32 "1cfk55469swywnf4r6pl7b3njxws8w3np81r99f0wnlaihrbajm8")))
- (make-linux-libre-source version
- (%upstream-linux-source version hash)
- deblob-scripts-5.15)))
+ (make-linux-libre-source linux-libre-5.15-version deblob-scripts-5.15))
(define-public linux-libre-5.10-version "5.10.233")
(define-public linux-libre-5.10-gnu-revision "gnu1")
@@ -587,11 +585,7 @@ (define deblob-scripts-5.10
(base32 "1b33rkn32b923025iiz4xzxiy8y5ii9j5qk4021mg575890rl4ch")
(base32 "14jdl5rk3w7h97svl6j6ngbywj5qixmpv6ifhqkzjxpp07xngvs4")))
(define-public linux-libre-5.10-pristine-source
- (let ((version linux-libre-5.10-version)
- (hash (base32 "0lkz2g8r032f027j3gih3f7crx991mrpng9qgqc5k4cc1wl5g7i3")))
- (make-linux-libre-source version
- (%upstream-linux-source version hash)
- deblob-scripts-5.10)))
+ (make-linux-libre-source linux-libre-5.10-version deblob-scripts-5.10))
(define-public linux-libre-5.4-version "5.4.289")
(define-public linux-libre-5.4-gnu-revision "gnu1")
@@ -602,11 +596,7 @@ (define deblob-scripts-5.4
(base32 "0xg5cz82k2cb0ikxvwv1hp5c3h377jkb5sd6aszvsk7hnabhk62v")
(base32 "1q1wcslpwpwsnwzbddjdc0qv2h89492skyw2zsjyb4rpz41s66mg")))
(define-public linux-libre-5.4-pristine-source
- (let ((version linux-libre-5.4-version)
- (hash (base32 "043dl195h06hs3zdjd6j1m1zgvmky3s0plrpma75zqf8ab05yghy")))
- (make-linux-libre-source version
- (%upstream-linux-source version hash)
- deblob-scripts-5.4)))
+ (make-linux-libre-source linux-libre-5.4-version deblob-scripts-5.4))
(define %boot-logo-patch
;; Linux-Libre boot logo featuring Freedo and a gnu.
@@ -862,7 +852,6 @@ (define (default-extra-linux-options version)
("CONFIG_CGROUP_WRITEBACK" . #t)
("CONFIG_CGROUP_SCHED" . #t)
("CONFIG_CGROUP_PIDS" . #t)
- ("CONFIG_CGROUP_FREEZER" . #t)
("CONFIG_CGROUP_DEVICE" . #t)
("CONFIG_CGROUP_CPUACCT" . #t)
("CONFIG_CGROUP_PERF" . #t)

base-commit: d1e3c41abdda9f8e9f1283376feb853670393793
--
2.47.1
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 75827@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 75827
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch