From 1650dd8a38019d539086f74981ce3f96f9679da4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 10 Jul 2014 13:03:46 +0200 Subject: gnu: linux-libre: Fallback to 'defconfig' when there's no config file. * gnu/packages/linux.scm (kernel-config): Return #f rather than error out in the default case. (linux-libre)[native-inputs]: Add "kconfig" input only when 'kernel-config' returns true. [build-phase]: Adjust accordingly. --- gnu/packages/linux.scm | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 0db08fc7c8..167775a700 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -172,7 +172,7 @@ (define %boot-logo-patch (define (kernel-config system) "Return the absolute file name of the Linux-Libre build configuration file -for SYSTEM." +for SYSTEM, or #f if there is no configuration for SYSTEM." (define (lookup file) (let ((file (string-append "gnu/packages/" file))) (search-path %load-path file))) @@ -183,7 +183,7 @@ (define (lookup file) ("x86_64-linux" (lookup "linux-libre-x86_64.conf")) (_ - (error "unsupported architecture" system)))) + #f))) (define-public linux-libre (let* ((version "3.15") @@ -201,8 +201,14 @@ (define-public linux-libre (let ((build (assoc-ref %standard-phases 'build)) (config (assoc-ref inputs "kconfig"))) - (copy-file config ".config") - (chmod ".config" #o666) + + ;; Use the architecture-specific config if available, and + ;; 'defconfig' otherwise. + (if config + (begin + (copy-file config ".config") + (chmod ".config" #o666)) + (system* "make" "defconfig")) ;; Appending works even when the option wasn't in the ;; file. The last one prevails if duplicated. @@ -258,8 +264,12 @@ (define-public linux-libre ("bc" ,bc) ("module-init-tools" ,module-init-tools) ("patch/freedo+gnu" ,%boot-logo-patch) - ("kconfig" ,(kernel-config (or (%current-target-system) - (%current-system)))))) + + ,@(let ((conf (kernel-config (or (%current-target-system) + (%current-system))))) + (if conf + `(("kconfig" ,conf)) + '())))) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) -- cgit v1.2.3