diff options
Diffstat (limited to 'sys-devel/gettext')
-rw-r--r-- | sys-devel/gettext/Manifest | 2 | ||||
-rw-r--r-- | sys-devel/gettext/files/gettext-0.21-musl-omit_setlocale_lock.patch | 37 | ||||
-rw-r--r-- | sys-devel/gettext/gettext-0.21-r4.ebuild | 160 |
3 files changed, 199 insertions, 0 deletions
diff --git a/sys-devel/gettext/Manifest b/sys-devel/gettext/Manifest index 49f17818554a..cb2700abbb5a 100644 --- a/sys-devel/gettext/Manifest +++ b/sys-devel/gettext/Manifest @@ -1,8 +1,10 @@ AUX gettext-0.19.7-disable-libintl.patch 1307 BLAKE2B fb3d4d95ffbe57b0d1d6e8ede596ca9d7d8587d9c883fa2fc54b8d1109210ac2b435b4709a16c2043cef6cc8d5448dc58adab74aa2e8ce834abdee51163d8c51 SHA512 7887d2fbf4b9d9677688e6d8d785b6c10c76bc330cb7b40da432e0a1ff0f7fc1355bf8f671041a37477baa6c8508b6e39f90ead468674febd62777506badc227 AUX gettext-0.20-parallel_install.patch 1494 BLAKE2B 58bd84878c351e29acac861f29854eeb442179a415b5b3cab554b3aa4e2e3b06dabaa3e78ab506bb3b88b55a3fe4d53f1e43718bc6935a84dd477320c9349b70 SHA512 a15e8c415facd7b36761a747da9a0dfc47588d253a84b693c7f1f6e6334c6db5350af41f4c6c1dd83ae61695b2f761cc3b24339d7bb8f4dce972a672312ad942 AUX gettext-0.21-CVE-2020-12825.patch 14074 BLAKE2B 67da10f81edf92004b8d1f4099c73c14b0e18471033eca17f63fffd05ee2a46d4cdd3bf165b6b7228f4dc9c475985ba69f7ba13e1a03eb84c7a8b74e003223e8 SHA512 92e9a6eeb1c9a697c1724785a9996da27ca2c08db69becb592eb1d42d9ec0e261591a5c6a2a04e010f8b6f5df7ef4cd94b2d0d4fcc0e98d2433519c1875be191 +AUX gettext-0.21-musl-omit_setlocale_lock.patch 1598 BLAKE2B 6b27ad4db1fcaed8b88345f47f75eb36580eb848ed3e914f2625c8136d34c1a13cd67ca043b2d42ee352d1214b3db0e3684b1be470072640bfc7c6892b78e2cb SHA512 04bf3d840c3687255f8333ae6de1af1774b80611fbfd69a9eff0b49bed74510a0e6c40768e1c1e52853221c2ee19ccad78a211500f0b1c05763670a1dbebbf70 AUX gettext-0.21_rc1-avoid_eautomake.patch 1362 BLAKE2B eed15ecde829aa63859dc196052f97abc0386e6c496b7d7e073769e0ad6208623cc1fb6322ff422647f3a55aac6453bd6390432d707d179da7cfc820d487c23a SHA512 5089af3dabb2459345aec6196de70591dafabfc292495f052dd67ce3d2566c4b62a8554eb11db7499378e16a8d11953f044fcfd23c77a71ad01feec4c0c41956 DIST gettext-0.21.tar.xz 9714352 BLAKE2B e36418323c79f582d13777083b455ae76ccb29e41a8259a2f4d6d9f5d8e2ac7c8ecc4df1b1fa2e9838c819cb27345fe254772398bdb88b3315410866048f755a SHA512 f7e2968651879f8444d43a176a149db9f9411f4a03132a7f3b37c2ed97e3978ae6888169c995c1953cb78943b6e3573811abcbb8661b6631edbbe067b2699ddf DIST gettext-0.21.tar.xz.sig 819 BLAKE2B 22a6e5f6e8a6322e24db9c1f575754bccbf6c7cff7cd14cb51ae8f5cf17cd7b677d8ecfc6b876e1b6f8d62077d568cbf57930e1d8accc5306e6869d3c6560bf4 SHA512 67c9515ad5e11773a28599d517dd84131e4afd878d67e97f505cd024e290518ca9cffff7446c62f88b56aea2c7234d11811738e8e2a076b2159f24c2f6809703 EBUILD gettext-0.21-r3.ebuild 4676 BLAKE2B 44a27f8c9ca8b7093cbb6c53dfea6ad562da229c0c00ba2420a06cfa1e52e5fff178c1ac4ae1516f855e1aeef05b5aefc61add22f1ca3a12b6371090b07f41a9 SHA512 c11ef2bd673318196170021a272595a916b136524aa1ccc1450bdd66cec8a757d020a4cd8a4ed4ecbff5343ce482ded80485c80990b10d97749ce732c2f559fd +EBUILD gettext-0.21-r4.ebuild 4766 BLAKE2B 1ef805ddeb6d7ec1f7c54c274b68cd396523ccd6c2db9bb56357e27d09ea1ab74657a85116f8b929732a0fc24c26ad102f2497fb3090aeb7bc3f90f7eed8b7a6 SHA512 8164260e4e4bcb72a5a2459172352b69c2f5a8deaa927075aa1d15fb320e16c7fd3b37d6ed956c65c7b71e965156cb4d17b3fe0b63c46e11f03cef00f9c3adb9 MISC metadata.xml 708 BLAKE2B 851174e455d052a1c3a4e0a5dbfeac2feb10781a54fa0bfb52b3934ed88a3f8a2437a922f3ce5b56e21aa6aaec3488539e151362e3441344f97c246b79e2c2e2 SHA512 9dbd43e82384160c392bcfa94a271951a754c2cbf116cf61659642660e93b4a82a7636d600cc8a83b68fcd2d92669e4b5b009334039ff66c58b92baa24961aac diff --git a/sys-devel/gettext/files/gettext-0.21-musl-omit_setlocale_lock.patch b/sys-devel/gettext/files/gettext-0.21-musl-omit_setlocale_lock.patch new file mode 100644 index 000000000000..e063785376dc --- /dev/null +++ b/sys-devel/gettext/files/gettext-0.21-musl-omit_setlocale_lock.patch @@ -0,0 +1,37 @@ +OMIT_SETLOCALE_LOCK should be true when gl_get_setlocale_null_lock is provided by a dependency library, like GNU libintl. +On Gentoo musl we use musl's libintl and gl_get_setlocale_null_lock is not provided by it, therefore we set OMIT_SETLOCALE_LOCK to 0. + +To properly fix this we should do AC_SEARCH_LIBS([gl_get_setlocale_null_lock], [intl], ...) in automake, but instead we do this +hack to not get complacent. This should be fixed upstream. + +https://savannah.gnu.org/bugs/index.php?62659#comment7 +https://bugs.gentoo.org/830590 +diff --git a/gettext-tools/libgettextpo/Makefile.am b/gettext-tools/libgettextpo/Makefile.am +index 59b016e..d92978d 100644 +--- a/gettext-tools/libgettextpo/Makefile.am ++++ b/gettext-tools/libgettextpo/Makefile.am +@@ -40,7 +40,7 @@ AM_CPPFLAGS = \ + -I../src -I$(top_srcdir)/src \ + -I../intl -I$(top_srcdir)/../gettext-runtime/intl + +-DEFS = -DIN_LIBGETTEXTPO=1 -DOMIT_SETLOCALE_LOCK=1 @DEFS@ ++DEFS = -DIN_LIBGETTEXTPO=1 -DOMIT_SETLOCALE_LOCK=0 @DEFS@ + + # libgettextpo contains the public API for PO files. + libgettextpo_la_SOURCES = \ +diff --git a/gettext-tools/libgettextpo/Makefile.in b/gettext-tools/libgettextpo/Makefile.in +index f76efa5..aca3a81 100644 +--- a/gettext-tools/libgettextpo/Makefile.in ++++ b/gettext-tools/libgettextpo/Makefile.in +@@ -804,7 +804,7 @@ CXXDEPMODE = @CXXDEPMODE@ + CXXFLAGS = @CXXFLAGS@ + CXX_CHOICE = @CXX_CHOICE@ + CYGPATH_W = @CYGPATH_W@ +-DEFS = -DIN_LIBGETTEXTPO=1 -DOMIT_SETLOCALE_LOCK=1 @DEFS@ ++DEFS = -DIN_LIBGETTEXTPO=1 -DOMIT_SETLOCALE_LOCK=0 @DEFS@ + DEPDIR = @DEPDIR@ + DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ +-- +2.35.1 + diff --git a/sys-devel/gettext/gettext-0.21-r4.ebuild b/sys-devel/gettext/gettext-0.21-r4.ebuild new file mode 100644 index 000000000000..b8bcb0f6414f --- /dev/null +++ b/sys-devel/gettext/gettext-0.21-r4.ebuild @@ -0,0 +1,160 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Note: Keep version bumps in sync with dev-libs/libintl. + +EAPI=7 + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/gettext.asc +inherit mono-env libtool java-pkg-opt-2 multilib-minimal verify-sig + +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 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +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 cvs +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? ( cvs? ( dev-vcs/cvs ) ) + git? ( dev-vcs/git ) + java? ( virtual/jre:1.8 )" +BDEPEND=" + !git? ( cvs? ( dev-vcs/cvs ) ) + 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 +) + +QA_SONAME_NO_SYMLINK=".*/preloadable_libintl.so" + +pkg_setup() { + mono-env_pkg_setup + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + java-pkg-opt-2_src_prepare + default + elibtoolize + use elibc_musl && eapply "${FILESDIR}"/${PN}-0.21-musl-omit_setlocale_lock.patch +} + +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 + + $(use_enable acl) + $(use_enable cxx c++) + $(use_enable cxx libasprintf) + $(use_with git) + $(usex git --without-cvs $(use_with cvs)) + $(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 +} |