Re: [gentoo-dev] [PATCH 1/4] toolchain-autoconf.eclass: Add option to disable Info slotting

2023-03-27 Thread Arsen Arsenović
Hi Florian,

Florian Schmaus  writes:

> On 26/03/2023 22.30, Arsen Arsenović wrote:
>> Closes: https://bugs.gentoo.org/902461
>> Signed-off-by: Arsen Arsenović 
>> ---
>>   eclass/toolchain-autoconf.eclass | 46 +---
>>   1 file changed, 43 insertions(+), 3 deletions(-)
>> diff --git a/eclass/toolchain-autoconf.eclass
>> b/eclass/toolchain-autoconf.eclass
>> index 2ba27638468e..140ee4c9b5eb 100644
>> --- a/eclass/toolchain-autoconf.eclass
>> +++ b/eclass/toolchain-autoconf.eclass
>> @@ -1,4 +1,4 @@
>> -# Copyright 1999-2022 Gentoo Authors
>> +# Copyright 1999-2023 Gentoo Authors
>>   # Distributed under the terms of the GNU General Public License v2
>> # @ECLASS: toolchain-autoconf.eclass
>> @@ -18,6 +18,20 @@ esac
>>   if [[ -z ${_TOOLCHAIN_AUTOCONF_ECLASS} ]]; then
>>   _TOOLCHAIN_AUTOCONF_ECLASS=1
>>   +# @ECLASS_VARIABLE: TC_AUTOCONF_BREAK_INFOS
>> +# @DESCRIPTION:
>> +# Enables slotting logic on the installed info pages.  This includes
>> +# mangling the pages in order to include a version number.  Empty by
>> +# default, and only exists for existing ebuild revisions to use.  Set
>
> Referring to "existing ebuild revisions" becomes confusing in the future, when
> there are existing ebuilds that do not use this variable.

My intention was that this variable goes away as soon as said revisions
are out of tree, so I wasn't thinking about that time-frame but I'll
clarify and push to my branch.

Thanks, have a lovely day.

> Maybe "and only set by legacy ebuilds to phase out the broken slotting
> logic. New ebuilds should not set this variable."
>
> - Flow


-- 
Arsen Arsenović


signature.asc
Description: PGP signature


Re: [gentoo-dev] [PATCH 1/4] toolchain-autoconf.eclass: Add option to disable Info slotting

2023-03-27 Thread Florian Schmaus

On 26/03/2023 22.30, Arsen Arsenović wrote:

Closes: https://bugs.gentoo.org/902461
Signed-off-by: Arsen Arsenović 
---
  eclass/toolchain-autoconf.eclass | 46 +---
  1 file changed, 43 insertions(+), 3 deletions(-)

diff --git a/eclass/toolchain-autoconf.eclass b/eclass/toolchain-autoconf.eclass
index 2ba27638468e..140ee4c9b5eb 100644
--- a/eclass/toolchain-autoconf.eclass
+++ b/eclass/toolchain-autoconf.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
  # Distributed under the terms of the GNU General Public License v2
  
  # @ECLASS: toolchain-autoconf.eclass

@@ -18,6 +18,20 @@ esac
  if [[ -z ${_TOOLCHAIN_AUTOCONF_ECLASS} ]]; then
  _TOOLCHAIN_AUTOCONF_ECLASS=1
  
+# @ECLASS_VARIABLE: TC_AUTOCONF_BREAK_INFOS

+# @DESCRIPTION:
+# Enables slotting logic on the installed info pages.  This includes
+# mangling the pages in order to include a version number.  Empty by
+# default, and only exists for existing ebuild revisions to use.  Set


Referring to "existing ebuild revisions" becomes confusing in the 
future, when there are existing ebuilds that do not use this variable.


Maybe "and only set by legacy ebuilds to phase out the broken slotting 
logic. New ebuilds should not set this variable."


- Flow




[gentoo-dev] [PATCH 1/4] toolchain-autoconf.eclass: Add option to disable Info slotting

2023-03-26 Thread Arsen Arsenović
Closes: https://bugs.gentoo.org/902461
Signed-off-by: Arsen Arsenović 
---
 eclass/toolchain-autoconf.eclass | 46 +---
 1 file changed, 43 insertions(+), 3 deletions(-)

diff --git a/eclass/toolchain-autoconf.eclass b/eclass/toolchain-autoconf.eclass
index 2ba27638468e..140ee4c9b5eb 100644
--- a/eclass/toolchain-autoconf.eclass
+++ b/eclass/toolchain-autoconf.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: toolchain-autoconf.eclass
@@ -18,6 +18,20 @@ esac
 if [[ -z ${_TOOLCHAIN_AUTOCONF_ECLASS} ]]; then
 _TOOLCHAIN_AUTOCONF_ECLASS=1
 
+# @ECLASS_VARIABLE: TC_AUTOCONF_BREAK_INFOS
+# @DESCRIPTION:
+# Enables slotting logic on the installed info pages.  This includes
+# mangling the pages in order to include a version number.  Empty by
+# default, and only exists for existing ebuild revisions to use.  Set
+# to a non-empty value to enable.
+# @DEPRECATED: none
+: "${TC_AUTOCONF_BREAK_INFOS:=}"
+
+# @ECLASS_VARIABLE: TC_AUTOCONF_INFOPATH
+# @DESCRIPTION:
+# Where to install info files if not slotting.
+TC_AUTOCONF_INFOPATH="${EPREFIX}/usr/share/autoconf-${PV}/info"
+
 toolchain-autoconf_src_prepare() {
find -name Makefile.in -exec sed -i '/^pkgdatadir/s:$:-@VERSION@:' {} + 
|| die
default
@@ -26,7 +40,15 @@ toolchain-autoconf_src_prepare() {
 toolchain-autoconf_src_configure() {
# Disable Emacs in the build system since it is in a separate package.
export EMACS=no
-   econf --program-suffix="-${PV}" || die
+   local myconf=(
+   --program-suffix="-${PV}"
+   )
+   if [[ -z "${TC_AUTOCONF_BREAK_INFOS}" && "${SLOT}" != 0 ]]; then
+   myconf+=(
+   --infodir="${TC_AUTOCONF_INFOPATH}"
+   )
+   fi
+   econf "${myconf[@]}" || die
# econf updates config.{sub,guess} which forces the manpages
# to be regenerated which we dont want to do #146621
touch man/*.1
@@ -65,7 +87,25 @@ slot_info_pages() {
 
 toolchain-autoconf_src_install() {
default
-   slot_info_pages
+   if [[ -n "${TC_AUTOCONF_BREAK_INFOS}" ]]; then
+   slot_info_pages
+   else
+   rm -f dir || die
+
+   local major="$(ver_cut 1)"
+   local minor="$(ver_cut 2)"
+   local idx="$((9-(major*1000+minor)))"
+   newenvd - "06autoconf${idx}" <<-EOF
+   INFOPATH="${TC_AUTOCONF_INFOPATH}"
+   EOF
+
+   pushd "${D}/${TC_AUTOCONF_INFOPATH}" >/dev/null || die
+   for f in *.info*; do
+   # Install convenience aliases for versioned Autoconf 
pages.
+   ln -s "$f" "${f/./-${PV}.}" || die
+   done
+   popd >/dev/null || die
+   fi
 }
 
 fi
-- 
2.40.0