diff options
author | Ian Stakenvicius <axs@gentoo.org> | 2017-02-28 14:48:25 -0500 |
---|---|---|
committer | Ian Stakenvicius <axs@gentoo.org> | 2017-02-28 15:41:58 -0500 |
commit | 8fb65064d8753d73a0d03fb1ab53ff38bf86349b (patch) | |
tree | 68c9750952b083436d6e22cb67272eb80bc300b7 | |
parent | sci-mathematics/octave: Version bump to 4.2.1 (diff) | |
download | gentoo-8fb65064d8753d73a0d03fb1ab53ff38bf86349b.tar.gz gentoo-8fb65064d8753d73a0d03fb1ab53ff38bf86349b.tar.bz2 gentoo-8fb65064d8753d73a0d03fb1ab53ff38bf86349b.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
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() { |