summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-02-20 05:23:53 +0000
committerSam James <sam@gentoo.org>2024-02-20 05:23:53 +0000
commit95d084d4f441546042dec604de77aa7cfe08d61e (patch)
treeced714daba1c17cbf1748a73e80f4bb86b625f05
parentRevert "dev-libs/libintl: drop 0.21.1" (diff)
downloadgentoo-95d084d4f441546042dec604de77aa7cfe08d61e.tar.gz
gentoo-95d084d4f441546042dec604de77aa7cfe08d61e.tar.bz2
gentoo-95d084d4f441546042dec604de77aa7cfe08d61e.zip
Revert "sys-devel/gettext: drop 0.21.1"
This reverts commit 5c86dc85ae6cb3f657a992067b652c287910fe53. dev-python/polib needs older gettext... Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--sys-devel/gettext/Manifest2
-rw-r--r--sys-devel/gettext/files/gettext-0.19.7-disable-libintl.patch30
-rw-r--r--sys-devel/gettext/files/gettext-0.20-parallel_install.patch37
-rw-r--r--sys-devel/gettext/files/gettext-0.21.1-java-autoconf.patch100
-rw-r--r--sys-devel/gettext/files/gettext-0.21_rc1-avoid_eautomake.patch22
-rw-r--r--sys-devel/gettext/gettext-0.21.1.ebuild178
6 files changed, 369 insertions, 0 deletions
diff --git a/sys-devel/gettext/Manifest b/sys-devel/gettext/Manifest
index 66b36f6c7aff..3a4aa1ce180b 100644
--- a/sys-devel/gettext/Manifest
+++ b/sys-devel/gettext/Manifest
@@ -1,2 +1,4 @@
+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
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.20-parallel_install.patch b/sys-devel/gettext/files/gettext-0.20-parallel_install.patch
new file mode 100644
index 000000000000..e47beaf94433
--- /dev/null
+++ b/sys-devel/gettext/files/gettext-0.20-parallel_install.patch
@@ -0,0 +1,37 @@
+From 829660df1583c6c3ee1d90291dd910f08e3b777e Mon Sep 17 00:00:00 2001
+From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
+Date: Fri, 10 May 2019 20:08:25 +0200
+Subject: [PATCH] Fix parallel install issue
+
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ gettext-tools/src/Makefile.am | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/gettext-tools/src/Makefile.am b/gettext-tools/src/Makefile.am
+index 09a3c153d..1ee49cdca 100644
+--- a/gettext-tools/src/Makefile.am
++++ b/gettext-tools/src/Makefile.am
+@@ -252,9 +252,16 @@ cldr_plurals_LDADD = libgettextsrc.la $(LDADD)
+
+ # How to get the include files of libtextstyle.
+ textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h:
+- here=`pwd`; \
+- cd ../../libtextstyle/lib && \
+- $(MAKE) install-nobase_includeHEADERS install-nobase_nodist_includeHEADERS includedir="$$here"
++ cd "$(abs_top_builddir)/../libtextstyle/lib" && $(MAKE) $@
++ if test -f "$(abs_top_builddir)/../libtextstyle/lib/$@"; then \
++ file="$(abs_top_builddir)/../libtextstyle/lib/$@"; \
++ else \
++ file="$(abs_top_srcdir)/../libtextstyle/lib/$@"; \
++ fi; \
++ target_dir="$(abs_builddir)/$@"; \
++ target_dir="$${target_dir%/*}"; \
++ $(MKDIR_P) "$${target_dir}"; \
++ $(INSTALL_HEADER) "$$file" $@
+ BUILT_SOURCES += textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h
+ MOSTLYCLEANFILES += textstyle.h textstyle/stdbool.h textstyle/version.h textstyle/woe32dll.h
+
+--
+2.21.0
+
diff --git a/sys-devel/gettext/files/gettext-0.21.1-java-autoconf.patch b/sys-devel/gettext/files/gettext-0.21.1-java-autoconf.patch
new file mode 100644
index 000000000000..a7471ac724c9
--- /dev/null
+++ b/sys-devel/gettext/files/gettext-0.21.1-java-autoconf.patch
@@ -0,0 +1,100 @@
+From b8fc039e4266570f5af5ee1c2cd201369a766f1e Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno@clisp.org>
+Date: Tue, 11 Oct 2022 01:54:44 +0200
+Subject: [PATCH] Avoid warnings during configure execution with
+ --disable-java.
+
+Reported by Sam James <sam@cmpct.info>
+in <https://savannah.gnu.org/bugs/?63193>.
+
+* gettext-runtime/configure.ac: Expand gt_JAVACOMP_DISABLED inline.
+* gettext-tools/configure.ac: Expand gt_JAVAEXEC_DISABLED and
+gt_JAVACOMP_DISABLED inline.
+--- a/gettext-runtime/configure.ac
++++ b/gettext-runtime/configure.ac
+@@ -42,7 +42,16 @@ AS_IF([test "$JAVA_CHOICE" != no], [
+ BUILDJAVA=no
+ fi
+ ], [
+- gt_JAVACOMP_DISABLED
++ CONF_JAVAC=
++ HAVE_JAVAC_ENVVAR=
++ HAVE_GCJ_C=
++ HAVE_JAVAC=
++ HAVE_JIKES=
++ AC_SUBST([CONF_JAVAC])
++ AC_SUBST([HAVE_JAVAC_ENVVAR])
++ AC_SUBST([HAVE_GCJ_C])
++ AC_SUBST([HAVE_JAVAC])
++ AC_SUBST([HAVE_JIKES])
+ JAR=
+ BUILDJAVA=no
+ ])
+--- a/gettext-tools/configure.ac
++++ b/gettext-tools/configure.ac
+@@ -43,8 +43,28 @@ AS_IF([test "$JAVA_CHOICE" != no], [
+ BUILDJAVA=no
+ fi
+ ], [
+- gt_JAVAEXEC_DISABLED
+- gt_JAVACOMP_DISABLED
++ CONF_JAVA=
++ HAVE_JAVA_ENVVAR=
++ HAVE_GIJ=
++ HAVE_JAVA=
++ HAVE_JRE=
++ HAVE_JVIEW=
++ AC_SUBST([CONF_JAVA])
++ AC_SUBST([HAVE_JAVA_ENVVAR])
++ AC_SUBST([HAVE_GIJ])
++ AC_SUBST([HAVE_JAVA])
++ AC_SUBST([HAVE_JRE])
++ AC_SUBST([HAVE_JVIEW])
++ CONF_JAVAC=
++ HAVE_JAVAC_ENVVAR=
++ HAVE_GCJ_C=
++ HAVE_JAVAC=
++ HAVE_JIKES=
++ AC_SUBST([CONF_JAVAC])
++ AC_SUBST([HAVE_JAVAC_ENVVAR])
++ AC_SUBST([HAVE_GCJ_C])
++ AC_SUBST([HAVE_JAVAC])
++ AC_SUBST([HAVE_JIKES])
+ JAR=
+ BUILDJAVA=no
+ ])
+diff --git a/gettext-runtime/configure b/gettext-runtime/configure
+index 5e2d593..cf579ff 100755
+--- a/gettext-runtime/configure
++++ b/gettext-runtime/configure
+@@ -7070,7 +7070,11 @@ fi
+
+ else $as_nop
+
+- gt_JAVACOMP_DISABLED
++ CONF_JAVAC=
++ HAVE_JAVAC_ENVVAR=
++ HAVE_GCJ_C=
++ HAVE_JAVAC=
++ HAVE_JIKES=
+ JAR=
+ BUILDJAVA=no
+
+diff --git a/gettext-tools/configure b/gettext-tools/configure
+index f897bc3..3af54cd 100755
+--- a/gettext-tools/configure
++++ b/gettext-tools/configure
+@@ -8718,8 +8718,11 @@ fi
+
+ else $as_nop
+
+- gt_JAVAEXEC_DISABLED
+- gt_JAVACOMP_DISABLED
++ CONF_JAVAC=
++ HAVE_JAVAC_ENVVAR=
++ HAVE_GCJ_C=
++ HAVE_JAVAC=
++ HAVE_JIKES=
+ JAR=
+ BUILDJAVA=no
+
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.
+ @USE_INSTALLED_LIBTEXTSTYLE_FALSE@textstyle.h 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..4988b01ddbeb
--- /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 ~ia64 ~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
+}