From patchwork Mon Apr 13 11:43:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Danny Milosavljevic X-Patchwork-Id: 21215 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id C927F27BBE4; Mon, 13 Apr 2020 12:45:11 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 9312327BBE1 for ; Mon, 13 Apr 2020 12:45:11 +0100 (BST) Received: from localhost ([::1]:43302 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jNxWZ-0005W5-0o for patchwork@mira.cbaines.net; Mon, 13 Apr 2020 07:45:11 -0400 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 X-Loop: help-debbugs@gnu.org Subject: [bug#40595] [PATCH] system: Automatically adjust linux-module packages to use the operating-system's kernel. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 13 Apr 2020 11:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 40595 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 40595@debbugs.gnu.org Cc: Danny Milosavljevic X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.158677827515052 (code B ref -1); Mon, 13 Apr 2020 11:45:01 +0000 Received: (at submit) by debbugs.gnu.org; 13 Apr 2020 11:44:35 +0000 Received: from localhost ([127.0.0.1]:59309 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jNxVz-0003ui-2N for submit@debbugs.gnu.org; Mon, 13 Apr 2020 07:44:35 -0400 Received: from lists.gnu.org ([209.51.188.17]:32815) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jNxVx-0003uZ-Dk for submit@debbugs.gnu.org; Mon, 13 Apr 2020 07:44:33 -0400 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 Received: from dayas.fritz.box (unknown [185.128.244.187]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 876213368164; Mon, 13 Apr 2020 13:44:27 +0200 (CEST) From: Danny Milosavljevic Date: Mon, 13 Apr 2020 13:43:59 +0200 Message-Id: <20200413114359.26652-1-dannym@scratchpost.org> X-Mailer: git-send-email 2.26.0 MIME-Version: 1.0 Tags: patch X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * 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))) +(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.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")))))