From: Danny Milosavljevic <dannym@scratchpost.org>
To: guix-devel@gnu.org
Subject: [PATCH v5] gnu: Add u-boot, device-tree-compiler.
Date: Mon, 1 Aug 2016 22:05:35 +0200 [thread overview]
Message-ID: <20160801200535.30747-1-dannym@scratchpost.org> (raw)
In-Reply-To: <20160801195827.25377-1-dannym@scratchpost.org>
[-- Attachment #1: Type: text/plain, Size: 883 bytes --]
gnu: Add u-boot, device-tree-compiler.
* gnu/packages/u-boot.scm (device-tree-compiler, u-boot): New variables.
---
gnu/local.mk | 4 +
.../u-boot-device-tree-compiler-01_build_doc.patch | 21 ++++
...t-Add-missing-functions-to-shared-library.patch | 30 +++++
...t-Add-some-missing-symbols-to-version.lds.patch | 33 ++++++
gnu/packages/u-boot.scm | 131 +++++++++++++++++++++
5 files changed, 219 insertions(+)
create mode 100644 gnu/packages/patches/u-boot-device-tree-compiler-01_build_doc.patch
create mode 100644 gnu/packages/patches/u-boot-device-tree-compiler-23-libfdt-Add-missing-functions-to-shared-library.patch
create mode 100644 gnu/packages/patches/u-boot-device-tree-compiler-24_libfdt-Add-some-missing-symbols-to-version.lds.patch
create mode 100644 gnu/packages/u-boot.scm
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-u-boot-device-tree-compiler.patch --]
[-- Type: text/x-patch; name="0001-gnu-Add-u-boot-device-tree-compiler.patch", Size: 10622 bytes --]
diff --git a/gnu/local.mk b/gnu/local.mk
index dcdea86..f7e3c0f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -343,6 +343,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/unrtf.scm \
%D%/packages/upnp.scm \
%D%/packages/uucp.scm \
+ %D%/packages/u-boot.scm \
%D%/packages/valgrind.scm \
%D%/packages/version-control.scm \
%D%/packages/video.scm \
@@ -813,6 +814,9 @@ dist_patch_DATA = \
%D%/packages/patches/unzip-initialize-symlink-flag.patch \
%D%/packages/patches/unzip-overflow-long-fsize.patch \
%D%/packages/patches/unzip-remove-build-date.patch \
+ %D%/packages/patches/u-boot-device-tree-compiler-01_build_doc.patch \
+ %D%/packages/patches/u-boot-device-tree-compiler-23-libfdt-Add-missing-functions-to-shared-library.patch \
+ %D%/packages/patches/u-boot-device-tree-compiler-24_libfdt-Add-some-missing-symbols-to-version.lds.patch \
%D%/packages/patches/util-linux-tests.patch \
%D%/packages/patches/upower-builddir.patch \
%D%/packages/patches/valgrind-enable-arm.patch \
diff --git a/gnu/packages/patches/u-boot-device-tree-compiler-01_build_doc.patch b/gnu/packages/patches/u-boot-device-tree-compiler-01_build_doc.patch
new file mode 100644
index 0000000..06c3e40
--- /dev/null
+++ b/gnu/packages/patches/u-boot-device-tree-compiler-01_build_doc.patch
@@ -0,0 +1,21 @@
+Index: device-tree-compiler-1.0.0/Documentation/Makefile
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ device-tree-compiler-1.0.0/Documentation/Makefile 2007-08-23 18:26:22.000000000 +0200
+@@ -0,0 +1,16 @@
++all: dtc-paper.ps dtc-paper.pdf dtc-manual.txt
++
++dtc-manual.txt: manual.txt
++ cp -f $< $@
++
++dtc-paper.dvi: dtc-paper.tex
++ latex $<
++
++dtc-paper.ps: dtc-paper.dvi
++ dvips $<
++
++dtc-paper.pdf: dtc-paper.tex
++ pdflatex $<
++
++clean:
++ rm -f *.aux *.log *.dvi *.ps *.pdf dtc-manual.txt
diff --git a/gnu/packages/patches/u-boot-device-tree-compiler-23-libfdt-Add-missing-functions-to-shared-library.patch b/gnu/packages/patches/u-boot-device-tree-compiler-23-libfdt-Add-missing-functions-to-shared-library.patch
new file mode 100644
index 0000000..3bfde67
--- /dev/null
+++ b/gnu/packages/patches/u-boot-device-tree-compiler-23-libfdt-Add-missing-functions-to-shared-library.patch
@@ -0,0 +1,30 @@
+From a4b093f7366fdb429ca1781144d3985fa50d0fbb Mon Sep 17 00:00:00 2001
+From: Julien Grall <julien.grall@linaro.org>
+Date: Tue, 17 Mar 2015 16:00:34 +0000
+Subject: [PATCH] libfdt: Add missing functions to shared library
+
+The commit 4e76ec7 "libfdt: Add fdt_next_subnode() to permit easy
+subnode iteration" adds new functions (fdt_{first,next}_subnode) but
+forgot to mark them as 'global' in the shared library.
+
+Signed-off-by: Julien Grall <julien.grall@linaro.org>
+---
+ libfdt/version.lds | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/libfdt/version.lds b/libfdt/version.lds
+index 80b322b..941208e 100644
+--- a/libfdt/version.lds
++++ b/libfdt/version.lds
+@@ -54,6 +54,8 @@ LIBFDT_1.2 {
+ fdt_get_property_by_offset;
+ fdt_getprop_by_offset;
+ fdt_next_property_offset;
++ fdt_first_subnode;
++ fdt_next_subnode;
+
+ local:
+ *;
+--
+2.8.1
+
diff --git a/gnu/packages/patches/u-boot-device-tree-compiler-24_libfdt-Add-some-missing-symbols-to-version.lds.patch b/gnu/packages/patches/u-boot-device-tree-compiler-24_libfdt-Add-some-missing-symbols-to-version.lds.patch
new file mode 100644
index 0000000..4f825c4
--- /dev/null
+++ b/gnu/packages/patches/u-boot-device-tree-compiler-24_libfdt-Add-some-missing-symbols-to-version.lds.patch
@@ -0,0 +1,33 @@
+From f58799be130e27cc729cb2d45566daa0bb3b8605 Mon Sep 17 00:00:00 2001
+From: David Gibson <david@gibson.dropbear.id.au>
+Date: Tue, 1 Dec 2015 12:55:21 +1100
+Subject: [PATCH] libfdt: Add some missing symbols to version.lds
+
+Several functions in the header file were missing from the version.lds
+script, meaning that they couldn't be used from a libfdt shared library.
+
+Reported by Ken Aaker, via github issue tracker.
+
+Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
+---
+ libfdt/version.lds | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/libfdt/version.lds b/libfdt/version.lds
+index f19f157..1f4e1ea 100644
+--- a/libfdt/version.lds
++++ b/libfdt/version.lds
+@@ -57,6 +57,10 @@ LIBFDT_1.2 {
+ fdt_next_property_offset;
+ fdt_first_subnode;
+ fdt_next_subnode;
++ fdt_address_cells;
++ fdt_size_cells;
++ fdt_stringlist_contains;
++ fdt_resize;
+
+ local:
+ *;
+--
+2.8.1
+
diff --git a/gnu/packages/u-boot.scm b/gnu/packages/u-boot.scm
new file mode 100644
index 0000000..308af6b
--- /dev/null
+++ b/gnu/packages/u-boot.scm
@@ -0,0 +1,131 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
+;;;
+;;; 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 download)
+ #:use-module (guix packages)
+ #:use-module ((guix licenses) #:select (gpl2))
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages flex)
+ #:use-module (gnu packages algebra) ; bc
+ #:use-module (srfi srfi-1)
+ #:use-module ((srfi srfi-1) #:select (last)))
+
+(define-public device-tree-compiler
+ (package
+ (name "device-tree-compiler")
+ (version "1.4.0")
+ (source (origin
+ (method url-fetch)
+ ;; or <https://git.kernel.org/cgit/utils/dtc/dtc.git>
+ (uri (string-append "https://launchpad.net/ubuntu/+archive/primary/+files/"
+ "device-tree-compiler_" version "+dfsg.orig.tar.gz"))
+ (sha256
+ (base32
+ "0hzsqkpbgl73fblpnaiczirgwn0hapa7z478xjy6vvkqljpa3ygm"))
+ (patches (search-patches "u-boot-device-tree-compiler-01_build_doc.patch"
+ "u-boot-device-tree-compiler-23-libfdt-Add-missing-functions-to-shared-library.patch"
+ "u-boot-device-tree-compiler-24_libfdt-Add-some-missing-symbols-to-version.lds.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "Makefile"
+ (("/usr/bin/install")
+ "install")))))
+ (home-page "https://git.kernel.org/cgit/utils/dtc/dtc.git")
+ (synopsis "Compiles Device Tree Source Files (.dts)")
+ (description "dtc compiles Device Tree Source Files to Device Tree Binary Files.
+These are hardware (board) description files (used by Linux and BSD).")
+ (license gpl2)
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)))
+ (arguments
+ `(#:make-flags `("CC=gcc" ,(string-append "HOME=" (assoc-ref %outputs "out"))) ; Note: or patch out PREFIX
+ #:phases (modify-phases %standard-phases
+ (delete 'configure))))))
+
+(define u-boot
+ (package
+ (name "u-boot")
+ (version "2016.07")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "ftp://ftp.denx.de/pub/u-boot/u-boot-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0lqj4ckmfqiap8mc6z2d5albs3g2h5mzccbn60hsgxhabhibfkwp"))))
+ (home-page "http://www.denx.de/wiki/U-Boot/")
+ (synopsis "ARM Universal Bootloader")
+ (description "U-Boot is an universal bootloader mostly used for ARM boards.
+It also initializes the boards (RAM etc).")
+ (license gpl2)
+ (native-inputs
+ `(("python-2" ,python-2)
+ ("device-tree-compiler" ,device-tree-compiler)
+ ("bc" ,bc)))
+ (build-system gnu-build-system)))
+
+(define (make-u-boot-package board)
+ (package
+ (inherit u-boot)
+ (name (string-append "u-boot-" (string-downcase board)))
+ (arguments
+ `(#:test-target "test"
+ ,@(if (string-prefix? "x86_64"
+ (or (%current-target-system)
+ (%current-system)))
+ '(#:system "i686-linux")
+ '())
+ #:make-flags '("HOSTCC=gcc")
+ #:phases
+ (modify-phases %standard-phases
+ (replace
+ 'configure
+ (lambda* (#:key outputs make-flags #:allow-other-keys)
+ (let ((configname (string-append ,board "_defconfig")))
+ (if (zero? (system* "ls" (string-append "configs/" configname)))
+ (zero? (apply system* "make" `(,@make-flags ,configname)))
+ (begin
+ (display "Invalid boardname. Valid boardnames would have been:")
+ (newline)
+ (system* "ls" "-1" "configs")
+ #f)))))
+ (replace 'install
+ (lambda* (#:key outputs make-flags #:allow-other-keys)
+ (let ((out (string-append (assoc-ref outputs "out") "/libexec")))
+ (mkdir-p out)
+ (for-each (lambda (name)
+ (let ((outname (string-append out "/" name)))
+ (mkdir-p (dirname outname))
+ (copy-file name outname)))
+ (find-files "." ".*\\.(bin|efi)$"))))))))))
+
+(define-public u-boot-a20-olinuxino-lime2
+ (make-u-boot-package "A20-OLinuXino-Lime2"))
+
+(define-public u-boot-efi-x86
+ (make-u-boot-package "efi-x86"))
+
+; Something should:
+; - create extlinux.conf and put it on the first bootable partition (the one with the Active flag)
+; - install the u-boot bootloader
next prev parent reply other threads:[~2016-08-01 20:05 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-12 11:19 GuixSD on ARM Daniel Pimentel
2016-07-13 6:55 ` Ricardo Wurmus
2016-07-13 9:11 ` ARM: Installation and Booting; was: Re: GuixSD on ARM; Danny Milosavljevic
2016-07-13 22:22 ` Danny Milosavljevic
2016-07-14 7:12 ` Efraim Flashner
2016-07-19 19:50 ` Danny Milosavljevic
2016-07-19 20:07 ` [PATCH] Add gnu/packages/u-boot.scm with all the boards that u-boot supports right now Danny Milosavljevic
2016-07-21 12:37 ` Ludovic Courtès
2016-07-21 17:56 ` Danny Milosavljevic
2016-07-22 13:15 ` Ludovic Courtès
2016-07-23 14:11 ` Andreas Enge
2016-08-01 19:13 ` [PATCH v2] gnu: Add u-boot, device-tree-compiler Danny Milosavljevic
2016-08-01 19:18 ` [PATCH v3] " Danny Milosavljevic
2016-08-01 19:58 ` [PATCH v4] " Danny Milosavljevic
2016-08-01 20:05 ` Danny Milosavljevic [this message]
2016-08-02 7:11 ` [PATCH v6] " Danny Milosavljevic
2016-08-21 8:23 ` Danny Milosavljevic
2016-08-21 9:47 ` David Craven
2016-08-22 19:40 ` Danny Milosavljevic
2016-08-22 21:18 ` David Craven
2016-08-23 1:03 ` David Craven
2016-08-24 0:15 ` Danny Milosavljevic
2016-07-14 16:20 ` ARM: Installation and Booting; was: Re: GuixSD on ARM; Andreas Enge
2016-07-13 12:57 ` GuixSD on ARM Ludovic Courtès
2016-07-19 1:47 ` Eric Bavier
2016-08-15 20:14 ` Christopher Allan Webber
2016-09-11 13:05 ` Andreas Enge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160801200535.30747-1-dannym@scratchpost.org \
--to=dannym@scratchpost.org \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).