summaryrefslogtreecommitdiff
path: root/dev-build/automake
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-01-15 19:18:29 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-01-15 19:18:29 +0000
commit4c588f061163483deaeecd52e6a5743762d2603e (patch)
treeb350c2c1cadf3ac9598a043421fcaf654b9e2bc7 /dev-build/automake
parentb9d13f23ed10bb803607f6ef67f0df2f078aa70f (diff)
gentoo auto-resync : 15:01:2024 - 19:18:28
Diffstat (limited to 'dev-build/automake')
-rw-r--r--dev-build/automake/Manifest14
-rw-r--r--dev-build/automake/automake-1.11.6-r4.ebuild91
-rw-r--r--dev-build/automake/automake-1.16.5-r1.ebuild131
-rw-r--r--dev-build/automake/automake-9999.ebuild128
-rw-r--r--dev-build/automake/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch77
-rw-r--r--dev-build/automake/files/automake-1.11.6-perl-5.16.patch128
-rw-r--r--dev-build/automake/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch37
-rw-r--r--dev-build/automake/files/automake-1.16.5-apostrophe-in-tests.patch53
-rw-r--r--dev-build/automake/files/automake-1.16.5-fix-instmany-python.sh-test.patch26
-rw-r--r--dev-build/automake/files/automake-1.16.5-fix-py-compile-basedir.sh-test.patch28
-rw-r--r--dev-build/automake/files/automake-1.16.5-parallel-build.patch54
-rw-r--r--dev-build/automake/files/automake-1.16.5-py3-compile.patch75
-rw-r--r--dev-build/automake/metadata.xml12
13 files changed, 854 insertions, 0 deletions
diff --git a/dev-build/automake/Manifest b/dev-build/automake/Manifest
new file mode 100644
index 000000000000..3a09bae1b29f
--- /dev/null
+++ b/dev-build/automake/Manifest
@@ -0,0 +1,14 @@
+AUX automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch 3016 BLAKE2B 8dbc2ae72f8d687e785be6dde22429305cdbbb2b441a05ad268d5a7f019b087e090d7b93cb5ff033d004a8344fc9056172f1a16bd0bfa98501e1c55cf6933c54 SHA512 0f6c6ee15c895b64742113156f9864396daa6d7680897e4795909c78cb300df0d96c63091a39e901c2d62e76852fcbb49a5be747cb4b381c4346b81c0c570149
+AUX automake-1.11.6-perl-5.16.patch 3555 BLAKE2B 8128b27ade89b12445b02532d9837ff469e6d0e1be3ebab6969d8d68c3a57a27e25ff89db82ed8abf3eff6d392bbd3b91a0b5b6b0827e7eec1279bc5345dc024 SHA512 050d66f3f1b4aed6482a234b32bbdbe231ddea0c9f4fb2ff97e963095ad69a487fd65986189fd659fbe8d8d011f3f866e92e506e653fd832d2adaf3263ed33fc
+AUX automake-1.11.6-perl-escape-curly-bracket-r1.patch 1127 BLAKE2B 18664d2af473845f6ae91ab566651a53cbcf16df598adc3812f6d40f774c2c571c20dada4f23193b2b39ddc36c5fe9fea0449f32231540477fbf2260a7052c51 SHA512 25d94503572f70a5f9ab808057ca1ad7080cba89cf98c2b1664da2dc347f8ada1db6a97138a9b3ee12ffa54a37a34307a9fded4c069e1eb20e490556ad4f46d3
+AUX automake-1.16.5-apostrophe-in-tests.patch 1695 BLAKE2B e52093f7a19293d727060c1ba0e38f4d551530bfb77aa999dc68e70b3b1b8eee0a67eed3bfb24660af8f424f9d3bfc69998ff66c17a9be15261191dd6fb13b4a SHA512 f6c34a3d70b260c6923cf062fac107d00e04b58b99702f07e142051ed07a8a8a5c7591a49d6893f06d283a1464772252ef69d70d5ae62e049f72c363d7433299
+AUX automake-1.16.5-fix-instmany-python.sh-test.patch 676 BLAKE2B b4368612ef22de981e56c633b6993db5bc7fc1c84f9be002018d4dd25c13bbc36ef7378940680b3c73a559100134e2356e7d626cdc24d91497e644e8e27268a1 SHA512 41d0d797cf25f2e080a57f57bee041cc02ea9e0a7f1ee8aa55af112f43e02c58b867d778b79d82b909d13c55ac0326718f1716947c9022e035e4631d7dbe85a0
+AUX automake-1.16.5-fix-py-compile-basedir.sh-test.patch 1084 BLAKE2B 12cef1fb8287ae77a180611d8f8bfa18da1e7cb6e473bcc7b55a4b01ee7ee052863ce156820916b08a193d0b1e2c85580bcd68301c3780865c08d5b274f3af0a SHA512 ef9af5b799c0f7341dfeac5358a05dbcc7547e1d98661e37185b3b3d24971c8db690e9ddf0b471db96254c44ff4ce878c7951e5b5afe96942d5ce21f998ba294
+AUX automake-1.16.5-parallel-build.patch 2142 BLAKE2B 68f6664b563f07d7d3a4abcee006955f5fab4611834be80ba856a70a1d2a58d848abacfe259c0dbf7b60945d52b8fab90b538d0054145001b8ac446c2d2ea749 SHA512 1128cbd5766658258c164825a49f7cd03362187640102c1f581ecb3d1552408b22677deaf5dd538d1527dbfcac658545d786637c252a595fb81ceb7c10f82492
+AUX automake-1.16.5-py3-compile.patch 2517 BLAKE2B 35ba0af05e84c632b1e2b0e68376316b1ae3eb190521243fd02b3a78d9c13c2fd2853e052af214da8a6fc8139745bbf5f55af34ec5d00a39a99623fbc72c57f4 SHA512 50d7c7f36762abc148a692198da437394890f85ff1c2820c03d5120fbb351253b245e47e6e1b0f8a9a4f532f4e92c3e11524a3d24a9626b7eaa6c7f94216990d
+DIST automake-1.11.6.tar.xz 1092908 BLAKE2B 17254d81d6920c32aa877b6c892025de8e4060b8bcbe50fff841ada513dd462ddde8fc6838b4976098a812f8fda047e7186cb62cea8175df615dde75a9959144 SHA512 6e4cdf69f07734954f770fd4a7211a8c9dc69fe25a7746bd3c1e01d3139c94cab2900399e87371548833e99687e0d2b59c5e746ab2fdfbc7d47f2c1d439137ba
+DIST automake-1.16.5.tar.xz 1601740 BLAKE2B 87408abc57e1d4317a2b518fb3606d0f6d156522e7333016dd84747cd8922f27ef7fcc93220b11f794ce52bf8fd9a788d0166a4d1964d7c283905f269977ac7c SHA512 3084ae543aa3fb5a05104ffb2e66cfa9a53080f2343c44809707fd648516869511500dba50dae67ff10f92a1bf3b5a92b2a0fa01cda30adb69b9da03994d9d88
+EBUILD automake-1.11.6-r4.ebuild 2176 BLAKE2B 6bf94ec540ec362babc5f3573fc7bc02c703d3d76866428e01d6297221f677718aac4b254a8dd7161877490b6db892e14f91a10d907d81899016044aa7e02e27 SHA512 60ac32eda4ae7fd795c52b64325c643bfca8e040082d076734fa080760c489a6ea8f5d86e3f77373ad194df3953be929b876654f9a81a52a7a71e80af43b178d
+EBUILD automake-1.16.5-r1.ebuild 3445 BLAKE2B f9cadfafeca99aa9fc801ccaa75206b53884ff1d4ba7f2d0e4518c71f2ff9f13030fd40d5afd06b6cda4b2f82a840ecd8e431e2d83d0270250ff217f5504f78f SHA512 0408e89f000246043964a9afacd0880ac04013b72e59054f69568c4506335e819c66623d145fa77635961650a834abee669021bd1a19293e98040c0a0c69fe07
+EBUILD automake-9999.ebuild 3230 BLAKE2B a7b638db8361464fd6344debf8dd7f94dbe1a614ccc6d3a187460dd90eac9fac15097a62c194b56ed30ca17b772eba5d1f702c44e91d97af3d733ba04f0ba9bb SHA512 e4f2beda315bff5bc72c2eced13d9514dcd9b82040bbefd669fdd9021a68380cfe7c79370cd88e4411cd6deb956f977bb2b0239e70f052d66aab2b508fd5eb46
+MISC metadata.xml 363 BLAKE2B 7cbff34d075f5fb5d8391bbc978f9236a6aa1903a697fac7bc52bdf98baebf7053ad4fb4231f4d2b327decce840e47fccf11a28411e9cd12647fa5ab7698f0f5 SHA512 c40b7d0d1986ac70deafd644669caa695279b4bba94b2bd5ab9a9dc8c14cb246b83dc6f19811210559fb9e0e85c7703a2599d910c8fe7a31bff01be10f6dfed7
diff --git a/dev-build/automake/automake-1.11.6-r4.ebuild b/dev-build/automake/automake-1.11.6-r4.ebuild
new file mode 100644
index 000000000000..63adb6b1358a
--- /dev/null
+++ b/dev-build/automake/automake-1.11.6-r4.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+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 ~riscv ~s390 ~sparc ~x86 ~arm64-macos"
+IUSE="test"
+RESTRICT="test !test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-10
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="
+ ${RDEPEND}
+ sys-apps/help2man
+"
+BDEPEND="
+ app-arch/gzip
+ test? ( dev-util/dejagnu )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-perl-5.16.patch #424453
+ "${FILESDIR}"/${P}-install-sh-avoid-low-risk-race-in-tmp.patch
+ "${FILESDIR}"/${P}-perl-escape-curly-bracket-r1.patch
+)
+
+src_prepare() {
+ default
+ export WANT_AUTOCONF=2.5
+ export HELP2MAN=true
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+ export TZ="UTC" #589138
+}
+
+src_compile() {
+ # Also used in install.
+ MY_INFODIR="${EPREFIX}/usr/share/automake-${PV}/info"
+ econf --infodir="${MY_INFODIR}"
+
+ local x
+ for x in aclocal automake; do
+ help2man "perl -Ilib ${x}" > doc/${x}-${SLOT}.1
+ done
+}
+
+src_install() {
+ default
+
+ 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
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${MY_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "06automake${idx}" <<-EOF
+ INFOPATH="${MY_INFODIR}"
+ EOF
+}
diff --git a/dev-build/automake/automake-1.16.5-r1.ebuild b/dev-build/automake/automake-1.16.5-r1.ebuild
new file mode 100644
index 000000000000..07d5a58bdec0
--- /dev/null
+++ b/dev-build/automake/automake-1.16.5-r1.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Bumping notes:
+# * Remember to modify LAST_KNOWN_AUTOMAKE_VER 'upstream' in dev-build/automake-wrapper
+# on new automake (major) releases, as well as the dependency in RDEPEND below too.
+# * Update _WANT_AUTOMAKE and _automake_atom case statement in autotools.eclass.
+
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit python-any-r1
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git"
+ inherit git-r3
+else
+ 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"
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+ else
+ MY_PV="$(ver_cut 1).$(($(ver_cut 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"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-11
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/gzip
+ sys-apps/help2man
+ test? (
+ ${PYTHON_DEPS}
+ dev-util/dejagnu
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.16.5-py3-compile.patch
+ "${FILESDIR}"/${PN}-1.16.5-fix-instmany-python.sh-test.patch
+ "${FILESDIR}"/${PN}-1.16.5-fix-py-compile-basedir.sh-test.patch
+ "${FILESDIR}"/${PN}-1.16.5-apostrophe-in-tests.patch
+ "${FILESDIR}"/${PN}-1.16.5-parallel-build.patch
+)
+
+pkg_setup() {
+ # Avoid python-any-r1_pkg_setup
+ :
+}
+
+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 -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ use test && python_setup
+ # Also used in install.
+ MY_INFODIR="${EPREFIX}/usr/share/automake-${PV}/info"
+ econf --infodir="${MY_INFODIR}"
+}
+
+src_install() {
+ default
+
+ 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
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${MY_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "06automake${idx}" <<-EOF
+ INFOPATH="${MY_INFODIR}"
+ EOF
+}
diff --git a/dev-build/automake/automake-9999.ebuild b/dev-build/automake/automake-9999.ebuild
new file mode 100644
index 000000000000..a16d0ba489bc
--- /dev/null
+++ b/dev-build/automake/automake-9999.ebuild
@@ -0,0 +1,128 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Bumping notes:
+# * Remember to modify LAST_KNOWN_AUTOMAKE_VER 'upstream' in dev-build/automake-wrapper
+# on new automake (major) releases, as well as the dependency in RDEPEND below too.
+# * Update _WANT_AUTOMAKE and _automake_atom case statement in autotools.eclass.
+
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit python-any-r1
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git"
+ inherit git-r3
+else
+ 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"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+ else
+ MY_PV="$(ver_cut 1).$(($(ver_cut 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"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-11
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/gzip
+ sys-apps/help2man
+ test? (
+ ${PYTHON_DEPS}
+ dev-util/dejagnu
+ )
+"
+
+pkg_setup() {
+ # Avoid python-any-r1_pkg_setup
+ :
+}
+
+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 -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ use test && python_setup
+ # Also used in install.
+ infopath="${EPREFIX}/usr/share/automake-${PV}/info"
+ econf --infodir="${infopath}"
+}
+
+src_install() {
+ default
+
+ 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
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${infopath}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ if [[ ${PV} == 9999 ]]; then
+ local major="89"
+ local minor="999"
+ else
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ fi
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "06automake${idx}" <<-EOF
+ INFOPATH="${infopath}"
+ EOF
+}
diff --git a/dev-build/automake/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch b/dev-build/automake/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch
new file mode 100644
index 000000000000..c435b9004f8d
--- /dev/null
+++ b/dev-build/automake/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch
@@ -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/dev-build/automake/files/automake-1.11.6-perl-5.16.patch b/dev-build/automake/files/automake-1.11.6-perl-5.16.patch
new file mode 100644
index 000000000000..19fe249e0c00
--- /dev/null
+++ b/dev-build/automake/files/automake-1.11.6-perl-5.16.patch
@@ -0,0 +1,128 @@
+https://bugs.gentoo.org/424453
+
+From 6bf58a59a1f3803e57e3f0378aa9344686707b75 Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini@gmail.com>
+Date: Mon, 28 May 2012 13:32:03 +0200
+Subject: [PATCH] aclocal: declare function prototypes, do not use '&' in
+ function calls
+
+This change will also fix automake bug#11543 (from a report by Matt
+Burgess).
+
+* aclocal.in: Declare prototypes for almost all functions early, before
+any actual function definition (but omit the prototype for the dynamically
+generated '&search' function). Add prototypes to any function definition.
+Remove '&' from function invocations (i.e., simply use "func(ARGS..)"
+instead of "&func(ARGS...)").
+* THANKS, NEWS: Update.
+
+Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
+---
+ NEWS | 4 ++++
+ THANKS | 1 +
+ aclocal.in | 42 ++++++++++++++++++++++++++++++++++--------
+ 3 files changed, 39 insertions(+), 8 deletions(-)
+
+diff --git a/aclocal.in b/aclocal.in
+index dfb851b..e8855d5 100644
+--- a/aclocal.in
++++ b/aclocal.in
+@@ -152,8 +152,34 @@ my $erase_me;
+
+ ################################################################
+
++# Prototypes for all subroutines.
++
++sub unlink_tmp (;$);
++sub xmkdir_p ($);
++sub check_acinclude ();
++sub reset_maps ();
++sub install_file ($$);
++sub list_compare (\@\@);
++sub scan_m4_dirs ($@);
++sub scan_m4_files ();
++sub add_macro ($);
++sub scan_configure_dep ($);
++sub add_file ($);
++sub scan_file ($$$);
++sub strip_redundant_includes (%);
++sub trace_used_macros ();
++sub scan_configure ();
++sub write_aclocal ($@);
++sub usage ($);
++sub version ();
++sub handle_acdir_option ($$);
++sub parse_arguments ();
++sub parse_ACLOCAL_PATH ();
++
++################################################################
++
+ # Erase temporary file ERASE_ME. Handle signals.
+-sub unlink_tmp
++sub unlink_tmp (;$)
+ {
+ my ($sig) = @_;
+
+@@ -350,7 +376,7 @@ sub scan_m4_dirs ($@)
+ next if $file eq 'aclocal.m4';
+
+ my $fullfile = File::Spec->canonpath ("$m4dir/$file");
+- &scan_file ($type, $fullfile, 'aclocal');
++ scan_file ($type, $fullfile, 'aclocal');
+ }
+ closedir (DIR);
+ }
+@@ -361,12 +387,12 @@ sub scan_m4_files ()
+ {
+ # First, scan configure.ac. It may contain macro definitions,
+ # or may include other files that define macros.
+- &scan_file (FT_USER, $configure_ac, 'aclocal');
++ scan_file (FT_USER, $configure_ac, 'aclocal');
+
+ # Then, scan acinclude.m4 if it exists.
+ if (-f 'acinclude.m4')
+ {
+- &scan_file (FT_USER, 'acinclude.m4', 'aclocal');
++ scan_file (FT_USER, 'acinclude.m4', 'aclocal');
+ }
+
+ # Finally, scan all files in our search paths.
+@@ -380,7 +406,7 @@ sub scan_m4_files ()
+ my $search = "sub search {\nmy \$found = 0;\n";
+ foreach my $key (reverse sort keys %map)
+ {
+- $search .= ('if (/\b\Q' . $key . '\E(?!\w)/) { & add_macro ("' . $key
++ $search .= ('if (/\b\Q' . $key . '\E(?!\w)/) { add_macro ("' . $key
+ . '"); $found = 1; }' . "\n");
+ }
+ $search .= "return \$found;\n};\n";
+@@ -403,7 +429,7 @@ sub add_macro ($)
+
+ verb "saw macro $macro";
+ $macro_seen{$macro} = 1;
+- &add_file ($map{$macro});
++ add_file ($map{$macro});
+ }
+
+ # scan_configure_dep ($file)
+@@ -465,7 +491,7 @@ sub scan_configure_dep ($)
+ }
+
+ add_macro ($_) foreach (@rlist);
+- &scan_configure_dep ($_) foreach @ilist;
++ scan_configure_dep ($_) foreach @ilist;
+ }
+
+ # add_file ($FILE)
+@@ -931,7 +957,7 @@ EOF
+ }
+
+ # Print version and exit.
+-sub version()
++sub version ()
+ {
+ print <<EOF;
+ aclocal (GNU $PACKAGE) $VERSION
+--
+2.1.3
+
diff --git a/dev-build/automake/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch b/dev-build/automake/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch
new file mode 100644
index 000000000000..bf8819adcf4c
--- /dev/null
+++ b/dev-build/automake/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch
@@ -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/dev-build/automake/files/automake-1.16.5-apostrophe-in-tests.patch b/dev-build/automake/files/automake-1.16.5-apostrophe-in-tests.patch
new file mode 100644
index 000000000000..2c1c99d57367
--- /dev/null
+++ b/dev-build/automake/files/automake-1.16.5-apostrophe-in-tests.patch
@@ -0,0 +1,53 @@
+https://git.savannah.gnu.org/cgit/automake.git/commit/?h=ed1368e8803e8934a8bbab52a38753484dba2a37
+
+From ed1368e8803e8934a8bbab52a38753484dba2a37 Mon Sep 17 00:00:00 2001
+From: Karl Berry <karl@freefriends.org>
+Date: Mon, 12 Dec 2022 14:50:33 -0800
+Subject: test: avoid apostrophe in test document.
+
+From automake patch https://bugs.gnu.org/59989
+(though a different solution), suggestion by Frederic Berat.
+
+* t/txinfo-include.sh: avoid apostrophes in test document,
+since Texinfo 7.0 turns them into UTF-8 by default.
+---
+ t/txinfo-include.sh | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/t/txinfo-include.sh b/t/txinfo-include.sh
+index 8a15f01..10fff07 100644
+--- a/t/txinfo-include.sh
++++ b/t/txinfo-include.sh
+@@ -28,6 +28,9 @@ main_TEXINFOS = one.texi two.texi three.texi
+ sub_more_TEXINFOS = sub/desc.texi sub/hist.texi
+ END
+
++# We avoid apostrophes in the test document since Texinfo
++# turns them into UTF-8, which is not easy to grep.
++#
+ cat > main.texi << 'END'
+ \input texinfo
+ @setfilename main.info
+@@ -61,8 +64,8 @@ END
+
+ cat > three.texi << 'END'
+ @node three
+-@chapter Chapter two
+-GNU's Not Unix.
++@chapter Chapter three
++Quux quux quux.
+ END
+
+ mkdir sub
+@@ -106,7 +109,7 @@ check_info_contents ()
+ srcdir=${1-.}
+ $FGREP "Foo bar, baz." $srcdir/main.info
+ $FGREP "Blah Blah Blah." $srcdir/main.info
+- $FGREP "GNU's Not Unix." $srcdir/main.info
++ $FGREP "Quux quux quux." $srcdir/main.info
+ $FGREP 'It does something, really.' $srcdir/sub/more.info
+ $FGREP 'It was written somehow.' $srcdir/sub/more.info
+ }
+--
+cgit v1.1
+
diff --git a/dev-build/automake/files/automake-1.16.5-fix-instmany-python.sh-test.patch b/dev-build/automake/files/automake-1.16.5-fix-instmany-python.sh-test.patch
new file mode 100644
index 000000000000..5cddb4cfb83f
--- /dev/null
+++ b/dev-build/automake/files/automake-1.16.5-fix-instmany-python.sh-test.patch
@@ -0,0 +1,26 @@
+From 50daac4f15d207b6b69011b9cdde62b56c1c8b10 Mon Sep 17 00:00:00 2001
+From: Thomas Deutschmann <whissi@gentoo.org>
+Date: Fri, 20 Nov 2020 02:17:31 +0100
+Subject: [PATCH 2/2] tests: fix instmany-python.sh: increase limit
+
+Still failing with 4500 on Gentoo. Passing with 7000...
+---
+ t/instmany-python.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/t/instmany-python.sh b/t/instmany-python.sh
+index dce3594b5..1c482520d 100644
+--- a/t/instmany-python.sh
++++ b/t/instmany-python.sh
+@@ -21,7 +21,7 @@
+ required='python'
+ . test-init.sh
+
+-limit=4500
++limit=7000
+ subdir=long_subdir_name_with_many_characters
+ nfiles=81
+ list=$(seq_ 1 $nfiles)
+--
+2.29.2
+
diff --git a/dev-build/automake/files/automake-1.16.5-fix-py-compile-basedir.sh-test.patch b/dev-build/automake/files/automake-1.16.5-fix-py-compile-basedir.sh-test.patch
new file mode 100644
index 000000000000..85273d6aaf03
--- /dev/null
+++ b/dev-build/automake/files/automake-1.16.5-fix-py-compile-basedir.sh-test.patch
@@ -0,0 +1,28 @@
+https://git.savannah.gnu.org/cgit/automake.git/commit/?h=ae8fb00111ba0c4922609cd9beb552fb41b66cc6
+
+From e3db5b8038a902501a354b6921dcebcb4180f50a Mon Sep 17 00:00:00 2001
+From: Thomas Deutschmann <whissi@gentoo.org>
+Date: Fri, 20 Nov 2020 02:13:56 +0100
+Subject: [PATCH 1/2] tests: fix py-compile-basedir.sh: add missing test call
+
+Fixes: b279a0d46 ("tests: in python tests, do not require .pyo files (for python3)")
+---
+ t/py-compile-basedir.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/t/py-compile-basedir.sh b/t/py-compile-basedir.sh
+index 13a22ff1d..1a16ee2d7 100644
+--- a/t/py-compile-basedir.sh
++++ b/t/py-compile-basedir.sh
+@@ -43,7 +43,7 @@ for d in foo foo/bar "$(pwd)/foo" . .. ../foo ''; do
+ py_installed "$d2/sub/$f.pyc"
+ files=$(find "$d2" | grep '\.py[co]$')
+ # with new-enough Python3, there are six files.
+- test $(echo "$files" | wc -l) -eq 4 || $(echo "$files" | wc -l) -eq 6
++ test $(echo "$files" | wc -l) -eq 4 || test $(echo "$files" | wc -l) -eq 6
+ case $d2 in
+ .|..) rm -f $files;;
+ *) rm -rf "$d2";;
+--
+2.29.2
+
diff --git a/dev-build/automake/files/automake-1.16.5-parallel-build.patch b/dev-build/automake/files/automake-1.16.5-parallel-build.patch
new file mode 100644
index 000000000000..985e86aeb32c
--- /dev/null
+++ b/dev-build/automake/files/automake-1.16.5-parallel-build.patch
@@ -0,0 +1,54 @@
+https://git.savannah.gnu.org/cgit/automake.git/commit/?h=5d02285845acfc20a4900a471c0e7c5e2ff390a0
+
+From 5d02285845acfc20a4900a471c0e7c5e2ff390a0 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 18 Jan 2022 04:47:09 -0500
+Subject: [PATCH] build: fix race in parallel builds
+
+As reported by Hongxu Jia:
+> The automake-$(APIVERSION) is a hardlink of automake, if it is
+> created later than update_mans executing, there is a failure
+> [snip]
+> |: && mkdir -p doc && ./pre-inst-env /usr/bin/env perl ../automake-1.16.1/doc/help2man --output=doc/aclocal-1.16.1 aclocal-1.16
+> |help2man: can't get `--help' info from aclocal-1.16
+> |Try `--no-discard-stderr' if option outputs to stderr
+> Makefile:3693: recipe for target 'doc/aclocal-1.16.1' failed
+> [snip]
+>
+> The automake_script is required by update_mans and update_mans
+> invokes automake-$(APIVERSION) rather than automake to generate
+> doc, so we should assign `automake-$(APIVERSION)' to automake_script.
+>
+> The same reason to tweak aclocal_script.
+
+However, rather than update the _script variables to point to the
+hardlinked copies of the programs, we can have the help2man steps
+run the existing scripts directly. This makes the relationship a
+bit more explicit and avoids implicit dependencies on names.
+
+* doc/local.mk: Pass $(aclocal_script) and $(automake_script) to $(update_mans).
+* THANKS: Add Hongxu Jia.
+---
+ THANKS | 1 +
+ doc/local.mk | 4 ++--
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/doc/local.mk b/doc/local.mk
+index a29363d2d71b..06c78823a574 100644
+--- a/doc/local.mk
++++ b/doc/local.mk
+@@ -46,9 +46,9 @@ update_mans = \
+ && echo ".so man1/$$f-$(APIVERSION).1" > $@
+
+ %D%/aclocal-$(APIVERSION).1: $(aclocal_script) lib/Automake/Config.pm
+- $(update_mans) aclocal-$(APIVERSION)
++ $(update_mans) $(aclocal_script)
+ %D%/automake-$(APIVERSION).1: $(automake_script) lib/Automake/Config.pm
+- $(update_mans) automake-$(APIVERSION)
++ $(update_mans) $(automake_script)
+
+ ## This target is not invoked as a dependency of anything. It exists
+ ## merely to make checking the links in automake.texi (that is,
+--
+2.43.0
+
diff --git a/dev-build/automake/files/automake-1.16.5-py3-compile.patch b/dev-build/automake/files/automake-1.16.5-py3-compile.patch
new file mode 100644
index 000000000000..003b391b04ac
--- /dev/null
+++ b/dev-build/automake/files/automake-1.16.5-py3-compile.patch
@@ -0,0 +1,75 @@
+https://git.savannah.gnu.org/cgit/automake.git/commit/?h=bde43d0481ff540418271ac37012a574a4fcf097
+
+From aa449bd4c836abf0320033c5077259fc760b622d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sun, 3 Nov 2019 11:51:19 +0100
+Subject: [PATCH] py-compile: Support -OO for py3.5+, and -O&-OO for pypy3
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Michał Górny <mgorny@gentoo.org>
+---
+ lib/py-compile | 29 +++++++++++++++++++++++++----
+ 1 file changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/lib/py-compile b/lib/py-compile
+index e56d98d6e..5b9ae5d5d 100755
+--- a/lib/py-compile
++++ b/lib/py-compile
+@@ -126,12 +126,10 @@ if test "$python_major" -le 2; then
+ import_lib=imp
+ import_test="hasattr(imp, 'get_tag')"
+ import_call=imp.cache_from_source
+- import_arg2=', False' # needed in one call and not the other
+ else
+ import_lib=importlib
+ import_test="hasattr(sys.implementation, 'cache_tag')"
+ import_call=importlib.util.cache_from_source
+- import_arg2=
+ fi
+
+ $PYTHON -c "
+@@ -159,7 +157,7 @@ $PYTHON -O -c "
+ import sys, os, py_compile, $import_lib
+
+ # pypy does not use .pyo optimization
+-if hasattr(sys, 'pypy_translation_info'):
++if hasattr(sys, 'pypy_translation_info') and sys.hexversion < 0x03050000:
+ sys.exit(0)
+
+ files = '''$files'''
+@@ -173,7 +171,30 @@ for file in files.split():
+ sys.stdout.write(file)
+ sys.stdout.flush()
+ if $import_test:
+- py_compile.compile(filepath, $import_call(filepath$import_arg2), path)
++ py_compile.compile(filepath, $import_call(filepath), path)
++ else:
++ py_compile.compile(filepath, filepath + 'o', path)
++sys.stdout.write('\n')" 2>/dev/null || :
++
++$PYTHON -OO -c "
++import sys, os, py_compile, $import_lib
++
++# python<3.5 does not have split files for -O and -OO
++if sys.hexversion < 0x03050000:
++ sys.exit(0)
++
++files = '''$files'''
++sys.stdout.write('Byte-compiling python modules (optimized versions) ...\n')
++for file in files.split():
++ $pathtrans
++ $filetrans
++ if not os.path.exists(filepath) or not (len(filepath) >= 3
++ and filepath[-3:] == '.py'):
++ continue
++ sys.stdout.write(file)
++ sys.stdout.flush()
++ if $import_test:
++ py_compile.compile(filepath, $import_call(filepath), path)
+ else:
+ py_compile.compile(filepath, filepath + 'o', path)
+ sys.stdout.write('\n')" 2>/dev/null || exit $?
+--
+2.25.2
diff --git a/dev-build/automake/metadata.xml b/dev-build/automake/metadata.xml
new file mode 100644
index 000000000000..6e5b45d8c011
--- /dev/null
+++ b/dev-build/automake/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:gnu:automake</remote-id>
+ </upstream>
+</pkgmetadata>