sys-devel/automake: Rev bump to address several issues
authorThomas Deutschmann <whissi@gentoo.org>
Sun, 25 Feb 2018 01:39:04 +0000 (02:39 +0100)
committerThomas Deutschmann <whissi@gentoo.org>
Sun, 25 Feb 2018 01:58:45 +0000 (02:58 +0100)
Ebuild changes:
===============
- EAPI bumped to EAPI=6 (1.9.x-1.14.x).

- Avoid (low risk) race in /tmp (1.10.x-1.15.x). [Bug 522638]

- Avoid makeinfo requirement when bootstraping (1.14.x-1.15.x).
  [Bug 628912]

- Fix man4.test failure (1.11.x). [Bug 583108]

- Add Python 2.7 requirement for test suite. [Bug 483358, 623432]

- Fix test failures when using >=app-arch/gzip-1.8 (1.14.x). [Bug 604570]

- Updated GIT/SRC_URI to use HTTPS (1.14.x-1.15.x).

- Live ebuild updated with changes from above (9999).

Closes: https://bugs.gentoo.org/583108
Closes: https://bugs.gentoo.org/483358
Closes: https://bugs.gentoo.org/623432
Closes: https://bugs.gentoo.org/604570
Bug: https://bugs.gentoo.org/522638
Package-Manager: Portage-2.3.24, Repoman-2.3.6

16 files changed:
sys-devel/automake/automake-1.10.3-r3.ebuild [new file with mode: 0644]
sys-devel/automake/automake-1.11.6-r3.ebuild [new file with mode: 0644]
sys-devel/automake/automake-1.12.6-r2.ebuild [new file with mode: 0644]
sys-devel/automake/automake-1.13.4-r2.ebuild [new file with mode: 0644]
sys-devel/automake/automake-1.14.1-r2.ebuild [new file with mode: 0644]
sys-devel/automake/automake-1.15.1-r2.ebuild [new file with mode: 0644]
sys-devel/automake/automake-1.9.6-r5.ebuild [new file with mode: 0644]
sys-devel/automake/automake-9999.ebuild
sys-devel/automake/files/automake-1.11-install-sh-avoid-low-risk-race-in-tmp.patch [new file with mode: 0644]
sys-devel/automake/files/automake-1.13-perl-escape-curly-bracket-r1.patch [new file with mode: 0644]
sys-devel/automake/files/automake-1.14-gzip-fix.patch [new file with mode: 0644]
sys-devel/automake/files/automake-1.14-install-sh-avoid-low-risk-race-in-tmp.patch [new file with mode: 0644]
sys-devel/automake/files/automake-1.15-install-sh-avoid-low-risk-race-in-tmp.patch [new file with mode: 0644]
sys-devel/automake/files/automake-1.9.6-ignore-comments-r1.patch [new file with mode: 0644]
sys-devel/automake/files/automake-1.9.6-include-dir-prefix-r1.patch [new file with mode: 0644]
sys-devel/automake/files/automake-1.9.6-infopage-namechange-r1.patch [new file with mode: 0644]

diff --git a/sys-devel/automake/automake-1.10.3-r3.ebuild b/sys-devel/automake/automake-1.10.3-r3.ebuild
new file mode 100644 (file)
index 0000000..7ce1045
--- /dev/null
@@ -0,0 +1,95 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2"
+
+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 ~x86-fbsd"
+IUSE="test"
+
+RDEPEND="dev-lang/perl
+       >=sys-devel/automake-wrapper-10
+       >=sys-devel/autoconf-2.69:*
+       sys-devel/gnuconfig"
+DEPEND="${RDEPEND}
+       sys-apps/help2man
+       test? ( ${PYTHON_DEPS} )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.10-perl-5.16.patch #424453
+       "${FILESDIR}"/${PN}-1.11-install-sh-avoid-low-risk-race-in-tmp.patch
+       "${FILESDIR}"/${PN}-1.13-perl-escape-curly-bracket-r1.patch
+)
+
+src_prepare() {
+       default
+       export WANT_AUTOCONF=2.5
+       chmod a+rx tests/*.test
+}
+
+src_configure() {
+       econf --docdir="\$(datarootdir)/doc/${PF}"
+}
+
+# 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 "${ED%/}"/usr/share/info >/dev/null || die
+       rm -f dir || die
+
+       # 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 || die
+}
+
+src_test() {
+       python_setup
+
+       default
+}
+
+src_install() {
+       default
+       slot_info_pages
+
+       # SLOT the docs and junk
+       local x
+       for x in aclocal automake ; do
+               help2man "perl -Ilib ${x}" > ${x}-${SLOT}.1
+               doman ${x}-${SLOT}.1
+               rm -f "${ED%/}"/usr/bin/${x}
+       done
+
+       # remove all config.guess and config.sub files replacing them
+       # w/a symlink to a specific gnuconfig version
+       for x in guess sub ; do
+               dosym ../gnuconfig/config.${x} /usr/share/${PN}-${SLOT}/config.${x}
+       done
+}
diff --git a/sys-devel/automake/automake-1.11.6-r3.ebuild b/sys-devel/automake/automake-1.11.6-r3.ebuild
new file mode 100644 (file)
index 0000000..b8ddb4f
--- /dev/null
@@ -0,0 +1,106 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+
+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 ~x86-fbsd"
+IUSE="test"
+
+RDEPEND="dev-lang/perl
+       >=sys-devel/automake-wrapper-10
+       >=sys-devel/autoconf-2.69:*
+       sys-devel/gnuconfig"
+DEPEND="${RDEPEND}
+       sys-apps/help2man
+       test? ( ${PYTHON_DEPS} )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.10-perl-5.16.patch #424453
+       "${FILESDIR}"/${PN}-1.11-install-sh-avoid-low-risk-race-in-tmp.patch
+       "${FILESDIR}"/${PN}-1.13-perl-escape-curly-bracket-r1.patch
+)
+
+src_prepare() {
+       default
+       export WANT_AUTOCONF=2.5
+       chmod a+rx tests/*.test
+       export HELP2MAN=true
+       sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+       export TZ="UTC"  #589138
+}
+
+src_configure() {
+       econf --docdir="\$(datarootdir)/doc/${PF}"
+}
+
+src_compile() {
+       default
+
+       local x
+       for x in aclocal automake; do
+               help2man "perl -Ilib ${x}" > doc/${x}-${SLOT}.1
+       done
+}
+
+# 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 "${ED%/}"/usr/share/info >/dev/null || die
+       rm -f dir || die
+
+       # 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 || die
+}
+
+src_test() {
+       unset HELP2MAN # 583108
+
+       python_setup
+
+       default
+}
+
+src_install() {
+       default
+       slot_info_pages
+
+       rm \
+               "${ED%/}"/usr/bin/{aclocal,automake} \
+               "${ED%/}"/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/automake-1.12.6-r2.ebuild b/sys-devel/automake/automake-1.12.6-r2.ebuild
new file mode 100644 (file)
index 0000000..b926404
--- /dev/null
@@ -0,0 +1,93 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+
+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 ~x86-fbsd"
+IUSE="test"
+
+RDEPEND="dev-lang/perl
+       >=sys-devel/automake-wrapper-10
+       >=sys-devel/autoconf-2.69:*
+       sys-devel/gnuconfig"
+DEPEND="${RDEPEND}
+       sys-apps/help2man
+       test? ( ${PYTHON_DEPS} )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.13-perl-escape-curly-bracket-r1.patch
+       "${FILESDIR}"/${PN}-1.14-install-sh-avoid-low-risk-race-in-tmp.patch
+)
+
+src_prepare() {
+       default
+       export WANT_AUTOCONF=2.5
+       sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+}
+
+src_configure() {
+       econf --docdir="\$(datarootdir)/doc/${PF}"
+}
+
+# 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 "${ED%/}"/usr/share/info >/dev/null || die
+       rm -f dir || die
+
+       # 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 || die
+}
+
+src_test() {
+       python_setup
+
+       default
+}
+
+src_install() {
+       default
+
+       slot_info_pages
+       rm "${ED%/}"/usr/share/aclocal/README || die
+       rmdir "${ED%/}"/usr/share/aclocal || die
+       rm \
+               "${ED%/}"/usr/bin/{aclocal,automake} \
+               "${ED%/}"/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/automake-1.13.4-r2.ebuild b/sys-devel/automake/automake-1.13.4-r2.ebuild
new file mode 100644 (file)
index 0000000..e805dcc
--- /dev/null
@@ -0,0 +1,94 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+
+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 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+RDEPEND="dev-lang/perl
+       >=sys-devel/automake-wrapper-10
+       >=sys-devel/autoconf-2.69:*
+       sys-devel/gnuconfig"
+DEPEND="${RDEPEND}
+       sys-apps/help2man
+       test? ( ${PYTHON_DEPS} )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.13-dyn-ithreads.patch
+       "${FILESDIR}"/${PN}-1.13-perl-escape-curly-bracket-r1.patch
+       "${FILESDIR}"/${PN}-1.14-install-sh-avoid-low-risk-race-in-tmp.patch
+)
+
+src_prepare() {
+       default
+       export WANT_AUTOCONF=2.5
+       sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+}
+
+src_configure() {
+       econf --docdir="\$(datarootdir)/doc/${PF}"
+}
+
+src_test() {
+       python_setup
+
+       default
+}
+
+# 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 "${ED%/}"/usr/share/info >/dev/null || die
+       rm -f dir || die
+
+       # 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 || die
+}
+
+src_install() {
+       default
+
+       slot_info_pages
+       rm "${ED%/}"/usr/share/aclocal/README || die
+       rmdir "${ED%/}"/usr/share/aclocal || die
+       rm \
+               "${ED%/}"/usr/bin/{aclocal,automake} \
+               "${ED%/}"/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/automake-1.14.1-r2.ebuild b/sys-devel/automake/automake-1.14.1-r2.ebuild
new file mode 100644 (file)
index 0000000..1747213
--- /dev/null
@@ -0,0 +1,112 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1 versionator
+
+if [[ ${PV/_beta} == ${PV} ]]; then
+       MY_P=${P}
+       SRC_URI="mirror://gnu/${PN}/${P}.tar.xz
+               https://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="https://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 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="test"
+
+RDEPEND="dev-lang/perl
+       >=sys-devel/automake-wrapper-10
+       >=sys-devel/autoconf-2.69:*
+       sys-devel/gnuconfig"
+DEPEND="${RDEPEND}
+       sys-apps/help2man
+       test? ( ${PYTHON_DEPS} )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.14-gzip-fix.patch
+       "${FILESDIR}"/${PN}-1.14-install-sh-avoid-low-risk-race-in-tmp.patch
+       "${FILESDIR}"/${PN}-1.15-perl-escape-curly-bracket.patch
+)
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+       default
+       export WANT_AUTOCONF=2.5
+       sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+       # Bug 628912
+       if ! has_version sys-apps/texinfo ; then
+               touch doc/{stamp-vti,version.texi,automake.info} || die
+       fi
+}
+
+src_configure() {
+       econf --docdir="\$(datarootdir)/doc/${PF}"
+}
+
+src_test() {
+       python_setup
+
+       default
+}
+
+# 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 "${ED%/}"/usr/share/info >/dev/null || die
+       rm -f dir || die
+
+       # 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 || die
+}
+
+src_install() {
+       default
+
+       slot_info_pages
+       rm "${ED%/}"/usr/share/aclocal/README || die
+       rmdir "${ED%/}"/usr/share/aclocal || die
+       rm \
+               "${ED%/}"/usr/bin/{aclocal,automake} \
+               "${ED%/}"/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/automake-1.15.1-r2.ebuild b/sys-devel/automake/automake-1.15.1-r2.ebuild
new file mode 100644 (file)
index 0000000..3add6f0
--- /dev/null
@@ -0,0 +1,112 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1 versionator
+
+if [[ ${PV} == 9999 ]] ; then
+       EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git"
+
+       inherit git-r3
+else
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+       if [[ ${PV/_beta} == ${PV} ]]; then
+               MY_P=${P}
+               SRC_URI="mirror://gnu/${PN}/${P}.tar.xz
+                       https://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="https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz"
+       fi
+       S="${WORKDIR}/${MY_P}"
+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}"
+IUSE="test"
+
+RDEPEND="dev-lang/perl
+       >=sys-devel/automake-wrapper-10
+       >=sys-devel/autoconf-2.69:*
+       sys-devel/gnuconfig"
+DEPEND="${RDEPEND}
+       sys-apps/help2man
+       test? ( ${PYTHON_DEPS} )"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.15-install-sh-avoid-low-risk-race-in-tmp.patch )
+
+src_prepare() {
+       default
+       export WANT_AUTOCONF=2.5
+       # Don't try wrapping the autotools this thing runs as it tends
+       # to be a bit esoteric, and the script does `set -e` itself.
+       ./bootstrap || die
+       sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+       # Bug 628912
+       if ! has_version sys-apps/texinfo ; then
+               touch doc/{stamp-vti,version.texi,automake.info} || die
+       fi
+}
+
+# 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 "${ED%/}"/usr/share/info >/dev/null || die
+       rm -f dir || die
+
+       # 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 || die
+}
+
+src_test() {
+       python_setup
+
+       default
+}
+
+src_install() {
+       default
+
+       slot_info_pages
+       rm "${ED%/}"/usr/share/aclocal/README || die
+       rmdir "${ED%/}"/usr/share/aclocal || die
+       rm \
+               "${ED%/}"/usr/bin/{aclocal,automake} \
+               "${ED%/}"/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/automake-1.9.6-r5.ebuild b/sys-devel/automake/automake-1.9.6-r5.ebuild
new file mode 100644 (file)
index 0000000..8301399
--- /dev/null
@@ -0,0 +1,95 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+# Use Gentoo versioning for slotting.
+SLOT="${PV:0:3}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="test"
+
+RDEPEND="dev-lang/perl
+       >=sys-devel/automake-wrapper-10
+       >=sys-devel/autoconf-2.69:*
+       >=sys-apps/texinfo-4.7
+       sys-devel/gnuconfig"
+DEPEND="${RDEPEND}
+       sys-apps/help2man
+       test? ( ${PYTHON_DEPS} )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.9.6-infopage-namechange-r1.patch
+       "${FILESDIR}"/${P}-include-dir-prefix-r1.patch #107435
+       "${FILESDIR}"/${P}-ignore-comments-r1.patch #126388
+       "${FILESDIR}"/${P}-aclocal7-test-sleep.patch #197366
+       "${FILESDIR}"/${PN}-1.9.6-subst-test.patch #222225
+       "${FILESDIR}"/${PN}-1.10-ccnoco-ldflags.patch #203914
+       "${FILESDIR}"/${PN}-1.8.5-CVE-2009-4029.patch #295357
+       "${FILESDIR}"/${PN}-1.8-perl-5.11.patch
+)
+
+src_prepare() {
+       default
+       export WANT_AUTOCONF=2.5
+}
+
+# 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 "${ED%/}"/usr/share/info >/dev/null || die
+       rm -f dir || die
+
+       # 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 || die
+}
+
+src_test() {
+       python_setup
+
+       default
+}
+
+src_install() {
+       default
+       slot_info_pages
+
+       local x
+       for x in aclocal automake ; do
+               help2man "perl -Ilib ${x}" > ${x}-${SLOT}.1
+               doman ${x}-${SLOT}.1
+               rm -f "${ED%/}"/usr/bin/${x}
+       done
+
+       # remove all config.guess and config.sub files replacing them
+       # w/a symlink to a specific gnuconfig version
+       for x in guess sub ; do
+               dosym ../gnuconfig/config.${x} /usr/share/${PN}-${SLOT}/config.${x}
+       done
+}
index ee87a2b2eb157422ad59e2b28af11d843d03370f..3add6f0127e5afc9a019b0747dec4720dbbb8c0e 100644 (file)
@@ -2,12 +2,12 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="6"
+PYTHON_COMPAT=( python2_7 )
 
-inherit eutils versionator
+inherit python-any-r1 versionator
 
 if [[ ${PV} == 9999 ]] ; then
-       EGIT_REPO_URI="git://git.savannah.gnu.org/${PN}.git
-               http://git.savannah.gnu.org/r/${PN}.git"
+       EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git"
 
        inherit git-r3
 else
@@ -15,13 +15,13 @@ else
        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"
+                       https://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"
+               SRC_URI="https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz"
        fi
        S="${WORKDIR}/${MY_P}"
 fi
@@ -32,14 +32,17 @@ HOMEPAGE="https://www.gnu.org/software/automake/"
 LICENSE="GPL-2"
 # Use Gentoo versioning for slotting.
 SLOT="${PV:0:4}"
-IUSE=""
+IUSE="test"
 
 RDEPEND="dev-lang/perl
        >=sys-devel/automake-wrapper-10
        >=sys-devel/autoconf-2.69:*
        sys-devel/gnuconfig"
 DEPEND="${RDEPEND}
-       sys-apps/help2man"
+       sys-apps/help2man
+       test? ( ${PYTHON_DEPS} )"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.15-install-sh-avoid-low-risk-race-in-tmp.patch )
 
 src_prepare() {
        default
@@ -48,13 +51,18 @@ src_prepare() {
        # to be a bit esoteric, and the script does `set -e` itself.
        ./bootstrap || die
        sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+       # Bug 628912
+       if ! has_version sys-apps/texinfo ; then
+               touch doc/{stamp-vti,version.texi,automake.info} || die
+       fi
 }
 
 # 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 "${ED}"/usr/share/info >/dev/null || die
-       rm -f dir || dir
+       pushd "${ED%/}"/usr/share/info >/dev/null || die
+       rm -f dir || die
 
        # Rewrite all the references to other pages.
        # before: * aclocal-invocation: (automake)aclocal Invocation.   Generating aclocal.m4.
@@ -79,15 +87,21 @@ slot_info_pages() {
        popd >/dev/null || die
 }
 
+src_test() {
+       python_setup
+
+       default
+}
+
 src_install() {
        default
 
        slot_info_pages
-       rm "${ED}"/usr/share/aclocal/README || die
-       rmdir "${ED}"/usr/share/aclocal || die
+       rm "${ED%/}"/usr/share/aclocal/README || die
+       rmdir "${ED%/}"/usr/share/aclocal || die
        rm \
-               "${ED}"/usr/bin/{aclocal,automake} \
-               "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die
+               "${ED%/}"/usr/bin/{aclocal,automake} \
+               "${ED%/}"/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
diff --git a/sys-devel/automake/files/automake-1.11-install-sh-avoid-low-risk-race-in-tmp.patch b/sys-devel/automake/files/automake-1.11-install-sh-avoid-low-risk-race-in-tmp.patch
new file mode 100644 (file)
index 0000000..c435b90
--- /dev/null
@@ -0,0 +1,77 @@
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Sat, 15 Aug 2015 04:40:57 -0400
+Subject: install-sh: avoid (low risk) race in /tmp
+
+Ensure that nobody can cross privilege boundaries by pre-creating
+symlink on '$tmpdir' path.
+
+Just testing 'mkdir -p' by creating '/tmp/ins$RANDOM-$$/d' is not
+safe because '/tmp' directory is usually world-writeable and
+'/tmp/ins$RANDOM-$$' content could be pretty easily guessed by
+attacker (at least for shells where $RANDOM is not supported).
+So, as the first step, create the '/tmp/ins$RANDOM-$$' without -p.
+This step would fail early if somebody wanted catch us.
+
+Note that systems that implement (and have enabled)
+fs.protected_symlinks kernel feature are not affected even without
+this commit.
+
+References:
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=760455
+https://bugzilla.redhat.com/show_bug.cgi?id=1140725
+
+* lib/install-sh: Implement safer 'mkdir -p' test by running
+'$mkdirprog $mkdir_mode "$tmpdir"' first.
+(scriptversion): Bump.
+
+--- a/lib/install-sh
++++ b/lib/install-sh
+@@ -345,34 +345,41 @@ do
+           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+           ;;
+         *)
++          # $RANDOM is not portable (e.g. dash);  use it when possible to
++          # lower collision chance
+           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+-          trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
++          trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
++          # As "mkdir -p" follows symlinks and we work in /tmp possibly;  so
++          # create the $tmpdir first (and fail if unsuccessful) to make sure
++          # that nobody tries to guess the $tmpdir name.
+           if (umask $mkdir_umask &&
+-              exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
++              $mkdirprog $mkdir_mode "$tmpdir" &&
++              exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+           then
+             if test -z "$dir_arg" || {
+                  # Check for POSIX incompatibilities with -m.
+                  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                  # other-writeable bit of parent directory when it shouldn't.
+                  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+-                 ls_ld_tmpdir=`ls -ld "$tmpdir"`
++                 test_tmpdir="$tmpdir/a"
++                 ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+                  case $ls_ld_tmpdir in
+                    d????-?r-*) different_mode=700;;
+                    d????-?--*) different_mode=755;;
+                    *) false;;
+                  esac &&
+-                 $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+-                   ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
++                 $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
++                   ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                  }
+                }
+             then posix_mkdir=:
+             fi
+-            rmdir "$tmpdir/d" "$tmpdir"
++            rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+           else
+             # Remove any dirs left behind by ancient mkdir implementations.
+-            rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
++            rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+           fi
+           trap '' 0;;
+       esac;;
diff --git a/sys-devel/automake/files/automake-1.13-perl-escape-curly-bracket-r1.patch b/sys-devel/automake/files/automake-1.13-perl-escape-curly-bracket-r1.patch
new file mode 100644 (file)
index 0000000..bf8819a
--- /dev/null
@@ -0,0 +1,37 @@
+http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21001
+
+From 34163794a58b5bd91c5d6bd9adf5437571c7a479 Mon Sep 17 00:00:00 2001
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Tue, 7 Jul 2015 10:54:24 +0200
+Subject: [PATCH] bin/automake: escape '{' in regexp pattern
+
+Based on perlre(1) documentation:
+.. in Perl v5.26, literal uses of a curly bracket will be required
+to be escaped, say by preceding them with a backslash ("\{" ) or
+enclosing them within square brackets ("[{]") ..
+
+References:
+https://bugzilla.redhat.com/1239379
+
+* bin/automake.in (substitute_ac_subst_variables): Escape the
+occurrence of '{' character.
+---
+ bin/automake.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/automake.in b/bin/automake.in
+index 0c29184..c294ced 100644
+--- a/automake.in
++++ b/automake.in
+@@ -3898,7 +3898,7 @@ sub substitute_ac_subst_variables_worker
+ sub substitute_ac_subst_variables ($)
+ {
+   my ($text) = @_;
+-  $text =~ s/\${([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
++  $text =~ s/\$\{([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
+   return $text;
+ }
+-- 
+2.1.0
+
diff --git a/sys-devel/automake/files/automake-1.14-gzip-fix.patch b/sys-devel/automake/files/automake-1.14-gzip-fix.patch
new file mode 100644 (file)
index 0000000..39c201a
--- /dev/null
@@ -0,0 +1,67 @@
+commit 749468ac63042820bc3da85ece5bed64b0c15d62
+Author: Paul Eggert <eggert at>
+Date:   Mon Mar 28 19:44:19 2016 -0700
+
+    automake: port better to future gzip
+    
+    * lib/am/distdir.am (dist-gzip, dist-shar, distcheck):
+    Port better to future versions of gzip, which are planned to
+    deprecate the GZIP environment variable (Bug#20132).
+
+diff --git a/lib/am/distdir.am b/lib/am/distdir.am
+index d4dd8cc9b..87c6730f5 100644
+--- a/lib/am/distdir.am
++++ b/lib/am/distdir.am
+@@ -309,6 +309,16 @@ endif %?TOPDIR_P%
+ ## We order DIST_TARGETS by expected duration of the compressors,
+ ## slowest first, for better parallelism in "make dist".  Do not
+ ## reorder DIST_ARCHIVES, users may expect gzip to be first.
++##
++## Traditionally, gzip prepended the contents of the GZIP environment
++## variable to its arguments, and the commands below formerly used
++## this by invoking 'GZIP=$(GZIP_ENV) gzip'.  The GZIP environment
++## variable is now considered to be obsolescent, so the commands below
++## now use 'eval GZIP= gzip $(GZIP_ENV)' instead; this should work
++## with both older and newer gzip implementations.  The 'eval' is to
++## support makefile assignments like 'GZIP_ENV = "-9 -n"' that quote
++## the GZIP_ENV right-hand side because that was needed with the
++## former invocation pattern.
+ if %?TOPDIR_P%
+@@ -316,7 +326,7 @@ if %?TOPDIR_P%
+ GZIP_ENV = --best
+ .PHONY: dist-gzip
+ dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
++      tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
+       $(am__post_remove_distdir)
+ ?BZIP2?DIST_ARCHIVES += $(distdir).tar.bz2
+@@ -352,7 +362,7 @@ dist-shar: distdir
+       @echo WARNING: "Support for shar distribution archives is" \
+                      "deprecated." >&2
+       @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
++      shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+       $(am__post_remove_distdir)
+ ?ZIP?DIST_ARCHIVES += $(distdir).zip
+@@ -412,7 +422,7 @@ endif %?SUBDIRS%
+ distcheck: dist
+       case '$(DIST_ARCHIVES)' in \
+       *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
++        eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+       *.tar.bz2*) \
+         bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+       *.tar.lz*) \
+@@ -422,7 +432,7 @@ distcheck: dist
+       *.tar.Z*) \
+         uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+       *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
++        eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+       *.zip*) \
+         unzip $(distdir).zip ;;\
+       esac
diff --git a/sys-devel/automake/files/automake-1.14-install-sh-avoid-low-risk-race-in-tmp.patch b/sys-devel/automake/files/automake-1.14-install-sh-avoid-low-risk-race-in-tmp.patch
new file mode 100644 (file)
index 0000000..6793706
--- /dev/null
@@ -0,0 +1,77 @@
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Sat, 15 Aug 2015 04:40:57 -0400
+Subject: install-sh: avoid (low risk) race in /tmp
+
+Ensure that nobody can cross privilege boundaries by pre-creating
+symlink on '$tmpdir' path.
+
+Just testing 'mkdir -p' by creating '/tmp/ins$RANDOM-$$/d' is not
+safe because '/tmp' directory is usually world-writeable and
+'/tmp/ins$RANDOM-$$' content could be pretty easily guessed by
+attacker (at least for shells where $RANDOM is not supported).
+So, as the first step, create the '/tmp/ins$RANDOM-$$' without -p.
+This step would fail early if somebody wanted catch us.
+
+Note that systems that implement (and have enabled)
+fs.protected_symlinks kernel feature are not affected even without
+this commit.
+
+References:
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=760455
+https://bugzilla.redhat.com/show_bug.cgi?id=1140725
+
+* lib/install-sh: Implement safer 'mkdir -p' test by running
+'$mkdirprog $mkdir_mode "$tmpdir"' first.
+(scriptversion): Bump.
+
+--- a/lib/install-sh
++++ b/lib/install-sh
+@@ -345,34 +345,41 @@ do
+           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+           ;;
+         *)
++          # $RANDOM is not portable (e.g. dash);  use it when possible to
++          # lower collision chance
+           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+-          trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
++          trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
++          # As "mkdir -p" follows symlinks and we work in /tmp possibly;  so
++          # create the $tmpdir first (and fail if unsuccessful) to make sure
++          # that nobody tries to guess the $tmpdir name.
+           if (umask $mkdir_umask &&
+-              exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
++              $mkdirprog $mkdir_mode "$tmpdir" &&
++              exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+           then
+             if test -z "$dir_arg" || {
+                  # Check for POSIX incompatibilities with -m.
+                  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                  # other-writable bit of parent directory when it shouldn't.
+                  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+-                 ls_ld_tmpdir=`ls -ld "$tmpdir"`
++                 test_tmpdir="$tmpdir/a"
++                 ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+                  case $ls_ld_tmpdir in
+                    d????-?r-*) different_mode=700;;
+                    d????-?--*) different_mode=755;;
+                    *) false;;
+                  esac &&
+-                 $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+-                   ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
++                 $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
++                   ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                  }
+                }
+             then posix_mkdir=:
+             fi
+-            rmdir "$tmpdir/d" "$tmpdir"
++            rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+           else
+             # Remove any dirs left behind by ancient mkdir implementations.
+-            rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
++            rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+           fi
+           trap '' 0;;
+       esac;;
diff --git a/sys-devel/automake/files/automake-1.15-install-sh-avoid-low-risk-race-in-tmp.patch b/sys-devel/automake/files/automake-1.15-install-sh-avoid-low-risk-race-in-tmp.patch
new file mode 100644 (file)
index 0000000..1fabdd5
--- /dev/null
@@ -0,0 +1,82 @@
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Sat, 15 Aug 2015 04:40:57 -0400
+Subject: install-sh: avoid (low risk) race in /tmp
+
+Ensure that nobody can cross privilege boundaries by pre-creating
+symlink on '$tmpdir' path.
+
+Just testing 'mkdir -p' by creating '/tmp/ins$RANDOM-$$/d' is not
+safe because '/tmp' directory is usually world-writeable and
+'/tmp/ins$RANDOM-$$' content could be pretty easily guessed by
+attacker (at least for shells where $RANDOM is not supported).
+So, as the first step, create the '/tmp/ins$RANDOM-$$' without -p.
+This step would fail early if somebody wanted catch us.
+
+Note that systems that implement (and have enabled)
+fs.protected_symlinks kernel feature are not affected even without
+this commit.
+
+References:
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=760455
+https://bugzilla.redhat.com/show_bug.cgi?id=1140725
+
+* lib/install-sh: Implement safer 'mkdir -p' test by running
+'$mkdirprog $mkdir_mode "$tmpdir"' first.
+(scriptversion): Bump.
+---
+ lib/install-sh | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
+
+diff --git a/lib/install-sh b/lib/install-sh
+index 0b0fdcb..59990a1 100755
+--- a/lib/install-sh
++++ b/lib/install-sh
+@@ -324,34 +324,41 @@ do
+             # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+             ;;
+           *)
++            # $RANDOM is not portable (e.g. dash);  use it when possible to
++            # lower collision chance
+             tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+-            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
++            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
++            # As "mkdir -p" follows symlinks and we work in /tmp possibly;  so
++            # create the $tmpdir first (and fail if unsuccessful) to make sure
++            # that nobody tries to guess the $tmpdir name.
+             if (umask $mkdir_umask &&
+-                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
++                $mkdirprog $mkdir_mode "$tmpdir" &&
++                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+             then
+               if test -z "$dir_arg" || {
+                    # Check for POSIX incompatibilities with -m.
+                    # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                    # other-writable bit of parent directory when it shouldn't.
+                    # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+-                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
++                   test_tmpdir="$tmpdir/a"
++                   ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+                    case $ls_ld_tmpdir in
+                      d????-?r-*) different_mode=700;;
+                      d????-?--*) different_mode=755;;
+                      *) false;;
+                    esac &&
+-                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+-                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
++                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
++                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+                      test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                    }
+                  }
+               then posix_mkdir=:
+               fi
+-              rmdir "$tmpdir/d" "$tmpdir"
++              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+             else
+               # Remove any dirs left behind by ancient mkdir implementations.
+-              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
++              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+             fi
+             trap '' 0;;
+         esac;;
diff --git a/sys-devel/automake/files/automake-1.9.6-ignore-comments-r1.patch b/sys-devel/automake/files/automake-1.9.6-ignore-comments-r1.patch
new file mode 100644 (file)
index 0000000..da3f288
--- /dev/null
@@ -0,0 +1,29 @@
+http://bugs.gentoo.org/126388
+
+2006-03-16  Mike Frysinger  <vapier@gentoo.org>
+
+       * aclocal.in (scan_configure_dep): Ignore ## lines.
+       (scan_file): Remove dnl and # comments.
+
+--- a/aclocal.in
++++ b/aclocal.in
+@@ -227,6 +227,8 @@
+   foreach (split ("\n", $contents))
+     {
+       ++$line;
++      # Ignore `##' lines.
++      next if /^##/;
+       # Remove comments from current line.
+       s/\bdnl\b.*$//;
+       s/\#.*$//;
+@@ -311,6 +313,10 @@
+       $contents .= $_;
++      # Remove comments from current line.
++      s/\bdnl\b.*$//;
++      s/\#.*$//;
++
+       while (/$ac_defun_rx/go)
+       {
+         if (! defined $1)
diff --git a/sys-devel/automake/files/automake-1.9.6-include-dir-prefix-r1.patch b/sys-devel/automake/files/automake-1.9.6-include-dir-prefix-r1.patch
new file mode 100644 (file)
index 0000000..a1cc613
--- /dev/null
@@ -0,0 +1,31 @@
+http://bugs.gentoo.org/107435
+http://lists.gnu.org/archive/html/automake/2005-09/msg00088.html
+
+2005-09-27  Stepan Kasal  <address@hidden>
+
+       * automake.in (handle_single_transform): Direct suffix rule preserves
+         the directory prefix, so the generated object name should contain
+         it, too.
+
+--- a/automake.in      2005-09-17 15:05:39.000000000 +0200
++++ b/automake.in      2005-09-27 17:10:47.000000000 +0200
+@@ -1755,6 +1755,10 @@
+             # This is probably the result of a direct suffix rule.
+             # In this case we just accept the rewrite.
+             $object = "$base$extension";
++            if ($directory ne '')
++            {
++                $object = $directory . '/' . $object;
++            }
+             $linker = '';
+         }
+         else
+@@ -1824,7 +1828,7 @@
+               # For Java, the way we're handling it right now, a
+               # `..' component doesn't make sense.
+-                if ($lang->name eq 'java' && $object =~ /(\/|^)\.\.\//)
++                if ($lang && $lang->name eq 'java' && $object =~ /(\/|^)\.\.\//)
+                 {
+                   err_am "`$full' should not contain a `..' component";
+                 }
diff --git a/sys-devel/automake/files/automake-1.9.6-infopage-namechange-r1.patch b/sys-devel/automake/files/automake-1.9.6-infopage-namechange-r1.patch
new file mode 100644 (file)
index 0000000..d99c442
--- /dev/null
@@ -0,0 +1,33 @@
+--- a/doc/Makefile.in.orig     2005-07-11 00:39:31.000000000 -0400
++++ b/doc/Makefile.in  2005-07-11 00:40:46.000000000 -0400
+@@ -187,26 +187,10 @@
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ .texi.info:
+-      restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+-      am__cwd=`pwd` && cd $(srcdir) && \
+-      rm -rf $$backupdir && mkdir $$backupdir && \
+-      if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+-        for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+-          if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+-        done; \
+-      else :; fi && \
+-      cd "$$am__cwd"; \
+-      if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+-       -o $@ $<; \
+-      then \
+-        rc=0; \
+-        cd $(srcdir); \
+-      else \
+-        rc=$$?; \
+-        cd $(srcdir) && \
+-        $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+-      fi; \
+-      rm -rf $$backupdir; exit $$rc
++      @rm -f $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]
++      cd $(srcdir) \
++              && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
++              `echo $< | sed 's,.*/,,'`
+ .texi.dvi:
+       TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \