unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
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

  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).