From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58578) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evVkd-0004gN-Dk for guix-patches@gnu.org; Mon, 12 Mar 2018 18:17:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evVkc-0004on-Am for guix-patches@gnu.org; Mon, 12 Mar 2018 18:17:03 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:49886) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1evVkc-0004of-64 for guix-patches@gnu.org; Mon, 12 Mar 2018 18:17:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1evVkc-0005W4-0Q for guix-patches@gnu.org; Mon, 12 Mar 2018 18:17:02 -0400 Subject: [bug#30604] [PATCH v11 1/6] linux-modules: Add "modules.alias" writer. Resent-Message-ID: From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Mon, 12 Mar 2018 23:15:36 +0100 Message-Id: <20180312221541.1886-1-ludo@gnu.org> In-Reply-To: <87h8plkkkc.fsf@gnu.org> References: <87h8plkkkc.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: 30604@debbugs.gnu.org From: Danny Milosavljevic * gnu/build/linux-modules.scm (write-module-alias-database): New procedure. (%not-dash): New variable. Co-authored-by: Ludovic Courtès --- gnu/build/linux-modules.scm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm index 4fe673cca..b444e6f90 100644 --- a/gnu/build/linux-modules.scm +++ b/gnu/build/linux-modules.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2016, 2018 Ludovic Courtès ;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2018 Danny Milosavljevic ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ #:use-module (guix elf) #:use-module (guix glob) #:use-module (guix build syscalls) + #:use-module ((guix build utils) #:select (find-files)) #:use-module (rnrs io ports) #:use-module (rnrs bytevectors) #:use-module (srfi srfi-1) @@ -41,7 +43,8 @@ device-module-aliases known-module-aliases - matching-modules)) + matching-modules + write-module-alias-database)) ;;; Commentary: ;;; @@ -380,4 +383,22 @@ ALIAS is a string like \"scsi:t-0x00\" as returned by module))) known-aliases)) +(define (write-module-alias-database directory) + "Traverse the '.ko' files in DIRECTORY and create the corresponding +'modules.alias' file." + (define aliases + (map (lambda (file) + (cons (file-name->module-name file) (module-aliases file))) + (find-files directory "\\.ko$"))) + + (call-with-output-file (string-append directory "/modules.alias") + (lambda (port) + (display "# Aliases extracted from modules themselves.\n" port) + (for-each (match-lambda + ((module . aliases) + (for-each (lambda (alias) + (format port "alias ~a ~a\n" alias module)) + aliases))) + aliases)))) + ;;; linux-modules.scm ends here -- 2.16.2