commit:     226c8a2b07496539505cfb12fccba99125663211
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Dec  3 11:02:23 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Dec  3 11:13:54 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=226c8a2b

sys-devel/gettext: add 0.23

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-devel/gettext/Manifest                         |   2 +
 .../files/gettext-0.23-libxml2-2.12.0.patch        |  44 +++++
 sys-devel/gettext/gettext-0.23.ebuild              | 204 +++++++++++++++++++++
 3 files changed, 250 insertions(+)

diff --git a/sys-devel/gettext/Manifest b/sys-devel/gettext/Manifest
index fe3a242e1a81..0104221a7a87 100644
--- a/sys-devel/gettext/Manifest
+++ b/sys-devel/gettext/Manifest
@@ -4,3 +4,5 @@ DIST gettext-0.22.4.tar.xz 10255384 BLAKE2B 
3f93aa5aef8e40d2e01acaa5aeed11efefd0
 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
+DIST gettext-0.23.tar.xz 11053572 BLAKE2B 
208e5a73ed021c22357b1a1f0324dd7c9fa14b458b610c6f2fbd85f6541dd2bc23179c63dcd43000689482d8a6337f5255f501581d67ee2338ef3d50ec5e9c2e
 SHA512 
1de09c0a83b1b4bb810abacbaf7c3e0fedbfbddea1cf7c89df3838c5f0a14cf58d686eb5876cfae302acb31c93beefb61a12c8a889a998fd235798699dc2c155
+DIST gettext-0.23.tar.xz.sig 833 BLAKE2B 
5da93144e3d2eb745729b3f2d68e85ad508214b62694a22da7d37c6a3c9eaacd0d44339564b6373690dce29d9140a8af31ccea9e61726d2651ecc8234405b681
 SHA512 
25a6a2d1d9eb406b2be036b01f709a0badb84b70e23908c51fcbc1e26836510748f9623a075622271962d37bb859d4553755c6ed9832c1f39742ae1179b9292a

diff --git a/sys-devel/gettext/files/gettext-0.23-libxml2-2.12.0.patch 
b/sys-devel/gettext/files/gettext-0.23-libxml2-2.12.0.patch
new file mode 100644
index 000000000000..7a22f6e7ea90
--- /dev/null
+++ b/sys-devel/gettext/files/gettext-0.23-libxml2-2.12.0.patch
@@ -0,0 +1,44 @@
+https://git.savannah.gnu.org/cgit/gettext.git/commit/?id=adfbe2ee7cd9b47a0465aa9a07d773fa290f46c1
+
+From adfbe2ee7cd9b47a0465aa9a07d773fa290f46c1 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <[email protected]>
+Date: Sun, 1 Dec 2024 19:35:51 +0100
+Subject: Fix compilation error with libxml2 >= 2.12.0 and gcc >= 14.
+
+Reported by Sam James <[email protected]>
+at <https://savannah.gnu.org/bugs/?66506>.
+
+* gettext-tools/src/its.c: Include <libxml/xmlversion.h>.
+(structured_error): Adapt to API change.
+---
+ gettext-tools/src/its.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/gettext-tools/src/its.c b/gettext-tools/src/its.c
+index 8ee7ab40f..3f28f8851 100644
+--- a/gettext-tools/src/its.c
++++ b/gettext-tools/src/its.c
+@@ -28,6 +28,7 @@
+ #include <stdint.h>
+ #include <stdlib.h>
+ 
++#include <libxml/xmlversion.h>
+ #include <libxml/xmlerror.h>
+ #include <libxml/tree.h>
+ #include <libxml/parser.h>
+@@ -82,7 +83,13 @@
+ /* ----------------------------- Error handling ----------------------------- 
*/
+ 
+ static void
++/* Adapt to API change in libxml 2.12.0.
++   See <https://gitlab.gnome.org/GNOME/libxml2/-/issues/622>.  */
++#if LIBXML_VERSION >= 21200
++structured_error (void *data, const xmlError *err)
++#else
+ structured_error (void *data, xmlError *err)
++#endif
+ {
+   error (0, err->level == XML_ERR_FATAL ? EXIT_FAILURE : 0,
+          _("%s error: %s"), "libxml2", err->message);
+-- 
+cgit v1.2.3-70-g09d2

diff --git a/sys-devel/gettext/gettext-0.23.ebuild 
b/sys-devel/gettext/gettext-0.23.ebuild
new file mode 100644
index 000000000000..377edcb714f1
--- /dev/null
+++ b/sys-devel/gettext/gettext-0.23.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2024 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
+inherit flag-o-matic
+
+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 (bug #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
+       "${FILESDIR}"/${PN}-0.23-libxml2-2.12.0.patch
+)
+
+QA_SONAME_NO_SYMLINK=".*/preloadable_libintl.so"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+       # bug #898570
+       unreachable
+       MIN
+       alignof
+       static_assert
+)
+
+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
+
+       # should be gone on next release, for memset_s breakage
+       [[ ${CHOST} == *-solaris* ]] && append-cppflags 
-D__STDC_WANT_LIB_EXT1__=1
+
+       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