commit:     febcfdbcc083a947b794106847352d1a0636d6ac
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 19 21:36:37 2024 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Tue Nov 19 21:36:37 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=febcfdbc

Revert "sys-devel/gettext: drop 0.21.1, 0.22.4"

This reverts commit 7a602cea9c2a68e6f0307b40b81cd65fb775a4ff.

Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 sys-devel/gettext/Manifest                         |   4 +
 .../files/gettext-0.19.7-disable-libintl.patch     |  30 ++++
 .../files/gettext-0.21_rc1-avoid_eautomake.patch   |  22 +++
 sys-devel/gettext/gettext-0.21.1.ebuild            | 178 +++++++++++++++++++
 sys-devel/gettext/gettext-0.22.4.ebuild            | 189 +++++++++++++++++++++
 5 files changed, 423 insertions(+)

diff --git a/sys-devel/gettext/Manifest b/sys-devel/gettext/Manifest
index 941af3130c0d..fe3a242e1a81 100644
--- a/sys-devel/gettext/Manifest
+++ b/sys-devel/gettext/Manifest
@@ -1,2 +1,6 @@
+DIST gettext-0.21.1.tar.xz 10054564 BLAKE2B 
e994924284b3fd5b3e3bf59d4bf43eb30c9b21cc213dc3b98616b4a9fc321c90911d94d314f323cfffd0d2c3e9371b5b8f7985b9a785adc61617dd042b6f4df5
 SHA512 
61e93bc9876effd3ca1c4e64ff6ba5bd84b24951ec2cc6f40a0e3248410e60f887552f29ca1f70541fb5524f6a4e8191fed288713c3e280e18922dd5bff1a2c9
+DIST gettext-0.21.1.tar.xz.sig 833 BLAKE2B 
f673436d315e972f9e110a1b5c8d1b2f20a32fc1b7ce027fcd3bc2fe7a81af183fb8db744cbed1a8c3a6ce1a13d55e19a8e8829fc944960fbfc7efcd9aaed91c
 SHA512 
fba912830c57d0616fb66cf81da0cb7a3ab1e27497c45daa63249d3c9f85182a4f42dfeb1591d8f31c2a340ba0c519f04fd2f05429d1cf26a3ea316d047993d0
+DIST gettext-0.22.4.tar.xz 10255384 BLAKE2B 
3f93aa5aef8e40d2e01acaa5aeed11efefd0de43ea26d084a0b9e743019685f7584d8e1bf05c1fd5772a5576d21ee1f052b81366f52c7827b6d14bd4d9890edc
 SHA512 
0f3620b1621b85b3df9e372885c2f040c8a91ec0b2d4e16978459a8a2a152318a0e6f5fefb8d971bad80c437e7ee8ac8c24edc4de0ab86e729528b8a2ac62c51
+DIST gettext-0.22.4.tar.xz.sig 833 BLAKE2B 
fbb00b53c807934a11263c120861971fffebbd39689eda1fae0fb956476e69c3fb6799440cbf3acfcf43ecea2c134ea4dadb95becbac98badb43e546f3c8e9fb
 SHA512 
a774c98de643b1ea3df645e451878652c2baa5cd786642aa457e6d5f5c44787cb1231eb15ad4390acdf314822633acaffffaa853eb69cbbc72c3b79b547a8854
 DIST gettext-0.22.5.tar.xz 10270724 BLAKE2B 
18c383518f5a78b5c04cf76de976524da2a87a892a30d6386778bb4c7dd526ffc3f14f484906c5d3a513b7caf76ea560e53962b325e552182d6940055d798f24
 SHA512 
a60999bb9d09441f138214d87acb7e59aab81e765bb9253a77c54902681c5de164a5a04de2a9778dfb479dbdefaab2d5de1fbaf6095c555c43e7e9fd7a1c09bd
 DIST gettext-0.22.5.tar.xz.sig 833 BLAKE2B 
bb3e5ced34ab109f498347a3567103fe3491f69addb4a5ce25bf854fae1a11340eef1a9826b369d2416b53e5f7065aeebdb1609615f064cf7fb4151e82a5b4e5
 SHA512 
87f1df69206702be928b09a59a19ae4c23072cbc78ea16e76bfc4c929de76a3c0bb8e4eb2c3100c6e7b3b51d23e3b0e484c7e1d576ba7e25fd887934dc9ed8f7

diff --git a/sys-devel/gettext/files/gettext-0.19.7-disable-libintl.patch 
b/sys-devel/gettext/files/gettext-0.19.7-disable-libintl.patch
new file mode 100644
index 000000000000..f51de3484331
--- /dev/null
+++ b/sys-devel/gettext/files/gettext-0.19.7-disable-libintl.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/564168
+Never build libintl since it's in dev-libs/libintl now.
+
+We can drop this if/when upstream fixes the configure flag handling:
+https://savannah.gnu.org/bugs/?48233
+
+--- a/gettext-runtime/configure
++++ b/gettext-runtime/configure
+@@ -20391,8 +20391,7 @@ $as_echo "$ac_res" >&6; }
+ 
+                                         if { eval 
"gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+            || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" 
= "yes"; } \
+-                && test "$PACKAGE" != gettext-runtime \
+-                && test "$PACKAGE" != gettext-tools; }; then
++                }; then
+           gt_use_preinstalled_gnugettext=yes
+         else
+                     LIBINTL=
+--- a/gettext-tools/configure
++++ b/gettext-tools/configure
+@@ -22746,8 +22746,7 @@ $as_echo "$ac_res" >&6; }
+ 
+                                         if { eval 
"gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+            || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" 
= "yes"; } \
+-                && test "$PACKAGE" != gettext-runtime \
+-                && test "$PACKAGE" != gettext-tools; }; then
++                }; then
+           gt_use_preinstalled_gnugettext=yes
+         else
+                     LIBINTL=

diff --git a/sys-devel/gettext/files/gettext-0.21_rc1-avoid_eautomake.patch 
b/sys-devel/gettext/files/gettext-0.21_rc1-avoid_eautomake.patch
new file mode 100644
index 000000000000..8adae5d5484a
--- /dev/null
+++ b/sys-devel/gettext/files/gettext-0.21_rc1-avoid_eautomake.patch
@@ -0,0 +1,22 @@
+--- gettext-0.21-rc1/gettext-tools/src/Makefile.in
++++ gettext-0.21-rc1/gettext-tools/src/Makefile.in
+@@ -4106,9 +4106,16 @@
+ 
+ # How to get the include files of libtextstyle.
+ @[email protected] textstyle/stdbool.h 
textstyle/version.h textstyle/woe32dll.h:
+-@USE_INSTALLED_LIBTEXTSTYLE_FALSE@    here=`pwd`; \
+-@USE_INSTALLED_LIBTEXTSTYLE_FALSE@    cd ../../libtextstyle/lib && \
+-@USE_INSTALLED_LIBTEXTSTYLE_FALSE@      $(MAKE) install-nobase_includeHEADERS 
install-nobase_nodist_includeHEADERS includedir="$$here"
++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@    cd 
"$(abs_top_builddir)/../libtextstyle/lib" && $(MAKE) $@
++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@    if test -f 
"$(abs_top_builddir)/../libtextstyle/lib/$@"; then \
++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@            
file="$(abs_top_builddir)/../libtextstyle/lib/$@"; \
++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@    else \
++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@            
file="$(abs_top_srcdir)/../libtextstyle/lib/$@"; \
++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@    fi; \
++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@    target_dir="$(abs_builddir)/$@"; \
++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@    target_dir="$${target_dir%/*}"; \
++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@    $(MKDIR_P) "$${target_dir}"; \
++@USE_INSTALLED_LIBTEXTSTYLE_FALSE@    $(INSTALL_HEADER) "$$file" $@
+ 
+ # No need to install libgettextsrc.a, except on AIX.
+ install-exec-hook: install-exec-clean

diff --git a/sys-devel/gettext/gettext-0.21.1.ebuild 
b/sys-devel/gettext/gettext-0.21.1.ebuild
new file mode 100644
index 000000000000..f9bf8e52289c
--- /dev/null
+++ b/sys-devel/gettext/gettext-0.21.1.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Note: Keep version bumps in sync with dev-libs/libintl.
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gettext.asc
+inherit java-pkg-opt-2 libtool multilib-minimal verify-sig toolchain-funcs
+
+DESCRIPTION="GNU locale utilities"
+HOMEPAGE="https://www.gnu.org/software/gettext/";
+if [[ ${PV} == *_rc* ]] ; then
+       SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P/_/-}.tar.xz";
+       SRC_URI+=" verify-sig? ( 
https://alpha.gnu.org/gnu/${PN}/${P/_/-}.tar.xz.sig )"
+       S="${WORKDIR}/${P/_/-}"
+else
+       SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+       SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )"
+       KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 
~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos 
~x64-macos ~x64-solaris"
+fi
+# Only libasprintf is under the LGPL (and libintl is in a sep package),
+# so put that license behind USE=cxx.
+LICENSE="GPL-3+ cxx? ( LGPL-2.1+ )"
+SLOT="0"
+IUSE="acl +cxx doc emacs git java ncurses nls openmp static-libs"
+
+# only runtime goes multilib
+# Note: The version of libxml2 corresponds to the version bundled via gnulib.
+# If the build detects too old of a system version, it will end up falling back
+# to the bundled copy.  #596918
+# Note: expat lacks a subslot because it is dynamically loaded at runtime.  We
+# would depend on older subslots if they were available (based on the ABIs that
+# are explicitly handled), but expat doesn't currently use subslots.
+DEPEND=">=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
+       >=virtual/libintl-0-r2[${MULTILIB_USEDEP}]
+       >=dev-libs/libxml2-2.9.3:=
+       dev-libs/expat
+       acl? ( virtual/acl )
+       ncurses? ( sys-libs/ncurses:0= )
+       java? ( virtual/jdk:1.8 )"
+RDEPEND="${DEPEND}
+       git? ( dev-vcs/git )
+       java? ( virtual/jre:1.8 )"
+BDEPEND="
+       git? ( dev-vcs/git )
+       verify-sig? ( sec-keys/openpgp-keys-gettext )"
+PDEPEND="emacs? ( app-emacs/po-mode )"
+
+MULTILIB_WRAPPED_HEADERS=(
+       # only installed for native ABI
+       /usr/include/gettext-po.h
+
+       /usr/include/autosprintf.h
+       /usr/include/textstyle.h
+       /usr/include/textstyle/stdbool.h
+       /usr/include/textstyle/version.h
+       /usr/include/textstyle/woe32dll.h
+)
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.19.7-disable-libintl.patch #564168
+       "${FILESDIR}"/${PN}-0.20-parallel_install.patch #685530
+       "${FILESDIR}"/${PN}-0.21_rc1-avoid_eautomake.patch
+       "${FILESDIR}"/${PN}-0.21-CVE-2020-12825.patch
+       "${FILESDIR}"/${P}-java-autoconf.patch
+)
+
+QA_SONAME_NO_SYMLINK=".*/preloadable_libintl.so"
+
+pkg_pretend() {
+       [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+       [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+       java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+       java-pkg-opt-2_src_prepare
+
+       default
+
+       # gettext-0.21.1-java-autoconf.patch changes
+       # gettext-{runtime,tools}/configure.ac and the corresponding
+       # configure scripts. Avoid regenerating other autotools output.
+       touch -c 
gettext-{runtime,tools}/{aclocal.m4,Makefile.in,config.h.in,configure} || die
+
+       # Makefile.am adds a dependency on gettext-{runtime,tools}/configure.ac
+       touch -c configure || die
+
+       elibtoolize
+
+       if use elibc_musl || use elibc_Darwin; then
+               eapply "${FILESDIR}"/${PN}-0.21-musl-omit_setlocale_lock.patch
+       fi
+}
+
+multilib_src_configure() {
+       local myconf=(
+               # switches common to runtime and top-level
+               --cache-file="${BUILD_DIR}"/config.cache
+               #--docdir="\$(datarootdir)/doc/${PF}"
+
+               # Emacs support is now in a separate package
+               --without-emacs
+               --without-lispdir
+               # glib depends on us so avoid circular deps
+               --with-included-glib
+               # libcroco depends on glib which ... ^^^
+               --with-included-libcroco
+               # this will _disable_ libunistring (since it is not bundled),
+               # see bug #326477
+               --with-included-libunistring
+               # Never build libintl since it's in dev-libs/libintl now.
+               --without-included-gettext
+               # Never build bundled copy of libxml2.
+               --without-included-libxml
+
+               --disable-csharp
+               --without-cvs
+
+               $(use_enable acl)
+               $(use_enable cxx c++)
+               $(use_enable cxx libasprintf)
+               $(use_with git)
+               $(multilib_native_use_enable java)
+               $(use_enable ncurses curses)
+               $(use_enable nls)
+               $(use_enable openmp)
+               $(use_enable static-libs static)
+       )
+
+       local ECONF_SOURCE="${S}"
+       if ! multilib_is_native_abi ; then
+               # for non-native ABIs, we build runtime only
+               ECONF_SOURCE+=/gettext-runtime
+       fi
+
+       econf "${myconf[@]}"
+}
+
+multilib_src_install() {
+       emake DESTDIR="${D}" install
+
+       if multilib_is_native_abi ; then
+               dosym msgfmt /usr/bin/gmsgfmt #43435
+               dobin gettext-tools/misc/gettextize
+       fi
+}
+
+multilib_src_install_all() {
+       find "${ED}" -type f -name "*.la" -delete || die
+
+       if use java ; then
+               java-pkg_dojar "${ED}"/usr/share/${PN}/*.jar
+               rm "${ED}"/usr/share/${PN}/*.jar || die
+               rm "${ED}"/usr/share/${PN}/*.class || die
+               if use doc ; then
+                       java-pkg_dojavadoc 
"${ED}"/usr/share/doc/${PF}/html/javadoc2
+               fi
+       fi
+
+       dodoc AUTHORS ChangeLog NEWS README THANKS
+
+       if use doc ; then
+               docinto html
+               dodoc "${ED}"/usr/share/doc/${PF}/*.html
+       else
+               rm -rf 
"${ED}"/usr/share/doc/${PF}/{csharpdoc,examples,javadoc2,javadoc1}
+       fi
+       rm "${ED}"/usr/share/doc/${PF}/*.html || die
+}
+
+pkg_preinst() {
+       java-pkg-opt-2_pkg_preinst
+}

diff --git a/sys-devel/gettext/gettext-0.22.4.ebuild 
b/sys-devel/gettext/gettext-0.22.4.ebuild
new file mode 100644
index 000000000000..633e006ac3a0
--- /dev/null
+++ b/sys-devel/gettext/gettext-0.22.4.ebuild
@@ -0,0 +1,189 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Note: Keep version bumps in sync with dev-libs/libintl.
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gettext.asc
+inherit java-pkg-opt-2 libtool multilib-minimal verify-sig toolchain-funcs
+
+DESCRIPTION="GNU locale utilities"
+HOMEPAGE="https://www.gnu.org/software/gettext/";
+
+if [[ ${PV} == *_rc* ]] ; then
+       SRC_URI="
+               https://alpha.gnu.org/gnu/${PN}/${P/_/-}.tar.xz
+               verify-sig? ( 
https://alpha.gnu.org/gnu/${PN}/${P/_/-}.tar.xz.sig )
+       "
+       S="${WORKDIR}/${P/_/-}"
+else
+       SRC_URI="
+               mirror://gnu/${PN}/${P}.tar.xz
+               verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )
+       "
+       KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 
~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos 
~x64-macos ~x64-solaris"
+fi
+
+# Only libasprintf is under the LGPL (and libintl is in a sep package),
+# so put that license behind USE=cxx.
+LICENSE="GPL-3+ cxx? ( LGPL-2.1+ )"
+SLOT="0"
+IUSE="acl +cxx doc emacs git java ncurses nls openmp static-libs xattr"
+
+# only runtime goes multilib
+# Note: The version of libxml2 corresponds to the version bundled via gnulib.
+# If the build detects too old of a system version, it will end up falling back
+# to the bundled copy.  #596918
+# Note: expat lacks a subslot because it is dynamically loaded at runtime.  We
+# would depend on older subslots if they were available (based on the ABIs that
+# are explicitly handled), but expat doesn't currently use subslots.
+DEPEND="
+       >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
+       >=virtual/libintl-0-r2[${MULTILIB_USEDEP}]
+       >=dev-libs/libxml2-2.9.3:=
+       dev-libs/expat
+       acl? ( virtual/acl )
+       ncurses? ( sys-libs/ncurses:= )
+       java? ( virtual/jdk:1.8 )
+       xattr? ( sys-apps/attr )
+"
+RDEPEND="
+       ${DEPEND}
+       git? ( dev-vcs/git )
+       java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+       git? ( dev-vcs/git )
+       verify-sig? ( sec-keys/openpgp-keys-gettext )
+"
+PDEPEND="emacs? ( app-emacs/po-mode )"
+
+MULTILIB_WRAPPED_HEADERS=(
+       # only installed for native ABI
+       /usr/include/gettext-po.h
+
+       /usr/include/autosprintf.h
+       /usr/include/textstyle.h
+       /usr/include/textstyle/stdbool.h
+       /usr/include/textstyle/version.h
+       /usr/include/textstyle/woe32dll.h
+)
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.21-CVE-2020-12825.patch
+)
+
+QA_SONAME_NO_SYMLINK=".*/preloadable_libintl.so"
+
+pkg_pretend() {
+       [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+       [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+       java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+       java-pkg-opt-2_src_prepare
+
+       default
+
+       # gettext-0.21.1-java-autoconf.patch changes
+       # gettext-{runtime,tools}/configure.ac and the corresponding
+       # configure scripts. Avoid regenerating other autotools output.
+       #touch -c 
gettext-{runtime,tools}/{aclocal.m4,Makefile.in,config.h.in,configure} || die
+       # Makefile.am adds a dependency on gettext-{runtime,tools}/configure.ac
+       #touch -c configure || die
+
+       elibtoolize
+
+       if use elibc_musl || use elibc_Darwin; then
+               eapply "${FILESDIR}"/${PN}-0.21-musl-omit_setlocale_lock.patch
+       fi
+}
+
+multilib_src_configure() {
+       local myconf=(
+               # switches common to runtime and top-level
+               --cache-file="${BUILD_DIR}"/config.cache
+               #--docdir="\$(datarootdir)/doc/${PF}"
+
+               # Emacs support is now in a separate package
+               --without-emacs
+               --without-lispdir
+               # glib depends on us so avoid circular deps
+               --with-included-glib
+               # libcroco depends on glib which ... ^^^
+               --with-included-libcroco
+               # this will _disable_ libunistring (since it is not bundled),
+               # see bug #326477
+               --with-included-libunistring
+               # Never build libintl since it's in dev-libs/libintl now.
+               --without-included-gettext
+               # Never build bundled copy of libxml2.
+               --without-included-libxml
+
+               --disable-csharp
+               --without-cvs
+
+               $(use_enable acl)
+               $(use_enable cxx c++)
+               $(use_enable cxx libasprintf)
+               $(use_with git)
+               $(multilib_native_use_enable java)
+               $(use_enable ncurses curses)
+               $(use_enable nls)
+               $(use_enable openmp)
+               $(use_enable static-libs static)
+               $(use_enable xattr attr)
+       )
+
+       local ECONF_SOURCE="${S}"
+       if ! multilib_is_native_abi ; then
+               # for non-native ABIs, we build runtime only
+               ECONF_SOURCE+=/gettext-runtime
+       fi
+
+       econf "${myconf[@]}"
+}
+
+multilib_src_install() {
+       emake DESTDIR="${D}" install
+
+       if multilib_is_native_abi ; then
+               dosym msgfmt /usr/bin/gmsgfmt # bug #43435
+               dobin gettext-tools/misc/gettextize
+       fi
+
+       # 909041 never install libintl which upstream insists on building
+       rm -f "${ED}"/usr/$(get_libdir)/libintl.* "${ED}"/usr/include/libintl.h
+}
+
+multilib_src_install_all() {
+       find "${ED}" -type f -name "*.la" -delete || die
+
+       if use java ; then
+               java-pkg_dojar "${ED}"/usr/share/${PN}/*.jar
+               rm "${ED}"/usr/share/${PN}/*.jar || die
+               rm "${ED}"/usr/share/${PN}/*.class || die
+               if use doc ; then
+                       java-pkg_dojavadoc 
"${ED}"/usr/share/doc/${PF}/html/javadoc2
+               fi
+       fi
+
+       dodoc AUTHORS ChangeLog NEWS README THANKS
+
+       if use doc ; then
+               docinto html
+               dodoc "${ED}"/usr/share/doc/${PF}/*.html
+       else
+               rm -rf 
"${ED}"/usr/share/doc/${PF}/{csharpdoc,examples,javadoc2,javadoc1}
+       fi
+       rm "${ED}"/usr/share/doc/${PF}/*.html || die
+}
+
+pkg_preinst() {
+       java-pkg-opt-2_pkg_preinst
+}

Reply via email to