aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@scratchpost.org>2019-04-11 23:49:43 +0200
committerDanny Milosavljevic <dannym@scratchpost.org>2019-04-12 00:13:34 +0200
commit88e13c2587ab9a0f96bb63488c253fb14ac9ff60 (patch)
tree1a625e1dfac337f4455a1cc22dcbeab720c24d4d
parentb2521eed916f10911ad7988c007c34f6e918bc93 (diff)
downloadguix-88e13c2587ab9a0f96bb63488c253fb14ac9ff60.tar
guix-88e13c2587ab9a0f96bb63488c253fb14ac9ff60.tar.gz
build-system/linux-module: Support module source versioning.
* guix/build-system/linux-module.scm (make-linux-module-builder) [native-inputs]: Add linux. [arguments]<#:phases>[install]: Install "System.map" and "Module.symvers". * guix/build/linux-module-build-system.scm (configure): Delete procedure. (%standard-phases): Delete "configure" phase.
-rw-r--r--guix/build-system/linux-module.scm11
-rw-r--r--guix/build/linux-module-build-system.scm6
2 files changed, 11 insertions, 6 deletions
diff --git a/guix/build-system/linux-module.scm b/guix/build-system/linux-module.scm
index 3ed3351353..6084d22210 100644
--- a/guix/build-system/linux-module.scm
+++ b/guix/build-system/linux-module.scm
@@ -63,6 +63,9 @@
(package
(inherit linux)
(name (string-append (package-name linux) "-module-builder"))
+ (native-inputs
+ `(("linux" ,linux)
+ ,@(package-native-inputs linux)))
(arguments
(substitute-keyword-arguments (package-arguments linux)
((#:phases phases)
@@ -72,11 +75,17 @@
(invoke "make" "modules_prepare")))
(delete 'strip) ; faster.
(replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
+ (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(out-lib-build (string-append out "/lib/modules/build")))
; TODO: Only preserve the minimum, i.e. [Kbuild], Kconfig, scripts, include, ".config".
(copy-recursively "." out-lib-build)
+ (let* ((linux (assoc-ref inputs "linux")))
+ (install-file (string-append linux "/System.map")
+ out-lib-build)
+ (let ((source (string-append linux "/Module.symvers")))
+ (if (file-exists? source)
+ (install-file source out-lib-build))))
#t)))))))))
(define* (lower name
diff --git a/guix/build/linux-module-build-system.scm b/guix/build/linux-module-build-system.scm
index a6664f1eca..01cb8cef6c 100644
--- a/guix/build/linux-module-build-system.scm
+++ b/guix/build/linux-module-build-system.scm
@@ -32,10 +32,6 @@
;;
;; Code:
-;; TODO: It might make sense to provide "Module.symvers" in the future.
-(define* (configure #:key inputs #:allow-other-keys)
- #t)
-
(define* (build #:key inputs make-flags #:allow-other-keys)
(apply invoke "make" "-C"
(string-append (assoc-ref inputs "linux-module-builder")
@@ -64,7 +60,7 @@
(define %standard-phases
(modify-phases gnu:%standard-phases
- (replace 'configure configure)
+ (delete 'configure)
(replace 'build build)
(replace 'install install)))