public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Joonas Niilola" <juippis@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/nspr/
Date: Tue, 20 Dec 2022 05:56:29 +0000 (UTC)	[thread overview]
Message-ID: <1671515571.da32db6eb88ac45e3e3f441e187c8cd596538f03.juippis@gentoo> (raw)

commit:     da32db6eb88ac45e3e3f441e187c8cd596538f03
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 20 05:52:51 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Tue Dec 20 05:52:51 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da32db6e

dev-libs/nspr: respect user's CFLAGS optimization

 - ... since there's a build system configure option for it.
 - reseted KEYWORDS due to hard to anticipate issues with different
   optimization levels.

Bug: https://bugs.gentoo.org/886987
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 dev-libs/nspr/nspr-4.35-r1.ebuild | 159 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 159 insertions(+)

diff --git a/dev-libs/nspr/nspr-4.35-r1.ebuild b/dev-libs/nspr/nspr-4.35-r1.ebuild
new file mode 100644
index 000000000000..f12eb3a54277
--- /dev/null
+++ b/dev-libs/nspr/nspr-4.35-r1.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs multilib-minimal
+
+MIN_PV="$(ver_cut 2)"
+
+DESCRIPTION="Netscape Portable Runtime"
+HOMEPAGE="https://www.mozilla.org/projects/nspr/"
+SRC_URI="https://archive.mozilla.org/pub/nspr/releases/v${PV}/src/${P}.tar.gz"
+
+LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris ~x86-solaris"
+IUSE="debug"
+
+MULTILIB_CHOST_TOOLS=(
+	/usr/bin/nspr-config
+)
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-4.23-prtime.patch
+	"${FILESDIR}"/${PN}-4.7.1-solaris.patch
+	"${FILESDIR}"/${PN}-4.10.6-solaris.patch
+	"${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch
+	"${FILESDIR}"/${PN}-4.8.9-link-flags.patch
+	# We do not need to pass -L$libdir via nspr-config --libs
+	"${FILESDIR}"/${PN}-4.9.5_nspr_config.patch
+)
+
+QA_CONFIGURE_OPTIONS="--disable-static"
+
+src_prepare() {
+	cd "${S}"/nspr || die
+
+	default
+
+	use elibc_musl && eapply "${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch
+
+	# rename configure.in to configure.ac for new autotools compatibility
+	if [[ -e "${S}"/nspr/configure.in ]] ; then
+		einfo "Renaming configure.in to configure.ac"
+		mv "${S}"/nspr/configure.{in,ac} || die
+	else
+		elog "configure.in rename logic can be removed from ebuild."
+	fi
+
+	# We must run eautoconf to regenerate configure
+	eautoconf
+
+	# make sure it won't find Perl out of Prefix
+	sed -i -e "s/perl5//g" "${S}"/nspr/configure || die
+
+	# Respect LDFLAGS
+	sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \
+		"${S}"/nspr/config/rules.mk || die
+}
+
+multilib_src_configure() {
+	# The build system overrides user optimization level based on a configure flag. #886987
+	local my_optlvl=$(get-flag '-O*')
+
+	# We use the standard BUILD_xxx but nspr uses HOST_xxx
+	tc-export_build_env BUILD_CC
+	export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS}
+	tc-export AR AS CC CXX RANLIB
+	[[ ${CBUILD} != ${CHOST} ]] \
+		&& export CROSS_COMPILE=1 \
+		|| unset CROSS_COMPILE
+
+	local myconf=(
+		--libdir="${EPREFIX}/usr/$(get_libdir)"
+		$(use_enable debug)
+		$(use_enable !debug optimize="${my_optlvl}")
+	)
+
+	# The configure has some fancy --enable-{{n,x}32,64bit} switches
+	# that trigger some code conditional to platform & arch. This really
+	# matters for the few common arches (x86, ppc) but we pass a little
+	# more of them to be future-proof.
+
+	# use ABI first, this will work for most cases
+	case "${ABI}" in
+		alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) ;;
+		n32) myconf+=( --enable-n32 );;
+		x32) myconf+=( --enable-x32 );;
+		s390x|*64) myconf+=( --enable-64bit );;
+		default) # no abi actually set, fall back to old check
+			einfo "Running a short build test to determine 64bit'ness"
+			echo > "${T}"/test.c || die
+			${CC} ${CFLAGS} ${CPPFLAGS} -c "${T}"/test.c -o "${T}"/test.o || die
+			case $(file "${T}"/test.o) in
+				*32-bit*x86-64*) myconf+=( --enable-x32 );;
+				*64-bit*|*ppc64*|*x86_64*) myconf+=( --enable-64bit );;
+				*32-bit*|*ppc*|*i386*) ;;
+				*) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";;
+			esac ;;
+		*) ;;
+	esac
+
+	# Ancient autoconf needs help finding the right tools.
+	LC_ALL="C" ECONF_SOURCE="${S}/nspr" \
+	ac_cv_path_AR="${AR}" \
+	ac_cv_path_AS="${AS}" \
+	econf "${myconf[@]}"
+}
+
+multilib_src_test() {
+	# https://firefox-source-docs.mozilla.org/nspr/running_nspr_tests.html
+	cd "${BUILD_DIR}/pr/tests" || die
+	einfo "Building tests"
+	emake
+
+	einfo "Running test suite"
+	../../../${P}/${PN}/pr/tests/runtests.pl | tee "${T}"/${ABI}-tests.log
+
+	# Needed to check if runtests.pl itself or the tee (somehow) failed
+	# (can't use die with pipes to check each component)
+	[[ ${PIPESTATUS[@]} == "0 0" ]] || die "Tests failed to run!"
+
+	local known_failures=(
+		# network-sandbox related?
+		cltsrv
+		# network-sandbox related?
+		gethost
+	)
+
+	local known_failure
+	for known_failure in "${known_failures[@]}" ; do
+		sed -i -e "/${known_failure}.*FAILED/d" "${T}"/${ABI}-tests.log || die
+	done
+
+	# But to actually check the test results, we examine the log.
+	if grep -q "FAILED" "${T}"/${ABI}-tests.log ; then
+		die "Test failure for ${ABI}!"
+	fi
+}
+
+multilib_src_install() {
+	# Their build system is royally confusing, as usual
+	MINOR_VERSION=${MIN_PV} # Used for .so version
+	emake DESTDIR="${D}" install
+
+	einfo "removing static libraries as upstream has requested!"
+	rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static libraries."
+
+	# install nspr-config
+	dobin config/nspr-config
+
+	# Remove stupid files in /usr/bin
+	rm "${ED}"/usr/bin/prerr.properties || die
+
+	# This is used only to generate prerr.c and prerr.h at build time.
+	# No other projects use it, and we don't want to depend on perl.
+	# Talked to upstream and they agreed w/punting.
+	rm "${ED}"/usr/bin/compile-et.pl || die
+}


             reply	other threads:[~2022-12-20  5:56 UTC|newest]

Thread overview: 203+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-20  5:56 Joonas Niilola [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-03-13 21:04 [gentoo-commits] repo/gentoo:master commit in: dev-libs/nspr/ Sam James
2024-02-21  8:45 Joonas Niilola
2024-02-18  4:12 Sam James
2023-02-22  7:14 Joonas Niilola
2023-02-21 17:45 Arthur Zamarin
2023-02-21 17:44 Arthur Zamarin
2023-02-21 16:47 Sam James
2023-02-21 16:47 Sam James
2023-02-21 16:47 Sam James
2023-02-21 16:47 Sam James
2023-02-21 16:12 Joonas Niilola
2023-02-21 16:12 Joonas Niilola
2023-01-22  6:55 Joonas Niilola
2023-01-21  8:34 Joonas Niilola
2022-10-24  6:02 Joonas Niilola
2022-10-18 10:24 Agostino Sarubbo
2022-10-18 10:23 Agostino Sarubbo
2022-10-18  5:42 Sam James
2022-10-17 20:36 Sam James
2022-10-17 17:38 Arthur Zamarin
2022-10-17  6:21 Arthur Zamarin
2022-10-17  5:49 Joonas Niilola
2022-10-17  5:49 Joonas Niilola
2022-09-19  6:06 Joonas Niilola
2022-09-16 19:06 Arthur Zamarin
2022-09-16 17:17 Arthur Zamarin
2022-09-16 10:27 Arthur Zamarin
2022-09-16  9:34 Joonas Niilola
2022-09-12  7:06 Agostino Sarubbo
2022-09-10  8:33 Agostino Sarubbo
2022-09-09 16:50 Arthur Zamarin
2022-09-09  5:26 Joonas Niilola
2022-09-09  5:26 Joonas Niilola
2022-09-09  5:26 Joonas Niilola
2022-09-02  6:09 Joonas Niilola
2022-08-06  7:50 Joonas Niilola
2022-06-26 17:04 Arthur Zamarin
2022-06-26  8:47 Agostino Sarubbo
2022-06-25 15:14 Arthur Zamarin
2022-06-25 15:14 Arthur Zamarin
2022-06-25 11:57 Arthur Zamarin
2022-06-25  9:32 Joonas Niilola
2022-06-25  9:32 Joonas Niilola
2022-06-25  9:32 Joonas Niilola
2022-06-17  7:37 Joonas Niilola
2022-05-26  6:36 Joonas Niilola
2022-05-26  0:58 WANG Xuerui
2022-02-19  6:20 Joonas Niilola
2022-02-13 14:58 Sam James
2022-02-11 12:25 Sam James
2022-02-11 12:25 Sam James
2022-02-10  9:43 Sam James
2022-02-10  9:43 Sam James
2022-02-10  9:43 Sam James
2022-02-10  8:49 Joonas Niilola
2022-02-10  8:49 Joonas Niilola
2022-01-12  6:13 Joonas Niilola
2022-01-11 20:59 Joonas Niilola
2022-01-11 17:24 Mike Frysinger
2022-01-08 17:13 Lars Wendler
2022-01-08 17:13 Lars Wendler
2022-01-03 23:26 David Seifert
2021-12-04  1:32 Sam James
2021-11-14  2:15 Sam James
2021-11-13 19:50 Sam James
2021-11-10 18:11 Arthur Zamarin
2021-11-07  7:43 Joonas Niilola
2021-11-05  3:43 Sam James
2021-11-04  8:41 Joonas Niilola
2021-07-06 23:34 Thomas Deutschmann
2021-05-28  9:05 Thomas Deutschmann
2021-04-16 11:35 Thomas Deutschmann
2021-03-31 15:25 Sergei Trofimovich
2021-03-31 14:08 Agostino Sarubbo
2021-03-29 14:50 Sam James
2021-03-28 18:20 Sam James
2021-03-28 18:20 Sam James
2021-03-28 18:20 Sam James
2021-03-28 18:18 Sam James
2021-03-28 18:18 Sam James
2021-03-17 20:45 Thomas Deutschmann
2021-02-21 12:58 Fabian Groffen
2021-01-06 19:34 Fabian Groffen
2020-12-27 14:21 Fabian Groffen
2020-11-17 19:05 Agostino Sarubbo
2020-10-31 15:47 Piotr Karbowski
2020-10-28 22:33 Sergei Trofimovich
2020-10-28 22:30 Sergei Trofimovich
2020-10-28 22:27 Sergei Trofimovich
2020-10-26 16:12 Thomas Deutschmann
2020-10-21  3:43 Sam James
2020-10-21  1:09 Sam James
2020-10-21  1:08 Sam James
2020-10-07  6:55 Agostino Sarubbo
2020-10-07  6:42 Agostino Sarubbo
2020-10-03  9:16 Sergei Trofimovich
2020-10-02 22:22 Sam James
2020-10-01 23:06 Sergei Trofimovich
2020-10-01 22:55 Sergei Trofimovich
2020-10-01 17:29 Sergei Trofimovich
2020-10-01 11:13 Sam James
2020-09-30 18:05 Thomas Deutschmann
2020-08-30 22:57 Thomas Deutschmann
2020-08-30 22:49 Sam James
2020-08-23 20:46 Thomas Deutschmann
2020-08-23  8:12 Sergei Trofimovich
2020-08-14 18:02 Sergei Trofimovich
2020-08-13 18:41 Thomas Deutschmann
2020-08-11 17:46 Sam James
2020-08-11 17:46 Sam James
2020-08-11 16:18 Sam James
2020-08-11 14:18 Agostino Sarubbo
2020-08-11 14:13 Agostino Sarubbo
2020-08-11 14:12 Agostino Sarubbo
2020-06-26 21:10 Thomas Deutschmann
2020-03-25  8:12 Agostino Sarubbo
2020-03-19 21:30 Sergei Trofimovich
2020-03-18 16:03 Agostino Sarubbo
2020-03-18 12:03 Agostino Sarubbo
2020-03-18 11:31 Agostino Sarubbo
2020-03-18 11:11 Agostino Sarubbo
2020-03-18  9:49 Agostino Sarubbo
2020-03-17 18:44 Agostino Sarubbo
2020-03-17  8:34 Mart Raudsepp
2020-03-16 18:25 Sergei Trofimovich
2020-02-05  1:16 Jory Pratt
2019-12-04 18:05 Jory Pratt
2019-10-22  8:40 Lars Wendler
2019-09-26  6:42 Sergei Trofimovich
2019-09-22 20:57 Aaron Bauman
2019-09-20  6:39 Sergei Trofimovich
2019-09-08 18:30 Sergei Trofimovich
2019-09-08 18:26 Sergei Trofimovich
2019-09-04 18:32 Sergei Trofimovich
2019-09-04  9:41 Agostino Sarubbo
2019-09-04  6:00 Mikle Kolyada
2019-09-04  6:00 Mikle Kolyada
2019-09-04  6:00 Mikle Kolyada
2019-08-23 22:00 Lars Wendler
2019-07-05 21:16 Andreas K. Hüttel
2019-03-11  9:39 Lars Wendler
2019-03-11  9:39 Lars Wendler
2019-01-18 15:37 Lars Wendler
2019-01-18  8:03 Mikle Kolyada
2019-01-18  8:02 Mikle Kolyada
2019-01-11 21:00 Mart Raudsepp
2018-12-26 17:16 Matt Turner
2018-12-15 22:39 Sergei Trofimovich
2018-12-13 20:53 Mikle Kolyada
2018-12-13 12:48 Thomas Deutschmann
2018-12-12 19:51 Sergei Trofimovich
2018-12-11 23:32 Sergei Trofimovich
2018-12-11 23:27 Sergei Trofimovich
2018-12-11 23:24 Sergei Trofimovich
2018-09-09  6:51 Mikle Kolyada
2018-09-09  1:12 Thomas Deutschmann
2018-09-03  9:42 Lars Wendler
2018-09-03  9:42 Lars Wendler
2018-06-22  9:56 Mikle Kolyada
2018-03-07  9:13 Lars Wendler
2018-03-07  9:13 Lars Wendler
2018-01-20 10:04 Lars Wendler
2018-01-20 10:04 Lars Wendler
2018-01-05 22:07 David Seifert
2017-09-21 22:26 Lars Wendler
2017-09-21 22:26 Lars Wendler
2017-07-30 14:32 Jory Pratt
2017-03-29  0:01 Michael Weber
2017-03-26 21:40 Lars Wendler
2017-03-26 21:40 Lars Wendler
2017-01-18 10:02 Agostino Sarubbo
2017-01-15 22:10 Tobias Klausmann
2017-01-15 20:18 Jeroen Roovers
2017-01-13 17:01 Markus Meier
2017-01-10 15:23 Agostino Sarubbo
2017-01-10 14:56 Agostino Sarubbo
2016-10-24  9:13 Lars Wendler
2016-03-20 12:24 Agostino Sarubbo
2016-03-19 12:28 Agostino Sarubbo
2016-03-19  7:23 Jeroen Roovers
2016-03-18  6:09 Markus Meier
2016-03-17 11:34 Agostino Sarubbo
2016-03-16 14:09 Agostino Sarubbo
2016-03-15 20:50 Tobias Klausmann
2016-03-14 14:30 Agostino Sarubbo
2016-03-14 14:29 Agostino Sarubbo
2016-02-29 22:09 Ian Stakenvicius
2016-02-29 20:13 Ian Stakenvicius
2016-02-29 20:05 Ian Stakenvicius
2015-12-27 10:03 Mikle Kolyada
2015-12-04  9:36 Lars Wendler
2015-11-18  9:32 Agostino Sarubbo
2015-11-15 18:26 Matt Turner
2015-11-14 16:51 Markus Meier
2015-11-09  8:53 Agostino Sarubbo
2015-11-06  4:21 Jeroen Roovers
2015-11-05 10:07 Agostino Sarubbo
2015-11-05 10:06 Agostino Sarubbo
2015-11-04 19:39 Ian Stakenvicius
2015-08-28 20:35 Ian Stakenvicius
2015-08-24 18:19 Ian Stakenvicius
2015-08-24 18:19 Ian Stakenvicius

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=1671515571.da32db6eb88ac45e3e3f441e187c8cd596538f03.juippis@gentoo \
    --to=juippis@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