diff options
author | David Craven <david@craven.ch> | 2016-09-08 16:47:52 +0200 |
---|---|---|
committer | David Craven <david@craven.ch> | 2016-09-13 21:01:27 +0200 |
commit | 90c18c321e579992a8f4961dd280d8c04f1ea3c2 (patch) | |
tree | 26d98e9825f76648f54125df782509f6cb612e24 /gnu | |
parent | c258807a859e90ac64a756a00df4f0b7b9a85b22 (diff) | |
download | gnu-guix-90c18c321e579992a8f4961dd280d8c04f1ea3c2.tar gnu-guix-90c18c321e579992a8f4961dd280d8c04f1ea3c2.tar.gz |
gnu: make-linux-libre: Add extra-options parameter.
* gnu/packages/linux.scm (linux-libre): Use
%default-extra-linux-options.
(config->string, %default-extra-linux-options): New variables.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/linux.scm | 45 |
1 files changed, 30 insertions, 15 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d4946af4ea..1cf80cfb3f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -247,12 +247,38 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." (file (string-append "gnu/packages/" name))) (if file-exists? (search-path %load-path file) #f))) +(define %default-extra-linux-options + `(("CONFIG_NET_9P" . m) + ("CONFIG_NET_9P_VIRTIO" . m) + ("CONFIG_VIRTIO_BLK" . m) + ("CONFIG_VIRTIO_NET" . m) + ;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html + ("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t) + ("CONFIG_VIRTIO_PCI" . m) + ("CONFIG_VIRTIO_BALLOON" . m) + ("CONFIG_VIRTIO_MMIO" . m) + ("CONFIG_FUSE_FS" . m) + ("CONFIG_CIFS" . m) + ("CONFIG_9P_FS" . m))) + +(define (config->string options) + (string-join (map (match-lambda + ((option . 'm) + (string-append option "=m")) + ((option . #t) + (string-append option "=y")) + ((option . #f) + (string-append option "=n"))) + options) + "\n")) + (define* (make-linux-libre version hash #:key ;; A function that takes an arch and a variant. ;; See kernel-config for an example. (configuration-file #f) - (defconfig "defconfig")) + (defconfig "defconfig") + (extra-options %default-extra-linux-options)) (package (name "linux-libre") (version version) @@ -314,20 +340,9 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration." ;; Appending works even when the option wasn't in the ;; file. The last one prevails if duplicated. - (let ((port (open-file ".config" "a"))) - (display (string-append "CONFIG_NET_9P=m\n" - "CONFIG_NET_9P_VIRTIO=m\n" - "CONFIG_VIRTIO_BLK=m\n" - "CONFIG_VIRTIO_NET=m\n" - ;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html - "CONFIG_DEVPTS_MULTIPLE_INSTANCES=y\n" - "CONFIG_VIRTIO_PCI=m\n" - "CONFIG_VIRTIO_BALLOON=m\n" - "CONFIG_VIRTIO_MMIO=m\n" - "CONFIG_FUSE_FS=m\n" - "CONFIG_CIFS=m\n" - "CONFIG_9P_FS=m\n") - port) + (let ((port (open-file ".config" "a")) + (extra-configuration ,(config->string extra-options))) + (display extra-configuration port) (close-port port)) (zero? (system* "make" "oldconfig"))))) |