summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Stakenvicius <axs@gentoo.org>2017-02-28 14:48:25 -0500
committerIan Stakenvicius <axs@gentoo.org>2017-02-28 15:41:58 -0500
commit8fb65064d8753d73a0d03fb1ab53ff38bf86349b (patch)
tree68c9750952b083436d6e22cb67272eb80bc300b7
parentsci-mathematics/octave: Version bump to 4.2.1 (diff)
downloadgentoo-8fb65064.tar.gz
gentoo-8fb65064.tar.bz2
gentoo-8fb65064.zip
dev-lang/spidermonkey:45 - fix symlink installs via patch instead of sed
Found a patch to the build system which forces copies rather than symlinks to all non-objfiles (meaning headers), to address the symlink installation issue. Also applied the sed patch for icu.m4 for esr45 Package-Manager: portage-2.3.3
-rw-r--r--dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch32
-rw-r--r--dev-lang/spidermonkey/files/spidermonkey-45-dont-symlink-non-objfiles.patch21
-rw-r--r--dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild10
3 files changed, 56 insertions, 7 deletions
diff --git a/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch b/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch
new file mode 100644
index 000000000000..9e165ff9e88e
--- /dev/null
+++ b/dev-lang/spidermonkey/files/mozilla_configure_regexp_esr.patch
@@ -0,0 +1,32 @@
+From: Jory A. Pratt <anarchy@gentoo.org>
+
+Note: the first occurrence of :space: is [:space:] (with a single pair
+of []), where it should be [[:space:]] (with two pairs of []).
+
+This causes the sed command to fail (with the error message quoted in
+my original report), driving to failure the whole configure step.
+
+https://bugzilla.mozilla.org/show_bug.cgi?id=1329252
+
+diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4
+--- a/build/autoconf/icu.m4
++++ b/build/autoconf/icu.m4
+@@ -68,17 +68,17 @@ if test -n "$USE_ICU"; then
+ icudir="$_topsrcdir/intl/icu/source"
+ if test ! -d "$icudir"; then
+ icudir="$_topsrcdir/../../intl/icu/source"
+ if test ! -d "$icudir"; then
+ AC_MSG_ERROR([Cannot find the ICU directory])
+ fi
+ fi
+
+- version=`sed -n 's/^[[:space:]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
++ version=`sed -n 's/^[[[:space:]]]*#[[:space:]]*define[[:space:]][[:space:]]*U_ICU_VERSION_MAJOR_NUM[[:space:]][[:space:]]*\([0-9][0-9]*\)[[:space:]]*$/\1/p' "$icudir/common/unicode/uvernum.h"`
+ if test x"$version" = x; then
+ AC_MSG_ERROR([cannot determine icu version number from uvernum.h header file $lineno])
+ fi
+ MOZ_ICU_VERSION="$version"
+
+ if test "$OS_TARGET" = WINNT; then
+ MOZ_SHARED_ICU=1
+ fi
diff --git a/dev-lang/spidermonkey/files/spidermonkey-45-dont-symlink-non-objfiles.patch b/dev-lang/spidermonkey/files/spidermonkey-45-dont-symlink-non-objfiles.patch
new file mode 100644
index 000000000000..061e8a572db3
--- /dev/null
+++ b/dev-lang/spidermonkey/files/spidermonkey-45-dont-symlink-non-objfiles.patch
@@ -0,0 +1,21 @@
+--- a/python/mozbuild/mozbuild/backend/recursivemake.py 2016-04-14 13:55:21.000000000 -0400
++++ b/python/mozbuild/mozbuild/backend/recursivemake.py 2017-02-28 14:43:09.431448016 -0500
+@@ -1301,17 +1301,17 @@
+
+ for path, files in files.walk():
+ target_var = (mozpath.join(target, path)
+ if path else target).replace('/', '_')
+ have_objdir_files = False
+ for f in files:
+ if not isinstance(f, ObjDirPath):
+ dest = mozpath.join(reltarget, path, mozpath.basename(f))
+- install_manifest.add_symlink(f.full_path, dest)
++ install_manifest.add_copy(f.full_path, dest)
+ else:
+ backend_file.write('%s_FILES += %s\n' % (
+ target_var, self._pretty_path(f, backend_file)))
+ have_objdir_files = True
+ if have_objdir_files:
+ backend_file.write('%s_DEST := $(DEPTH)/%s\n'
+ % (target_var,
+ mozpath.join(target, path)))
diff --git a/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild b/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
index b697709ce00f..addd5d92d01c 100644
--- a/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
+++ b/dev-lang/spidermonkey/spidermonkey-45.0.2.ebuild
@@ -37,7 +37,9 @@ pkg_setup(){
src_prepare() {
eapply "${FILESDIR}"/${PN}-38-jsapi-tests.patch \
"${FILESDIR}"/mozjs45-1266366.patch \
- "${FILESDIR}"/mozjs38-pkg-config-version.patch
+ "${FILESDIR}"/mozjs38-pkg-config-version.patch \
+ "${FILESDIR}"/mozilla_configure_regexp_esr.patch \
+ "${FILESDIR}"/${PN}-${SLOT}-dont-symlink-non-objfiles.patch
# apply relevant (modified) patches from gentoo's firefox-45 patchset
eapply "${FILESDIR}"/ff45
@@ -71,12 +73,6 @@ src_configure() {
$(use_enable jit ion) \
$(use_enable static-libs static) \
$(use_enable test tests)
-
- # An unfortunate hack to undo header install symlinking, but
- # necessary until the function that generates this file can be
- # determined and fixed
- sed -i -e 's/^1/2/' \
- "${BUILDDIR}"/_build_manifests/install/dist_include || die
}
cross_make() {