From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39286) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evMkI-0008F9-9v for guix-patches@gnu.org; Mon, 12 Mar 2018 08:40:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evMkE-0006mP-6n for guix-patches@gnu.org; Mon, 12 Mar 2018 08:40:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:48192) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1evMkE-0006m7-3t for guix-patches@gnu.org; Mon, 12 Mar 2018 08:40:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1evMkD-0002zx-TV for guix-patches@gnu.org; Mon, 12 Mar 2018 08:40:01 -0400 Subject: [bug#30604] [PATCH v10 1/6] linux-modules: Add "modules.alias" writer. Resent-Message-ID: From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Mon, 12 Mar 2018 13:39:13 +0100 Message-Id: <20180312123918.22645-1-ludo@gnu.org> In-Reply-To: <87ina1qxic.fsf@gnu.org> References: <87ina1qxic.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 | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm index 4fe673cca..6101b8dc3 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,25 @@ ALIAS is a string like \"scsi:t-0x00\" as returned by module))) known-aliases)) +(define %not-dash + (char-set-complement (char-set #\-))) + +(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