sys-apps/dtc: change dtdiff to use /bin/sh
authorMike Frysinger <vapier@chromium.org>
Wed, 10 Jan 2018 05:48:35 +0000 (00:48 -0500)
committerMike Frysinger <vapier@gentoo.org>
Wed, 10 Jan 2018 05:48:42 +0000 (00:48 -0500)
sys-apps/dtc/dtc-1.4.4-r1.ebuild [new file with mode: 0644]
sys-apps/dtc/dtc-9999.ebuild
sys-apps/dtc/files/dtc-1.4.4-posix-shell.patch [new file with mode: 0644]

diff --git a/sys-apps/dtc/dtc-1.4.4-r1.ebuild b/sys-apps/dtc/dtc-1.4.4-r1.ebuild
new file mode 100644 (file)
index 0000000..7521eeb
--- /dev/null
@@ -0,0 +1,56 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit multilib toolchain-funcs eutils
+
+if [[ ${PV} == "9999" ]] ; then
+       EGIT_REPO_URI="git://git.kernel.org/pub/scm/utils/dtc/dtc.git"
+       inherit git-r3
+else
+       SRC_URI="mirror://kernel/software/utils/${PN}/${P}.tar.xz"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+fi
+
+DESCRIPTION="Open Firmware device tree compiler"
+HOMEPAGE="https://devicetree.org/ https://git.kernel.org/cgit/utils/dtc/dtc.git/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="static-libs"
+
+DEPEND="
+       sys-devel/bison
+       sys-devel/flex
+"
+DOCS="
+       Documentation/dt-object-internal.txt
+       Documentation/dts-format.txt
+       Documentation/manual.txt
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.4.4-posix-shell.patch
+)
+
+src_prepare() {
+       default
+
+       sed -i \
+               -e '/^CFLAGS =/s:=:+=:' \
+               -e '/^CPPFLAGS =/s:=:+=:' \
+               -e 's:-Werror::' \
+               -e 's:-g -Os::' \
+               -e "/^PREFIX =/s:=.*:= ${EPREFIX}/usr:" \
+               -e "/^LIBDIR =/s:=.*:= \$(PREFIX)/$(get_libdir):" \
+               Makefile || die
+
+       tc-export AR CC
+       export V=1
+}
+
+src_install() {
+       default
+
+       use static-libs || find "${ED}" -name '*.a' -delete
+}
index 1dc3915445fbabe780c12df7fb150efd87f5867e..7521eebe76e803741ac4f8ca3f6abaf5ec0acd6b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -24,9 +24,15 @@ DEPEND="
        sys-devel/flex
 "
 DOCS="
+       Documentation/dt-object-internal.txt
+       Documentation/dts-format.txt
        Documentation/manual.txt
 "
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.4.4-posix-shell.patch
+)
+
 src_prepare() {
        default
 
diff --git a/sys-apps/dtc/files/dtc-1.4.4-posix-shell.patch b/sys-apps/dtc/files/dtc-1.4.4-posix-shell.patch
new file mode 100644 (file)
index 0000000..b9b0175
--- /dev/null
@@ -0,0 +1,48 @@
+From 4d9522764985462741c7bb4af1ab231b9251476b Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Wed, 10 Jan 2018 00:41:43 -0500
+Subject: [PATCH] dtdiff: change to POSIX shell
+
+This changes from the bash-specific process substitution feature to
+reading with pipes.  It relies on /dev/fd or /proc/self/fd existing.
+
+URL: https://crbug.com/756559
+Signed-off-by: Mike Frysinger <vapier@chromium.org>
+---
+ dtdiff | 19 +++++++++++++------
+ 1 file changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/dtdiff b/dtdiff
+index 5fa772b0ab62..4d1b71756c2f 100644
+--- a/dtdiff
++++ b/dtdiff
+@@ -1,8 +1,4 @@
+-#! /bin/bash
+-
+-# This script uses the bash <(...) extension.
+-# If you want to change this to work with a generic /bin/sh, make sure
+-# you fix that.
++#! /bin/sh
+ DTC=dtc
+@@ -35,4 +31,15 @@ if [ $# != 2 ]; then
+     exit 1
+ fi
+-diff -u <(source_and_sort "$1") <(source_and_sort "$2")
++for dir in /dev/fd /proc/self/fd; do
++    if [ -d "${dir}" ]; then
++        break
++    fi
++done
++
++source_and_sort "$1" | (
++    # Duplicate current stdin from the first file to fd 3 so we can change fd 0
++    # to the second file.
++    exec 3<&0
++    source_and_sort "$2" | diff -u "${dir}/3" "${dir}/0"
++)
+-- 
+2.15.1
+