mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-16 01:16:59 +02:00
Merge pull request #235 from flatcar-linux/dongsu/delete-keywords
dev-lang/spidermonkey: delete unnecessary ebuilds
This commit is contained in:
commit
7b734de837
@ -1,16 +0,0 @@
|
||||
DIST js-1.7.0.tar.gz 1165607 BLAKE2B 61749e10886bbb9e4958a41925fae8dcbd7d943b9bf838878368c30e26ba61f300bc2ec37982653b87fedf76707dda2ffd510282de4bce87d1da11ca42fa108c SHA512 9d9fbd9c1dae969ca19ddb0f977ac56f3e0479ec393b859de252fcdd8b7fc325e80399073540884ed365ce56a3219be34c0db9300d5e50f32969660c90527e51
|
||||
DIST js185-1.0.0.tar.gz 6164605 BLAKE2B 76a37f0ceae05d3475853875bd0ce4be6e525e4114816f8f281ea6fc6b60a71060975a0fa1cb843f57ad1e2f842dfb26b24244fa0fd6c20f6ae2ebbe430f70be SHA512 2af7122a7c7007fd7b6668776fe1222515a810b3e43bbf0f76b8f94e1ef406ffd3fb5ccec393021b00274c05b38a77235bc8d6886994c56762fcaf0aa7cf6718
|
||||
DIST mozjs-24.2.0.tar.bz2 15624530 BLAKE2B 633f3e42011a8395aa4e60842c2de1cb472692a0d9355c1e2c49e1ef943605cafaea0c836f9044adfceb38d7e04a0941b895474d08097f641bfca4494c5c5fe4 SHA512 49805e256f6fa797505c01b7596d5bb941ed7a2454862c52ed42ad48b5ae4540b777e77ed8da1b98c89f8622ed2c76052187983687008a4ff53594addb328df4
|
||||
DIST mozjs-38.3.0sfink2.tar.bz2 27232902 BLAKE2B 42a039a41b7479a32e22f260cb58f098e1a1d4833f801f193bdd8b75403f94567b9ef2ebe85b2a811fe2f9b27cd934afe1054bd4e7d9aae0b8a80acdec8e42a4 SHA512 debad1fbd21e025c567b083677cfd0a2023ec2aff750241f495ac2977034a7299e068cb3b0b2351c97457119cc8aef563f00416092a70a3a269d20947b700206
|
||||
DIST mozjs-45.0.2.tar.bz2 97508152 BLAKE2B 89600f7e2a3effe71ad140646110aaf3be91cc5313cf227f1d16e796e249e287cc8dbf2599aa4277f2652a83ec3570f58c1c51ef319632254b9ac5caec46bb9a SHA512 84a3cf12e2603e00bcfe518a1a5000f53b21758c1c6b32a0410e63ab7db8d4452028195b0ba3e56144054b06e90f8e5195b4db94dba711f7c75d11da99c6c61d
|
||||
DIST mozjs-52.9.1pre1.tar.bz2 30178574 BLAKE2B 0920432b5140e78297a9bcbccb54268d75a223d5e75e4ff90b3b01aab4f7736b4a4e05c47b3a925ff0a74607a0abad3b6583c75d070ef5142009b20ebaf6e4bf SHA512 187b231b246a5ae09e55c0fef77866b316d75f38f4c2e066d5d4325d8da63433027020c929439cab46af3253ac63ab2f780223a8fd2c6ff535b3409bb6c4aa0f
|
||||
DIST mozjs-60.5.2.tar.bz2 32816585 BLAKE2B 45ac4c9646e1275faf60eeedbf486f802cd106583eb7f640fe2243adc7cbb811dced5cefa94426cceca63468b0112be84078ffcef24cb2b8c1a7b6c8173c0d45 SHA512 5fb73330e7803bdd524fbe7cfdf4e6b72e85d4b22b0c827400317b5d052d1088d36e558ceac376393089e9d03e658b24e69262851fc04a66bbcda47135423dc0
|
||||
DIST mozjs17.0.0.tar.gz 6778934 BLAKE2B a37debf5079fc4c27bb9edd3172c6e7914f6128fac6ffa97b49ac266c477d0916b180fb68ecd0916a52f935959a83d73254b0ba72b4898adc5e3b85927d17d2a SHA512 39b68aeb9f712f146778d8b68ee795709a1372c8ab893a222af4eb34882427d6f5cf877e743d6cb2f1b4348c194d8f3774f00cb775b03515b34b49560b748be4
|
||||
DIST spidermonkey-52.0-patches-0.tar.xz 5172 BLAKE2B 8bcf9477de47ef3b882cd3281efa7f77c16ce11fc93f44446a620917adf629fde8290af1dd69f0930a889aacfee3603bf60eb9c1e718a1dfd3e218a1013b6192 SHA512 88ad640fb0efa4972f1b7782bd0abee1751b73914ee51faade93b25c4d8eec64e7693898842a406c49fc2ab43733404efeccb138afb64d2193b9a5eb612578e3
|
||||
DIST spidermonkey-60.0-patches-04.tar.xz 4428 BLAKE2B af78049cd9b3ee6a9b689e6253486c4670fd3b506faade7d745dafaa7af329c0bd15cd35e95528a4c96688230f4803130967fb09b97aae2bda0ce0f73acaaf3e SHA512 fb1326a81512146ba98773d4f7e0c4bc1bff0f076897c13f576fcf63b56f6965efeff633eea9160bca9f9bc4546505901084eabc33bc955de0b7ab3d6334387a
|
||||
DIST spidermonkey-slot0-patches-01.tar.xz 10488 BLAKE2B 4a5195ac11d1076046424fc10d1416d097fb230cd8b0b28ac8b65d379e0c0518586ced0f48f833dea52b13fb5d300e02664657ab2479bfcc343bc358d394d5d7 SHA512 6c878ed0b50c052989a8b965fed845e9c672b691f4c4b1f98ee82e81a33880e1e6bf1dac8222d71322553282de602a88272dedebbcf50d27967fc172f0a8054a
|
||||
DIST spidermonkey-slot0-patches-02.tar.xz 10952 BLAKE2B fb7bf5cdac6c821a48d407ff172fe0ec7297e047d3b3bab952f226f413b83ea70325175b41c1680725ff588111b424efc97a0c66e392989da510c43d38528ff1 SHA512 cd62890c4b58658d99fc1b52f05ccb35c07da835b168bb9d5e6b219de5021122c199cc2255c5b0be01ef582f53dd51c9975921e6bde9f14e9b43536e2bee85f2
|
||||
DIST spidermonkey-slot17-patches-01.tar.xz 2748 BLAKE2B a55504d726f925096de7e066a1d323154bc796018644f347bc1d012ea6ee8441cc19f30689e06fd26bab5a5d2e8376e90bf2c1930a588be8b48865f7bbc524ea SHA512 21a90f85d156de3cca9811317507162a458f908bb447924fcfbf49b7bb70496b611ce7df90b90775316b8ceafda56692be3bf856b168b83ed40b8a5c668eed3f
|
||||
DIST spidermonkey-slot24-patches-01.tar.xz 3444 BLAKE2B f207577db223d51e315d473f0eefa8a2805fab49acd952fa5796eb4e967c82c76965afcdea1b55ac98c5e94f4321f40c1ea9079d5ebee99fdef950bddee91ab2 SHA512 712250983f726eb2fe7ae243e9ca510b6e5b8fa0f221fe5120c2e2f75334f7e4b10b8ab172869d7333a120529dbc2a513c170533d5ad5af27a2643ce1384bbdb
|
||||
DIST spidermonkey-slot38-patches-01.tar.xz 7472 BLAKE2B 7585aa6f5a84d6ae21e41137fca8da093580182f798f63bfcf2e402e3bf58df4cb3f43cef3eb635044508800f6757247fa3a65ca53230243a455925f436a9510 SHA512 953acee985d192c6d0f18f14c70fdda33a7c8f784c6833ca8b75495044b40a8b3f29b281c40dbfcda0c8570c111a3dd1717c2ef0ffd651c1b50d1f2bff1f6d09
|
||||
DIST spidermonkey-slot45-patches-01.tar.xz 5092 BLAKE2B 0188a179fc741ab84a93aae1e77f8b765868ca716b8879661bfa678aef918998c9488db3b866a13c79ae28edb43ac0ebb10345b0471b717c4174c61cba9646bc SHA512 d52f038a7b4f7b410b5a1f94a55962adafc5906e7d85f605f3fe45ad49417c2b9d58d853a81b5d2395a2842c9780992d5a2c1a0e67aa77fb09f21aff9aeb0f7a
|
@ -1,15 +0,0 @@
|
||||
--- a/testing/mozbase/mozinfo/mozinfo/mozinfo.py 2018-01-12 12:21:16.764318254 -0500
|
||||
+++ b/testing/mozbase/mozinfo/mozinfo/mozinfo.py 2018-01-12 12:22:23.392069398 -0500
|
||||
@@ -93,10 +93,11 @@
|
||||
|
||||
if info['os'] == 'linux':
|
||||
import ctypes
|
||||
+ import ctypes.util
|
||||
import errno
|
||||
PR_SET_SECCOMP = 22
|
||||
SECCOMP_MODE_FILTER = 2
|
||||
- ctypes.CDLL("libc.so.6", use_errno=True).prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, 0)
|
||||
+ ctypes.CDLL(ctypes.util.find_library('c'), use_errno=True).prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, 0)
|
||||
info['has_sandbox'] = ctypes.get_errno() == errno.EFAULT
|
||||
else:
|
||||
info['has_sandbox'] = True
|
@ -1,32 +0,0 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
|
||||
# Date 1482966103 -3600
|
||||
# Node ID 1f4d99d8dff27bcc25eff21dc6a16dae63f48595
|
||||
# Parent ce9e9f0dc752896ac7ba00bb0610b3f731e948b0
|
||||
Bug 1326496 - mozbuild: Fix bitness from 32 to 64 bits on alpha. r=glandium
|
||||
|
||||
|
||||
diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py
|
||||
--- a/python/mozbuild/mozbuild/configure/constants.py
|
||||
+++ b/python/mozbuild/mozbuild/configure/constants.py
|
||||
@@ -35,17 +35,17 @@ Kernel = EnumString.subclass(
|
||||
'Linux',
|
||||
'NetBSD',
|
||||
'OpenBSD',
|
||||
'WINNT',
|
||||
)
|
||||
|
||||
CPU_bitness = {
|
||||
'aarch64': 64,
|
||||
- 'Alpha': 32,
|
||||
+ 'Alpha': 64,
|
||||
'arm': 32,
|
||||
'hppa': 32,
|
||||
'ia64': 64,
|
||||
'mips32': 32,
|
||||
'mips64': 64,
|
||||
'ppc': 32,
|
||||
'ppc64': 64,
|
||||
's390': 32,
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- a/js/src/config/milestone.pl 2013-02-11 17:33:22.000000000 -0500
|
||||
+++ b/js/src/config/milestone.pl 2015-07-15 10:44:31.676153600 -0400
|
||||
@@ -55,7 +55,7 @@
|
||||
#
|
||||
my $milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE);
|
||||
|
||||
-if (defined(@TEMPLATE_FILE)) {
|
||||
+if (@TEMPLATE_FILE) {
|
||||
my $TFILE;
|
||||
|
||||
foreach $TFILE (@TEMPLATE_FILE) {
|
@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>mozilla@gentoo.org</email>
|
||||
<name>Gentoo Mozilla Team</name>
|
||||
</maintainer>
|
||||
<longdescription lang="en">
|
||||
Stand-alone JavaScript C++ library
|
||||
</longdescription>
|
||||
<use>
|
||||
<flag name="custom-optimization">Build with user-specified compiler optimizations
|
||||
(-Os, -O0, -O1, -O2, -O3) from CFLAGS (unsupported)</flag>
|
||||
<flag name="debug">Enable assertions to allow for easier debugging of programs that link to spidermonkey -- note this will often crash software on regular end-user systems</flag>
|
||||
<flag name="threadsafe">Build a threadsafe version of spidermonkey</flag>
|
||||
<flag name="system-icu">Use the system-wide <pkg>dev-libs/icu</pkg> instead of bundled -- note, only takes effect when icu flag is enabled</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
@ -1,53 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="5"
|
||||
|
||||
inherit eutils toolchain-funcs multilib flag-o-matic
|
||||
|
||||
MY_P="js-${PV}"
|
||||
DESCRIPTION="Stand-alone JavaScript C library"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
|
||||
SRC_URI="http://archive.mozilla.org/pub/js/${MY_P}.tar.gz
|
||||
https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-01.tar.xz
|
||||
"
|
||||
|
||||
LICENSE="NPL-1.1"
|
||||
SLOT="0/js"
|
||||
KEYWORDS="alpha amd64 ~arm ppc ppc64 ~sparc x86 ~x86-fbsd"
|
||||
IUSE="threadsafe unicode"
|
||||
|
||||
S="${WORKDIR}/js/src"
|
||||
|
||||
RDEPEND="threadsafe? ( dev-libs/nspr )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
src_prepare() {
|
||||
epatch "${WORKDIR}"/sm0/${PN}-1.5-build.patch \
|
||||
"${WORKDIR}"/sm0/${PN}-1.6-header.patch \
|
||||
"${WORKDIR}"/sm0/${P}-threadsafe.diff \
|
||||
"${WORKDIR}"/sm0/${P}-ldflags.patch
|
||||
|
||||
# don't force owner for Prefix
|
||||
sed -i -e '/^INSTALL :=/s/-g 0 -o root//' Makefile.ref || die
|
||||
|
||||
if [[ ${CHOST} == *-freebsd* ]]; then
|
||||
# Don't try to be smart, this does not work in cross-compile anyway
|
||||
ln -s "${S}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use unicode && append-flags "-DJS_C_STRINGS_ARE_UTF8"
|
||||
tc-export CC LD AR RANLIB
|
||||
local threadsafe=""
|
||||
use threadsafe && threadsafe="JS_THREADSAFE=1"
|
||||
emake -j1 -f Makefile.ref LIBDIR="$(get_libdir)" ${threadsafe} \
|
||||
XLDFLAGS="$(raw-ldflags)" HOST_LDFLAGS="${LDFLAGS}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake -f Makefile.ref install DESTDIR="${ED}" LIBDIR="$(get_libdir)"
|
||||
dodoc ../jsd/README
|
||||
dohtml README.html
|
||||
}
|
@ -1,152 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
WANT_AUTOCONF="2.1"
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
PYTHON_REQ_USE="threads"
|
||||
inherit autotools eutils toolchain-funcs multilib python-any-r1 versionator pax-utils
|
||||
|
||||
MY_PN="js"
|
||||
TARBALL_PV="$(replace_all_version_separators '' $(get_version_component_range 1-3))"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
|
||||
DESCRIPTION="Stand-alone JavaScript C library"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
|
||||
SRC_URI="https://archive.mozilla.org/pub/js/${TARBALL_P}.tar.gz
|
||||
https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-01.tar.xz
|
||||
"
|
||||
|
||||
LICENSE="NPL-1.1"
|
||||
SLOT="0/mozjs185"
|
||||
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~x64-macos"
|
||||
IUSE="debug minimal static-libs test"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
BUILDDIR="${S}/js/src"
|
||||
|
||||
RDEPEND=">=dev-libs/nspr-4.7.0
|
||||
sys-libs/readline:0=
|
||||
x64-macos? ( dev-libs/jemalloc )"
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
app-arch/zip
|
||||
virtual/pkgconfig"
|
||||
|
||||
pkg_setup(){
|
||||
if [[ ${MERGE_TYPE} != "binary" ]]; then
|
||||
export LC_ALL="C"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
|
||||
epatch "${WORKDIR}"/sm0/${P}-fix-install-symlinks.patch
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=638056#c9
|
||||
epatch "${WORKDIR}"/sm0/${P}-fix-ppc64.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=400727
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=420471
|
||||
epatch "${WORKDIR}"/sm0/${P}-arm_respect_cflags-3.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=438746
|
||||
epatch "${WORKDIR}"/sm0/${PN}-1.8.7-freebsd-pthreads.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=441928
|
||||
epatch "${WORKDIR}"/sm0/${PN}-1.8.5-perf_event-check.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=439260
|
||||
epatch "${WORKDIR}"/sm0/${P}-symbol-versions.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=441934
|
||||
epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-fix.patch
|
||||
epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-static-strings.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=431560
|
||||
epatch "${WORKDIR}"/sm0/${PN}-1.8.5-isfinite.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=552786
|
||||
epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=439558
|
||||
epatch "${WORKDIR}"/sm0/${PN}-1.8.7-x32.patch
|
||||
# https://bugs.gentoo.org/show_bug.cgi?id=582478
|
||||
epatch "${WORKDIR}"/sm0/${PN}-1.8.5-gcc6.patch
|
||||
|
||||
epatch_user
|
||||
|
||||
cd "${BUILDDIR}" || die
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
cd "${BUILDDIR}" || die
|
||||
|
||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
|
||||
AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
|
||||
LD="$(tc-getLD)" \
|
||||
ac_cv_lib_dnet_dnet_ntoa=no \
|
||||
ac_cv_lib_dnet_stub_dnet_ntoa=no \
|
||||
econf \
|
||||
${myopts} \
|
||||
--enable-jemalloc \
|
||||
--enable-readline \
|
||||
--enable-threadsafe \
|
||||
--with-system-nspr \
|
||||
--disable-optimize \
|
||||
--disable-profile-guided-optimization \
|
||||
$(use_enable debug) \
|
||||
$(use_enable static-libs static) \
|
||||
$(use_enable test tests)
|
||||
}
|
||||
|
||||
cross_make() {
|
||||
emake \
|
||||
CFLAGS="${BUILD_CFLAGS}" \
|
||||
CXXFLAGS="${BUILD_CXXFLAGS}" \
|
||||
AR="${BUILD_AR}" \
|
||||
CC="${BUILD_CC}" \
|
||||
CXX="${BUILD_CXX}" \
|
||||
RANLIB="${BUILD_RANLIB}" \
|
||||
"$@"
|
||||
}
|
||||
src_compile() {
|
||||
cd "${BUILDDIR}" || die
|
||||
if tc-is-cross-compiler; then
|
||||
tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
|
||||
cross_make jscpucfg host_jsoplengen host_jskwgen
|
||||
cross_make -C config nsinstall
|
||||
mv {,native-}jscpucfg || die
|
||||
mv {,native-}host_jskwgen || die
|
||||
mv {,native-}host_jsoplengen || die
|
||||
mv config/{,native-}nsinstall || die
|
||||
sed -i \
|
||||
-e 's@./jscpucfg@./native-jscpucfg@' \
|
||||
-e 's@./host_jskwgen@./native-host_jskwgen@' \
|
||||
-e 's@./host_jsoplengen@./native-host_jsoplengen@' \
|
||||
Makefile || die
|
||||
sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
|
||||
rm -f config/host_nsinstall.o \
|
||||
config/host_pathsub.o \
|
||||
host_jskwgen.o \
|
||||
host_jsoplengen.o || die
|
||||
fi
|
||||
emake
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd "${BUILDDIR}/jsapi-tests" || die
|
||||
# for bug 415791
|
||||
pax-mark mr jsapi-tests
|
||||
emake check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${BUILDDIR}" || die
|
||||
emake DESTDIR="${D}" install
|
||||
# bug 437520 , exclude js shell for small systems
|
||||
if ! use minimal ; then
|
||||
dobin shell/js
|
||||
pax-mark m "${ED}/usr/bin/js"
|
||||
fi
|
||||
dodoc ../../README
|
||||
dohtml README.html
|
||||
|
||||
if ! use static-libs; then
|
||||
# We can't actually disable building of static libraries
|
||||
# They're used by the tests and in a few other places
|
||||
find "${D}" -iname '*.a' -delete || die
|
||||
fi
|
||||
}
|
@ -1,147 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
WANT_AUTOCONF="2.1"
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
PYTHON_REQ_USE="threads"
|
||||
inherit autotools toolchain-funcs multilib python-any-r1 versionator pax-utils
|
||||
|
||||
MY_PN="js"
|
||||
TARBALL_PV="$(replace_all_version_separators '' $(get_version_component_range 1-3))"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
|
||||
DESCRIPTION="Stand-alone JavaScript C library"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
|
||||
SRC_URI="https://archive.mozilla.org/pub/js/${TARBALL_P}.tar.gz
|
||||
https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-02.tar.xz
|
||||
"
|
||||
|
||||
LICENSE="NPL-1.1"
|
||||
SLOT="0/mozjs185"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-macos"
|
||||
IUSE="debug minimal static-libs test"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
BUILDDIR="${S}/js/src"
|
||||
|
||||
RDEPEND=">=dev-libs/nspr-4.7.0
|
||||
sys-libs/readline:0=
|
||||
x64-macos? ( dev-libs/jemalloc )"
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
app-arch/zip
|
||||
virtual/pkgconfig"
|
||||
|
||||
PATCHES=(
|
||||
"${WORKDIR}"/sm0/${P}-fix-install-symlinks.patch
|
||||
"${WORKDIR}"/sm0/${P}-fix-ppc64.patch
|
||||
"${WORKDIR}"/sm0/${P}-arm_respect_cflags-3.patch
|
||||
"${WORKDIR}"/sm0/${PN}-1.8.7-freebsd-pthreads.patch
|
||||
"${WORKDIR}"/sm0/${P}-perf_event-check.patch
|
||||
"${WORKDIR}"/sm0/${P}-symbol-versions.patch
|
||||
"${WORKDIR}"/sm0/${P}-ia64-fix.patch
|
||||
"${WORKDIR}"/sm0/${P}-ia64-static-strings.patch
|
||||
"${WORKDIR}"/sm0/${P}-isfinite.patch
|
||||
"${FILESDIR}"/${PN}-perl-defined-array-check.patch
|
||||
"${WORKDIR}"/sm0/${PN}-1.8.7-x32.patch
|
||||
"${WORKDIR}"/sm0/${P}-gcc6.patch
|
||||
"${WORKDIR}"/sm0/${P}-drop-asm-volatile-toplevel.patch
|
||||
)
|
||||
|
||||
DOCS=( ${S}/README )
|
||||
HTML_DOCS=( ${BUILDDIR}/README.html )
|
||||
|
||||
pkg_setup(){
|
||||
if [[ ${MERGE_TYPE} != "binary" ]]; then
|
||||
export LC_ALL="C"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
pwd
|
||||
|
||||
default
|
||||
|
||||
cd "${BUILDDIR}" || die
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
cd "${BUILDDIR}" || die
|
||||
|
||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
|
||||
AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
|
||||
LD="$(tc-getLD)" \
|
||||
ac_cv_lib_dnet_dnet_ntoa=no \
|
||||
ac_cv_lib_dnet_stub_dnet_ntoa=no \
|
||||
econf \
|
||||
${myopts} \
|
||||
--enable-jemalloc \
|
||||
--enable-readline \
|
||||
--enable-threadsafe \
|
||||
--with-system-nspr \
|
||||
--disable-optimize \
|
||||
--disable-profile-guided-optimization \
|
||||
$(use_enable debug) \
|
||||
$(use_enable static-libs static) \
|
||||
$(use_enable test tests)
|
||||
}
|
||||
|
||||
cross_make() {
|
||||
emake \
|
||||
CFLAGS="${BUILD_CFLAGS}" \
|
||||
CXXFLAGS="${BUILD_CXXFLAGS}" \
|
||||
AR="${BUILD_AR}" \
|
||||
CC="${BUILD_CC}" \
|
||||
CXX="${BUILD_CXX}" \
|
||||
RANLIB="${BUILD_RANLIB}" \
|
||||
"$@"
|
||||
}
|
||||
src_compile() {
|
||||
cd "${BUILDDIR}" || die
|
||||
if tc-is-cross-compiler; then
|
||||
tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
|
||||
cross_make jscpucfg host_jsoplengen host_jskwgen
|
||||
cross_make -C config nsinstall
|
||||
mv {,native-}jscpucfg || die
|
||||
mv {,native-}host_jskwgen || die
|
||||
mv {,native-}host_jsoplengen || die
|
||||
mv config/{,native-}nsinstall || die
|
||||
sed -i \
|
||||
-e 's@./jscpucfg@./native-jscpucfg@' \
|
||||
-e 's@./host_jskwgen@./native-host_jskwgen@' \
|
||||
-e 's@./host_jsoplengen@./native-host_jsoplengen@' \
|
||||
Makefile || die
|
||||
sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
|
||||
rm -f config/host_nsinstall.o \
|
||||
config/host_pathsub.o \
|
||||
host_jskwgen.o \
|
||||
host_jsoplengen.o || die
|
||||
fi
|
||||
emake
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd "${BUILDDIR}/jsapi-tests" || die
|
||||
# for bug 415791
|
||||
pax-mark mr jsapi-tests
|
||||
emake check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${BUILDDIR}" || die
|
||||
emake DESTDIR="${D}" install
|
||||
# bug 437520 , exclude js shell for small systems
|
||||
if ! use minimal ; then
|
||||
dobin shell/js
|
||||
pax-mark m "${ED}/usr/bin/js"
|
||||
fi
|
||||
einstalldocs
|
||||
|
||||
if ! use static-libs; then
|
||||
# We can't actually disable building of static libraries
|
||||
# They're used by the tests and in a few other places
|
||||
find "${D}" -iname '*.a' -delete || die
|
||||
fi
|
||||
}
|
@ -1,141 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="6"
|
||||
WANT_AUTOCONF="2.1"
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
PYTHON_REQ_USE="threads"
|
||||
inherit toolchain-funcs multilib python-any-r1 versionator pax-utils
|
||||
|
||||
MY_PN="mozjs"
|
||||
MY_P="${MY_PN}${PV}"
|
||||
DESCRIPTION="Stand-alone JavaScript C library"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
|
||||
SRC_URI="http://archive.mozilla.org/pub/js/${MY_PN}${PV}.tar.gz
|
||||
https://dev.gentoo.org/~axs/distfiles/${PN}-slot17-patches-01.tar.xz"
|
||||
|
||||
LICENSE="NPL-1.1"
|
||||
SLOT="17"
|
||||
# "MIPS, MacroAssembler is not supported" wrt #491294 for -mips
|
||||
KEYWORDS="alpha amd64 arm -hppa ia64 -mips ppc ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd"
|
||||
IUSE="debug jit minimal static-libs test"
|
||||
|
||||
REQUIRED_USE="debug? ( jit )"
|
||||
RESTRICT="ia64? ( test )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
BUILDDIR="${S}/js/src"
|
||||
|
||||
RDEPEND=">=dev-libs/nspr-4.9.4
|
||||
virtual/libffi
|
||||
sys-libs/readline:0=
|
||||
>=sys-libs/zlib-1.1.4"
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
app-arch/zip
|
||||
virtual/pkgconfig"
|
||||
|
||||
pkg_setup(){
|
||||
if [[ ${MERGE_TYPE} != "binary" ]]; then
|
||||
python-any-r1_pkg_setup
|
||||
export LC_ALL="C"
|
||||
fi
|
||||
}
|
||||
|
||||
PATCHES=(
|
||||
"${WORKDIR}"/sm17/${PN}-${SLOT}-js-config-shebang.patch
|
||||
"${WORKDIR}"/sm17/${PN}-${SLOT}-ia64-mmap.patch
|
||||
"${WORKDIR}"/sm17/${PN}-17.0.0-fix-file-permissions.patch
|
||||
"${WORKDIR}"/sm17/${PN}-17-clang.patch
|
||||
"${FILESDIR}"/${PN}-perl-defined-array-check.patch
|
||||
"${WORKDIR}"/sm17/${PN}-17-fix_pointer_dereference.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Remove obsolete jsuword bug #506160
|
||||
sed -i -e '/jsuword/d' "${BUILDDIR}"/jsval.h || die "sed failed"
|
||||
|
||||
if [[ ${CHOST} == *-freebsd* ]]; then
|
||||
# Don't try to be smart, this does not work in cross-compile anyway
|
||||
ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
cd "${BUILDDIR}" || die
|
||||
|
||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
|
||||
AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
|
||||
LD="$(tc-getLD)" \
|
||||
econf \
|
||||
${myopts} \
|
||||
--enable-jemalloc \
|
||||
--enable-readline \
|
||||
--enable-threadsafe \
|
||||
--with-system-nspr \
|
||||
--enable-system-ffi \
|
||||
--enable-jemalloc \
|
||||
$(use_enable debug) \
|
||||
$(use_enable jit tracejit) \
|
||||
$(use_enable jit methodjit) \
|
||||
$(use_enable static-libs static) \
|
||||
$(use_enable test tests)
|
||||
}
|
||||
|
||||
cross_make() {
|
||||
emake \
|
||||
CFLAGS="${BUILD_CFLAGS}" \
|
||||
CXXFLAGS="${BUILD_CXXFLAGS}" \
|
||||
AR="${BUILD_AR}" \
|
||||
CC="${BUILD_CC}" \
|
||||
CXX="${BUILD_CXX}" \
|
||||
RANLIB="${BUILD_RANLIB}" \
|
||||
"$@"
|
||||
}
|
||||
src_compile() {
|
||||
cd "${BUILDDIR}" || die
|
||||
if tc-is-cross-compiler; then
|
||||
tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
|
||||
cross_make host_jsoplengen host_jskwgen
|
||||
cross_make -C config nsinstall
|
||||
mv {,native-}host_jskwgen || die
|
||||
mv {,native-}host_jsoplengen || die
|
||||
mv config/{,native-}nsinstall || die
|
||||
sed -i \
|
||||
-e 's@./host_jskwgen@./native-host_jskwgen@' \
|
||||
-e 's@./host_jsoplengen@./native-host_jsoplengen@' \
|
||||
Makefile || die
|
||||
sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
|
||||
rm -f config/host_nsinstall.o \
|
||||
config/host_pathsub.o \
|
||||
host_jskwgen.o \
|
||||
host_jsoplengen.o || die
|
||||
fi
|
||||
emake
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd "${BUILDDIR}/jsapi-tests" || die
|
||||
emake check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${BUILDDIR}" || die
|
||||
default
|
||||
|
||||
if ! use minimal; then
|
||||
if use jit; then
|
||||
pax-mark m "${ED}/usr/bin/js${SLOT}" || die
|
||||
fi
|
||||
else
|
||||
rm -f "${ED}/usr/bin/js${SLOT}" || die
|
||||
fi
|
||||
|
||||
if ! use static-libs; then
|
||||
# We can't actually disable building of static libraries
|
||||
# They're used by the tests and in a few other places
|
||||
find "${D}" -iname '*.a' -delete || die
|
||||
fi
|
||||
}
|
@ -1,157 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
WANT_AUTOCONF="2.1"
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
PYTHON_REQ_USE="threads"
|
||||
inherit autotools toolchain-funcs multilib python-any-r1 versionator pax-utils
|
||||
|
||||
MY_PN="mozjs"
|
||||
MY_P="${MY_PN}-${PV/_/.}"
|
||||
DESCRIPTION="Stand-alone JavaScript C library"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
|
||||
SRC_URI="https://archive.mozilla.org/pub/js/${MY_P}.tar.bz2
|
||||
https://dev.gentoo.org/~axs/distfiles/${PN}-slot24-patches-01.tar.xz"
|
||||
|
||||
LICENSE="NPL-1.1"
|
||||
SLOT="24"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd"
|
||||
IUSE="debug icu jit minimal static-libs +system-icu test"
|
||||
|
||||
RESTRICT="ia64? ( test )"
|
||||
|
||||
S="${WORKDIR}/${MY_P%.rc*}"
|
||||
BUILDDIR="${S}/js/src"
|
||||
|
||||
RDEPEND=">=dev-libs/nspr-4.9.4
|
||||
virtual/libffi
|
||||
sys-libs/readline:0=
|
||||
>=sys-libs/zlib-1.1.4
|
||||
system-icu? ( >=dev-libs/icu-1.51:= )"
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
app-arch/zip
|
||||
virtual/pkgconfig"
|
||||
|
||||
PATCHES=(
|
||||
"${WORKDIR}"/sm24/${PN}-${SLOT}-system-icu.patch
|
||||
"${WORKDIR}"/sm24/${PN}-24.2.0-fix-file-permissions.patch
|
||||
"${WORKDIR}"/sm24/${PN}-${SLOT}-upward-growing-stack.patch
|
||||
"${FILESDIR}"/${PN}-perl-defined-array-check.patch
|
||||
"${WORKDIR}"/sm24/${PN}-17-fix_pointer_dereference.patch
|
||||
)
|
||||
|
||||
pkg_setup(){
|
||||
if [[ ${MERGE_TYPE} != "binary" ]]; then
|
||||
python-any-r1_pkg_setup
|
||||
export LC_ALL="C"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if [[ ${CHOST} == *-freebsd* ]]; then
|
||||
# Don't try to be smart, this does not work in cross-compile anyway
|
||||
ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
|
||||
fi
|
||||
|
||||
cd "${BUILDDIR}" || die
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export SHELL=/bin/sh
|
||||
cd "${BUILDDIR}" || die
|
||||
|
||||
local myopts=""
|
||||
if use icu; then # make sure system-icu flag only affects icu-enabled build
|
||||
myopts+="$(use_with system-icu)"
|
||||
else
|
||||
myopts+="--without-system-icu"
|
||||
fi
|
||||
|
||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
|
||||
AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
|
||||
LD="$(tc-getLD)" \
|
||||
econf \
|
||||
${myopts} \
|
||||
--enable-jemalloc \
|
||||
--enable-readline \
|
||||
--enable-threadsafe \
|
||||
--with-system-nspr \
|
||||
--enable-system-ffi \
|
||||
--disable-optimize \
|
||||
$(use_enable icu intl-api) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable jit yarr-jit) \
|
||||
$(use_enable jit ion) \
|
||||
$(use_enable static-libs static) \
|
||||
$(use_enable test tests)
|
||||
}
|
||||
|
||||
cross_make() {
|
||||
emake \
|
||||
CFLAGS="${BUILD_CFLAGS}" \
|
||||
CXXFLAGS="${BUILD_CXXFLAGS}" \
|
||||
AR="${BUILD_AR}" \
|
||||
CC="${BUILD_CC}" \
|
||||
CXX="${BUILD_CXX}" \
|
||||
RANLIB="${BUILD_RANLIB}" \
|
||||
"$@"
|
||||
}
|
||||
src_compile() {
|
||||
cd "${BUILDDIR}" || die
|
||||
if tc-is-cross-compiler; then
|
||||
tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
|
||||
cross_make \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
|
||||
HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
|
||||
MOZ_PGO_OPTIMIZE_FLAGS="" \
|
||||
host_jsoplengen host_jskwgen
|
||||
cross_make \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
|
||||
-C config nsinstall
|
||||
mv {,native-}host_jskwgen || die
|
||||
mv {,native-}host_jsoplengen || die
|
||||
mv config/{,native-}nsinstall || die
|
||||
sed -i \
|
||||
-e 's@./host_jskwgen@./native-host_jskwgen@' \
|
||||
-e 's@./host_jsoplengen@./native-host_jsoplengen@' \
|
||||
Makefile || die
|
||||
sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
|
||||
rm -f config/host_nsinstall.o \
|
||||
config/host_pathsub.o \
|
||||
host_jskwgen.o \
|
||||
host_jsoplengen.o || die
|
||||
fi
|
||||
emake \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
|
||||
HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
|
||||
MOZ_PGO_OPTIMIZE_FLAGS=""
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd "${BUILDDIR}/jsapi-tests" || die
|
||||
emake check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${BUILDDIR}" || die
|
||||
default
|
||||
|
||||
if ! use minimal; then
|
||||
if use jit; then
|
||||
pax-mark m "${ED}/usr/bin/js${SLOT}" || die
|
||||
fi
|
||||
else
|
||||
rm -f "${ED}/usr/bin/js${SLOT}" || die
|
||||
fi
|
||||
|
||||
if ! use static-libs; then
|
||||
# We can't actually disable building of static libraries
|
||||
# They're used by the tests and in a few other places
|
||||
find "${D}" -iname '*.a' -delete || die
|
||||
fi
|
||||
}
|
@ -1,147 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
WANT_AUTOCONF="2.1"
|
||||
inherit autotools toolchain-funcs pax-utils mozcoreconf-v4
|
||||
|
||||
MY_PN="mozjs"
|
||||
MY_P="${MY_PN}-${PV/_/.}sfink2"
|
||||
DESCRIPTION="Stand-alone JavaScript C library"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
|
||||
SRC_URI="https://archive.mozilla.org/pub/${PN}/releases/${PV}/${MY_P}.tar.bz2
|
||||
https://dev.gentoo.org/~axs/distfiles/${PN}-slot38-patches-01.tar.xz"
|
||||
|
||||
LICENSE="NPL-1.1"
|
||||
SLOT="38"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd"
|
||||
IUSE="debug +jit minimal static-libs +system-icu test"
|
||||
|
||||
RESTRICT="ia64? ( test )"
|
||||
|
||||
#S="${WORKDIR}/${MY_P%.rc*}"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
BUILDDIR="${S}/js/src"
|
||||
|
||||
RDEPEND=">=dev-libs/nspr-4.10.10
|
||||
virtual/libffi
|
||||
sys-libs/readline:0=
|
||||
>=sys-libs/zlib-1.2.3
|
||||
system-icu? ( >=dev-libs/icu-51.1:= )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
pkg_setup(){
|
||||
if [[ ${MERGE_TYPE} != "binary" ]]; then
|
||||
moz_pkgsetup
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${WORKDIR}"/sm38/${PN}-38-jsapi-tests.patch \
|
||||
"${WORKDIR}"/sm38/mozjs38-1269317.patch \
|
||||
"${WORKDIR}"/sm38/mozjs38-fix-tracelogger.patch \
|
||||
"${WORKDIR}"/sm38/mozjs38-copy-headers.patch \
|
||||
"${WORKDIR}"/sm38/mozjs38-pkg-config-version.patch \
|
||||
"${WORKDIR}"/sm38/mozilla_configure_regexp_esr38.patch \
|
||||
"${FILESDIR}"/moz38-dont-hardcode-libc-soname.patch
|
||||
|
||||
eapply_user
|
||||
|
||||
if [[ ${CHOST} == *-freebsd* ]]; then
|
||||
# Don't try to be smart, this does not work in cross-compile anyway
|
||||
ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
|
||||
fi
|
||||
|
||||
cd "${BUILDDIR}" || die
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export SHELL="${SHELL:-${EPREFIX%/}/bin/bash}"
|
||||
|
||||
cd "${BUILDDIR}" || die
|
||||
|
||||
econf \
|
||||
--enable-jemalloc \
|
||||
--enable-readline \
|
||||
--enable-threadsafe \
|
||||
--with-system-nspr \
|
||||
--enable-system-ffi \
|
||||
--disable-optimize \
|
||||
--with-intl-api \
|
||||
$(use_with system-icu) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable jit yarr-jit) \
|
||||
$(use_enable jit ion) \
|
||||
$(use_enable static-libs static) \
|
||||
$(use_enable test tests)
|
||||
}
|
||||
|
||||
cross_make() {
|
||||
emake \
|
||||
CFLAGS="${BUILD_CFLAGS}" \
|
||||
CXXFLAGS="${BUILD_CXXFLAGS}" \
|
||||
AR="${BUILD_AR}" \
|
||||
CC="${BUILD_CC}" \
|
||||
CXX="${BUILD_CXX}" \
|
||||
RANLIB="${BUILD_RANLIB}" \
|
||||
"$@"
|
||||
}
|
||||
src_compile() {
|
||||
cd "${BUILDDIR}" || die
|
||||
if tc-is-cross-compiler; then
|
||||
tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
|
||||
cross_make \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
|
||||
HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
|
||||
MOZ_PGO_OPTIMIZE_FLAGS="" \
|
||||
host_jsoplengen host_jskwgen
|
||||
cross_make \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
|
||||
-C config nsinstall
|
||||
mv {,native-}host_jskwgen || die
|
||||
mv {,native-}host_jsoplengen || die
|
||||
mv config/{,native-}nsinstall || die
|
||||
sed -i \
|
||||
-e 's@./host_jskwgen@./native-host_jskwgen@' \
|
||||
-e 's@./host_jsoplengen@./native-host_jsoplengen@' \
|
||||
Makefile || die
|
||||
sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
|
||||
rm -f config/host_nsinstall.o \
|
||||
config/host_pathsub.o \
|
||||
host_jskwgen.o \
|
||||
host_jsoplengen.o || die
|
||||
fi
|
||||
|
||||
MOZ_MAKE_FLAGS="${MAKEOPTS}"
|
||||
emake \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
|
||||
HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
|
||||
MOZ_PGO_OPTIMIZE_FLAGS=""
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd "${BUILDDIR}/js/src/jsapi-tests" || die
|
||||
./jsapi-tests || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${BUILDDIR}" || die
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
mv "${ED}"usr/bin/js-config{,${SLOT}} || die
|
||||
mv "${ED}"usr/bin/js{,${SLOT}} || die
|
||||
if ! use minimal; then
|
||||
if use jit; then
|
||||
pax-mark m "${ED}"usr/bin/js${SLOT}
|
||||
fi
|
||||
else
|
||||
rm -f "${ED}"/usr/bin/js${SLOT}
|
||||
fi
|
||||
|
||||
if ! use static-libs; then
|
||||
# We can't actually disable building of static libraries
|
||||
# They're used by the tests and in a few other places
|
||||
find "${D}" -iname '*.a' -o -iname '*.ajs' -delete || die
|
||||
fi
|
||||
}
|
@ -1,148 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
WANT_AUTOCONF="2.1"
|
||||
inherit autotools toolchain-funcs pax-utils mozcoreconf-v4
|
||||
|
||||
MY_PN="mozjs"
|
||||
MY_P="${MY_PN}-${PV/_/.}"
|
||||
DESCRIPTION="Stand-alone JavaScript C library"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
|
||||
SRC_URI="https://archive.mozilla.org/pub/${PN}/releases/${PV}/${MY_P}.tar.bz2
|
||||
https://dev.gentoo.org/~axs/distfiles/${PN}-slot45-patches-01.tar.xz"
|
||||
|
||||
LICENSE="NPL-1.1"
|
||||
SLOT="45"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
|
||||
IUSE="debug +jit minimal static-libs +system-icu test"
|
||||
|
||||
RESTRICT="ia64? ( test )"
|
||||
|
||||
S="${WORKDIR}/${MY_P%.rc*}"
|
||||
BUILDDIR="${S}/js/src"
|
||||
|
||||
RDEPEND=">=dev-libs/nspr-4.10.10
|
||||
virtual/libffi
|
||||
sys-libs/readline:0=
|
||||
>=sys-libs/zlib-1.2.3
|
||||
system-icu? ( >=dev-libs/icu-51.1:= )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
pkg_setup(){
|
||||
if [[ ${MERGE_TYPE} != "binary" ]]; then
|
||||
moz_pkgsetup
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${WORKDIR}"/sm45/${PN}-38-jsapi-tests.patch \
|
||||
"${WORKDIR}"/sm45/mozjs45-1266366.patch \
|
||||
"${WORKDIR}"/sm45/mozjs38-pkg-config-version.patch \
|
||||
"${WORKDIR}"/sm45/mozilla_configure_regexp_esr.patch \
|
||||
"${WORKDIR}"/sm45/${PN}-${SLOT}-dont-symlink-non-objfiles.patch \
|
||||
"${FILESDIR}"/moz38-dont-hardcode-libc-soname.patch
|
||||
|
||||
# apply relevant (modified) patches from gentoo's firefox-45 patchset
|
||||
eapply "${WORKDIR}"/sm45/ff45
|
||||
|
||||
eapply_user
|
||||
|
||||
if [[ ${CHOST} == *-freebsd* ]]; then
|
||||
# Don't try to be smart, this does not work in cross-compile anyway
|
||||
ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
|
||||
fi
|
||||
|
||||
cd "${BUILDDIR}" || die
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export SHELL="${SHELL:-${EPREFIX%/}/bin/bash}"
|
||||
cd "${BUILDDIR}" || die
|
||||
|
||||
econf \
|
||||
--enable-jemalloc \
|
||||
--enable-readline \
|
||||
--enable-threadsafe \
|
||||
--with-system-nspr \
|
||||
--enable-system-ffi \
|
||||
--disable-optimize \
|
||||
--with-intl-api \
|
||||
$(use_with system-icu) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable jit yarr-jit) \
|
||||
$(use_enable jit ion) \
|
||||
$(use_enable static-libs static) \
|
||||
$(use_enable test tests)
|
||||
}
|
||||
|
||||
cross_make() {
|
||||
emake \
|
||||
CFLAGS="${BUILD_CFLAGS}" \
|
||||
CXXFLAGS="${BUILD_CXXFLAGS}" \
|
||||
AR="${BUILD_AR}" \
|
||||
CC="${BUILD_CC}" \
|
||||
CXX="${BUILD_CXX}" \
|
||||
RANLIB="${BUILD_RANLIB}" \
|
||||
"$@"
|
||||
}
|
||||
src_compile() {
|
||||
cd "${BUILDDIR}" || die
|
||||
if tc-is-cross-compiler; then
|
||||
tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
|
||||
cross_make \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
|
||||
HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
|
||||
MOZ_PGO_OPTIMIZE_FLAGS="" \
|
||||
host_jsoplengen host_jskwgen
|
||||
cross_make \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
|
||||
-C config nsinstall
|
||||
mv {,native-}host_jskwgen || die
|
||||
mv {,native-}host_jsoplengen || die
|
||||
mv config/{,native-}nsinstall || die
|
||||
sed -i \
|
||||
-e 's@./host_jskwgen@./native-host_jskwgen@' \
|
||||
-e 's@./host_jsoplengen@./native-host_jsoplengen@' \
|
||||
Makefile || die
|
||||
sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
|
||||
rm -f config/host_nsinstall.o \
|
||||
config/host_pathsub.o \
|
||||
host_jskwgen.o \
|
||||
host_jsoplengen.o || die
|
||||
fi
|
||||
|
||||
MOZ_MAKE_FLAGS="${MAKEOPTS}" \
|
||||
emake \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
|
||||
HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
|
||||
MOZ_PGO_OPTIMIZE_FLAGS=""
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd "${BUILDDIR}/js/src/jsapi-tests" || die
|
||||
./jsapi-tests || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${BUILDDIR}" || die
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
# re-slot due to upstream stripping out most of the slotting
|
||||
mv "${ED}"usr/bin/js-config{,${SLOT}} || die
|
||||
mv "${ED}"usr/bin/js{,${SLOT}} || die
|
||||
if ! use minimal; then
|
||||
if use jit; then
|
||||
pax-mark m "${ED}"usr/bin/js${SLOT}
|
||||
fi
|
||||
else
|
||||
rm -f "${ED}"usr/bin/js${SLOT}
|
||||
fi
|
||||
|
||||
if ! use static-libs; then
|
||||
# We can't actually disable building of static libraries
|
||||
# They're used by the tests and in a few other places
|
||||
find "${D}" -iname '*.a' -o -iname '*.ajs' -delete || die
|
||||
fi
|
||||
}
|
@ -1,153 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
WANT_AUTOCONF="2.1"
|
||||
inherit autotools toolchain-funcs pax-utils mozcoreconf-v5
|
||||
|
||||
MY_PN="mozjs"
|
||||
MY_P="${MY_PN}-${PV/_rc/.rc}"
|
||||
MY_P="${MY_P/_pre/pre}"
|
||||
DESCRIPTION="Stand-alone JavaScript C++ library"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
|
||||
#SRC_URI="https://people.mozilla.org/~sfink/${MY_P}.tar.bz2"
|
||||
SRC_URI="http://ftp.mozilla.org/pub/spidermonkey/prereleases/52/pre1/mozjs-52.9.1pre1.tar.bz2 -> ${MY_P}.tar.bz2
|
||||
https://dev.gentoo.org/~axs/distfiles/${PN}-52.0-patches-0.tar.xz"
|
||||
|
||||
LICENSE="NPL-1.1"
|
||||
SLOT="52"
|
||||
KEYWORDS="alpha amd64 arm arm64 ~hppa ia64 ~mips ppc ppc64 s390 ~sh ~sparc x86 ~x86-fbsd"
|
||||
IUSE="debug minimal +system-icu test"
|
||||
|
||||
RESTRICT="ia64? ( test )"
|
||||
|
||||
S="${WORKDIR}/${MY_P%.rc*}"
|
||||
BUILDDIR="${S}/jsobj"
|
||||
|
||||
RDEPEND=">=dev-libs/nspr-4.13.1
|
||||
virtual/libffi
|
||||
sys-libs/readline:0=
|
||||
>=sys-libs/zlib-1.2.3
|
||||
system-icu? ( >=dev-libs/icu-58.1:= )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
pkg_setup(){
|
||||
[[ ${MERGE_TYPE} == "binary" ]] || \
|
||||
moz_pkgsetup
|
||||
|
||||
export SHELL="${EPREFIX}/bin/bash"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# remove patches integrated by upstream
|
||||
rm -f "${WORKDIR}"/${PN}/0002-build-Add-major-version-to-make-parallel-installable.patch \
|
||||
"${WORKDIR}"/${PN}/0005-headers-Fix-symbols-visibility.patch \
|
||||
"${WORKDIR}"/${PN}/0007-build-Remove-unnecessary-NSPR-dependency.patch \
|
||||
"${WORKDIR}"/${PN}/0008-tests-Skip-on-all-64-bit-archs.patch \
|
||||
|| die
|
||||
|
||||
eapply "${WORKDIR}/${PN}"
|
||||
eapply "${FILESDIR}"/moz38-dont-hardcode-libc-soname.patch
|
||||
eapply "${FILESDIR}"/${PN}-52.0-fix-alpha-bitness.patch
|
||||
|
||||
eapply_user
|
||||
|
||||
if [[ ${CHOST} == *-freebsd* ]]; then
|
||||
# Don't try to be smart, this does not work in cross-compile anyway
|
||||
ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
|
||||
fi
|
||||
|
||||
cd "${S}"/js/src || die
|
||||
eautoconf old-configure.in
|
||||
eautoconf
|
||||
|
||||
# there is a default config.cache that messes everything up
|
||||
rm -f "${S}"/js/src/config.cache || die
|
||||
|
||||
mkdir -p "${BUILDDIR}" || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
cd "${BUILDDIR}" || die
|
||||
|
||||
ECONF_SOURCE="${S}/js/src" \
|
||||
econf \
|
||||
--enable-jemalloc \
|
||||
--enable-readline \
|
||||
--with-system-nspr \
|
||||
--disable-optimize \
|
||||
--with-intl-api \
|
||||
--disable-gold \
|
||||
$(use_with system-icu) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable test tests) \
|
||||
XARGS="/usr/bin/xargs" \
|
||||
SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
|
||||
CC="${CC}" CXX="${CXX}" LD="${LD}" AR="${AR}" RANLIB="${RANLIB}"
|
||||
}
|
||||
|
||||
cross_make() {
|
||||
emake \
|
||||
CFLAGS="${BUILD_CFLAGS}" \
|
||||
CXXFLAGS="${BUILD_CXXFLAGS}" \
|
||||
AR="${BUILD_AR}" \
|
||||
CC="${BUILD_CC}" \
|
||||
CXX="${BUILD_CXX}" \
|
||||
RANLIB="${BUILD_RANLIB}" \
|
||||
SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
|
||||
"$@"
|
||||
}
|
||||
src_compile() {
|
||||
cd "${BUILDDIR}" || die
|
||||
if tc-is-cross-compiler; then
|
||||
tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
|
||||
cross_make \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
|
||||
HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
|
||||
MOZ_PGO_OPTIMIZE_FLAGS="" \
|
||||
host_jsoplengen host_jskwgen
|
||||
cross_make \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
|
||||
-C config nsinstall
|
||||
mv {,native-}host_jskwgen || die
|
||||
mv {,native-}host_jsoplengen || die
|
||||
mv config/{,native-}nsinstall || die
|
||||
sed -i \
|
||||
-e 's@./host_jskwgen@./native-host_jskwgen@' \
|
||||
-e 's@./host_jsoplengen@./native-host_jsoplengen@' \
|
||||
Makefile || die
|
||||
sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
|
||||
rm -f config/host_nsinstall.o \
|
||||
config/host_pathsub.o \
|
||||
host_jskwgen.o \
|
||||
host_jsoplengen.o || die
|
||||
fi
|
||||
|
||||
MOZ_MAKE_FLAGS="${MAKEOPTS}" \
|
||||
SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
|
||||
emake \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
|
||||
HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
|
||||
MOZ_PGO_OPTIMIZE_FLAGS=""
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd "${BUILDDIR}/js/src/jsapi-tests" || die
|
||||
./jsapi-tests || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${BUILDDIR}" || die
|
||||
SHELL="${SHELL:-${EPREFIX}/bin/bash}" \
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
if ! use minimal; then
|
||||
pax-mark m "${ED}"usr/bin/js${SLOT}
|
||||
else
|
||||
rm -f "${ED}"usr/bin/js${SLOT}
|
||||
fi
|
||||
|
||||
# We can't actually disable building of static libraries
|
||||
# They're used by the tests and in a few other places
|
||||
find "${D}" -iname '*.a' -o -iname '*.ajs' -delete || die
|
||||
}
|
@ -1,150 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
WANT_AUTOCONF="2.1"
|
||||
inherit autotools check-reqs toolchain-funcs pax-utils mozcoreconf-v5
|
||||
|
||||
MY_PN="mozjs"
|
||||
MY_P="${MY_PN}-${PV/_rc/.rc}"
|
||||
MY_P="${MY_P/_pre/pre}"
|
||||
MY_P="${MY_P%_p[0-9]*}"
|
||||
DESCRIPTION="Stand-alone JavaScript C++ library"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
|
||||
#SRC_URI="https://archive.mozilla.org/pub/spidermonkey/prereleases/60/pre3/${MY_P}.tar.bz2
|
||||
SRC_URI="https://dev.gentoo.org/~axs/distfiles/${MY_P}.tar.bz2
|
||||
https://dev.gentoo.org/~anarchy/mozilla/patchsets/${PN}-60.0-patches-04.tar.xz"
|
||||
|
||||
LICENSE="NPL-1.1"
|
||||
SLOT="60"
|
||||
KEYWORDS="alpha amd64 arm arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh sparc x86 ~x86-fbsd"
|
||||
IUSE="debug +jit minimal +system-icu test"
|
||||
|
||||
RESTRICT="ia64? ( test )"
|
||||
|
||||
S="${WORKDIR}/${MY_P%.rc*}"
|
||||
|
||||
BUILDDIR="${S}/jsobj"
|
||||
|
||||
RDEPEND=">=dev-libs/nspr-4.13.1
|
||||
virtual/libffi
|
||||
sys-libs/readline:0=
|
||||
>=sys-libs/zlib-1.2.3:=
|
||||
system-icu? ( >=dev-libs/icu-59.1:= )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
pkg_pretend() {
|
||||
CHECKREQS_DISK_BUILD="2G"
|
||||
|
||||
check-reqs_pkg_setup
|
||||
}
|
||||
pkg_setup(){
|
||||
[[ ${MERGE_TYPE} == "binary" ]] || \
|
||||
moz_pkgsetup
|
||||
export SHELL="${EPREFIX}/bin/bash"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
eapply "${WORKDIR}/${PN}"
|
||||
|
||||
eapply_user
|
||||
|
||||
if [[ ${CHOST} == *-freebsd* ]]; then
|
||||
# Don't try to be smart, this does not work in cross-compile anyway
|
||||
ln -sfn "${BUILDDIR}/config/Linux_All.mk" "${S}/config/$(uname -s)$(uname -r).mk" || die
|
||||
fi
|
||||
|
||||
cd "${S}/js/src" || die
|
||||
eautoconf old-configure.in
|
||||
eautoconf
|
||||
|
||||
# there is a default config.cache that messes everything up
|
||||
rm -f "${S}/js/src"/config.cache || die
|
||||
|
||||
mkdir -p "${BUILDDIR}" || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
cd "${BUILDDIR}" || die
|
||||
|
||||
ECONF_SOURCE="${S}/js/src" \
|
||||
econf \
|
||||
--disable-jemalloc \
|
||||
--enable-readline \
|
||||
--with-system-nspr \
|
||||
--with-system-zlib \
|
||||
--disable-optimize \
|
||||
--with-intl-api \
|
||||
$(use_with system-icu) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable jit ion) \
|
||||
$(use_enable test tests) \
|
||||
XARGS="/usr/bin/xargs" \
|
||||
CONFIG_SHELL="${EPREFIX}/bin/bash" \
|
||||
CC="${CC}" CXX="${CXX}" LD="${LD}" AR="${AR}" RANLIB="${RANLIB}"
|
||||
}
|
||||
|
||||
cross_make() {
|
||||
emake \
|
||||
CFLAGS="${BUILD_CFLAGS}" \
|
||||
CXXFLAGS="${BUILD_CXXFLAGS}" \
|
||||
AR="${BUILD_AR}" \
|
||||
CC="${BUILD_CC}" \
|
||||
CXX="${BUILD_CXX}" \
|
||||
RANLIB="${BUILD_RANLIB}" \
|
||||
"$@"
|
||||
}
|
||||
src_compile() {
|
||||
cd "${BUILDDIR}" || die
|
||||
if tc-is-cross-compiler; then
|
||||
tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
|
||||
cross_make \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
|
||||
HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
|
||||
MOZ_PGO_OPTIMIZE_FLAGS="" \
|
||||
host_jsoplengen host_jskwgen
|
||||
cross_make \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" HOST_OPTIMIZE_FLAGS="" \
|
||||
-C config nsinstall
|
||||
mv {,native-}host_jskwgen || die
|
||||
mv {,native-}host_jsoplengen || die
|
||||
mv config/{,native-}nsinstall || die
|
||||
sed -i \
|
||||
-e 's@./host_jskwgen@./native-host_jskwgen@' \
|
||||
-e 's@./host_jsoplengen@./native-host_jsoplengen@' \
|
||||
Makefile || die
|
||||
sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
|
||||
rm -f config/host_nsinstall.o \
|
||||
config/host_pathsub.o \
|
||||
host_jskwgen.o \
|
||||
host_jsoplengen.o || die
|
||||
fi
|
||||
|
||||
MOZ_MAKE_FLAGS="${MAKEOPTS}" \
|
||||
emake \
|
||||
MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
|
||||
HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
|
||||
MOZ_PGO_OPTIMIZE_FLAGS=""
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd "${BUILDDIR}/js/src/jsapi-tests" || die
|
||||
./jsapi-tests || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${BUILDDIR}" || die
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
if ! use minimal; then
|
||||
if use jit; then
|
||||
pax-mark m "${ED}"usr/bin/js${SLOT}
|
||||
fi
|
||||
else
|
||||
rm -f "${ED}"usr/bin/js${SLOT}
|
||||
fi
|
||||
|
||||
# We can't actually disable building of static libraries
|
||||
# They're used by the tests and in a few other places
|
||||
find "${D}" -iname '*.a' -o -iname '*.ajs' -delete || die
|
||||
}
|
@ -1,391 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# @ECLASS: mozconfig-v6.52.eclass
|
||||
# @MAINTAINER:
|
||||
# mozilla team <mozilla@gentoo.org>
|
||||
# @SUPPORTED_EAPIS: 5 6 7
|
||||
# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v6
|
||||
# @DESCRIPTION:
|
||||
# This eclass is used in mozilla ebuilds (firefox, thunderbird, seamonkey)
|
||||
# to provide a single common place for the common mozilla engine compoments.
|
||||
#
|
||||
# The eclass provides all common dependencies as well as common use flags.
|
||||
#
|
||||
# Some use flags which may be optional in particular mozilla packages can be
|
||||
# supported through setting eclass variables.
|
||||
#
|
||||
# This eclass inherits mozconfig helper functions as defined in mozcoreconf-v3,
|
||||
# and so ebuilds inheriting this eclass do not need to inherit that.
|
||||
|
||||
case ${EAPI} in
|
||||
0|1|2|3|4)
|
||||
die "EAPI=${EAPI} not supported"
|
||||
;;
|
||||
5)
|
||||
inherit multilib
|
||||
;;
|
||||
esac
|
||||
|
||||
inherit flag-o-matic toolchain-funcs mozcoreconf-v5
|
||||
|
||||
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
|
||||
# @DEFAULT_UNSET
|
||||
# @DESCRIPTION:
|
||||
# Set this variable before the inherit line, when an ebuild needs to provide
|
||||
# optional necko-wifi support via IUSE="wifi". Currently this would include
|
||||
# ebuilds for firefox, and potentially seamonkey.
|
||||
#
|
||||
# Leave the variable UNSET if necko-wifi support should not be available.
|
||||
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||
|
||||
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_JIT
|
||||
# @DEFAULT_UNSET
|
||||
# @DESCRIPTION:
|
||||
# Set this variable before the inherit line, when an ebuild needs to provide
|
||||
# deterministic jit support via IUSE="jit". The upstream default will be used
|
||||
# otherwise, which is generally to enable jit unless support for the platform
|
||||
# is missing.
|
||||
#
|
||||
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||
|
||||
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK3
|
||||
# @DEFAULT_UNSET
|
||||
# @DESCRIPTION:
|
||||
# Set this variable before the inherit line, when an ebuild can provide
|
||||
# optional gtk3 support via IUSE="force-gtk3". Currently this would include
|
||||
# thunderbird and seamonkey in the future, once support is ready for testing.
|
||||
#
|
||||
# Leave the variable UNSET if gtk3 support should not be optionally available.
|
||||
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||
# If gtk+:3 is to be the standard toolkit, do not use this and instead use
|
||||
# MOZCONFIG_OPTIONAL_GTK2ONLY.
|
||||
|
||||
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK2ONLY
|
||||
# @DEFAULT_UNSET
|
||||
# @DESCRIPTION:
|
||||
# Set this variable before the inherit line, when an ebuild can provide
|
||||
# optional gtk2-only support via IUSE="gtk2".
|
||||
#
|
||||
# Note that this option conflicts directly with MOZCONFIG_OPTIONAL_GTK3, both
|
||||
# variables cannot be set at the same time and this variable will be ignored if
|
||||
# MOZCONFIG_OPTIONAL_GTK3 is set.
|
||||
#
|
||||
# Leave the variable UNSET if gtk2-only support should not be available.
|
||||
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||
|
||||
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_QT5
|
||||
# @DEFAULT_UNSET
|
||||
# @DESCRIPTION:
|
||||
# Set this variable before the inherit line, when an ebuild can provide
|
||||
# optional qt5 support via IUSE="qt5". Currently this would include
|
||||
# ebuilds for firefox, but thunderbird and seamonkey could follow in the future.
|
||||
#
|
||||
# Leave the variable UNSET if qt5 support should not be available.
|
||||
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||
|
||||
# use-flags common among all mozilla ebuilds
|
||||
IUSE="${IUSE} dbus debug +jemalloc neon pulseaudio selinux startup-notification system-cairo
|
||||
system-harfbuzz system-icu system-jpeg system-libevent system-sqlite system-libvpx"
|
||||
|
||||
# some notes on deps:
|
||||
# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14
|
||||
# media-libs/mesa needs to be 10.2 or above due to a bug with flash+vdpau
|
||||
|
||||
RDEPEND=">=app-text/hunspell-1.2:=
|
||||
dev-libs/atk
|
||||
dev-libs/expat
|
||||
>=x11-libs/cairo-1.10[X]
|
||||
>=x11-libs/gtk+-2.18:2
|
||||
x11-libs/gdk-pixbuf
|
||||
>=x11-libs/pango-1.22.0
|
||||
>=media-libs/libpng-1.6.25:0=[apng]
|
||||
>=media-libs/mesa-10.2:*
|
||||
media-libs/fontconfig
|
||||
>=media-libs/freetype-2.4.10
|
||||
kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) )
|
||||
pulseaudio? ( || ( media-sound/pulseaudio
|
||||
>=media-sound/apulse-0.1.9 ) )
|
||||
virtual/freedesktop-icon-theme
|
||||
dbus? ( >=sys-apps/dbus-0.60
|
||||
>=dev-libs/dbus-glib-0.72 )
|
||||
startup-notification? ( >=x11-libs/startup-notification-0.8 )
|
||||
>=dev-libs/glib-2.26:2
|
||||
>=sys-libs/zlib-1.2.3
|
||||
>=virtual/libffi-3.0.10
|
||||
virtual/ffmpeg
|
||||
x11-libs/libX11
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXdamage
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXt
|
||||
system-cairo? ( >=x11-libs/cairo-1.12[X,xcb] >=x11-libs/pixman-0.19.2 )
|
||||
system-icu? ( >=dev-libs/icu-58.1:= )
|
||||
system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
|
||||
system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
|
||||
system-sqlite? ( >=dev-db/sqlite-3.17.0:3[secure-delete,debug=] )
|
||||
system-libvpx? ( >=media-libs/libvpx-1.5.0:0=[postproc] )
|
||||
system-harfbuzz? ( >=media-libs/harfbuzz-1.3.3:0= >=media-gfx/graphite2-1.3.8 )
|
||||
"
|
||||
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
|
||||
MOZCONFIG_OPTIONAL_GTK2ONLY=
|
||||
if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then
|
||||
IUSE+=" +force-gtk3"
|
||||
else
|
||||
IUSE+=" force-gtk3"
|
||||
fi
|
||||
RDEPEND+=" force-gtk3? ( >=x11-libs/gtk+-3.4.0:3 )"
|
||||
elif [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then
|
||||
if [[ ${MOZCONFIG_OPTIONAL_GTK2ONLY} = "enabled" ]]; then
|
||||
IUSE+=" +gtk2"
|
||||
else
|
||||
IUSE+=" gtk2"
|
||||
fi
|
||||
RDEPEND+=" !gtk2? ( >=x11-libs/gtk+-3.4.0:3 )"
|
||||
fi
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then
|
||||
if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then
|
||||
IUSE+=" +wifi"
|
||||
else
|
||||
IUSE+=" wifi"
|
||||
fi
|
||||
RDEPEND+="
|
||||
wifi? (
|
||||
kernel_linux? ( >=sys-apps/dbus-0.60
|
||||
>=dev-libs/dbus-glib-0.72
|
||||
net-misc/networkmanager )
|
||||
)"
|
||||
fi
|
||||
|
||||
DEPEND="app-arch/zip
|
||||
app-arch/unzip
|
||||
>=sys-devel/binutils-2.16.1
|
||||
sys-apps/findutils
|
||||
pulseaudio? ( media-sound/pulseaudio )
|
||||
${RDEPEND}"
|
||||
|
||||
RDEPEND+="
|
||||
pulseaudio? ( || ( media-sound/pulseaudio
|
||||
>=media-sound/apulse-0.1.9 ) )
|
||||
selinux? ( sec-policy/selinux-mozilla )"
|
||||
|
||||
# @FUNCTION: mozconfig_config
|
||||
# @DESCRIPTION:
|
||||
# Set common configure options for mozilla packages.
|
||||
# Call this within src_configure() phase, after mozconfig_init
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# inherit mozconfig-v6.46
|
||||
#
|
||||
# src_configure() {
|
||||
# mozconfig_init
|
||||
# mozconfig_config
|
||||
# # ... misc ebuild-unique settings via calls to
|
||||
# # ... mozconfig_{annotate,use_with,use_enable}
|
||||
# mozconfig_final
|
||||
# }
|
||||
|
||||
mozconfig_config() {
|
||||
# Migrated from mozcoreconf-2
|
||||
mozconfig_annotate 'system_libs' \
|
||||
--with-system-zlib \
|
||||
--with-system-bz2
|
||||
|
||||
if has bindist ${IUSE}; then
|
||||
mozconfig_use_enable !bindist official-branding
|
||||
if [[ ${PN} == firefox ]] && use bindist ; then
|
||||
mozconfig_annotate '' --with-branding=browser/branding/aurora
|
||||
fi
|
||||
fi
|
||||
|
||||
# Enable position independent executables
|
||||
mozconfig_annotate 'enabled by Gentoo' --enable-pie
|
||||
mozconfig_use_enable debug
|
||||
mozconfig_use_enable debug tests
|
||||
|
||||
if ! use debug ; then
|
||||
mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols
|
||||
else
|
||||
mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols
|
||||
fi
|
||||
|
||||
mozconfig_use_enable startup-notification
|
||||
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]] ; then
|
||||
# wifi pulls in dbus so manage both here
|
||||
mozconfig_use_enable wifi necko-wifi
|
||||
if use kernel_linux && use wifi && ! use dbus; then
|
||||
echo "Enabling dbus support due to wifi request"
|
||||
mozconfig_annotate 'dbus required by necko-wifi on linux' --enable-dbus
|
||||
else
|
||||
mozconfig_use_enable dbus
|
||||
fi
|
||||
else
|
||||
mozconfig_use_enable dbus
|
||||
mozconfig_annotate 'disabled' --disable-necko-wifi
|
||||
fi
|
||||
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
|
||||
mozconfig_use_enable jit ion
|
||||
fi
|
||||
|
||||
# These are enabled by default in all mozilla applications
|
||||
mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${SYSROOT}${EPREFIX}"/usr
|
||||
mozconfig_annotate '' --with-system-nss --with-nss-prefix="${SYSROOT}${EPREFIX}"/usr
|
||||
mozconfig_annotate '' --x-includes="${SYSROOT}${EPREFIX}"/usr/include --x-libraries="${SYSROOT}${EPREFIX}"/usr/$(get_libdir)
|
||||
if use system-libevent; then
|
||||
mozconfig_annotate '' --with-system-libevent="${SYSROOT}${EPREFIX}"/usr
|
||||
fi
|
||||
mozconfig_annotate '' --prefix="${EPREFIX}"/usr
|
||||
mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
|
||||
mozconfig_annotate 'Gentoo default' --enable-system-hunspell
|
||||
mozconfig_annotate '' --disable-gnomeui
|
||||
mozconfig_annotate '' --enable-gio
|
||||
mozconfig_annotate '' --disable-crashreporter
|
||||
mozconfig_annotate 'Gentoo default' --with-system-png
|
||||
mozconfig_annotate '' --enable-system-ffi
|
||||
mozconfig_annotate 'Gentoo default to honor system linker' --disable-gold
|
||||
mozconfig_annotate '' --disable-gconf
|
||||
mozconfig_annotate '' --with-intl-api
|
||||
|
||||
# skia has no support for big-endian platforms
|
||||
if [[ $(tc-endian) == "big" ]]; then
|
||||
mozconfig_annotate 'big endian target' --disable-skia
|
||||
else
|
||||
mozconfig_annotate '' --enable-skia
|
||||
fi
|
||||
|
||||
# default toolkit is cairo-gtk2, optional use flags can change this
|
||||
local toolkit="cairo-gtk2"
|
||||
local toolkit_comment=""
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
|
||||
if use force-gtk3; then
|
||||
toolkit="cairo-gtk3"
|
||||
toolkit_comment="force-gtk3 use flag"
|
||||
fi
|
||||
fi
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then
|
||||
if ! use gtk2 ; then
|
||||
toolkit="cairo-gtk3"
|
||||
else
|
||||
toolkit_comment="gtk2 use flag"
|
||||
fi
|
||||
fi
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then
|
||||
if use qt5; then
|
||||
toolkit="cairo-qt"
|
||||
toolkit_comment="qt5 use flag"
|
||||
# need to specify these vars because the qt5 versions are not found otherwise,
|
||||
# and setting --with-qtdir overrides the pkg-config include dirs
|
||||
local i
|
||||
for i in qmake moc rcc; do
|
||||
echo "export HOST_${i^^}=\"$(qt5_get_bindir)/${i}\"" \
|
||||
>> "${S}"/.mozconfig || die
|
||||
done
|
||||
echo 'unset QTDIR' >> "${S}"/.mozconfig || die
|
||||
mozconfig_annotate '+qt5' --disable-gio
|
||||
fi
|
||||
fi
|
||||
mozconfig_annotate "${toolkit_comment}" --enable-default-toolkit=${toolkit}
|
||||
|
||||
# Use jemalloc unless libc is not glibc >= 2.4
|
||||
# at this time the minimum glibc in the tree is 2.9 so we should be safe.
|
||||
if use elibc_glibc && use jemalloc; then
|
||||
# We must force-enable jemalloc 4 via .mozconfig
|
||||
echo "export MOZ_JEMALLOC4=1" >> "${S}"/.mozconfig || die
|
||||
mozconfig_annotate '' --enable-replace-malloc
|
||||
fi
|
||||
|
||||
# Instead of the standard --build= and --host=, mozilla uses --host instead
|
||||
# of --build, and --target intstead of --host.
|
||||
# Note, mozilla also has --build but it does not do what you think it does.
|
||||
# Set both --target and --host as mozilla uses python to guess values otherwise
|
||||
mozconfig_annotate '' --target="${CHOST}"
|
||||
mozconfig_annotate '' --host="${CBUILD:-${CHOST}}"
|
||||
|
||||
mozconfig_use_enable pulseaudio
|
||||
# force the deprecated alsa sound code if pulseaudio is disabled
|
||||
if use kernel_linux && ! use pulseaudio ; then
|
||||
mozconfig_annotate '-pulseaudio' --enable-alsa
|
||||
fi
|
||||
|
||||
mozconfig_use_enable system-cairo
|
||||
mozconfig_use_enable system-sqlite
|
||||
mozconfig_use_with system-jpeg
|
||||
mozconfig_use_with system-icu
|
||||
mozconfig_use_with system-libvpx
|
||||
mozconfig_use_with system-harfbuzz
|
||||
mozconfig_use_with system-harfbuzz system-graphite2
|
||||
|
||||
# Modifications to better support ARM, bug 553364
|
||||
if use neon ; then
|
||||
mozconfig_annotate '' --with-fpu=neon
|
||||
mozconfig_annotate '' --with-thumb=yes
|
||||
mozconfig_annotate '' --with-thumb-interwork=no
|
||||
fi
|
||||
if [[ ${CHOST} == armv* ]] ; then
|
||||
mozconfig_annotate '' --with-float-abi=hard
|
||||
if ! use system-libvpx ; then
|
||||
sed -i -e "s|softfp|hard|" \
|
||||
"${S}"/media/libvpx/moz.build
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_install_prefs
|
||||
# @DESCRIPTION:
|
||||
# Set preferences into the prefs.js file specified as a parameter to
|
||||
# the function. This sets both some common prefs to all mozilla
|
||||
# packages, and any prefs that may relate to the use flags administered
|
||||
# by mozconfig_config().
|
||||
#
|
||||
# Call this within src_install() phase, after copying the template
|
||||
# prefs file (if any) from ${FILESDIR}
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# inherit mozconfig-v6.46
|
||||
#
|
||||
# src_install() {
|
||||
# cp "${FILESDIR}"/gentoo-default-prefs.js \
|
||||
# "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
|
||||
# || die
|
||||
#
|
||||
# mozconfig_install_prefs \
|
||||
# "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js"
|
||||
#
|
||||
# ...
|
||||
# }
|
||||
|
||||
mozconfig_install_prefs() {
|
||||
local prefs_file="${1}"
|
||||
|
||||
einfo "Adding prefs from mozconfig to ${prefs_file}"
|
||||
|
||||
# set dictionary path, to use system hunspell
|
||||
echo "pref(\"spellchecker.dictionary_path\", \"${EPREFIX}/usr/share/myspell\");" \
|
||||
>>"${prefs_file}" || die
|
||||
|
||||
# force the graphite pref if system-harfbuzz is enabled, since the pref cant disable it
|
||||
if use system-harfbuzz ; then
|
||||
echo "sticky_pref(\"gfx.font_rendering.graphite.enabled\",true);" \
|
||||
>>"${prefs_file}" || die
|
||||
fi
|
||||
|
||||
# force cairo as the canvas renderer on platforms without skia support
|
||||
if [[ $(tc-endian) == "big" ]] ; then
|
||||
echo "sticky_pref(\"gfx.canvas.azure.backends\",\"cairo\");" \
|
||||
>>"${prefs_file}" || die
|
||||
echo "sticky_pref(\"gfx.content.azure.backends\",\"cairo\");" \
|
||||
>>"${prefs_file}" || die
|
||||
fi
|
||||
}
|
@ -1,432 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# @ECLASS: mozconfig-v6.60.eclass
|
||||
# @MAINTAINER:
|
||||
# mozilla team <mozilla@gentoo.org>
|
||||
# @SUPPORTED_EAPIS: 5 6 7
|
||||
# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v6
|
||||
# @DESCRIPTION:
|
||||
# This eclass is used in mozilla ebuilds (firefox, thunderbird, seamonkey)
|
||||
# to provide a single common place for the common mozilla engine compoments.
|
||||
#
|
||||
# The eclass provides all common dependencies as well as common use flags.
|
||||
#
|
||||
# Some use flags which may be optional in particular mozilla packages can be
|
||||
# supported through setting eclass variables.
|
||||
#
|
||||
# This eclass inherits mozconfig helper functions as defined in mozcoreconf-v3,
|
||||
# and so ebuilds inheriting this eclass do not need to inherit that.
|
||||
|
||||
case ${EAPI} in
|
||||
0|1|2|3|4)
|
||||
die "EAPI=${EAPI} not supported"
|
||||
;;
|
||||
5)
|
||||
inherit multilib
|
||||
;;
|
||||
esac
|
||||
|
||||
inherit flag-o-matic toolchain-funcs mozcoreconf-v6
|
||||
|
||||
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
|
||||
# @DESCRIPTION:
|
||||
# Set this variable before the inherit line, when an ebuild needs to provide
|
||||
# optional necko-wifi support via IUSE="wifi". Currently this would include
|
||||
# ebuilds for firefox, and potentially seamonkey.
|
||||
#
|
||||
# Leave the variable UNSET if necko-wifi support should not be available.
|
||||
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||
|
||||
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_JIT
|
||||
# @DESCRIPTION:
|
||||
# Set this variable before the inherit line, when an ebuild needs to provide
|
||||
# deterministic jit support via IUSE="jit". The upstream default will be used
|
||||
# otherwise, which is generally to enable jit unless support for the platform
|
||||
# is missing.
|
||||
#
|
||||
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||
|
||||
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK3
|
||||
# @DESCRIPTION:
|
||||
# Set this variable before the inherit line, when an ebuild can provide
|
||||
# optional gtk3 support via IUSE="force-gtk3". Currently this would include
|
||||
# thunderbird and seamonkey in the future, once support is ready for testing.
|
||||
#
|
||||
# Leave the variable UNSET if gtk3 support should not be optionally available.
|
||||
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||
# If gtk+:3 is to be the standard toolkit, do not use this and instead use
|
||||
# MOZCONFIG_OPTIONAL_GTK2ONLY.
|
||||
|
||||
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK2ONLY
|
||||
# @DESCRIPTION:
|
||||
# Set this variable before the inherit line, when an ebuild can provide
|
||||
# optional gtk2-only support via IUSE="gtk2".
|
||||
#
|
||||
# Note that this option conflicts directly with MOZCONFIG_OPTIONAL_GTK3, both
|
||||
# variables cannot be set at the same time and this variable will be ignored if
|
||||
# MOZCONFIG_OPTIONAL_GTK3 is set.
|
||||
#
|
||||
# Leave the variable UNSET if gtk2-only support should not be available.
|
||||
# Set the variable to "enabled" if the use flag should be enabled by default.
|
||||
# Set the variable to any value if the use flag should exist but not be default-enabled.
|
||||
|
||||
# use-flags common among all mozilla ebuilds
|
||||
IUSE="${IUSE} clang dbus debug neon pulseaudio selinux startup-notification system-harfbuzz
|
||||
system-icu system-jpeg system-libevent system-sqlite system-libvpx"
|
||||
|
||||
# some notes on deps:
|
||||
# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14
|
||||
# media-libs/mesa needs to be 10.2 or above due to a bug with flash+vdpau
|
||||
|
||||
RDEPEND=">=app-text/hunspell-1.5.4:=
|
||||
dev-libs/atk
|
||||
dev-libs/expat
|
||||
>=x11-libs/cairo-1.10[X]
|
||||
>=x11-libs/gtk+-2.18:2
|
||||
x11-libs/gdk-pixbuf
|
||||
>=x11-libs/pango-1.22.0
|
||||
>=media-libs/libpng-1.6.34:0=[apng]
|
||||
>=media-libs/mesa-10.2:*
|
||||
media-libs/fontconfig
|
||||
>=media-libs/freetype-2.4.10
|
||||
kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) )
|
||||
virtual/freedesktop-icon-theme
|
||||
dbus? ( >=sys-apps/dbus-0.60
|
||||
>=dev-libs/dbus-glib-0.72 )
|
||||
startup-notification? ( >=x11-libs/startup-notification-0.8 )
|
||||
>=x11-libs/pixman-0.19.2
|
||||
>=dev-libs/glib-2.26:2
|
||||
>=sys-libs/zlib-1.2.3
|
||||
>=virtual/libffi-3.0.10:=
|
||||
virtual/ffmpeg
|
||||
x11-libs/libX11
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXdamage
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXt
|
||||
system-icu? ( >=dev-libs/icu-59.1:= )
|
||||
system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
|
||||
system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] )
|
||||
system-sqlite? ( >=dev-db/sqlite-3.23.1:3[secure-delete,debug=] )
|
||||
system-libvpx? (
|
||||
>=media-libs/libvpx-1.5.0:0=[postproc]
|
||||
<media-libs/libvpx-1.8:0=[postproc]
|
||||
)
|
||||
system-harfbuzz? ( >=media-libs/harfbuzz-1.4.2:0= >=media-gfx/graphite2-1.3.9-r1 )
|
||||
"
|
||||
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
|
||||
MOZCONFIG_OPTIONAL_GTK2ONLY=
|
||||
if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then
|
||||
IUSE+=" +force-gtk3"
|
||||
else
|
||||
IUSE+=" force-gtk3"
|
||||
fi
|
||||
RDEPEND+=" force-gtk3? ( >=x11-libs/gtk+-3.4.0:3 )"
|
||||
elif [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then
|
||||
if [[ ${MOZCONFIG_OPTIONAL_GTK2ONLY} = "enabled" ]]; then
|
||||
IUSE+=" +gtk2"
|
||||
else
|
||||
IUSE+=" gtk2"
|
||||
fi
|
||||
RDEPEND+=" !gtk2? ( >=x11-libs/gtk+-3.4.0:3 )"
|
||||
else
|
||||
# no gtk3 related dep set by optional use flags, force it
|
||||
RDEPEND+=" >=x11-libs/gtk+-3.4.0:3"
|
||||
fi
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then
|
||||
if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then
|
||||
IUSE+=" +wifi"
|
||||
else
|
||||
IUSE+=" wifi"
|
||||
fi
|
||||
RDEPEND+="
|
||||
wifi? (
|
||||
kernel_linux? ( >=sys-apps/dbus-0.60
|
||||
>=dev-libs/dbus-glib-0.72
|
||||
net-misc/networkmanager )
|
||||
)"
|
||||
fi
|
||||
|
||||
DEPEND="app-arch/zip
|
||||
app-arch/unzip
|
||||
>=sys-devel/binutils-2.30
|
||||
sys-apps/findutils
|
||||
|| (
|
||||
(
|
||||
sys-devel/clang:8
|
||||
!clang? ( sys-devel/llvm:8 )
|
||||
clang? (
|
||||
=sys-devel/lld-8*
|
||||
sys-devel/llvm:8[gold]
|
||||
)
|
||||
)
|
||||
(
|
||||
sys-devel/clang:7
|
||||
!clang? ( sys-devel/llvm:7 )
|
||||
clang? (
|
||||
=sys-devel/lld-7*
|
||||
sys-devel/llvm:7[gold]
|
||||
)
|
||||
)
|
||||
(
|
||||
sys-devel/clang:6
|
||||
!clang? ( sys-devel/llvm:6 )
|
||||
clang? (
|
||||
=sys-devel/lld-6*
|
||||
sys-devel/llvm:6[gold]
|
||||
)
|
||||
)
|
||||
)
|
||||
pulseaudio? ( media-sound/pulseaudio )
|
||||
elibc_glibc? (
|
||||
virtual/cargo
|
||||
virtual/rust
|
||||
)
|
||||
elibc_musl? (
|
||||
virtual/cargo
|
||||
virtual/rust
|
||||
)
|
||||
${RDEPEND}"
|
||||
|
||||
RDEPEND+="
|
||||
pulseaudio? ( || ( media-sound/pulseaudio
|
||||
>=media-sound/apulse-0.1.9 ) )
|
||||
selinux? ( sec-policy/selinux-mozilla )"
|
||||
|
||||
# @FUNCTION: mozconfig_config
|
||||
# @DESCRIPTION:
|
||||
# Set common configure options for mozilla packages.
|
||||
# Call this within src_configure() phase, after mozconfig_init
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# inherit mozconfig-v6.46
|
||||
#
|
||||
# src_configure() {
|
||||
# mozconfig_init
|
||||
# mozconfig_config
|
||||
# # ... misc ebuild-unique settings via calls to
|
||||
# # ... mozconfig_{annotate,use_with,use_enable}
|
||||
# mozconfig_final
|
||||
# }
|
||||
|
||||
mozconfig_config() {
|
||||
if use clang && ! tc-is-clang ; then
|
||||
# Force clang
|
||||
einfo "Enforcing the use of clang due to USE=clang ..."
|
||||
CC=${CHOST}-clang
|
||||
CXX=${CHOST}-clang++
|
||||
strip-unsupported-flags
|
||||
elif ! use clang && ! tc-is-gcc ; then
|
||||
# Force gcc
|
||||
einfo "Enforcing the use of gcc due to USE=-clang ..."
|
||||
CC=${CHOST}-gcc
|
||||
CXX=${CHOST}-g++
|
||||
strip-unsupported-flags
|
||||
fi
|
||||
|
||||
# Migrated from mozcoreconf-2
|
||||
mozconfig_annotate 'system_libs' \
|
||||
--with-system-zlib \
|
||||
--with-system-bz2
|
||||
|
||||
# Stylo is horribly broken on arm, renders GUI unusable
|
||||
use arm && mozconfig_annotate 'breaks UI on arm' --disable-stylo
|
||||
|
||||
# Must pass release in order to properly select linker
|
||||
mozconfig_annotate 'Enable by Gentoo' --enable-release
|
||||
|
||||
# Set correct update channel, bug 677722
|
||||
if [[ -n "${MOZ_ESR}" ]] ; then
|
||||
mozconfig_annotate 'set update channel to ESR' --enable-update-channel=esr
|
||||
fi
|
||||
|
||||
# Avoid auto-magic on linker
|
||||
if use clang ; then
|
||||
# This is upstream's default
|
||||
mozconfig_annotate "forcing ld=lld due to USE=clang" --enable-linker=lld
|
||||
elif tc-ld-is-gold ; then
|
||||
mozconfig_annotate "linker is set to gold" --enable-linker=gold
|
||||
else
|
||||
mozconfig_annotate "linker is set to bfd" --enable-linker=bfd
|
||||
fi
|
||||
|
||||
if has bindist ${IUSE}; then
|
||||
mozconfig_use_enable !bindist official-branding
|
||||
if [[ ${PN} == firefox ]] && use bindist ; then
|
||||
mozconfig_annotate '' --with-branding=browser/branding/aurora
|
||||
fi
|
||||
fi
|
||||
|
||||
# Enable position independent executables
|
||||
mozconfig_annotate 'enabled by Gentoo' --enable-pie
|
||||
mozconfig_use_enable debug
|
||||
mozconfig_use_enable debug tests
|
||||
|
||||
if ! use debug ; then
|
||||
mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols
|
||||
else
|
||||
mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols
|
||||
fi
|
||||
|
||||
mozconfig_use_enable startup-notification
|
||||
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]] ; then
|
||||
# wifi pulls in dbus so manage both here
|
||||
mozconfig_use_enable wifi necko-wifi
|
||||
if use kernel_linux && use wifi && ! use dbus; then
|
||||
echo "Enabling dbus support due to wifi request"
|
||||
mozconfig_annotate 'dbus required by necko-wifi on linux' --enable-dbus
|
||||
else
|
||||
mozconfig_use_enable dbus
|
||||
fi
|
||||
else
|
||||
mozconfig_use_enable dbus
|
||||
mozconfig_annotate 'disabled' --disable-necko-wifi
|
||||
fi
|
||||
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
|
||||
mozconfig_use_enable jit ion
|
||||
fi
|
||||
|
||||
# These are enabled by default in all mozilla applications
|
||||
mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${SYSROOT}${EPREFIX}"/usr
|
||||
mozconfig_annotate '' --with-system-nss --with-nss-prefix="${SYSROOT}${EPREFIX}"/usr
|
||||
mozconfig_annotate '' --x-includes="${SYSROOT}${EPREFIX}"/usr/include --x-libraries="${SYSROOT}${EPREFIX}"/usr/$(get_libdir)
|
||||
if use system-libevent; then
|
||||
mozconfig_annotate '' --with-system-libevent="${SYSROOT}${EPREFIX}"/usr
|
||||
fi
|
||||
mozconfig_annotate '' --prefix="${EPREFIX}"/usr
|
||||
mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
|
||||
mozconfig_annotate 'Gentoo default' --enable-system-hunspell
|
||||
mozconfig_annotate '' --disable-crashreporter
|
||||
mozconfig_annotate 'Gentoo default' --with-system-png
|
||||
mozconfig_annotate '' --enable-system-ffi
|
||||
mozconfig_annotate '' --disable-gconf
|
||||
mozconfig_annotate '' --with-intl-api
|
||||
mozconfig_annotate '' --enable-system-pixman
|
||||
|
||||
# skia has no support for big-endian platforms
|
||||
if [[ $(tc-endian) == "big" ]]; then
|
||||
mozconfig_annotate 'big endian target' --disable-skia
|
||||
else
|
||||
mozconfig_annotate '' --enable-skia
|
||||
fi
|
||||
|
||||
# default toolkit is cairo-gtk3, optional use flags can change this
|
||||
local toolkit="cairo-gtk3"
|
||||
local toolkit_comment=""
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
|
||||
if ! use force-gtk3; then
|
||||
toolkit="cairo-gtk2"
|
||||
toolkit_comment="force-gtk3 use flag"
|
||||
fi
|
||||
fi
|
||||
if [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then
|
||||
if use gtk2 ; then
|
||||
toolkit="cairo-gtk2"
|
||||
else
|
||||
toolkit_comment="gtk2 use flag"
|
||||
fi
|
||||
fi
|
||||
mozconfig_annotate "${toolkit_comment}" --enable-default-toolkit=${toolkit}
|
||||
|
||||
# Instead of the standard --build= and --host=, mozilla uses --host instead
|
||||
# of --build, and --target intstead of --host.
|
||||
# Note, mozilla also has --build but it does not do what you think it does.
|
||||
# Set both --target and --host as mozilla uses python to guess values otherwise
|
||||
mozconfig_annotate '' --target="${CHOST}"
|
||||
mozconfig_annotate '' --host="${CBUILD:-${CHOST}}"
|
||||
|
||||
mozconfig_use_enable pulseaudio
|
||||
# force the deprecated alsa sound code if pulseaudio is disabled
|
||||
if use kernel_linux && ! use pulseaudio ; then
|
||||
mozconfig_annotate '-pulseaudio' --enable-alsa
|
||||
fi
|
||||
|
||||
mozconfig_use_enable system-sqlite
|
||||
mozconfig_use_with system-jpeg
|
||||
mozconfig_use_with system-icu
|
||||
mozconfig_use_with system-libvpx
|
||||
mozconfig_use_with system-harfbuzz
|
||||
mozconfig_use_with system-harfbuzz system-graphite2
|
||||
|
||||
if use clang ; then
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1423822
|
||||
mozconfig_annotate 'elf-hack is broken when using Clang' --disable-elf-hack
|
||||
fi
|
||||
|
||||
# Modifications to better support ARM, bug 553364
|
||||
if use neon ; then
|
||||
mozconfig_annotate '' --with-fpu=neon
|
||||
|
||||
if ! tc-is-clang ; then
|
||||
# thumb options aren't supported when using clang, bug 666966
|
||||
mozconfig_annotate '' --with-thumb=yes
|
||||
mozconfig_annotate '' --with-thumb-interwork=no
|
||||
fi
|
||||
fi
|
||||
if [[ ${CHOST} == armv*h* ]] ; then
|
||||
mozconfig_annotate '' --with-float-abi=hard
|
||||
if ! use system-libvpx ; then
|
||||
sed -i -e "s|softfp|hard|" \
|
||||
"${S}"/media/libvpx/moz.build
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_install_prefs
|
||||
# @DESCRIPTION:
|
||||
# Set preferences into the prefs.js file specified as a parameter to
|
||||
# the function. This sets both some common prefs to all mozilla
|
||||
# packages, and any prefs that may relate to the use flags administered
|
||||
# by mozconfig_config().
|
||||
#
|
||||
# Call this within src_install() phase, after copying the template
|
||||
# prefs file (if any) from ${FILESDIR}
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# inherit mozconfig-v6.46
|
||||
#
|
||||
# src_install() {
|
||||
# cp "${FILESDIR}"/gentoo-default-prefs.js \
|
||||
# "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \
|
||||
# || die
|
||||
#
|
||||
# mozconfig_install_prefs \
|
||||
# "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js"
|
||||
#
|
||||
# ...
|
||||
# }
|
||||
|
||||
mozconfig_install_prefs() {
|
||||
local prefs_file="${1}"
|
||||
|
||||
einfo "Adding prefs from mozconfig to ${prefs_file}"
|
||||
|
||||
# set dictionary path, to use system hunspell
|
||||
echo "pref(\"spellchecker.dictionary_path\", \"${EPREFIX}/usr/share/myspell\");" \
|
||||
>>"${prefs_file}" || die
|
||||
|
||||
# force the graphite pref if system-harfbuzz is enabled, since the pref cant disable it
|
||||
if use system-harfbuzz ; then
|
||||
echo "sticky_pref(\"gfx.font_rendering.graphite.enabled\",true);" \
|
||||
>>"${prefs_file}" || die
|
||||
fi
|
||||
|
||||
# force cairo as the canvas renderer on platforms without skia support
|
||||
if [[ $(tc-endian) == "big" ]] ; then
|
||||
echo "sticky_pref(\"gfx.canvas.azure.backends\",\"cairo\");" \
|
||||
>>"${prefs_file}" || die
|
||||
echo "sticky_pref(\"gfx.content.azure.backends\",\"cairo\");" \
|
||||
>>"${prefs_file}" || die
|
||||
fi
|
||||
}
|
@ -1,261 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# @ECLASS: mozcoreconf-v4.eclass
|
||||
# @MAINTAINER:
|
||||
# Mozilla team <mozilla@gentoo.org>
|
||||
# @BLURB: core options and configuration functions for mozilla
|
||||
# @DESCRIPTION:
|
||||
#
|
||||
# inherit mozconfig-v6.* or above for mozilla configuration support
|
||||
|
||||
# @ECLASS-VARIABLE: MOZILLA_FIVE_HOME
|
||||
# @DESCRIPTION:
|
||||
# This is an eclass-generated variable that defines the rpath that the mozilla
|
||||
# product will be installed in. Read-only
|
||||
|
||||
if [[ ! ${_MOZCORECONF} ]]; then
|
||||
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
PYTHON_REQ_USE='ncurses,sqlite,ssl,threads'
|
||||
|
||||
inherit multilib toolchain-funcs flag-o-matic python-any-r1 versionator
|
||||
|
||||
IUSE="${IUSE} custom-cflags custom-optimization"
|
||||
|
||||
DEPEND="virtual/pkgconfig
|
||||
${PYTHON_DEPS}"
|
||||
|
||||
# @FUNCTION: mozconfig_annotate
|
||||
# @DESCRIPTION:
|
||||
# add an annotated line to .mozconfig
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_annotate "building on ultrasparc" --enable-js-ultrasparc
|
||||
# => ac_add_options --enable-js-ultrasparc # building on ultrasparc
|
||||
mozconfig_annotate() {
|
||||
declare reason=$1 x ; shift
|
||||
[[ $# -gt 0 ]] || die "mozconfig_annotate missing flags for ${reason}\!"
|
||||
for x in ${*}; do
|
||||
echo "ac_add_options ${x} # ${reason}" >>.mozconfig
|
||||
done
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_use_enable
|
||||
# @DESCRIPTION:
|
||||
# add a line to .mozconfig based on a USE-flag
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_use_enable truetype freetype2
|
||||
# => ac_add_options --enable-freetype2 # +truetype
|
||||
mozconfig_use_enable() {
|
||||
declare flag=$(use_enable "$@")
|
||||
mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}"
|
||||
}
|
||||
|
||||
# @FUNCTION mozconfig_use_with
|
||||
# @DESCRIPTION
|
||||
# add a line to .mozconfig based on a USE-flag
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_use_with kerberos gss-api /usr/$(get_libdir)
|
||||
# => ac_add_options --with-gss-api=/usr/lib # +kerberos
|
||||
mozconfig_use_with() {
|
||||
declare flag=$(use_with "$@")
|
||||
mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}"
|
||||
}
|
||||
|
||||
# @FUNCTION mozconfig_use_extension
|
||||
# @DESCRIPTION
|
||||
# enable or disable an extension based on a USE-flag
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_use_extension gnome gnomevfs
|
||||
# => ac_add_options --enable-extensions=gnomevfs
|
||||
mozconfig_use_extension() {
|
||||
declare minus=$(use $1 || echo -)
|
||||
mozconfig_annotate "${minus:-+}$1" --enable-extensions=${minus}${2}
|
||||
}
|
||||
|
||||
moz_pkgsetup() {
|
||||
# Ensure we use C locale when building
|
||||
export LANG="C"
|
||||
export LC_ALL="C"
|
||||
export LC_MESSAGES="C"
|
||||
export LC_CTYPE="C"
|
||||
|
||||
# Ensure we use correct toolchain
|
||||
export HOST_CC="$(tc-getBUILD_CC)"
|
||||
export HOST_CXX="$(tc-getBUILD_CXX)"
|
||||
tc-export CC CXX LD PKG_CONFIG
|
||||
|
||||
# Ensure that we have a sane build enviroment
|
||||
export MOZILLA_CLIENT=1
|
||||
export BUILD_OPT=1
|
||||
export NO_STATIC_LIB=1
|
||||
export USE_PTHREADS=1
|
||||
export ALDFLAGS=${LDFLAGS}
|
||||
# ensure MOZCONFIG is not defined
|
||||
unset MOZCONFIG
|
||||
|
||||
# set MOZILLA_FIVE_HOME
|
||||
export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
|
||||
|
||||
# nested configure scripts in mozilla products generate unrecognized options
|
||||
# false positives when toplevel configure passes downwards.
|
||||
export QA_CONFIGURE_OPTIONS=".*"
|
||||
|
||||
if [[ $(gcc-major-version) -eq 3 ]]; then
|
||||
ewarn "Unsupported compiler detected, DO NOT file bugs for"
|
||||
ewarn "outdated compilers. Bugs opened with gcc-3 will be closed"
|
||||
ewarn "invalid."
|
||||
fi
|
||||
|
||||
python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_init
|
||||
# @DESCRIPTION:
|
||||
# Initialize mozilla configuration and populate with core settings.
|
||||
# This should be called in src_configure before any other mozconfig_* functions.
|
||||
mozconfig_init() {
|
||||
declare enable_optimize pango_version myext x
|
||||
declare XUL=$([[ ${PN} == xulrunner ]] && echo true || echo false)
|
||||
declare FF=$([[ ${PN} == firefox ]] && echo true || echo false)
|
||||
declare SM=$([[ ${PN} == seamonkey ]] && echo true || echo false)
|
||||
declare TB=$([[ ${PN} == thunderbird ]] && echo true || echo false)
|
||||
|
||||
####################################
|
||||
#
|
||||
# Setup the initial .mozconfig
|
||||
# See http://www.mozilla.org/build/configure-build.html
|
||||
#
|
||||
####################################
|
||||
|
||||
case ${PN} in
|
||||
*xulrunner)
|
||||
cp xulrunner/config/mozconfig .mozconfig \
|
||||
|| die "cp xulrunner/config/mozconfig failed" ;;
|
||||
*firefox)
|
||||
cp browser/config/mozconfig .mozconfig \
|
||||
|| die "cp browser/config/mozconfig failed" ;;
|
||||
seamonkey)
|
||||
# Must create the initial mozconfig to enable application
|
||||
: >.mozconfig || die "initial mozconfig creation failed"
|
||||
mozconfig_annotate "" --enable-application=suite ;;
|
||||
*thunderbird)
|
||||
# Must create the initial mozconfig to enable application
|
||||
: >.mozconfig || die "initial mozconfig creation failed"
|
||||
mozconfig_annotate "" --enable-application=mail ;;
|
||||
esac
|
||||
|
||||
####################################
|
||||
#
|
||||
# CFLAGS setup and ARCH support
|
||||
#
|
||||
####################################
|
||||
|
||||
# Set optimization level
|
||||
if [[ ${ARCH} == hppa ]]; then
|
||||
mozconfig_annotate "more than -O0 causes a segfault on hppa" --enable-optimize=-O0
|
||||
elif [[ ${ARCH} == x86 ]]; then
|
||||
mozconfig_annotate "less then -O2 causes a segfault on x86" --enable-optimize=-O2
|
||||
elif use custom-optimization || [[ ${ARCH} =~ (alpha|ia64) ]]; then
|
||||
# Set optimization level based on CFLAGS
|
||||
if is-flag -O0; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O0
|
||||
elif [[ ${ARCH} == ppc ]] && has_version '>=sys-libs/glibc-2.8'; then
|
||||
mozconfig_annotate "more than -O1 segfaults on ppc with glibc-2.8" --enable-optimize=-O1
|
||||
elif is-flag -O4; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O4
|
||||
elif is-flag -O3; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O3
|
||||
elif is-flag -O1; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O1
|
||||
elif is-flag -Os; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-Os
|
||||
else
|
||||
mozconfig_annotate "Gentoo's default optimization" --enable-optimize=-O2
|
||||
fi
|
||||
else
|
||||
# Enable Mozilla's default
|
||||
mozconfig_annotate "mozilla default" --enable-optimize
|
||||
fi
|
||||
|
||||
# Strip optimization so it does not end up in compile string
|
||||
filter-flags '-O*'
|
||||
|
||||
# Strip over-aggressive CFLAGS
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
# Additional ARCH support
|
||||
case "${ARCH}" in
|
||||
alpha)
|
||||
# Historically we have needed to add -fPIC manually for 64-bit.
|
||||
# Additionally, alpha should *always* build with -mieee for correct math
|
||||
# operation
|
||||
append-flags -fPIC -mieee
|
||||
;;
|
||||
|
||||
ia64)
|
||||
# Historically we have needed to add this manually for 64-bit
|
||||
append-flags -fPIC
|
||||
;;
|
||||
|
||||
ppc64)
|
||||
append-flags -fPIC -mminimal-toc
|
||||
;;
|
||||
esac
|
||||
|
||||
# We need to append flags for gcc-6 support
|
||||
if [[ $(gcc-major-version) -ge 6 ]]; then
|
||||
append-cxxflags -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2
|
||||
fi
|
||||
|
||||
# Use the MOZILLA_FIVE_HOME for the rpath
|
||||
append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
|
||||
# Set MOZILLA_FIVE_HOME in mozconfig
|
||||
mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME}
|
||||
|
||||
####################################
|
||||
#
|
||||
# mozconfig setup
|
||||
#
|
||||
####################################
|
||||
|
||||
mozconfig_annotate disable_update_strip \
|
||||
--disable-updater \
|
||||
--disable-strip \
|
||||
--disable-install-strip
|
||||
|
||||
# jemalloc won't build with older glibc
|
||||
! has_version ">=sys-libs/glibc-2.4" && mozconfig_annotate "we have old glibc" --disable-jemalloc
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_final
|
||||
# @DESCRIPTION:
|
||||
# Display a table describing all configuration options paired
|
||||
# with reasons, then clean up extensions list.
|
||||
# This should be called in src_configure at the end of all other mozconfig_* functions.
|
||||
mozconfig_final() {
|
||||
declare ac opt hash reason
|
||||
echo
|
||||
echo "=========================================================="
|
||||
echo "Building ${PF} with the following configuration"
|
||||
grep ^ac_add_options .mozconfig | while read ac opt hash reason; do
|
||||
[[ -z ${hash} || ${hash} == \# ]] \
|
||||
|| die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
|
||||
printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
|
||||
done
|
||||
echo "=========================================================="
|
||||
echo
|
||||
|
||||
# Resolve multiple --enable-extensions down to one
|
||||
declare exts=$(sed -n 's/^ac_add_options --enable-extensions=\([^ ]*\).*/\1/p' \
|
||||
.mozconfig | xargs)
|
||||
sed -i '/^ac_add_options --enable-extensions/d' .mozconfig
|
||||
echo "ac_add_options --enable-extensions=${exts// /,}" >> .mozconfig
|
||||
}
|
||||
|
||||
_MOZCORECONF=1
|
||||
fi
|
@ -1,277 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# @ECLASS: mozcoreconf-v5.eclass
|
||||
# @MAINTAINER:
|
||||
# Mozilla team <mozilla@gentoo.org>
|
||||
# @BLURB: core options and configuration functions for mozilla
|
||||
# @DESCRIPTION:
|
||||
#
|
||||
# inherit mozconfig-v6.* or above for mozilla configuration support
|
||||
|
||||
# @ECLASS-VARIABLE: MOZILLA_FIVE_HOME
|
||||
# @DESCRIPTION:
|
||||
# This is an eclass-generated variable that defines the rpath that the mozilla
|
||||
# product will be installed in. Read-only
|
||||
|
||||
if [[ ! ${_MOZCORECONF} ]]; then
|
||||
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
PYTHON_REQ_USE='ncurses,sqlite,ssl,threads'
|
||||
|
||||
inherit multilib toolchain-funcs flag-o-matic python-any-r1 versionator
|
||||
|
||||
IUSE="${IUSE} custom-cflags custom-optimization"
|
||||
|
||||
DEPEND="virtual/pkgconfig
|
||||
${PYTHON_DEPS}"
|
||||
|
||||
# @FUNCTION: mozconfig_annotate
|
||||
# @DESCRIPTION:
|
||||
# add an annotated line to .mozconfig
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_annotate "building on ultrasparc" --enable-js-ultrasparc
|
||||
# => ac_add_options --enable-js-ultrasparc # building on ultrasparc
|
||||
mozconfig_annotate() {
|
||||
declare reason=$1 x ; shift
|
||||
[[ $# -gt 0 ]] || die "mozconfig_annotate missing flags for ${reason}\!"
|
||||
for x in ${*}; do
|
||||
echo "ac_add_options ${x} # ${reason}" >>.mozconfig
|
||||
done
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_use_enable
|
||||
# @DESCRIPTION:
|
||||
# add a line to .mozconfig based on a USE-flag
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_use_enable truetype freetype2
|
||||
# => ac_add_options --enable-freetype2 # +truetype
|
||||
mozconfig_use_enable() {
|
||||
declare flag=$(use_enable "$@")
|
||||
mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}"
|
||||
}
|
||||
|
||||
# @FUNCTION mozconfig_use_with
|
||||
# @DESCRIPTION
|
||||
# add a line to .mozconfig based on a USE-flag
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_use_with kerberos gss-api /usr/$(get_libdir)
|
||||
# => ac_add_options --with-gss-api=/usr/lib # +kerberos
|
||||
mozconfig_use_with() {
|
||||
declare flag=$(use_with "$@")
|
||||
mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}"
|
||||
}
|
||||
|
||||
# @FUNCTION mozconfig_use_extension
|
||||
# @DESCRIPTION
|
||||
# enable or disable an extension based on a USE-flag
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_use_extension gnome gnomevfs
|
||||
# => ac_add_options --enable-extensions=gnomevfs
|
||||
mozconfig_use_extension() {
|
||||
declare minus=$(use $1 || echo -)
|
||||
mozconfig_annotate "${minus:-+}$1" --enable-extensions=${minus}${2}
|
||||
}
|
||||
|
||||
moz_pkgsetup() {
|
||||
# Ensure we use C locale when building
|
||||
export LANG="C"
|
||||
export LC_ALL="C"
|
||||
export LC_MESSAGES="C"
|
||||
export LC_CTYPE="C"
|
||||
|
||||
# Ensure we use correct toolchain
|
||||
export HOST_CC="$(tc-getBUILD_CC)"
|
||||
export HOST_CXX="$(tc-getBUILD_CXX)"
|
||||
tc-export CC CXX LD PKG_CONFIG
|
||||
|
||||
# Ensure that we have a sane build enviroment
|
||||
export MOZILLA_CLIENT=1
|
||||
export BUILD_OPT=1
|
||||
export NO_STATIC_LIB=1
|
||||
export USE_PTHREADS=1
|
||||
export ALDFLAGS=${LDFLAGS}
|
||||
# ensure MOZCONFIG is not defined
|
||||
unset MOZCONFIG
|
||||
|
||||
# set MOZILLA_FIVE_HOME
|
||||
export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
|
||||
|
||||
# nested configure scripts in mozilla products generate unrecognized options
|
||||
# false positives when toplevel configure passes downwards.
|
||||
export QA_CONFIGURE_OPTIONS=".*"
|
||||
|
||||
if [[ $(gcc-major-version) -eq 3 ]]; then
|
||||
ewarn "Unsupported compiler detected, DO NOT file bugs for"
|
||||
ewarn "outdated compilers. Bugs opened with gcc-3 will be closed"
|
||||
ewarn "invalid."
|
||||
fi
|
||||
|
||||
python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_init
|
||||
# @DESCRIPTION:
|
||||
# Initialize mozilla configuration and populate with core settings.
|
||||
# This should be called in src_configure before any other mozconfig_* functions.
|
||||
mozconfig_init() {
|
||||
declare enable_optimize pango_version myext x
|
||||
declare XUL=$([[ ${PN} == xulrunner ]] && echo true || echo false)
|
||||
declare FF=$([[ ${PN} == firefox ]] && echo true || echo false)
|
||||
declare SM=$([[ ${PN} == seamonkey ]] && echo true || echo false)
|
||||
declare TB=$([[ ${PN} == thunderbird ]] && echo true || echo false)
|
||||
|
||||
####################################
|
||||
#
|
||||
# Setup the initial .mozconfig
|
||||
# See http://www.mozilla.org/build/configure-build.html
|
||||
#
|
||||
####################################
|
||||
|
||||
case ${PN} in
|
||||
*xulrunner)
|
||||
cp xulrunner/config/mozconfig .mozconfig \
|
||||
|| die "cp xulrunner/config/mozconfig failed" ;;
|
||||
*firefox)
|
||||
cp browser/config/mozconfig .mozconfig \
|
||||
|| die "cp browser/config/mozconfig failed" ;;
|
||||
seamonkey)
|
||||
# Must create the initial mozconfig to enable application
|
||||
: >.mozconfig || die "initial mozconfig creation failed"
|
||||
mozconfig_annotate "" --enable-application=suite ;;
|
||||
*thunderbird)
|
||||
# Must create the initial mozconfig to enable application
|
||||
: >.mozconfig || die "initial mozconfig creation failed"
|
||||
mozconfig_annotate "" --enable-application=mail ;;
|
||||
esac
|
||||
|
||||
####################################
|
||||
#
|
||||
# CFLAGS setup and ARCH support
|
||||
#
|
||||
####################################
|
||||
|
||||
# Set optimization level
|
||||
if [[ $(gcc-major-version) -ge 7 ]]; then
|
||||
mozconfig_annotate "Workaround known breakage" --enable-optimize=-O2
|
||||
elif [[ ${ARCH} == hppa ]]; then
|
||||
mozconfig_annotate "more than -O0 causes a segfault on hppa" --enable-optimize=-O0
|
||||
elif [[ ${ARCH} == x86 ]]; then
|
||||
mozconfig_annotate "less then -O2 causes a segfault on x86" --enable-optimize=-O2
|
||||
elif use custom-optimization || [[ ${ARCH} =~ (alpha|ia64) ]]; then
|
||||
# Set optimization level based on CFLAGS
|
||||
if is-flag -O0; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O0
|
||||
elif [[ ${ARCH} == ppc ]] && has_version '>=sys-libs/glibc-2.8'; then
|
||||
mozconfig_annotate "more than -O1 segfaults on ppc with glibc-2.8" --enable-optimize=-O1
|
||||
elif is-flag -O4; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O4
|
||||
elif is-flag -O3; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O3
|
||||
elif is-flag -O1; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O1
|
||||
elif is-flag -Os; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-Os
|
||||
else
|
||||
mozconfig_annotate "Gentoo's default optimization" --enable-optimize=-O2
|
||||
fi
|
||||
else
|
||||
# Enable Mozilla's default
|
||||
mozconfig_annotate "mozilla default" --enable-optimize
|
||||
fi
|
||||
|
||||
# Strip optimization so it does not end up in compile string
|
||||
filter-flags '-O*'
|
||||
|
||||
# Strip over-aggressive CFLAGS
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
# Additional ARCH support
|
||||
case "${ARCH}" in
|
||||
arm)
|
||||
# Reduce the memory requirements for linking
|
||||
append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
|
||||
;;
|
||||
alpha)
|
||||
# Historically we have needed to add -fPIC manually for 64-bit.
|
||||
# Additionally, alpha should *always* build with -mieee for correct math
|
||||
# operation
|
||||
append-flags -fPIC -mieee
|
||||
;;
|
||||
ia64)
|
||||
# Historically we have needed to add this manually for 64-bit
|
||||
append-flags -fPIC
|
||||
;;
|
||||
ppc64)
|
||||
append-flags -fPIC -mminimal-toc
|
||||
# Reduce the memory requirements for linking
|
||||
append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
|
||||
;;
|
||||
esac
|
||||
|
||||
# We need to append flags for gcc-6 support
|
||||
if [[ $(gcc-major-version) -ge 6 ]]; then
|
||||
append-cxxflags -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2
|
||||
fi
|
||||
|
||||
# Use the MOZILLA_FIVE_HOME for the rpath
|
||||
append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
|
||||
# Set MOZILLA_FIVE_HOME in mozconfig
|
||||
mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME}
|
||||
|
||||
####################################
|
||||
#
|
||||
# mozconfig setup
|
||||
#
|
||||
####################################
|
||||
|
||||
mozconfig_annotate disable_update_strip \
|
||||
--disable-updater \
|
||||
--disable-strip \
|
||||
--disable-install-strip
|
||||
|
||||
# jemalloc won't build with older glibc
|
||||
! has_version ">=sys-libs/glibc-2.4" && mozconfig_annotate "we have old glibc" --disable-jemalloc
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_final
|
||||
# @DESCRIPTION:
|
||||
# Apply EXTRA_ECONF values to .mozconfig
|
||||
# Display a table describing all configuration options paired
|
||||
# with reasons, then clean up extensions list.
|
||||
# This should be called in src_configure at the end of all other mozconfig_* functions.
|
||||
mozconfig_final() {
|
||||
declare ac opt hash reason
|
||||
|
||||
# Apply EXTRA_ECONF entries to .mozconfig
|
||||
if [[ -n ${EXTRA_ECONF} ]]; then
|
||||
IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
|
||||
for opt in "${ac[@]}"; do
|
||||
mozconfig_annotate "EXTRA_ECONF" --${opt#--}
|
||||
done
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "=========================================================="
|
||||
echo "Building ${PF} with the following configuration"
|
||||
grep ^ac_add_options .mozconfig | while read ac opt hash reason; do
|
||||
[[ -z ${hash} || ${hash} == \# ]] \
|
||||
|| die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
|
||||
printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
|
||||
done
|
||||
echo "=========================================================="
|
||||
echo
|
||||
|
||||
# Resolve multiple --enable-extensions down to one
|
||||
declare exts=$(sed -n 's/^ac_add_options --enable-extensions=\([^ ]*\).*/\1/p' \
|
||||
.mozconfig | xargs)
|
||||
sed -i '/^ac_add_options --enable-extensions/d' .mozconfig
|
||||
echo "ac_add_options --enable-extensions=${exts// /,}" >> .mozconfig
|
||||
}
|
||||
|
||||
_MOZCORECONF=1
|
||||
fi
|
@ -1,300 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# @ECLASS: mozcoreconf-v6.eclass
|
||||
# @MAINTAINER:
|
||||
# Mozilla team <mozilla@gentoo.org>
|
||||
# @BLURB: core options and configuration functions for mozilla
|
||||
# @DESCRIPTION:
|
||||
#
|
||||
# inherit mozconfig-v6.* or above for mozilla configuration support
|
||||
|
||||
# @ECLASS-VARIABLE: MOZILLA_FIVE_HOME
|
||||
# @DESCRIPTION:
|
||||
# This is an eclass-generated variable that defines the rpath that the mozilla
|
||||
# product will be installed in. Read-only
|
||||
|
||||
if [[ ! ${_MOZCORECONF} ]]; then
|
||||
|
||||
inherit multilib toolchain-funcs flag-o-matic python-any-r1 versionator
|
||||
|
||||
IUSE="${IUSE} custom-cflags custom-optimization"
|
||||
|
||||
DEPEND="virtual/pkgconfig
|
||||
dev-lang/python:2.7[ncurses,sqlite,ssl,threads(+)]
|
||||
${PYTHON_DEPS}"
|
||||
|
||||
# @FUNCTION: mozconfig_annotate
|
||||
# @DESCRIPTION:
|
||||
# add an annotated line to .mozconfig
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_annotate "building on ultrasparc" --enable-js-ultrasparc
|
||||
# => ac_add_options --enable-js-ultrasparc # building on ultrasparc
|
||||
mozconfig_annotate() {
|
||||
declare reason=$1 x ; shift
|
||||
[[ $# -gt 0 ]] || die "mozconfig_annotate missing flags for ${reason}\!"
|
||||
for x in ${*}; do
|
||||
echo "ac_add_options ${x} # ${reason}" >>.mozconfig
|
||||
done
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_use_enable
|
||||
# @DESCRIPTION:
|
||||
# add a line to .mozconfig based on a USE-flag
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_use_enable truetype freetype2
|
||||
# => ac_add_options --enable-freetype2 # +truetype
|
||||
mozconfig_use_enable() {
|
||||
declare flag=$(use_enable "$@")
|
||||
mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}"
|
||||
}
|
||||
|
||||
# @FUNCTION mozconfig_use_with
|
||||
# @DESCRIPTION
|
||||
# add a line to .mozconfig based on a USE-flag
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_use_with kerberos gss-api /usr/$(get_libdir)
|
||||
# => ac_add_options --with-gss-api=/usr/lib # +kerberos
|
||||
mozconfig_use_with() {
|
||||
declare flag=$(use_with "$@")
|
||||
mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}"
|
||||
}
|
||||
|
||||
# @FUNCTION mozconfig_use_extension
|
||||
# @DESCRIPTION
|
||||
# enable or disable an extension based on a USE-flag
|
||||
#
|
||||
# Example:
|
||||
# mozconfig_use_extension gnome gnomevfs
|
||||
# => ac_add_options --enable-extensions=gnomevfs
|
||||
mozconfig_use_extension() {
|
||||
declare minus=$(use $1 || echo -)
|
||||
mozconfig_annotate "${minus:-+}$1" --enable-extensions=${minus}${2}
|
||||
}
|
||||
|
||||
moz_pkgsetup() {
|
||||
# Ensure we use C locale when building
|
||||
export LANG="C"
|
||||
export LC_ALL="C"
|
||||
export LC_MESSAGES="C"
|
||||
export LC_CTYPE="C"
|
||||
|
||||
# Ensure we use correct toolchain
|
||||
export HOST_CC="$(tc-getBUILD_CC)"
|
||||
export HOST_CXX="$(tc-getBUILD_CXX)"
|
||||
tc-export CC CXX LD PKG_CONFIG AR RANLIB
|
||||
|
||||
# Ensure that we have a sane build enviroment
|
||||
export MOZILLA_CLIENT=1
|
||||
export BUILD_OPT=1
|
||||
export NO_STATIC_LIB=1
|
||||
export USE_PTHREADS=1
|
||||
export ALDFLAGS=${LDFLAGS}
|
||||
# ensure MOZCONFIG is not defined
|
||||
unset MOZCONFIG
|
||||
|
||||
# set MOZILLA_FIVE_HOME
|
||||
export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}"
|
||||
|
||||
# nested configure scripts in mozilla products generate unrecognized options
|
||||
# false positives when toplevel configure passes downwards.
|
||||
export QA_CONFIGURE_OPTIONS=".*"
|
||||
|
||||
if [[ $(gcc-major-version) -eq 3 ]]; then
|
||||
ewarn "Unsupported compiler detected, DO NOT file bugs for"
|
||||
ewarn "outdated compilers. Bugs opened with gcc-3 will be closed"
|
||||
ewarn "invalid."
|
||||
fi
|
||||
|
||||
python-any-r1_pkg_setup
|
||||
# workaround to set python3 into PYTHON3 until mozilla doesn't need py2
|
||||
if [[ "${PYTHON_COMPAT[@]}" != "${PYTHON_COMPAT[@]#python3*}" ]]; then
|
||||
export PYTHON3=${PYTHON}
|
||||
python_export python2_7 PYTHON EPYTHON
|
||||
fi
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_init
|
||||
# @DESCRIPTION:
|
||||
# Initialize mozilla configuration and populate with core settings.
|
||||
# This should be called in src_configure before any other mozconfig_* functions.
|
||||
mozconfig_init() {
|
||||
declare enable_optimize pango_version myext x
|
||||
declare XUL=$([[ ${PN} == xulrunner ]] && echo true || echo false)
|
||||
declare FF=$([[ ${PN} == firefox ]] && echo true || echo false)
|
||||
declare SM=$([[ ${PN} == seamonkey ]] && echo true || echo false)
|
||||
declare TB=$([[ ${PN} == thunderbird ]] && echo true || echo false)
|
||||
declare TRB=$([[ ${PN} == torbrowser ]] && echo true || echo false)
|
||||
|
||||
####################################
|
||||
#
|
||||
# Setup the initial .mozconfig
|
||||
# See http://www.mozilla.org/build/configure-build.html
|
||||
#
|
||||
####################################
|
||||
|
||||
case ${PN} in
|
||||
*xulrunner)
|
||||
cp xulrunner/config/mozconfig .mozconfig \
|
||||
|| die "cp xulrunner/config/mozconfig failed" ;;
|
||||
*firefox)
|
||||
cp browser/config/mozconfig .mozconfig \
|
||||
|| die "cp browser/config/mozconfig failed" ;;
|
||||
*torbrowser)
|
||||
cp browser/config/mozconfig .mozconfig \
|
||||
|| die "cp browser/config/mozconfig failed" ;;
|
||||
seamonkey)
|
||||
# Must create the initial mozconfig to enable application
|
||||
: >.mozconfig || die "initial mozconfig creation failed"
|
||||
# NOTE--this is not compatible with mozilla prior to v60
|
||||
mozconfig_annotate "" --enable-application=comm/suite ;;
|
||||
*thunderbird)
|
||||
# Must create the initial mozconfig to enable application
|
||||
: >.mozconfig || die "initial mozconfig creation failed"
|
||||
# NOTE--this is not compatible with mozilla prior to v60
|
||||
mozconfig_annotate "" --enable-application=comm/mail ;;
|
||||
esac
|
||||
|
||||
####################################
|
||||
#
|
||||
# CFLAGS setup and ARCH support
|
||||
#
|
||||
####################################
|
||||
|
||||
# Set optimization level
|
||||
if [[ $(gcc-major-version) -eq 7 ]]; then
|
||||
mozconfig_annotate "Workaround known breakage" --enable-optimize=-O2
|
||||
elif [[ ${ARCH} == hppa ]]; then
|
||||
mozconfig_annotate "more than -O0 causes a segfault on hppa" --enable-optimize=-O0
|
||||
elif [[ ${ARCH} == x86 ]]; then
|
||||
mozconfig_annotate "less than -O2 causes a segfault on x86" --enable-optimize=-O2
|
||||
elif [[ ${ARCH} == arm ]] && [[ $(gcc-major-version) -ge 6 ]]; then
|
||||
mozconfig_annotate "less than -O2 causes a breakage on arm with gcc-6" --enable-optimize=-O2
|
||||
elif use custom-optimization || [[ ${ARCH} =~ (alpha|ia64) ]]; then
|
||||
# Set optimization level based on CFLAGS
|
||||
if is-flag -O0; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O0
|
||||
elif [[ ${ARCH} == ppc ]] && has_version '>=sys-libs/glibc-2.8'; then
|
||||
mozconfig_annotate "more than -O1 segfaults on ppc with glibc-2.8" --enable-optimize=-O1
|
||||
elif is-flag -O4; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O4
|
||||
elif is-flag -O3; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O3
|
||||
elif is-flag -O1; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-O1
|
||||
elif is-flag -Os; then
|
||||
mozconfig_annotate "from CFLAGS" --enable-optimize=-Os
|
||||
else
|
||||
mozconfig_annotate "Gentoo's default optimization" --enable-optimize=-O2
|
||||
fi
|
||||
else
|
||||
# Enable Mozilla's default
|
||||
mozconfig_annotate "mozilla default" --enable-optimize
|
||||
fi
|
||||
|
||||
# Strip optimization so it does not end up in compile string
|
||||
filter-flags '-O*'
|
||||
|
||||
# Strip over-aggressive CFLAGS
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
# Additional ARCH support
|
||||
case "${ARCH}" in
|
||||
arm)
|
||||
# Reduce the memory requirements for linking
|
||||
if use clang ; then
|
||||
# Nothing to do
|
||||
:;
|
||||
elif tc-ld-is-gold ; then
|
||||
append-ldflags -Wl,--no-keep-memory
|
||||
else
|
||||
append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
|
||||
fi
|
||||
;;
|
||||
alpha)
|
||||
# Historically we have needed to add -fPIC manually for 64-bit.
|
||||
# Additionally, alpha should *always* build with -mieee for correct math
|
||||
# operation
|
||||
append-flags -fPIC -mieee
|
||||
;;
|
||||
ia64)
|
||||
# Historically we have needed to add this manually for 64-bit
|
||||
append-flags -fPIC
|
||||
;;
|
||||
ppc64)
|
||||
append-flags -fPIC -mminimal-toc
|
||||
# Reduce the memory requirements for linking
|
||||
if use clang ; then
|
||||
# Nothing to do
|
||||
:;
|
||||
elif tc-ld-is-gold ; then
|
||||
append-ldflags -Wl,--no-keep-memory
|
||||
else
|
||||
append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# We need to append flags for gcc-6 support
|
||||
if [[ $(gcc-major-version) -ge 6 ]]; then
|
||||
append-cxxflags -flifetime-dse=1
|
||||
fi
|
||||
|
||||
# Use the MOZILLA_FIVE_HOME for the rpath
|
||||
append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags
|
||||
|
||||
####################################
|
||||
#
|
||||
# mozconfig setup
|
||||
#
|
||||
####################################
|
||||
|
||||
mozconfig_annotate disable_update_strip \
|
||||
--disable-updater \
|
||||
--disable-strip \
|
||||
--disable-install-strip
|
||||
|
||||
# jemalloc won't build with older glibc
|
||||
! has_version ">=sys-libs/glibc-2.4" && mozconfig_annotate "we have old glibc" --disable-jemalloc
|
||||
}
|
||||
|
||||
# @FUNCTION: mozconfig_final
|
||||
# @DESCRIPTION:
|
||||
# Apply EXTRA_ECONF values to .mozconfig
|
||||
# Display a table describing all configuration options paired
|
||||
# with reasons, then clean up extensions list.
|
||||
# This should be called in src_configure at the end of all other mozconfig_* functions.
|
||||
mozconfig_final() {
|
||||
declare ac opt hash reason
|
||||
|
||||
# Apply EXTRA_ECONF entries to .mozconfig
|
||||
if [[ -n ${EXTRA_ECONF} ]]; then
|
||||
IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!}
|
||||
for opt in "${ac[@]}"; do
|
||||
mozconfig_annotate "EXTRA_ECONF" --${opt#--}
|
||||
done
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "=========================================================="
|
||||
echo "Building ${PF} with the following configuration"
|
||||
grep ^ac_add_options .mozconfig | while read ac opt hash reason; do
|
||||
[[ -z ${hash} || ${hash} == \# ]] \
|
||||
|| die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}"
|
||||
printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}"
|
||||
done
|
||||
echo "=========================================================="
|
||||
echo
|
||||
|
||||
# Resolve multiple --enable-extensions down to one
|
||||
declare exts=$(sed -n 's/^ac_add_options --enable-extensions=\([^ ]*\).*/\1/p' \
|
||||
.mozconfig | xargs)
|
||||
sed -i '/^ac_add_options --enable-extensions/d' .mozconfig
|
||||
echo "ac_add_options --enable-extensions=${exts// /,}" >> .mozconfig
|
||||
}
|
||||
|
||||
_MOZCORECONF=1
|
||||
fi
|
@ -1,386 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# @ECLASS: mozlinguas-v2.eclass
|
||||
# @MAINTAINER:
|
||||
# mozilla@gentoo.org
|
||||
# @AUTHOR:
|
||||
# Nirbheek Chauhan <nirbheek@gentoo.org>
|
||||
# Ian Stakenvicius <axs@gentoo.org>
|
||||
# @SUPPORTED_EAPIS: 2 3 4 5 6
|
||||
# @BLURB: Handle language packs for mozilla products
|
||||
# @DESCRIPTION:
|
||||
# Sets IUSE according to MOZ_LANGS (language packs available). Also exports
|
||||
# src_unpack, src_compile and src_install for use in ebuilds, and provides
|
||||
# supporting functions for langpack generation and installation.
|
||||
|
||||
inherit mozextension
|
||||
|
||||
case "${EAPI:-0}" in
|
||||
0|1)
|
||||
die "EAPI ${EAPI:-0} does not support the '->' SRC_URI operator";;
|
||||
2|3|4|5|6)
|
||||
EXPORT_FUNCTIONS src_unpack src_compile src_install;;
|
||||
*)
|
||||
die "EAPI ${EAPI} is not supported, contact eclass maintainers";;
|
||||
esac
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_LANGS
|
||||
# @DESCRIPTION:
|
||||
# Array containing the list of language pack xpis available for
|
||||
# this release. The list can be updated with scripts/get_langs.sh from the
|
||||
# mozilla overlay.
|
||||
: ${MOZ_LANGS:=()}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_PV
|
||||
# @DESCRIPTION:
|
||||
# Ebuild package version converted to equivalent upstream version.
|
||||
# Defaults to ${PV}, and should be overridden for alphas, betas, and RCs
|
||||
: ${MOZ_PV:="${PV}"}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_PN
|
||||
# @DESCRIPTION:
|
||||
# Ebuild package name converted to equivalent upstream name.
|
||||
# Defaults to ${PN}, and should be overridden for binary ebuilds.
|
||||
: ${MOZ_PN:="${PN}"}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_P
|
||||
# @DESCRIPTION:
|
||||
# Ebuild package name + version converted to upstream equivalent.
|
||||
# Defaults to ${MOZ_PN}-${MOZ_PV}
|
||||
: ${MOZ_P:="${MOZ_PN}-${MOZ_PV}"}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_FTP_URI
|
||||
# @DESCRIPTION:
|
||||
# The ftp URI prefix for the release tarballs and language packs.
|
||||
: ${MOZ_FTP_URI:=""}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_HTTP_URI
|
||||
# @DESCRIPTION:
|
||||
# The http URI prefix for the release tarballs and language packs.
|
||||
: ${MOZ_HTTP_URI:=""}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_LANGPACK_HTTP_URI
|
||||
# @DESCRIPTION:
|
||||
# An alternative http URI if it differs from official mozilla URI.
|
||||
# Defaults to whatever MOZ_HTTP_URI was set to.
|
||||
: ${MOZ_LANGPACK_HTTP_URI:=${MOZ_HTTP_URI}}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_LANGPACK_PREFIX
|
||||
# @DESCRIPTION:
|
||||
# The relative path till the lang code in the langpack file URI.
|
||||
# Defaults to ${MOZ_PV}/linux-i686/xpi/
|
||||
: ${MOZ_LANGPACK_PREFIX:="${MOZ_PV}/linux-i686/xpi/"}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_LANGPACK_SUFFIX
|
||||
# @DESCRIPTION:
|
||||
# The suffix after the lang code in the langpack file URI.
|
||||
# Defaults to '.xpi'
|
||||
: ${MOZ_LANGPACK_SUFFIX:=".xpi"}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_LANGPACK_UNOFFICIAL
|
||||
# @DESCRIPTION:
|
||||
# The status of the langpack, used to differentiate within
|
||||
# Manifests and on Gentoo mirrors as to when the langpacks are
|
||||
# generated officially by Mozilla or if they were generated
|
||||
# unofficially by others (ie the Gentoo mozilla team). When
|
||||
# this var is set, the distfile will have a .unofficial.xpi
|
||||
# suffix.
|
||||
: ${MOZ_LANGPACK_UNOFFICIAL:=""}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_GENERATE_LANGPACKS
|
||||
# @DESCRIPTION:
|
||||
# This flag specifies whether or not the langpacks should be
|
||||
# generated directly during the build process, rather than
|
||||
# being downloaded and installed from upstream pre-built
|
||||
# extensions. Primarily it supports pre-release builds.
|
||||
# Defaults to empty.
|
||||
: ${MOZ_GENERATE_LANGPACKS:=""}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_L10N_SOURCEDIR
|
||||
# @DESCRIPTION:
|
||||
# The path that l10n sources can be found at, once unpacked.
|
||||
# Defaults to ${WORKDIR}/l10n-sources
|
||||
: ${MOZ_L10N_SOURCEDIR:="${WORKDIR}/l10n-sources"}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_L10N_URI_PREFIX
|
||||
# @DESCRIPTION:
|
||||
# The full URI prefix of the distfile for each l10n locale. The
|
||||
# AB_CD and MOZ_L10N_URI_SUFFIX will be appended to this to complete the
|
||||
# SRC_URI when MOZ_GENERATE_LANGPACKS is set. If empty, nothing will
|
||||
# be added to SRC_URI.
|
||||
# Defaults to empty.
|
||||
: ${MOZ_L10N_URI_PREFIX:=""}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_L10N_URI_SUFFIX
|
||||
# @DESCRIPTION:
|
||||
# The suffix of l10n source distfiles.
|
||||
# Defaults to '.tar.xz'
|
||||
: ${MOZ_L10N_URI_SUFFIX:=".tar.xz"}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_FORCE_UPSTREAM_L10N
|
||||
# @DESCRIPTION:
|
||||
# Set this to use upstream langpaks even if the package normally
|
||||
# shouldn't (ie it is an alpha or beta package)
|
||||
: ${MOZ_FORCE_UPSTREAM_L10N:=""}
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_TOO_REGIONALIZED_FOR_L10N
|
||||
# @INTERNAL
|
||||
# @DESCRIPTION:
|
||||
# Upstream identifiers that should not contain region subtags in L10N
|
||||
MOZ_TOO_REGIONALIZED_FOR_L10N=( fy-NL ga-IE gu-IN hi-IN hy-AM nb-NO nn-NO pa-IN sv-SE )
|
||||
|
||||
# @ECLASS-VARIABLE: MOZ_INSTALL_L10N_XPIFILE
|
||||
# @DESCRIPTION:
|
||||
# Install langpacks as .xpi file instead of unpacked directory.
|
||||
# Leave unset to install unpacked
|
||||
: ${MOZ_INSTALL_L10N_XPIFILE:=""}
|
||||
|
||||
# Add l10n_* to IUSE according to available language packs
|
||||
# No language packs for alphas and betas
|
||||
if ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]] ; then
|
||||
if ! [[ ${PV} =~ alpha|beta ]] || { [[ ${PN} == seamonkey ]] && ! [[ ${PV} =~ alpha ]] ; } || [[ -n ${MOZ_FORCE_UPSTREAM_L10N} ]] ; then
|
||||
[[ -z ${MOZ_FTP_URI} ]] && [[ -z ${MOZ_LANGPACK_HTTP_URI} ]] && die "No URI set to download langpacks, please set one of MOZ_{FTP,HTTP_LANGPACK}_URI"
|
||||
for x in "${MOZ_LANGS[@]}" ; do
|
||||
# en and en_US are handled internally
|
||||
if [[ ${x} == en ]] || [[ ${x} == en-US ]]; then
|
||||
continue
|
||||
fi
|
||||
# strip region subtag if $x is in the list
|
||||
if has ${x} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
|
||||
xflag=${x%%-*}
|
||||
else
|
||||
xflag=${x}
|
||||
fi
|
||||
SRC_URI+=" l10n_${xflag/[_@]/-}? ("
|
||||
[[ -n ${MOZ_FTP_URI} ]] && SRC_URI+="
|
||||
${MOZ_FTP_URI}/${MOZ_LANGPACK_PREFIX}${x}${MOZ_LANGPACK_SUFFIX} -> ${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi"
|
||||
[[ -n ${MOZ_LANGPACK_HTTP_URI} ]] && SRC_URI+="
|
||||
${MOZ_LANGPACK_HTTP_URI}/${MOZ_LANGPACK_PREFIX}${x}${MOZ_LANGPACK_SUFFIX} -> ${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi"
|
||||
SRC_URI+=" )"
|
||||
IUSE+=" l10n_${xflag/[_@]/-}"
|
||||
# We used to do some magic if specific/generic locales were missing, but
|
||||
# we stopped doing that due to bug 325195.
|
||||
done
|
||||
fi
|
||||
else
|
||||
for x in "${MOZ_LANGS[@]}" ; do
|
||||
# en and en_US are handled internally
|
||||
if [[ ${x} == en ]] || [[ ${x} == en-US ]]; then
|
||||
continue
|
||||
fi
|
||||
# strip region subtag if $x is in the list
|
||||
if has ${x} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
|
||||
xflag=${x%%-*}
|
||||
else
|
||||
xflag=${x}
|
||||
fi
|
||||
# Do NOT grab l10n sources from hg tip at this time, since it is a moving target
|
||||
# if [[ ${PV} =~ alpha ]]; then
|
||||
# # Please note that this URI is not deterministic - digest breakage could occur
|
||||
# SRC_URI+=" l10n_${xflag/[_@]/-}? ( http://hg.mozilla.org/releases/l10n/mozilla-aurora/ach/archive/tip.tar.bz2 -> ${MOZ_P}-l10n-${x}.tar.bz2 )"
|
||||
# elif [[ ${PV} =~ beta ]] && ! [[ ${PN} == seamonkey ]]; then
|
||||
# # Please note that this URI is not deterministic - digest breakage could occur
|
||||
# SRC_URI+=" l10n_${xflag/[_@]/-}? ( http://hg.mozilla.org/releases/l10n/mozilla-beta/ach/archive/tip.tar.bz2 -> ${MOZ_P}-l10n-${x}.tar.bz2 )"
|
||||
# elif [[ -n ${MOZ_L10N_URI_PREFIX} ]]; then
|
||||
if [[ -n ${MOZ_L10N_URI_PREFIX} ]]; then
|
||||
SRC_URI+=" l10n_${xflag/[_@]/-}? ( ${MOZ_L10N_URI_PREFIX}${x}${MOZ_L10N_URI_SUFFIX} )"
|
||||
fi
|
||||
IUSE+=" l10n_${xflag/[_@]/-}"
|
||||
done
|
||||
fi
|
||||
unset x xflag
|
||||
|
||||
# @FUNCTION: mozlinguas_export
|
||||
# @INTERNAL
|
||||
# @DESCRIPTION:
|
||||
# Generate the list of language packs called "mozlinguas"
|
||||
# This list is used to unpack and install the xpi language packs
|
||||
mozlinguas_export() {
|
||||
if [[ ${PN} == seamonkey ]] ; then
|
||||
[[ ${PV} =~ alpha ]] && ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]] && return
|
||||
else
|
||||
[[ ${PV} =~ alpha|beta ]] && ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]] && return
|
||||
fi
|
||||
local lingua lflag
|
||||
mozlinguas=()
|
||||
# Set mozlinguas based on the enabled l10n_* USE flags.
|
||||
for lingua in "${MOZ_LANGS[@]}"; do
|
||||
# strip region subtag if $x is in the list
|
||||
if has ${lingua} en en-US; then
|
||||
# For mozilla products, en and en_US are handled internally
|
||||
continue
|
||||
elif has ${lingua} "${MOZ_TOO_REGIONALIZED_FOR_L10N[@]}" ; then
|
||||
lflag=${lingua%%-*}
|
||||
else
|
||||
lflag=${lingua}
|
||||
fi
|
||||
use l10n_${lflag/[_@]/-} && mozlinguas+=( ${lingua} )
|
||||
done
|
||||
# Compatibility code - Check LINGUAS and warn if anything set there isn't enabled via l10n
|
||||
for lingua in ${LINGUAS}; do
|
||||
if has ${lingua//[_@]/-} en en-US; then
|
||||
# For mozilla products, en and en_US are handled internally
|
||||
continue
|
||||
# If this language is supported by ${P},
|
||||
elif has ${lingua} "${MOZ_LANGS[@]//-/_}"; then
|
||||
# Warn the language is missing, if it isn't already there
|
||||
has ${lingua//[_@]/-} "${mozlinguas[@]//[_@]/-}" || \
|
||||
ewarn "LINGUAS value ${lingua} is not enabled using L10N use flags"
|
||||
continue
|
||||
# For each short lingua that isn't in MOZ_LANGS,
|
||||
# We used to add *all* long MOZ_LANGS to the mozlinguas list,
|
||||
# but we stopped doing that due to bug 325195.
|
||||
else
|
||||
:
|
||||
fi
|
||||
einfo "Sorry, but ${P} does not support the ${lingua} locale in LINGUAS"
|
||||
done
|
||||
}
|
||||
|
||||
# @FUNCTION: mozlinguas_src_unpack
|
||||
# @DESCRIPTION:
|
||||
# Unpack xpi language packs according to the user's LINGUAS settings
|
||||
mozlinguas_src_unpack() {
|
||||
local x
|
||||
if ! [[ -n ${MOZ_GENERATE_LANGPACKS} ]]; then
|
||||
mozlinguas_export
|
||||
for x in "${mozlinguas[@]}"; do
|
||||
# FIXME: Add support for unpacking xpis to portage
|
||||
xpi_unpack "${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi"
|
||||
done
|
||||
if [[ "${mozlinguas[*]}" != "" && "${mozlinguas[*]}" != "en" ]]; then
|
||||
einfo "Selected language packs (first will be default): ${mozlinguas[*]}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
# For the phase function export
|
||||
mozlinguas-v2_src_unpack() {
|
||||
mozlinguas_src_unpack
|
||||
}
|
||||
|
||||
|
||||
# @FUNCTION: mozlinguas_mozconfig
|
||||
# @DESCRIPTION:
|
||||
# if applicable, add the necessary flag to .mozconfig to support
|
||||
# the generation of locales. Note that this function requires
|
||||
# mozconfig_annontate to already be declared via an inherit of
|
||||
# mozconfig or mozcoreconf.
|
||||
mozlinguas_mozconfig() {
|
||||
if [[ -n ${MOZ_GENERATE_LANGPACKS} ]]; then
|
||||
if declare -f mozconfig_annotate >/dev/null ; then
|
||||
mozconfig_annotate 'for building locales' --with-l10n-base=${MOZ_L10N_SOURCEDIR}
|
||||
else
|
||||
die "Could not configure l10n-base, mozconfig_annotate not declared -- missing inherit?"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# @FUNCTION: mozlinguas_src_compile
|
||||
# @DESCRIPTION:
|
||||
# if applicable, build the selected locales.
|
||||
mozlinguas_src_compile() {
|
||||
if [[ -n ${MOZ_GENERATE_LANGPACKS} ]]; then
|
||||
# leverage BUILD_OBJ_DIR if set otherwise assume PWD.
|
||||
local x y targets=( "langpack" ) localedir="${BUILD_OBJ_DIR:-.}"
|
||||
case ${PN} in
|
||||
*firefox)
|
||||
localedir+="/browser/locales"
|
||||
;;
|
||||
seamonkey)
|
||||
localedir+="/suite/locales"
|
||||
;;
|
||||
*thunderbird)
|
||||
localedir+="/mail/locales"
|
||||
targets+=( "calendar-langpack" )
|
||||
;;
|
||||
*) die "Building locales for ${PN} is not supported."
|
||||
esac
|
||||
pushd "${localedir}" > /dev/null || die
|
||||
mozlinguas_export
|
||||
for x in "${mozlinguas[@]}"; do for y in "${targets[@]}"; do
|
||||
emake ${y}-${x} LOCALE_MERGEDIR="./${y}-${x}"
|
||||
done; done
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
# For the phase function export
|
||||
mozlinguas-v2_src_compile() {
|
||||
mozlinguas_src_compile
|
||||
}
|
||||
|
||||
# @FUNCTION: mozlinguas_xpistage_langpacks
|
||||
# @DESCRIPTION:
|
||||
# Add extra langpacks to the xpi-stage dir for prebuilt plugins
|
||||
#
|
||||
# First argument is the path to the extension
|
||||
# Second argument is the prefix of the source (same as first if unspecified)
|
||||
# Remaining arguments are the modules in the extension that are localized
|
||||
# (basename of first if unspecified)
|
||||
#
|
||||
# Example - installing extra langpacks for lightning:
|
||||
# src_install() {
|
||||
# ... # general installation steps
|
||||
# mozlinguas_xpistage_langpacks \
|
||||
# "${BUILD_OBJ_DIR}"/dist/xpi-stage/lightning \
|
||||
# "${WORKDIR}"/lightning \
|
||||
# lightning calendar
|
||||
# ... # proceed with installation from the xpi-stage dir
|
||||
# }
|
||||
|
||||
mozlinguas_xpistage_langpacks() {
|
||||
local l c modpath="${1}" srcprefix="${1}" modules=( "${1##*/}" )
|
||||
shift
|
||||
if [[ -n ${1} ]] ; then srcprefix="${1}" ; shift ; fi
|
||||
if [[ -n ${1} ]] ; then modules=( $@ ) ; fi
|
||||
|
||||
mozlinguas_export
|
||||
mkdir -p "${modpath}/chrome" || die
|
||||
for l in "${mozlinguas[@]}"; do for c in "${modules[@]}" ; do
|
||||
if [[ -e "${srcprefix}-${l}/chrome/${c}-${l}" ]]; then
|
||||
cp -RLp -t "${modpath}/chrome" "${srcprefix}-${l}/chrome/${c}-${l}" || die
|
||||
grep "locale ${c} ${l} chrome/" "${srcprefix}-${l}/chrome.manifest" \
|
||||
>>"${modpath}/chrome.manifest" || die
|
||||
elif [[ -e "${srcprefix}/chrome/${c}-${l}" ]]; then
|
||||
cp -RLp -t "${modpath}/chrome" "${srcprefix}/chrome/${c}-${l}" || die
|
||||
grep "locale ${c} ${l} chrome/" "${srcprefix}/chrome.manifest" \
|
||||
>>"${modpath}/chrome.manifest" || die
|
||||
else
|
||||
ewarn "Locale ${l} was not found for ${c}, skipping."
|
||||
fi
|
||||
done; done
|
||||
}
|
||||
|
||||
# @FUNCTION: mozlinguas-v2_src_install
|
||||
# @DESCRIPTION:
|
||||
# Install xpi language packs according to the user's L10N settings
|
||||
# NOTE - uses ${BUILD_OBJ_DIR} or PWD if unset, for source-generated langpacks
|
||||
mozlinguas_src_install() {
|
||||
local x
|
||||
mozlinguas_export
|
||||
if [[ -n ${MOZ_GENERATE_LANGPACKS} ]] && [[ -n ${mozlinguas[*]} ]]; then
|
||||
local repopath="${WORKDIR}/${PN}-generated-langpacks"
|
||||
mkdir -p "${repopath}" || die
|
||||
pushd "${BUILD_OBJ_DIR:-.}"/dist/*/xpi > /dev/null || die
|
||||
for x in "${mozlinguas[@]}"; do
|
||||
cp "${MOZ_P}.${x}.langpack.xpi" \
|
||||
"${repopath}/${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi" || die
|
||||
xpi_unpack "${repopath}/${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}.xpi"
|
||||
done
|
||||
popd > /dev/null || die
|
||||
fi
|
||||
|
||||
for x in "${mozlinguas[@]}"; do
|
||||
if [[ -n ${MOZ_INSTALL_L10N_XPIFILE} ]]; then
|
||||
xpi_copy "${WORKDIR}/${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}"
|
||||
else
|
||||
xpi_install "${WORKDIR}/${MOZ_P}-${x}${MOZ_LANGPACK_UNOFFICIAL:+.unofficial}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# For the phase function export
|
||||
mozlinguas-v2_src_install() {
|
||||
mozlinguas_src_install
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# @ECLASS: nsplugins.eclass
|
||||
# @MAINTAINER:
|
||||
# Mozilla Team <mozilla@gentoo.org>
|
||||
# @AUTHOR:
|
||||
# Original Author: Martin Schlemmer <azarah@gentoo.org>
|
||||
# @BLURB: reusable functions for netscape/moz plugin sharing
|
||||
# @DESCRIPTION:
|
||||
# Reusable functions that promote sharing of netscape/moz plugins, also provides
|
||||
# share_plugins_dir function for mozilla applications.
|
||||
|
||||
inherit eutils multilib versionator mozextension
|
||||
|
||||
PLUGINS_DIR="nsbrowser/plugins"
|
||||
|
||||
# This function move the plugin dir in src_install() to
|
||||
# ${D}/usr/$(get_libdir)/${PLUGIN_DIR}. First argument should be
|
||||
# the full path (without $D) to old plugin dir.
|
||||
src_mv_plugins() {
|
||||
has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}"
|
||||
|
||||
# Move plugins dir. We use keepdir so that it might not be unmerged
|
||||
# by mistake ...
|
||||
keepdir /usr/$(get_libdir)/${PLUGINS_DIR}
|
||||
cp -a "${ED}"/$1/* "${ED}"/usr/$(get_libdir)/${PLUGINS_DIR}
|
||||
rm -rf "${ED}"/$1
|
||||
dosym /usr/$(get_libdir)/${PLUGINS_DIR} $1
|
||||
}
|
||||
|
||||
# This function move plugins in pkg_preinst() in old dir to
|
||||
# ${ROOT}/usr/$(get_libdir)/${PLUGIN_DIR}. First argument should be
|
||||
# the full path (without $ROOT) to old plugin dir.
|
||||
pkg_mv_plugins() {
|
||||
has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${ROOT}"
|
||||
|
||||
# Move old plugins dir
|
||||
if [ -d "${ROOT}/$1" -a ! -L "${ROOT}/$1" ]
|
||||
then
|
||||
mkdir -p "${EROOT}"/usr/$(get_libdir)/${PLUGINS_DIR}
|
||||
cp -a "${EROOT}"/$1/* "${EROOT}"/usr/$(get_libdir)/${PLUGINS_DIR}
|
||||
rm -rf "${EROOT}"/$1
|
||||
fi
|
||||
}
|
||||
|
||||
# This function installs a plugin with dosym to PLUGINS_DIR.
|
||||
# First argument should be the plugin file.
|
||||
inst_plugin() {
|
||||
if [[ -z "${1}" ]]; then
|
||||
eerror "The plugin file \"${1}\" does not exist."
|
||||
die "No such file or directory."
|
||||
fi
|
||||
|
||||
dodir /usr/$(get_libdir)/${PLUGINS_DIR}
|
||||
dosym ${1} /usr/$(get_libdir)/${PLUGINS_DIR}/$(basename ${1})
|
||||
}
|
||||
|
||||
# This function ensures we use proper plugin path for Gentoo.
|
||||
# This should only be used by mozilla packages.
|
||||
# ${MOZILLA_FIVE_HOME} must be defined in src_install to support
|
||||
share_plugins_dir() {
|
||||
if [[ ${PN} == seamonkey ]] ; then
|
||||
rm -rf "${D}"${MOZILLA_FIVE_HOME}/plugins \
|
||||
|| die "failed to remove existing plugins dir"
|
||||
fi
|
||||
|
||||
if [[ ${PN} == *-bin ]] ; then
|
||||
PLUGIN_BASE_PATH="/usr/$(get_libdir)"
|
||||
else
|
||||
PLUGIN_BASE_PATH=".."
|
||||
fi
|
||||
|
||||
if $(mozversion_extension_location) ; then
|
||||
dosym "${PLUGIN_BASE_PATH}/nsbrowser/plugins" "${MOZILLA_FIVE_HOME}/browser/plugins"
|
||||
else
|
||||
dosym "${PLUGIN_BASE_PATH}/nsbrowser/plugins" "${MOZILLA_FIVE_HOME}/plugins"
|
||||
fi
|
||||
}
|
Loading…
Reference in New Issue
Block a user