summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2016-02-13 05:08:48 -0500
committerMike Frysinger <vapier@gentoo.org>2016-02-13 05:09:41 -0500
commit6f826cbd3673375bea652a8ffff906a4b8443e25 (patch)
treea61a3c0204f22c36496edde62957ad3139ffe2f7 /sys-devel
parentdev-libs/libburn: Remove old. (diff)
downloadgentoo-6f826cbd3673375bea652a8ffff906a4b8443e25.tar.gz
gentoo-6f826cbd3673375bea652a8ffff906a4b8443e25.tar.bz2
gentoo-6f826cbd3673375bea652a8ffff906a4b8443e25.zip
sys-devel/automake: make mdate output stable #520818 #574492
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/automake/automake-1.15-r2.ebuild104
-rw-r--r--sys-devel/automake/files/automake-1.15-mdate-tz.patch53
2 files changed, 157 insertions, 0 deletions
diff --git a/sys-devel/automake/automake-1.15-r2.ebuild b/sys-devel/automake/automake-1.15-r2.ebuild
new file mode 100644
index 000000000000..9b47c6764c24
--- /dev/null
+++ b/sys-devel/automake/automake-1.15-r2.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils versionator
+
+if [[ ${PV/_beta} == ${PV} ]]; then
+ MY_P=${P}
+ SRC_URI="mirror://gnu/${PN}/${P}.tar.xz
+ ftp://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz"
+else
+ MY_PV="$(get_major_version).$(($(get_version_component_range 2)-1))b"
+ MY_P="${PN}-${MY_PV}"
+
+ # Alpha/beta releases are not distributed on the usual mirrors.
+ SRC_URI="ftp://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz"
+fi
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+
+LICENSE="GPL-2"
+# Use Gentoo versioning for slotting.
+SLOT="${PV:0:4}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
+IUSE=""
+
+RDEPEND="dev-lang/perl
+ >=sys-devel/automake-wrapper-10
+ >=sys-devel/autoconf-2.69
+ sys-devel/gnuconfig"
+DEPEND="${RDEPEND}
+ sys-apps/help2man"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ export WANT_AUTOCONF=2.5
+ epatch "${FILESDIR}"/${PN}-1.15-perl-escape-curly-bracket.patch
+ epatch "${FILESDIR}"/${PN}-1.15-mdate-tz.patch #520818 #574492
+}
+
+src_configure() {
+ econf --docdir=/usr/share/doc/${PF} HELP2MAN=true
+}
+
+src_compile() {
+ emake APIVERSION="${SLOT}" pkgvdatadir="/usr/share/${PN}-${SLOT}"
+}
+
+src_test() {
+ emake check
+}
+
+# slot the info pages. do this w/out munging the source so we don't have
+# to depend on texinfo to regen things. #464146 (among others)
+slot_info_pages() {
+ pushd "${D}"/usr/share/info >/dev/null
+ rm -f dir
+
+ # Rewrite all the references to other pages.
+ # before: * aclocal-invocation: (automake)aclocal Invocation. Generating aclocal.m4.
+ # after: * aclocal-invocation v1.13: (automake-1.13)aclocal Invocation. Generating aclocal.m4.
+ local p pages=( *.info ) args=()
+ for p in "${pages[@]/%.info}" ; do
+ args+=(
+ -e "/START-INFO-DIR-ENTRY/,/END-INFO-DIR-ENTRY/s|: (${p})| v${SLOT}&|"
+ -e "s:(${p}):(${p}-${SLOT}):g"
+ )
+ done
+ sed -i "${args[@]}" * || die
+
+ # Rewrite all the file references, and rename them in the process.
+ local f d
+ for f in * ; do
+ d=${f/.info/-${SLOT}.info}
+ mv "${f}" "${d}" || die
+ sed -i -e "s:${f}:${d}:g" * || die
+ done
+
+ popd >/dev/null
+}
+
+src_install() {
+ emake DESTDIR="${D}" install \
+ APIVERSION="${SLOT}" pkgvdatadir="/usr/share/${PN}-${SLOT}"
+ slot_info_pages
+ rm "${D}"/usr/share/aclocal/README || die
+ rmdir "${D}"/usr/share/aclocal || die
+ dodoc AUTHORS ChangeLog NEWS README THANKS
+
+ rm \
+ "${D}"/usr/bin/{aclocal,automake} \
+ "${D}"/usr/share/man/man1/{aclocal,automake}.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} /usr/share/${PN}-${SLOT}/config.${x}
+ done
+}
diff --git a/sys-devel/automake/files/automake-1.15-mdate-tz.patch b/sys-devel/automake/files/automake-1.15-mdate-tz.patch
new file mode 100644
index 000000000000..e00f2bf329d1
--- /dev/null
+++ b/sys-devel/automake/files/automake-1.15-mdate-tz.patch
@@ -0,0 +1,53 @@
+https://bugs.gentoo.org/520818
+https://bugs.gentoo.org/574492
+https://lists.gnu.org/archive/html/bug-automake/2014-10/msg00003.html
+https://lists.gnu.org/archive/html/bug-automake/2014-10/msg00004.html
+
+https://debbugs.gnu.org/20314
+https://bugs.debian.org/782345
+https://lists.gnu.org/archive/html/automake-patches/2015-04/msg00000.html
+
+From: Reiner Herrmann <reiner@reiner-h.de>
+Date: Sat, 18 Jul 2015 14:10:35 -0400
+Subject: Make output of mdate-sh deterministic
+
+mdate-sh pretty-prints the modification time of a file.
+But it's output can vary depending on the timezone of
+the caller. Someone in timezone GMT-12 will get a different
+result (day) than someone in timezone GMT+12.
+
+As this output is also used to create/update stamp files,
+which influence the further build process, the build result
+can vary.
+To enable reproducible builds and to have a more deterministic
+build behavior, this change fixes the timezone to UTC.
+
+Signed-off-by: Reiner Herrmann <reiner at reiner-h.de>
+---
+ lib/mdate-sh | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/lib/mdate-sh b/lib/mdate-sh
+index e8dfaca..9e2c0c9 100755
+--- a/lib/mdate-sh
++++ b/lib/mdate-sh
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # Get modification time of a file or directory and pretty-print it.
+
+-scriptversion=2010-08-21.06; # UTC
++scriptversion=2015-04-09.19; # UTC
+
+ # Copyright (C) 1995-2014 Free Software Foundation, Inc.
+ # written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
+@@ -74,6 +74,10 @@ export LC_ALL
+ LC_TIME=C
+ export LC_TIME
+
++# Use UTC to get reproducible result
++TZ=UTC
++export TZ
++
+ # GNU ls changes its time format in response to the TIME_STYLE
+ # variable. Since we cannot assume 'unset' works, revert this
+ # variable to its documented default.