aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/bootloaders.scm (renamed from gnu/packages/grub.scm)137
-rw-r--r--gnu/packages/u-boot.scm138
2 files changed, 127 insertions, 148 deletions
diff --git a/gnu/packages/grub.scm b/gnu/packages/bootloaders.scm
index 4d9dc819b7..16cb7b4c0b 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/bootloaders.scm
@@ -4,6 +4,8 @@
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; 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.
;;;
@@ -20,26 +22,33 @@
;;; 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 grub)
- #:use-module (guix download)
- #:use-module (guix packages)
- #:use-module (guix utils)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix build-system gnu)
+(define-module (gnu packages bootloaders)
#: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 disk)
#: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 gettext)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages man)
+ #:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages qemu)
- #:use-module (gnu packages man)
#:use-module (gnu packages texinfo)
- #:use-module (gnu packages ncurses)
- #:use-module (gnu packages cdrom))
+ #:use-module (guix build-system gnu)
+ #: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
;; 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/*
;; Also contains:
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"))
diff --git a/gnu/packages/u-boot.scm b/gnu/packages/u-boot.scm
deleted file mode 100644
index bcfe059ee1..0000000000
--- a/gnu/packages/u-boot.scm
+++ /dev/null
@@ -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"))