dev-lang/spidermonkey:{38,45} ebuild improvements and bugfixes
authorIan Stakenvicius <axs@gentoo.org>
Tue, 28 Feb 2017 17:37:44 +0000 (12:37 -0500)
committerIan Stakenvicius <axs@gentoo.org>
Tue, 28 Feb 2017 17:48:34 +0000 (12:48 -0500)
Upstream stripped out most slotting and also was installing headers
as symlinks.  This has been addressed in :38 through patches from GNOME.

Redundant and unused eclasses were removed, which should help address
bug 611232.

spidermonkey-45 still installs headers as symlinks, and I have ben unable
to figure out where in the python buildsystem code this is being triggered
to reverse it back to a copy; the ebuild is now p.masked because of that.

Package-Manager: portage-2.3.3

dev-lang/spidermonkey/files/mozjs38-copy-headers.patch [new file with mode: 0644]
dev-lang/spidermonkey/files/mozjs38-pkg-config-version.patch [new file with mode: 0644]
dev-lang/spidermonkey/spidermonkey-38.2.1_rc0.ebuild
dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
profiles/package.mask

diff --git a/dev-lang/spidermonkey/files/mozjs38-copy-headers.patch b/dev-lang/spidermonkey/files/mozjs38-copy-headers.patch
new file mode 100644 (file)
index 0000000..7f352a7
--- /dev/null
@@ -0,0 +1,20 @@
+Description: Copy headers on install instead of symlinking
+Author: Rico Tzschichholz <ricotz@ubuntu.com>
+Forwarded: no
+Last-Update: 2014-10-29
+
+---
+
+Index: b/python/mozbuild/mozbuild/backend/recursivemake.py
+===================================================================
+--- a/python/mozbuild/mozbuild/backend/recursivemake.py
++++ b/python/mozbuild/mozbuild/backend/recursivemake.py
+@@ -796,7 +796,7 @@
+             return
+         for source, dest, _ in self._walk_hierarchy(obj, exports):
+-            self._install_manifests['dist_include'].add_symlink(source, dest)
++            self._install_manifests['dist_include'].add_copy(source, dest)
+             if not os.path.exists(source):
+                 raise Exception('File listed in EXPORTS does not exist: %s' % source)
diff --git a/dev-lang/spidermonkey/files/mozjs38-pkg-config-version.patch b/dev-lang/spidermonkey/files/mozjs38-pkg-config-version.patch
new file mode 100644 (file)
index 0000000..34a43d1
--- /dev/null
@@ -0,0 +1,22 @@
+Add major version to pkg-config filename.
+Author: Rico Tzschichholz <ricotz@ubuntu.com>
+Forwarded: no
+Last-Update: 2015-05-04
+
+Index: b/js/src/Makefile.in
+===================================================================
+--- a/js/src/Makefile.in
++++ b/js/src/Makefile.in
+@@ -214,10 +214,10 @@
+ $(JS_CONFIG_NAME): js-config
+    cp $^ $@
+-$(LIBRARY_NAME).pc: js.pc
++$(JS_LIBRARY_NAME).pc: js.pc
+       cp $^ $@
+-install:: $(LIBRARY_NAME).pc
++install:: $(JS_LIBRARY_NAME).pc
+       $(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
+ install:: js-config.h
index 5da1b11af428309ff1d3c0da5f3c2ba2cf84bd10..ad154d68f81a5fbf0612e9240273d0e60806acd1 100644 (file)
@@ -4,9 +4,7 @@
 
 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 mozcoreconf-v4
+inherit autotools toolchain-funcs pax-utils mozcoreconf-v4
 
 MY_PN="mozjs"
 MY_P="${MY_PN}-${PV/_/.}"
@@ -22,7 +20,7 @@ IUSE="debug +jit minimal static-libs +system-icu test"
 RESTRICT="ia64? ( test )"
 
 #S="${WORKDIR}/${MY_P%.rc*}"
-S="${WORKDIR}/mozjs-38.0.0"
+S="${WORKDIR}/${MY_PN}-${SLOT}.0.0"
 BUILDDIR="${S}/js/src"
 
 RDEPEND=">=dev-libs/nspr-4.10.10
@@ -30,10 +28,7 @@ RDEPEND=">=dev-libs/nspr-4.10.10
        sys-libs/readline:0=
        >=sys-libs/zlib-1.2.3
        system-icu? ( >=dev-libs/icu-51.1:= )"
-DEPEND="${RDEPEND}
-       ${PYTHON_DEPS}
-       app-arch/zip
-       virtual/pkgconfig"
+DEPEND="${RDEPEND}"
 
 pkg_setup(){
        if [[ ${MERGE_TYPE} != "binary" ]]; then
@@ -44,7 +39,9 @@ pkg_setup(){
 src_prepare() {
        eapply "${FILESDIR}"/${PN}-38-jsapi-tests.patch \
                "${FILESDIR}"/mozjs38-1269317.patch \
-               "${FILESDIR}"/mozjs38-fix-tracelogger.patch
+               "${FILESDIR}"/mozjs38-fix-tracelogger.patch \
+               "${FILESDIR}"/mozjs38-copy-headers.patch \
+               "${FILESDIR}"/mozjs38-pkg-config-version.patch
 
        eapply_user
 
@@ -58,7 +55,8 @@ src_prepare() {
 }
 
 src_configure() {
-       export SHELL=/bin/sh
+       export SHELL="${SHELL:-${EPREFIX%/}/bin/bash}"
+
        cd "${BUILDDIR}" || die
 
        econf \
@@ -113,7 +111,7 @@ src_compile() {
                        host_jsoplengen.o || die
        fi
 
-       MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \
+       MOZ_MAKE_FLAGS="${MAKEOPTS}"
        emake \
                MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
                HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
@@ -129,12 +127,14 @@ 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}"
+                       pax-mark m "${ED}"usr/bin/js${SLOT}
                fi
        else
-               rm -f "${ED}/usr/bin/js${SLOT}"
+               rm -f "${ED}"/usr/bin/js${SLOT}
        fi
 
        if ! use static-libs; then
index faaa6575705acc39e393bc579fa6e1f7dbfde48f..5eb8463c609cf99595e9d17add287ace8b78fb84 100644 (file)
@@ -4,9 +4,7 @@
 
 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 mozcoreconf-v4
+inherit autotools toolchain-funcs pax-utils mozcoreconf-v4
 
 MY_PN="mozjs"
 MY_P="${MY_PN}-${PV/_/.}"
@@ -22,7 +20,6 @@ IUSE="debug +jit minimal static-libs +system-icu test"
 RESTRICT="ia64? ( test )"
 
 S="${WORKDIR}/${MY_P%.rc*}"
-#S="${WORKDIR}/mozjs-38.0.0"
 BUILDDIR="${S}/js/src"
 
 RDEPEND=">=dev-libs/nspr-4.10.10
@@ -30,10 +27,7 @@ RDEPEND=">=dev-libs/nspr-4.10.10
        sys-libs/readline:0=
        >=sys-libs/zlib-1.2.3
        system-icu? ( >=dev-libs/icu-51.1:= )"
-DEPEND="${RDEPEND}
-       ${PYTHON_DEPS}
-       app-arch/zip
-       virtual/pkgconfig"
+DEPEND="${RDEPEND}"
 
 pkg_setup(){
        if [[ ${MERGE_TYPE} != "binary" ]]; then
@@ -42,8 +36,11 @@ pkg_setup(){
 }
 
 src_prepare() {
-       eapply "${FILESDIR}"/${PN}-38-jsapi-tests.patch
-       eapply "${FILESDIR}"/mozjs45-1266366.patch
+       eapply "${FILESDIR}"/${PN}-38-jsapi-tests.patch \
+               "${FILESDIR}"/mozjs45-1266366.patch \
+               "${FILESDIR}"/mozjs38-pkg-config-version.patch
+
+       # apply relevant (modified) patches from gentoo's firefox-45 patchset
        eapply "${FILESDIR}"/ff45
 
        eapply_user
@@ -58,7 +55,7 @@ src_prepare() {
 }
 
 src_configure() {
-       export SHELL=/bin/sh
+       export SHELL="${SHELL:-${EPREFIX%/}/bin/bash}"
        cd "${BUILDDIR}" || die
 
        econf \
@@ -113,7 +110,7 @@ src_compile() {
                        host_jsoplengen.o || die
        fi
 
-       MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX%/}/bin/bash}" \
+       MOZ_MAKE_FLAGS="${MAKEOPTS}" \
        emake \
                MOZ_OPTIMIZE_FLAGS="" MOZ_DEBUG_FLAGS="" \
                HOST_OPTIMIZE_FLAGS="" MODULE_OPTIMIZE_FLAGS="" \
@@ -129,12 +126,15 @@ 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}"
+                       pax-mark m "${ED}"usr/bin/js${SLOT}
                fi
        else
-               rm -f "${ED}/usr/bin/js${SLOT}"
+               rm -f "${ED}"usr/bin/js${SLOT}
        fi
 
        if ! use static-libs; then
index de5db9debb5a139b9b0175a7913773396427ce98..7189e77509f8a44a052dd4e98a63b2dda667f639 100644 (file)
 
 #--- END OF EXAMPLES ---
 
+# Ian Stakenvicius <axs@gentoo.org> (28 Feb 2017)
+# Installs symlinks to ${S} instead of copies of files,
+# will unmask once fixed
+dev-lang/spidermonkey:45
+
 # Matt Turner <mattst88@gentoo.org> (26 Feb 2017)
 # Integrated into xorg-server since 1.17. Removal in 30 days.
 # Bug #611058