This commit replaces the Info page slotting mechanism with simple
INFOPATH setting.

Closes: https://bugs.gentoo.org/902461
Signed-off-by: Arsen Arsenović <ar...@gentoo.org>
---
 sys-devel/automake/automake-1.11.6-r4.ebuild |  84 +++++++++++++
 sys-devel/automake/automake-1.16.5-r1.ebuild | 119 +++++++++++++++++++
 sys-devel/automake/automake-9999.ebuild      |  48 +++-----
 3 files changed, 220 insertions(+), 31 deletions(-)
 create mode 100644 sys-devel/automake/automake-1.11.6-r4.ebuild
 create mode 100644 sys-devel/automake/automake-1.16.5-r1.ebuild

diff --git a/sys-devel/automake/automake-1.11.6-r4.ebuild 
b/sys-devel/automake/automake-1.11.6-r4.ebuild
new file mode 100644
index 000000000000..4e0857012d71
--- /dev/null
+++ b/sys-devel/automake/automake-1.11.6-r4.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2023 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"
+IUSE=""
+RESTRICT="test"
+
+RDEPEND=">=dev-lang/perl-5.6
+       >=sys-devel/automake-wrapper-10
+       >=sys-devel/autoconf-2.69:*
+       sys-devel/gnuconfig"
+DEPEND="${RDEPEND}
+       sys-apps/help2man"
+BDEPEND="app-arch/gzip"
+
+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
+       export HELP2MAN=true
+       sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+       export TZ="UTC"  #589138
+}
+
+src_compile() {
+       # Also used in install.
+       infopath="${EPREFIX}/usr/share/automake-${PV}/info"
+       econf --infodir="${infopath}"
+
+       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}/${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
+
+       local major="$(ver_cut 1)"
+       local minor="$(ver_cut 2)"
+       local idx="$((99999-(major*1000+minor)))"
+       newenvd - "06automake${idx}" <<-EOF
+       INFOPATH="${infopath}"
+       EOF
+}
diff --git a/sys-devel/automake/automake-1.16.5-r1.ebuild 
b/sys-devel/automake/automake-1.16.5-r1.ebuild
new file mode 100644
index 000000000000..d49dcf79faa3
--- /dev/null
+++ b/sys-devel/automake/automake-1.16.5-r1.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{9..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 ~x64-cygwin ~amd64-linux ~x86-linux 
~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-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
+       >=sys-devel/automake-wrapper-11
+       >=sys-devel/autoconf-2.69:*
+       sys-devel/gnuconfig"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       app-arch/gzip
+       sys-apps/help2man
+       test? ( ${PYTHON_DEPS} )
+"
+
+PATCHES=(
+       "${FILESDIR}"/automake-1.16.2-py3-compile.patch
+       "${FILESDIR}"/automake-1.16.2-fix-instmany-python.sh-test.patch
+       "${FILESDIR}"/automake-1.16.2-fix-py-compile-basedir.sh-test.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.
+       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
+
+       local major="$(ver_cut 1)"
+       local minor="$(ver_cut 2)"
+       local idx="$((99999-(major*1000+minor)))"
+       newenvd - "06automake${idx}" <<-EOF
+       INFOPATH="${infopath}"
+       EOF
+}
diff --git a/sys-devel/automake/automake-9999.ebuild 
b/sys-devel/automake/automake-9999.ebuild
index df5d9b7ecfc6..382a5bfb5943 100644
--- a/sys-devel/automake/automake-9999.ebuild
+++ b/sys-devel/automake/automake-9999.ebuild
@@ -69,42 +69,14 @@ src_prepare() {
 
 src_configure() {
        use 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. bug #464146 (among others)
-slot_info_pages() {
-       pushd "${ED}"/usr/share/info >/dev/null || die
-       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 || die
+       # Also used in install.
+       infopath="${EPREFIX}/usr/share/automake-${PV}/info"
+       econf --infodir="${infopath}"
 }
 
 src_install() {
        default
 
-       slot_info_pages
        rm "${ED}"/usr/share/aclocal/README || die
        rmdir "${ED}"/usr/share/aclocal || die
        rm \
@@ -124,4 +96,18 @@ src_install() {
        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
+
+       local major="$(ver_cut 1)"
+       local minor="$(ver_cut 2)"
+       local idx="$((99999-(major*1000+minor)))"
+       newenvd - "06automake${idx}" <<-EOF
+       INFOPATH="${infopath}"
+       EOF
 }
-- 
2.40.0


Reply via email to