Mailing List Archive

[PATCH 4/4] 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
Signed-off-by: Arsen Arsenovi? <arsen@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
Re: [PATCH 4/4] sys-devel/automake: Fix installing broken Info pages [ In reply to ]
On 26/03/2023 22.30, Arsen Arsenovi? wrote:
> This commit replaces the Info page slotting mechanism with simple
> INFOPATH setting.
>
> Closes: https://bugs.gentoo.org/902461
> Signed-off-by: Arsen Arsenovi? <arsen@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"

Not sure if we have a style policy on this, but I read lowercase
variables as local-function variables. However, 'infopath', as is, is
used in a subsequent ebuild phase function. So maybe
s/infopath/INFOPATH/ or maybe even MY_INFOPATH or AUTOMAKE_INFOPATH?

- Flow
Re: [PATCH 4/4] sys-devel/automake: Fix installing broken Info pages [ In reply to ]
Florian Schmaus <flow@gentoo.org> writes:

> On 26/03/2023 22.30, Arsen Arsenovi? wrote:
>> This commit replaces the Info page slotting mechanism with simple
>> INFOPATH setting.
>> Closes: https://bugs.gentoo.org/902461
>> Signed-off-by: Arsen Arsenovi? <arsen@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"
>
> Not sure if we have a style policy on this, but I read lowercase variables as
> local-function variables. However, 'infopath', as is, is used in a subsequent
> ebuild phase function. So maybe s/infopath/INFOPATH/ or maybe even MY_INFOPATH
> or AUTOMAKE_INFOPATH?

Yes, fair enough. I'll update it to MY_INFOPATH.

> - Flow


--
Arsen Arsenovi?