Merge pull request #235 from flatcar-linux/dongsu/delete-keywords

dev-lang/spidermonkey: delete unnecessary ebuilds
This commit is contained in:
Dongsu Park 2021-11-05 09:50:34 +01:00 committed by GitHub
commit 7b734de837
21 changed files with 0 additions and 3466 deletions

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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) {

View 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>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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

View File

@ -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

View File

@ -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

View File

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

View File

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