gnu: Move (gnu packages grub) and (gnu packages u-boot) ...
to (gnu packages bootloaders). * gnu/packages/grub.scm: Rename to bootloaders.scm. * gnu/packages/u-boot.scm: Move to bootloaders.scm. * gnu/local.mk (GNU_SYSTEM_MODULES): Add bootloaders.scm, remove grub.scm and u-boot.scm; * gnu/system/grub.scm: Import (gnu packages bootloaders). * gnu/system/install.scm: Import (gnu packages bootloaders). * gnu/system/vm.scm: Import (gnu packages bootloaders).
This commit is contained in:
		
							parent
							
								
									96b714f5fd
								
							
						
					
					
						commit
						862e38d551
					
				
					 6 changed files with 132 additions and 154 deletions
				
			
		| 
						 | 
					@ -64,6 +64,7 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/packages/bittorrent.scm			\
 | 
					  %D%/packages/bittorrent.scm			\
 | 
				
			||||||
  %D%/packages/bison.scm			\
 | 
					  %D%/packages/bison.scm			\
 | 
				
			||||||
  %D%/packages/boost.scm			\
 | 
					  %D%/packages/boost.scm			\
 | 
				
			||||||
 | 
					  %D%/packages/bootloaders.scm			\
 | 
				
			||||||
  %D%/packages/bootstrap.scm			\
 | 
					  %D%/packages/bootstrap.scm			\
 | 
				
			||||||
  %D%/packages/busybox.scm			\
 | 
					  %D%/packages/busybox.scm			\
 | 
				
			||||||
  %D%/packages/c.scm				\
 | 
					  %D%/packages/c.scm				\
 | 
				
			||||||
| 
						 | 
					@ -170,7 +171,6 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/packages/graphics.scm			\
 | 
					  %D%/packages/graphics.scm			\
 | 
				
			||||||
  %D%/packages/graphviz.scm			\
 | 
					  %D%/packages/graphviz.scm			\
 | 
				
			||||||
  %D%/packages/groff.scm			\
 | 
					  %D%/packages/groff.scm			\
 | 
				
			||||||
  %D%/packages/grub.scm				\
 | 
					 | 
				
			||||||
  %D%/packages/gsasl.scm			\
 | 
					  %D%/packages/gsasl.scm			\
 | 
				
			||||||
  %D%/packages/gstreamer.scm			\
 | 
					  %D%/packages/gstreamer.scm			\
 | 
				
			||||||
  %D%/packages/gtk.scm				\
 | 
					  %D%/packages/gtk.scm				\
 | 
				
			||||||
| 
						 | 
					@ -373,7 +373,6 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/packages/unrtf.scm			\
 | 
					  %D%/packages/unrtf.scm			\
 | 
				
			||||||
  %D%/packages/upnp.scm				\
 | 
					  %D%/packages/upnp.scm				\
 | 
				
			||||||
  %D%/packages/uucp.scm				\
 | 
					  %D%/packages/uucp.scm				\
 | 
				
			||||||
  %D%/packages/u-boot.scm			\
 | 
					 | 
				
			||||||
  %D%/packages/valgrind.scm			\
 | 
					  %D%/packages/valgrind.scm			\
 | 
				
			||||||
  %D%/packages/version-control.scm		\
 | 
					  %D%/packages/version-control.scm		\
 | 
				
			||||||
  %D%/packages/video.scm			\
 | 
					  %D%/packages/video.scm			\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,8 @@
 | 
				
			||||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 | 
					;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 | 
					;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 | 
				
			||||||
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -20,26 +22,33 @@
 | 
				
			||||||
;;; You should have received a copy of the GNU General Public License
 | 
					;;; You should have received a copy of the GNU General Public License
 | 
				
			||||||
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
					;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-module (gnu packages grub)
 | 
					(define-module (gnu packages bootloaders)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					 | 
				
			||||||
  #:use-module (guix packages)
 | 
					 | 
				
			||||||
  #:use-module (guix utils)
 | 
					 | 
				
			||||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
					 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages admin)
 | 
				
			||||||
 | 
					  #:use-module ((gnu packages algebra) #:select (bc))
 | 
				
			||||||
 | 
					  #:use-module (gnu packages assembly)
 | 
				
			||||||
  #:use-module (gnu packages flex)
 | 
					  #:use-module (gnu packages flex)
 | 
				
			||||||
  #:use-module (gnu packages disk)
 | 
					  #:use-module (gnu packages disk)
 | 
				
			||||||
  #:use-module (gnu packages bison)
 | 
					  #:use-module (gnu packages bison)
 | 
				
			||||||
  #:use-module (gnu packages gettext)
 | 
					  #:use-module (gnu packages cdrom)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages cross-base)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages disk)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages flex)
 | 
				
			||||||
  #:use-module (gnu packages fontutils)
 | 
					  #:use-module (gnu packages fontutils)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages gettext)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages man)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages ncurses)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
  #:use-module (gnu packages qemu)
 | 
					  #:use-module (gnu packages qemu)
 | 
				
			||||||
  #:use-module (gnu packages man)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages texinfo)
 | 
					  #:use-module (gnu packages texinfo)
 | 
				
			||||||
  #:use-module (gnu packages ncurses)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (gnu packages cdrom))
 | 
					  #:use-module (guix download)
 | 
				
			||||||
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
 | 
					  #:use-module ((guix licenses) #:prefix license:)
 | 
				
			||||||
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
 | 
					  #:use-module (guix utils))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define unifont
 | 
					(define unifont
 | 
				
			||||||
  ;; GNU Unifont, <http://gnu.org/s/unifont>.
 | 
					  ;; GNU Unifont, <http://gnu.org/s/unifont>.
 | 
				
			||||||
| 
						 | 
					@ -213,3 +222,111 @@ menu to select one of the installed operating systems.")
 | 
				
			||||||
                     license:bsd-4 ; gnu-efi/inc/* gnu-efi/lib/*
 | 
					                     license:bsd-4 ; gnu-efi/inc/* gnu-efi/lib/*
 | 
				
			||||||
                     ;; Also contains:
 | 
					                     ;; Also contains:
 | 
				
			||||||
                     license:expat license:isc license:zlib)))))
 | 
					                     license:expat license:isc license:zlib)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public dtc
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "dtc")
 | 
				
			||||||
 | 
					    (version "1.4.2")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "https://www.kernel.org/pub/software/utils/dtc/"
 | 
				
			||||||
 | 
					                    "dtc-" version ".tar.xz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1b7si8niyca4wxbfah3qw4p4wli81mc1qwfhaswvrfqahklnwi8k"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("bison" ,bison)
 | 
				
			||||||
 | 
					       ("flex" ,flex)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:make-flags
 | 
				
			||||||
 | 
					       (list "CC=gcc"
 | 
				
			||||||
 | 
					             (string-append "PREFIX=" (assoc-ref %outputs "out"))
 | 
				
			||||||
 | 
					             "INSTALL=install")
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (delete 'configure))))
 | 
				
			||||||
 | 
					    (home-page "https://www.devicetree.org")
 | 
				
			||||||
 | 
					    (synopsis "Compiles device tree source files")
 | 
				
			||||||
 | 
					    (description "@command{dtc} compiles
 | 
				
			||||||
 | 
					@uref{http://elinux.org/Device_Tree_Usage, device tree source files} to device
 | 
				
			||||||
 | 
					tree binary files.  These are board description files used by Linux and BSD.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define u-boot
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "u-boot")
 | 
				
			||||||
 | 
					    (version "2017.01")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "ftp://ftp.denx.de/pub/u-boot/"
 | 
				
			||||||
 | 
					                    "u-boot-" version ".tar.bz2"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1wpc51jm3zyibgcr78jng2yksqvrya76bxgsr4pcyjrsz5sm2hkc"))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("bc" ,bc)
 | 
				
			||||||
 | 
					       ("dtc" ,dtc)
 | 
				
			||||||
 | 
					       ("python-2" ,python-2)))
 | 
				
			||||||
 | 
					    (build-system  gnu-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://www.denx.de/wiki/U-Boot/")
 | 
				
			||||||
 | 
					    (synopsis "ARM bootloader")
 | 
				
			||||||
 | 
					    (description "U-Boot is a bootloader used mostly for ARM boards. It
 | 
				
			||||||
 | 
					also initializes the boards (RAM etc).")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (make-u-boot-package board triplet)
 | 
				
			||||||
 | 
					  "Returns a u-boot package for BOARD cross-compiled for TRIPLET."
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (inherit u-boot)
 | 
				
			||||||
 | 
					    (name (string-append "u-boot-" (string-downcase board)))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("cross-gcc" ,(cross-gcc triplet))
 | 
				
			||||||
 | 
					       ("cross-binutils" ,(cross-binutils triplet))
 | 
				
			||||||
 | 
					       ,@(package-native-inputs u-boot)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:modules ((ice-9 ftw) (guix build utils) (guix build gnu-build-system))
 | 
				
			||||||
 | 
					       #:test-target "test"
 | 
				
			||||||
 | 
					       #:make-flags
 | 
				
			||||||
 | 
					       (list "HOSTCC=gcc" (string-append "CROSS_COMPILE=" ,triplet "-"))
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (replace 'configure
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs make-flags #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let ((config-name (string-append ,board "_defconfig")))
 | 
				
			||||||
 | 
					               (if (file-exists? (string-append "configs/" config-name))
 | 
				
			||||||
 | 
					                   (zero? (apply system* "make" `(,@make-flags ,config-name)))
 | 
				
			||||||
 | 
					                   (begin
 | 
				
			||||||
 | 
					                     (display "Invalid board name. Valid board names are:")
 | 
				
			||||||
 | 
					                     (let ((suffix-len (string-length "_defconfig")))
 | 
				
			||||||
 | 
					                       (scandir "configs"
 | 
				
			||||||
 | 
					                                (lambda (file-name)
 | 
				
			||||||
 | 
					                                  (when (string-suffix? "_defconfig" file-name)
 | 
				
			||||||
 | 
					                                    (format #t
 | 
				
			||||||
 | 
					                                            "- ~A\n"
 | 
				
			||||||
 | 
					                                            (string-drop-right file-name
 | 
				
			||||||
 | 
					                                                               suffix-len))))))
 | 
				
			||||||
 | 
					                     #f)))))
 | 
				
			||||||
 | 
					         (replace 'install
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs make-flags #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                    (libexec (string-append out "/libexec"))
 | 
				
			||||||
 | 
					                    (uboot-files (find-files "." ".*\\.(bin|efi|spl)$")))
 | 
				
			||||||
 | 
					               (mkdir-p libexec)
 | 
				
			||||||
 | 
					               (for-each
 | 
				
			||||||
 | 
					                (lambda (file)
 | 
				
			||||||
 | 
					                  (let ((target-file (string-append libexec "/" file)))
 | 
				
			||||||
 | 
					                    (mkdir-p (dirname target-file))
 | 
				
			||||||
 | 
					                    (copy-file file target-file)))
 | 
				
			||||||
 | 
					                uboot-files)))))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public u-boot-vexpress
 | 
				
			||||||
 | 
					  (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public u-boot-malta
 | 
				
			||||||
 | 
					  (make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public u-boot-beagle-bone-black
 | 
				
			||||||
 | 
					  (make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf"))
 | 
				
			||||||
| 
						 | 
					@ -1,138 +0,0 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					 | 
				
			||||||
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
 | 
					 | 
				
			||||||
;;; Copyright © 2016 David Craven <david@craven.ch>
 | 
					 | 
				
			||||||
;;;
 | 
					 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					 | 
				
			||||||
;;;
 | 
					 | 
				
			||||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
 | 
					 | 
				
			||||||
;;; under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
;;; the Free Software Foundation; either version 3 of the License, or (at
 | 
					 | 
				
			||||||
;;; your option) any later version.
 | 
					 | 
				
			||||||
;;;
 | 
					 | 
				
			||||||
;;; GNU Guix is distributed in the hope that it will be useful, but
 | 
					 | 
				
			||||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
;;; GNU General Public License for more details.
 | 
					 | 
				
			||||||
;;;
 | 
					 | 
				
			||||||
;;; You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-module (gnu packages u-boot)
 | 
					 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					 | 
				
			||||||
  #:use-module (guix download)
 | 
					 | 
				
			||||||
  #:use-module (guix packages)
 | 
					 | 
				
			||||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					 | 
				
			||||||
  #:use-module ((gnu packages algebra) #:select (bc))
 | 
					 | 
				
			||||||
  #:use-module (gnu packages bison)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages cross-base)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages flex)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages python))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public dtc
 | 
					 | 
				
			||||||
  (package
 | 
					 | 
				
			||||||
    (name "dtc")
 | 
					 | 
				
			||||||
    (version "1.4.2")
 | 
					 | 
				
			||||||
    (source (origin
 | 
					 | 
				
			||||||
              (method url-fetch)
 | 
					 | 
				
			||||||
              (uri (string-append
 | 
					 | 
				
			||||||
                    "https://www.kernel.org/pub/software/utils/dtc/"
 | 
					 | 
				
			||||||
                    "dtc-" version ".tar.xz"))
 | 
					 | 
				
			||||||
              (sha256
 | 
					 | 
				
			||||||
               (base32
 | 
					 | 
				
			||||||
                "1b7si8niyca4wxbfah3qw4p4wli81mc1qwfhaswvrfqahklnwi8k"))))
 | 
					 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					 | 
				
			||||||
     `(("bison" ,bison)
 | 
					 | 
				
			||||||
       ("flex" ,flex)))
 | 
					 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:make-flags
 | 
					 | 
				
			||||||
       (list "CC=gcc"
 | 
					 | 
				
			||||||
             (string-append "PREFIX=" (assoc-ref %outputs "out"))
 | 
					 | 
				
			||||||
             "INSTALL=install")
 | 
					 | 
				
			||||||
       #:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (delete 'configure))))
 | 
					 | 
				
			||||||
    (home-page "https://www.devicetree.org")
 | 
					 | 
				
			||||||
    (synopsis "Compiles device tree source files")
 | 
					 | 
				
			||||||
    (description "@command{dtc} compiles
 | 
					 | 
				
			||||||
@uref{http://elinux.org/Device_Tree_Usage, device tree source files} to device
 | 
					 | 
				
			||||||
tree binary files.  These are board description files used by Linux and BSD.")
 | 
					 | 
				
			||||||
    (license license:gpl2+)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define u-boot
 | 
					 | 
				
			||||||
  (package
 | 
					 | 
				
			||||||
    (name "u-boot")
 | 
					 | 
				
			||||||
    (version "2017.01")
 | 
					 | 
				
			||||||
    (source (origin
 | 
					 | 
				
			||||||
              (method url-fetch)
 | 
					 | 
				
			||||||
              (uri (string-append
 | 
					 | 
				
			||||||
                    "ftp://ftp.denx.de/pub/u-boot/"
 | 
					 | 
				
			||||||
                    "u-boot-" version ".tar.bz2"))
 | 
					 | 
				
			||||||
              (sha256
 | 
					 | 
				
			||||||
               (base32
 | 
					 | 
				
			||||||
                "1wpc51jm3zyibgcr78jng2yksqvrya76bxgsr4pcyjrsz5sm2hkc"))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					 | 
				
			||||||
     `(("bc" ,bc)
 | 
					 | 
				
			||||||
       ("dtc" ,dtc)
 | 
					 | 
				
			||||||
       ("python-2" ,python-2)))
 | 
					 | 
				
			||||||
    (build-system  gnu-build-system)
 | 
					 | 
				
			||||||
    (home-page "http://www.denx.de/wiki/U-Boot/")
 | 
					 | 
				
			||||||
    (synopsis "ARM bootloader")
 | 
					 | 
				
			||||||
    (description "U-Boot is a bootloader used mostly for ARM boards. It
 | 
					 | 
				
			||||||
also initializes the boards (RAM etc).")
 | 
					 | 
				
			||||||
    (license license:gpl2+)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define (make-u-boot-package board triplet)
 | 
					 | 
				
			||||||
  "Returns a u-boot package for BOARD cross-compiled for TRIPLET."
 | 
					 | 
				
			||||||
  (package
 | 
					 | 
				
			||||||
    (inherit u-boot)
 | 
					 | 
				
			||||||
    (name (string-append "u-boot-" (string-downcase board)))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					 | 
				
			||||||
     `(("cross-gcc" ,(cross-gcc triplet))
 | 
					 | 
				
			||||||
       ("cross-binutils" ,(cross-binutils triplet))
 | 
					 | 
				
			||||||
       ,@(package-native-inputs u-boot)))
 | 
					 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:modules ((ice-9 ftw) (guix build utils) (guix build gnu-build-system))
 | 
					 | 
				
			||||||
       #:test-target "test"
 | 
					 | 
				
			||||||
       #:make-flags
 | 
					 | 
				
			||||||
       (list "HOSTCC=gcc" (string-append "CROSS_COMPILE=" ,triplet "-"))
 | 
					 | 
				
			||||||
       #:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (replace 'configure
 | 
					 | 
				
			||||||
           (lambda* (#:key outputs make-flags #:allow-other-keys)
 | 
					 | 
				
			||||||
             (let ((config-name (string-append ,board "_defconfig")))
 | 
					 | 
				
			||||||
               (if (file-exists? (string-append "configs/" config-name))
 | 
					 | 
				
			||||||
                   (zero? (apply system* "make" `(,@make-flags ,config-name)))
 | 
					 | 
				
			||||||
                   (begin
 | 
					 | 
				
			||||||
                     (display "Invalid board name. Valid board names are:")
 | 
					 | 
				
			||||||
                     (let ((suffix-len (string-length "_defconfig")))
 | 
					 | 
				
			||||||
                       (scandir "configs"
 | 
					 | 
				
			||||||
                                (lambda (file-name)
 | 
					 | 
				
			||||||
                                  (when (string-suffix? "_defconfig" file-name)
 | 
					 | 
				
			||||||
                                    (format #t
 | 
					 | 
				
			||||||
                                            "- ~A\n"
 | 
					 | 
				
			||||||
                                            (string-drop-right file-name
 | 
					 | 
				
			||||||
                                                               suffix-len))))))
 | 
					 | 
				
			||||||
                     #f)))))
 | 
					 | 
				
			||||||
         (replace 'install
 | 
					 | 
				
			||||||
           (lambda* (#:key outputs make-flags #:allow-other-keys)
 | 
					 | 
				
			||||||
             (let* ((out (assoc-ref outputs "out"))
 | 
					 | 
				
			||||||
                    (libexec (string-append out "/libexec"))
 | 
					 | 
				
			||||||
                    (uboot-files (find-files "." ".*\\.(bin|efi|spl)$")))
 | 
					 | 
				
			||||||
               (mkdir-p libexec)
 | 
					 | 
				
			||||||
               (for-each
 | 
					 | 
				
			||||||
                (lambda (file)
 | 
					 | 
				
			||||||
                  (let ((target-file (string-append libexec "/" file)))
 | 
					 | 
				
			||||||
                    (mkdir-p (dirname target-file))
 | 
					 | 
				
			||||||
                    (copy-file file target-file)))
 | 
					 | 
				
			||||||
                uboot-files)))))))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public u-boot-vexpress
 | 
					 | 
				
			||||||
  (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public u-boot-malta
 | 
					 | 
				
			||||||
  (make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public u-boot-beagle-bone-black
 | 
					 | 
				
			||||||
  (make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf"))
 | 
					 | 
				
			||||||
| 
						 | 
					@ -27,7 +27,7 @@
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (gnu artwork)
 | 
					  #:use-module (gnu artwork)
 | 
				
			||||||
  #:use-module (gnu system file-systems)
 | 
					  #:use-module (gnu system file-systems)
 | 
				
			||||||
  #:autoload   (gnu packages grub) (grub)
 | 
					  #:autoload   (gnu packages bootloaders) (grub)
 | 
				
			||||||
  #:autoload   (gnu packages compression) (gzip)
 | 
					  #:autoload   (gnu packages compression) (gzip)
 | 
				
			||||||
  #:autoload   (gnu packages gtk) (guile-cairo guile-rsvg)
 | 
					  #:autoload   (gnu packages gtk) (guile-cairo guile-rsvg)
 | 
				
			||||||
  #:use-module (ice-9 match)
 | 
					  #:use-module (ice-9 match)
 | 
				
			||||||
| 
						 | 
					@ -108,7 +108,7 @@ denoting a file name."
 | 
				
			||||||
  grub-configuration make-grub-configuration
 | 
					  grub-configuration make-grub-configuration
 | 
				
			||||||
  grub-configuration?
 | 
					  grub-configuration?
 | 
				
			||||||
  (grub            grub-configuration-grub           ; package
 | 
					  (grub            grub-configuration-grub           ; package
 | 
				
			||||||
                   (default (@ (gnu packages grub) grub)))
 | 
					                   (default (@ (gnu packages bootloaders) grub)))
 | 
				
			||||||
  (device          grub-configuration-device)        ; string
 | 
					  (device          grub-configuration-device)        ; string
 | 
				
			||||||
  (menu-entries    grub-configuration-menu-entries   ; list
 | 
					  (menu-entries    grub-configuration-menu-entries   ; list
 | 
				
			||||||
                   (default '()))
 | 
					                   (default '()))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,11 +28,11 @@
 | 
				
			||||||
  #:use-module (gnu services shepherd)
 | 
					  #:use-module (gnu services shepherd)
 | 
				
			||||||
  #:use-module (gnu packages admin)
 | 
					  #:use-module (gnu packages admin)
 | 
				
			||||||
  #:use-module (gnu packages bash)
 | 
					  #:use-module (gnu packages bash)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages bootloaders)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (gnu packages cryptsetup)
 | 
					  #:use-module (gnu packages cryptsetup)
 | 
				
			||||||
  #:use-module (gnu packages package-management)
 | 
					  #:use-module (gnu packages package-management)
 | 
				
			||||||
  #:use-module (gnu packages disk)
 | 
					  #:use-module (gnu packages disk)
 | 
				
			||||||
  #:use-module (gnu packages grub)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages texinfo)
 | 
					  #:use-module (gnu packages texinfo)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages nvi)
 | 
					  #:use-module (gnu packages nvi)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@
 | 
				
			||||||
  #:use-module ((gnu build vm)
 | 
					  #:use-module ((gnu build vm)
 | 
				
			||||||
                #:select (qemu-command))
 | 
					                #:select (qemu-command))
 | 
				
			||||||
  #:use-module (gnu packages base)
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages bootloaders)
 | 
				
			||||||
  #:use-module (gnu packages guile)
 | 
					  #:use-module (gnu packages guile)
 | 
				
			||||||
  #:use-module (gnu packages gawk)
 | 
					  #:use-module (gnu packages gawk)
 | 
				
			||||||
  #:use-module (gnu packages bash)
 | 
					  #:use-module (gnu packages bash)
 | 
				
			||||||
| 
						 | 
					@ -38,7 +39,6 @@
 | 
				
			||||||
  #:use-module (gnu packages qemu)
 | 
					  #:use-module (gnu packages qemu)
 | 
				
			||||||
  #:use-module (gnu packages disk)
 | 
					  #:use-module (gnu packages disk)
 | 
				
			||||||
  #:use-module (gnu packages zile)
 | 
					  #:use-module (gnu packages zile)
 | 
				
			||||||
  #:use-module (gnu packages grub)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (gnu packages package-management)
 | 
					  #:use-module (gnu packages package-management)
 | 
				
			||||||
  #:use-module ((gnu packages make-bootstrap)
 | 
					  #:use-module ((gnu packages make-bootstrap)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue