guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/10: linux-modules: Add "modules.alias" writer.


From: guix-commits
Subject: 03/10: linux-modules: Add "modules.alias" writer.
Date: Fri, 16 Aug 2019 17:00:40 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 4f8b9d1a6f551697996c77b6e1741007e1f7c9cd
Author: Danny Milosavljevic <address@hidden>
Date:   Sun Mar 4 02:09:08 2018 +0100

    linux-modules: Add "modules.alias" writer.
    
    * gnu/build/linux-modules.scm (write-module-alias-database): New
    procedure.
    
    Co-authored-by: Ludovic Courtès <address@hidden>
---
 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 c66ef97..9b9fc0d 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, 2019 Ludovic Courtès <address@hidden>
 ;;; Copyright © 2017 Mathieu Othacehe <address@hidden>
+;;; Copyright © 2018 Danny Milosavljevic <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,7 +49,9 @@
             device-module-aliases
             known-module-aliases
             matching-modules
-            missing-modules))
+            missing-modules
+
+            write-module-alias-database))
 
 ;;; Commentary:
 ;;;
@@ -486,4 +489,22 @@ are required to access DEVICE."
         (remove (cut member <> provided) modules))
       '()))
 
+(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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]