Though make-linux-libre provides a keyed interface for configuration and versioning, it remains unaccessable to users due to a lack of public definition. This adapts linux-libre to become a public keyed interface for greater flexibility for users, without promoting proprietary software. Also redefines linux-libre- variants to use linux-libre as the interface being used, to reduce direct reliance on the low-level make-linux-libre function. From 91dcc98640b5e7eb494893100f6ebae823a6cb58 Mon Sep 17 00:00:00 2001 From: Joshua Lewis Hayes Date: Thu, 28 Jun 2018 20:01:47 +0000 Subject: [PATCH] gnu: linux-libre*: Add Keyed Interface and redefine variants to use new Interface. * gnu/packages/linux.scm (linux-libre): Add Keyed Interface * gnu/packages/linux.scm (linux-libre-*): Redefine to use Interface --- gnu/packages/linux.scm | 89 ++++++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 50f90e165..74292288f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -28,6 +28,7 @@ ;;; Copyright © 2017 nee ;;; Copyright © 2017 Dave Love ;;; Copyright © 2018 Pierre-Antoine Rouby +;;; Copyright © 2018 Joshua Lewis Hayes ;;; ;;; This file is part of GNU Guix. ;;; @@ -405,66 +406,70 @@ It has been modified to remove all non-free binary blobs.") (define %linux-libre-version "4.17.3") (define %linux-libre-hash "06mjbs3i0xq1h1cgr6xldr6a8rxsy30mf86wp3n2ff6l5v78iw2q") -(define-public linux-libre - (make-linux-libre %linux-libre-version - %linux-libre-hash - %linux-compatible-systems - #:configuration-file kernel-config)) - (define %linux-libre-4.14-version "4.14.52") (define %linux-libre-4.14-hash "0lx916iw33n32h1fca59r7mh6l2smyml6igvzhimcah62hqx4rk8") +(define-public (linux-libre #:key + (version %linux-libre-version) + (hash %linux-libre-hash) + (systems %linux-compatible-systems) + (configuration-file kernel-config) + (defconfig "defconfig") + (extra-version #f) + (extra-options %extra-options) + (patches (list %boot-logo-patch))) + (make-linux-libre version + hash + systems + #:configuration-file configuration-file + #:defconfig defconfig + #:extra-version extra-version + #:extra-options extra-options + #:patches patches)) + (define-public linux-libre-4.14 - (make-linux-libre %linux-libre-4.14-version - %linux-libre-4.14-hash - '("x86_64-linux" "i686-linux" "armhf-linux") - #:configuration-file kernel-config)) + (linux-libre #:version %linux-libre-4.14-version + #:hash %linux-libre-4.14-hash + #:systems '("x86_64-linux" "i686-linux" "armhf-linux"))) (define-public linux-libre-4.9 - (make-linux-libre "4.9.110" - "0nzfna9w9a45y521d3dcxkdv66gn38n4pq814rdqazk74qb5macn" - %intel-compatible-systems - #:configuration-file kernel-config)) + (linux-libre #:version "4.9.110" + #:hash "0nzfna9w9a45y521d3dcxkdv66gn38n4pq814rdqazk74qb5macn" + #:systems %intel-compatible-systems)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.138" - "1030ra5gn24qmx8lsnhr6kfnfm60avzs23r81dl7mvzr5dci8vsl" - %intel-compatible-systems - #:configuration-file kernel-config)) + (linux-libre #:version "4.4.138" + #:hash "1030ra5gn24qmx8lsnhr6kfnfm60avzs23r81dl7mvzr5dci8vsl" + #:systems %intel-compatible-systems)) (define-public linux-libre-4.1 - (make-linux-libre "4.1.52" - "0a2flzf79kz9c1y9zpxdclsfivp38d2sgnwifg4gvyqixdy63sk9" - %intel-compatible-systems - #:configuration-file kernel-config)) + (linux-libre #:version "4.1.52" + #:hash "0a2flzf79kz9c1y9zpxdclsfivp38d2sgnwifg4gvyqixdy63sk9" + #:systems %intel-compatible-systems)) (define-public linux-libre-arm-generic - (make-linux-libre %linux-libre-version - %linux-libre-hash - '("armhf-linux") - #:defconfig "multi_v7_defconfig" - #:extra-version "arm-generic")) + (linux-libre #:systems '("armhf-linux") + #:defconfig "multi_v7_defconfig" + #:extra-version "arm-generic")) (define-public linux-libre-arm-generic-4.14 - (make-linux-libre %linux-libre-4.14-version - %linux-libre-4.14-hash - '("armhf-linux") - #:defconfig "multi_v7_defconfig" - #:extra-version "arm-generic")) + (linux-libre #:version %linux-libre-4.14-version + #:hash %linux-libre-4.14-hash + #:systems '("armhf-linux") + #:defconfig "multi_v7_defconfig" + #:extra-version "arm-generic")) (define-public linux-libre-arm-omap2plus - (make-linux-libre %linux-libre-version - %linux-libre-hash - '("armhf-linux") - #:defconfig "omap2plus_defconfig" - #:extra-version "arm-omap2plus")) + (linux-libre #:systems '("armhf-linux") + #:defconfig "omap2plus_defconfig" + #:extra-version "arm-omap2plus")) (define-public linux-libre-arm-omap2plus-4.14 - (make-linux-libre %linux-libre-4.14-version - %linux-libre-4.14-hash - '("armhf-linux") - #:defconfig "omap2plus_defconfig" - #:extra-version "arm-omap2plus")) + (linux-libre #:version %linux-libre-4.14-version + #:hash %linux-libre-4.14-hash + #:systems '("armhf-linux") + #:defconfig "omap2plus_defconfig" + #:extra-version "arm-omap2plus")) ^L ;;; -- 2.16.1