commit:     d685a4e4ed92516f535b64cf7fe9f599e6ddf8aa
Author:     Arsen Arsenović <arsen <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 26 12:29:11 2023 +0000
Commit:     Arsen Arsenović <arsen <AT> gentoo <DOT> org>
CommitDate: Mon Mar 27 20:36:54 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d685a4e4

sys-devel/automake: Fix installing broken Info pages

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

Closes: https://bugs.gentoo.org/902461
Closes: https://github.com/gentoo/gentoo/pull/30355
Signed-off-by: Arsen Arsenović <arsen <AT> gentoo.org>

 sys-devel/automake/automake-1.11.6-r4.ebuild       | 84 ++++++++++++++++++++++
 ...omake-9999.ebuild => automake-1.16.5-r1.ebuild} | 56 +++++++--------
 sys-devel/automake/automake-9999.ebuild            | 48 +++++--------
 3 files changed, 125 insertions(+), 63 deletions(-)

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..9f1e6e6abe15
--- /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.
+       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/sys-devel/automake/automake-9999.ebuild 
b/sys-devel/automake/automake-1.16.5-r1.ebuild
similarity index 66%
copy from sys-devel/automake/automake-9999.ebuild
copy to sys-devel/automake/automake-1.16.5-r1.ebuild
index df5d9b7ecfc6..912c9637c563 100644
--- a/sys-devel/automake/automake-9999.ebuild
+++ b/sys-devel/automake/automake-1.16.5-r1.ebuild
@@ -15,7 +15,7 @@ else
                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 ~x64-cygwin ~amd64-linux ~x86-linux 
~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+               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}"
@@ -47,6 +47,12 @@ BDEPEND="
        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
        :
@@ -69,42 +75,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.
+       MY_INFODIR="${EPREFIX}/usr/share/automake-${PV}/info"
+       econf --infodir="${MY_INFODIR}"
 }
 
 src_install() {
        default
 
-       slot_info_pages
        rm "${ED}"/usr/share/aclocal/README || die
        rmdir "${ED}"/usr/share/aclocal || die
        rm \
@@ -124,4 +102,18 @@ src_install() {
        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/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
 }

Reply via email to