* gnu/system.scm (package-for-kernel): New procedure.(operating-system-directory-base-entries): Use it.* gnu/tests/linux-module.scm: Test it.--- gnu/system.scm | 18 +++++++++++++++++- gnu/tests/linux-modules.scm | 11 ++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-)
Toggle diff (72 lines)
diff --git a/gnu/system.scm b/gnu/system.scmindex fd456c6206..53c16233a1 100644--- a/gnu/system.scm+++ b/gnu/system.scm@@ -32,6 +32,7 @@ #:use-module (guix derivations) #:use-module (guix profiles) #:use-module (guix ui)+ #:use-module (guix utils) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages guile)@@ -472,6 +473,16 @@ OS." (file-append (operating-system-kernel os) "/" (system-linux-image-file-name))) +(define (package-for-kernel target-kernel module-package)+ "Return a package like MODULE-PACKAGE, adapted for TARGET-KERNEL, if+possible (that is if there's a LINUX keyword argument in the build system)."+ (package+ (inherit module-package)+ (arguments+ (substitute-keyword-arguments (package-arguments module-package)+ ((#:linux kernel #f)+ target-kernel)))))+ (define* (operating-system-directory-base-entries os) "Return the basic entries of the 'system' directory of OS for use as the value of the SYSTEM-SERVICE-TYPE service."@@ -486,7 +497,12 @@ value of the SYSTEM-SERVICE-TYPE service." (kernel (profile-derivation (packages->manifest- (cons kernel modules))+ (cons kernel+ (map (lambda (module)+ (if (package? module)+ (package-for-kernel kernel module)+ module))+ modules))) #:hooks (if has-modules? (list linux-module-database) '())))diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scmindex 788bdc848a..953b132ef7 100644--- a/gnu/tests/linux-modules.scm+++ b/gnu/tests/linux-modules.scm@@ -28,8 +28,10 @@ #:use-module (guix derivations) #:use-module (guix gexp) #:use-module (guix modules)+ #:use-module (guix packages) #:use-module (guix monads) #:use-module (guix store)+ #:use-module (guix utils) #:export (%test-loadable-kernel-modules-0 %test-loadable-kernel-modules-1 %test-loadable-kernel-modules-2))@@ -118,5 +120,12 @@ with one extra module.") (description "Tests loadable kernel modules facility of <operating-system> with two extra modules.") (value (run-loadable-kernel-modules-test- (list acpi-call-linux-module ddcci-driver-linux)+ (list acpi-call-linux-module+ (package+ (inherit ddcci-driver-linux)+ (arguments+ `(#:linux #f+ ,@(strip-keyword-arguments '(#:linux)+ (package-arguments+ ddcci-driver-linux)))))) '("acpi_call" "ddcci")))))