~ruther/guix-local

1650dd8a38019d539086f74981ce3f96f9679da4 — Ludovic Courtès 11 years ago 9ca7eaa
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.
1 files changed, 16 insertions(+), 6 deletions(-)

M gnu/packages/linux.scm
M gnu/packages/linux.scm => gnu/packages/linux.scm +16 -6
@@ 172,7 172,7 @@

(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 @@ for SYSTEM."
    ("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 @@ for SYSTEM."

             (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 @@ for SYSTEM."
                     ("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)