From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:33357) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jNxWR-0005Vm-FF for guix-patches@gnu.org; Mon, 13 Apr 2020 07:45:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jNxWQ-0000A6-BC for guix-patches@gnu.org; Mon, 13 Apr 2020 07:45:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:47763) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jNxWQ-00009X-8H for guix-patches@gnu.org; Mon, 13 Apr 2020 07:45:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jNxWQ-0003vp-5T for guix-patches@gnu.org; Mon, 13 Apr 2020 07:45:02 -0400 Subject: [bug#40595] [PATCH] system: Automatically adjust linux-module packages to use the operating-system's kernel. Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:33283) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jNxVw-0005A9-7K for guix-patches@gnu.org; Mon, 13 Apr 2020 07:44:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jNxVu-0008Gh-1g for guix-patches@gnu.org; Mon, 13 Apr 2020 07:44:32 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:32974) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jNxVt-0008CQ-Rq for guix-patches@gnu.org; Mon, 13 Apr 2020 07:44:29 -0400 From: Danny Milosavljevic Date: Mon, 13 Apr 2020 13:43:59 +0200 Message-Id: <20200413114359.26652-1-dannym@scratchpost.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 40595@debbugs.gnu.org Cc: Danny Milosavljevic * 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(-) diff --git a/gnu/system.scm b/gnu/system.scm index 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))) =20 +(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 syste= m)." + (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 t= he 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 modul= e) + module)) + modules))) #:hooks (if has-modules? (list linux-module-database) '()))) diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm index 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 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")))))