public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/gettext/, sys-devel/gettext/files/
Date: Thu,  1 Sep 2022 02:13:31 +0000 (UTC)	[thread overview]
Message-ID: <1661998396.45a9cd813a2244a676ab9a651a5274baac83a9d0.sam@gentoo> (raw)

commit:     45a9cd813a2244a676ab9a651a5274baac83a9d0
Author:     Alfred Persson Forsberg <cat <AT> catcream <DOT> org>
AuthorDate: Mon Aug 29 20:02:29 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Sep  1 02:13:16 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=45a9cd81

sys-devel/gettext: fix musl symbol

This patch forces OMIT_SETLOCALE_LOCK to 0 so that
gl_get_setlocale_null_lock gets defined.

Deliberately gone for a conditional patch
for now as we want to get this sorted
properly but it involves discussion
with upstream first on the best way forward.

See: https://savannah.gnu.org/bugs/index.php?62659
Closes: https://bugs.gentoo.org/830590
Signed-off-by: Alfred Persson Forsberg <cat <AT> catcream.org>
Closes: https://github.com/gentoo/gentoo/pull/27062
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../gettext-0.21-musl-omit_setlocale_lock.patch    |  37 +++++
 sys-devel/gettext/gettext-0.21-r4.ebuild           | 160 +++++++++++++++++++++
 2 files changed, 197 insertions(+)

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
+}


             reply	other threads:[~2022-09-01  2:13 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-01  2:13 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-12-03 11:14 [gentoo-commits] repo/gentoo:master commit in: sys-devel/gettext/, sys-devel/gettext/files/ Sam James
2024-11-19 21:37 Andreas K. Hüttel
2024-11-19 21:05 Andreas K. Hüttel
2024-11-02 23:00 Andreas K. Hüttel
2024-02-20  5:24 Sam James
2023-06-24 18:34 Fabian Groffen
2022-10-11 23:57 Sam James
2022-10-11 17:53 Sam James
2020-10-29 14:08 Lars Wendler
2020-10-29 14:08 Lars Wendler
2015-08-27  1:50 Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1661998396.45a9cd813a2244a676ab9a651a5274baac83a9d0.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox