linux-modules: Raise an error when a kernel module cannot be found.

Previously we'd get an unhelpful backtrace like this:

  In gnu/build/linux-modules.scm:
     184:47  4 (recursive-module-dependencies _ #:lookup-module _)
      98:14  3 (module-dependencies _)
      85:18  2 (modinfo-section-contents _)
  In ice-9/ports.scm:
     439:11  1 (call-with-input-file #f #<procedure get-bytevector-al?> ?)
  In unknown file:
	     0 (open-file #f "r" #:encoding #f #:guess-encoding #f)

  ERROR: In procedure open-file:
  Wrong type (expecting string): #f
  builder for `/gnu/store/…-linux-modules.drv' failed with exit code 1

* gnu/build/linux-modules.scm (find-module-file): When MODULE cannot be
found, raise an error instead of returning #f.  This is more useful to
the user.
This commit is contained in:
Ludovic Courtès 2018-08-29 23:29:03 +02:00
parent d258c79144
commit 4db7a9dc66
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -136,7 +136,7 @@ (define (file-name->module-name file)
(define (find-module-file directory module)
"Lookup module NAME under DIRECTORY, and return its absolute file name.
NAME can be a file name with or without '.ko', or it can be a module name.
Return #f if it could not be found.
Raise an error if it could not be found.
Module names can differ from file names in interesting ways; for instance,
module names usually (always?) use underscores as the inter-word separator,
@ -162,7 +162,7 @@ (define names
((file)
file)
(()
#f)
(error "kernel module not found" module directory))
((_ ...)
(error "several modules by that name" module directory))))