From mboxrd@z Thu Jan 1 00:00:00 1970 From: Danny Milosavljevic Subject: [PATCH v2] gnu: Add u-boot, device-tree-compiler. Date: Mon, 1 Aug 2016 21:13:27 +0200 Message-ID: <20160801191327.12537-1-dannym@scratchpost.org> References: <20160719220702.36d966d4@scratchpost.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2.9.1" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51131) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUIer-0001aR-Bl for guix-devel@gnu.org; Mon, 01 Aug 2016 15:13:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bUIem-0005DI-6d for guix-devel@gnu.org; Mon, 01 Aug 2016 15:13:48 -0400 Received: from dd1012.kasserver.com ([85.13.128.8]:43134) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUIel-0005CV-Ro for guix-devel@gnu.org; Mon, 01 Aug 2016 15:13:44 -0400 In-Reply-To: <20160719220702.36d966d4@scratchpost.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org This is a multi-part message in MIME format. --------------2.9.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: quoted-printable * 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 | 116 +++++++++++++++= ++++++ 5 files changed, 204 insertions(+) create mode 100644 gnu/packages/patches/u-boot-device-tree-compiler-01_b= uild_doc.patch create mode 100644 gnu/packages/patches/u-boot-device-tree-compiler-23-l= ibfdt-Add-missing-functions-to-shared-library.patch create mode 100644 gnu/packages/patches/u-boot-device-tree-compiler-24_l= ibfdt-Add-some-missing-symbols-to-version.lds.patch create mode 100644 gnu/packages/u-boot.scm --------------2.9.1 Content-Type: text/x-patch; name="0001-gnu-Add-u-boot-device-tree-compiler.patch" Content-Disposition: attachment; filename="0001-gnu-Add-u-boot-device-tree-compiler.patch" Content-Transfer-Encoding: quoted-printable 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 =3D \ %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 =3D \ %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-mi= ssing-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_do= c.patch b/gnu/packages/patches/u-boot-device-tree-compiler-01_build_doc.p= atch 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 +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ device-tree-compiler-1.0.0/Documentation/Makefile 2007-08-23 18:26:2= 2.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-A= dd-missing-functions-to-shared-library.patch b/gnu/packages/patches/u-boo= t-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-miss= ing-functions-to-shared-library.patch @@ -0,0 +1,30 @@ +From a4b093f7366fdb429ca1781144d3985fa50d0fbb Mon Sep 17 00:00:00 2001 +From: Julien Grall +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 +--- + 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; +=20 + local: + *; +--=20 +2.8.1 + diff --git a/gnu/packages/patches/u-boot-device-tree-compiler-24_libfdt-A= dd-some-missing-symbols-to-version.lds.patch b/gnu/packages/patches/u-boo= t-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 +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 +--- + 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; +=20 + local: + *; +--=20 +2.8.1 + diff --git a/gnu/packages/u-boot.scm b/gnu/packages/u-boot.scm new file mode 100644 index 0000000..add367c --- /dev/null +++ b/gnu/packages/u-boot.scm @@ -0,0 +1,116 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2016 Danny Milosavljevic +;;; +;;; 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 (a= t +;;; 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 . + +(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) ; dtc + #:use-module (gnu packages flex) ; dtc + #: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 + (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_bu= ild_doc.patch" + "u-boot-device-tree-compiler-23-li= bfdt-Add-missing-functions-to-shared-library.patch" + "u-boot-device-tree-compiler-24_li= bfdt-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 B= inary Files.=20 +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=3Dgcc" ,(string-append "HOME=3D" (assoc-ref %o= utputs "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.=20 +It also initializes the boards (RAM etc).") + (license gpl2) + (native-inputs + `(("python-2" ,python-2) + ("device-tree-compiler" ,device-tree-compiler))) + (build-system gnu-build-system) + (arguments + `(#:make-flags '("HOSTCC=3Dgcc") #| ignored? |#)))) + +(define (make-u-boot-package board) + (package + (inherit u-boot) + (name (string-append "u-boot-" (string-downcase board))) + (arguments + `(#:make-flags '("HOSTCC=3Dgcc") + #: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/" config= name))) + (zero? (apply system* "make" `(,@make-flags ,confignam= e))) + (begin + (display "Invalid board. Valid boards would have bee= n:") + (newline) + (system* "ls" "-1" "configs") + #f)))))))))) + +;(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 --------------2.9.1--