summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-06-18 14:35:46 +0200
committerLudovic Courtès <ludo@gnu.org>2020-06-18 14:48:17 +0200
commit05f79da93fb4fd5216feb41510bf0a41f8eedf5b (patch)
tree797ace2236a4847b4e41e5f4ca01b5813eb1aecd /guix
parentfea072d7275958a67fe24ab7bd9b661b2f3f8972 (diff)
downloadguix-patches-05f79da93fb4fd5216feb41510bf0a41f8eedf5b.tar
guix-patches-05f79da93fb4fd5216feb41510bf0a41f8eedf5b.tar.gz
profiles: 'linux-module-database' hooks gracefully handles module-less kernels.
Fixes <https://bugs.gnu.org/41924>. * guix/profiles.scm (linux-module-database)[build]: Arrange so 'directory-entries' always returns a list. Add 'match' clause for the empty list. Co-authored-by: Ivan Kozlov <kanichos@yandex.ru>
Diffstat (limited to 'guix')
-rw-r--r--guix/profiles.scm11
1 files changed, 8 insertions, 3 deletions
diff --git a/guix/profiles.scm b/guix/profiles.scm
index f7af01b9b2..f34f73e17e 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1221,9 +1221,10 @@ This is meant to be used as a profile hook."
inputs))
(directory-entries
(lambda (directory)
- (scandir directory
- (lambda (basename)
- (not (string-prefix? "." basename))))))
+ (or (scandir directory
+ (lambda (basename)
+ (not (string-prefix? "." basename))))
+ '())))
;; Note: Should usually result in one entry.
(versions (delete-duplicates
(append-map directory-entries
@@ -1234,6 +1235,10 @@ This is meant to be used as a profile hook."
(setenv "PATH" #+(file-append kmod "/bin"))
(make-linux-module-directory inputs version #$output)
(setenv "PATH" old-path)))
+ (()
+ ;; Nothing here, maybe because this is a kernel with
+ ;; CONFIG_MODULES=n.
+ (mkdir #$output))
(_ (error "Specified Linux kernel and Linux kernel modules
are not all of the same version")))))))
(gexp->derivation "linux-module-database" build