From aa08350b4610f6aad420078cf231fea3a925ecf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Thu, 6 Sep 2018 00:20:39 +0200 Subject: [PATCH] Initial import (#1624921). --- .gitignore | 1 + ...lent-year-to-determine-the-time-zone.patch | 98 +++++++ build-icu-big-endian.patch | 13 + copy-headers.patch | 29 +++ emitter.patch | 15 ++ emitter_test.patch | 26 ++ fix-soname.patch | 25 ++ ...a-Write-command-output-to-our-stderr.patch | 34 +++ ...y-Decouple-from-Mozilla-build-system.patch | 26 ++ init_patch.patch | 12 + mozjs60.spec | 239 ++++++++++++++++++ sources | 1 + ...are-skipped-on-64-bit-mips64-is-also.patch | 41 +++ tests-increase-timeout.patch | 22 ++ tests-snans-be.patch | 32 +++ 15 files changed, 614 insertions(+) create mode 100644 .gitignore create mode 100644 Always-use-the-equivalent-year-to-determine-the-time-zone.patch create mode 100644 build-icu-big-endian.patch create mode 100644 copy-headers.patch create mode 100644 emitter.patch create mode 100644 emitter_test.patch create mode 100644 fix-soname.patch create mode 100644 icu_sources_data-Write-command-output-to-our-stderr.patch create mode 100644 icu_sources_data.py-Decouple-from-Mozilla-build-system.patch create mode 100644 init_patch.patch create mode 100644 mozjs60.spec create mode 100644 sources create mode 100644 tests-For-tests-that-are-skipped-on-64-bit-mips64-is-also.patch create mode 100644 tests-increase-timeout.patch create mode 100644 tests-snans-be.patch diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eaf3baa --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/firefox-60.1.0esr.source.tar.xz diff --git a/Always-use-the-equivalent-year-to-determine-the-time-zone.patch b/Always-use-the-equivalent-year-to-determine-the-time-zone.patch new file mode 100644 index 0000000..1d8b4a2 --- /dev/null +++ b/Always-use-the-equivalent-year-to-determine-the-time-zone.patch @@ -0,0 +1,98 @@ +From: =?utf-8?q?Andr=C3=A9_Bargull?= +Date: Wed, 8 Nov 2017 03:23:41 -0800 +Subject: Always use the equivalent year to determine the time zone offset and + name + +Reviewed-by: Jeff Walden +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1415202 +Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1479687 +Origin: upstream +Applied-upstream: 62, commit:https://hg.mozilla.org/mozilla-central/rev/ce9f1466ec78 +--- + js/src/jsdate.cpp | 12 ++++++++---- + js/src/vm/Time.cpp | 14 ++++---------- + js/src/vm/Time.h | 2 +- + 3 files changed, 13 insertions(+), 15 deletions(-) + +diff --git a/js/src/jsdate.cpp b/js/src/jsdate.cpp +index b7f49e7..f32a853 100644 +--- a/js/src/jsdate.cpp ++++ b/js/src/jsdate.cpp +@@ -2684,12 +2684,16 @@ static size_t + FormatTime(char* buf, int buflen, const char* fmt, double utcTime, double localTime) + { + PRMJTime prtm = ToPRMJTime(localTime, utcTime); +- int eqivalentYear = IsRepresentableAsTime32(utcTime) +- ? prtm.tm_year +- : EquivalentYearForDST(prtm.tm_year); ++ ++ // If an equivalent year was used to compute the date/time components, use ++ // the same equivalent year to determine the time zone name and offset in ++ // PRMJ_FormatTime(...). ++ int timeZoneYear = IsRepresentableAsTime32(utcTime) ++ ? prtm.tm_year ++ : EquivalentYearForDST(prtm.tm_year); + int offsetInSeconds = (int) floor((localTime - utcTime) / msPerSecond); + +- return PRMJ_FormatTime(buf, buflen, fmt, &prtm, eqivalentYear, offsetInSeconds); ++ return PRMJ_FormatTime(buf, buflen, fmt, &prtm, timeZoneYear, offsetInSeconds); + } + + enum class FormatSpec { +diff --git a/js/src/vm/Time.cpp b/js/src/vm/Time.cpp +index da690fe..3a80d7f 100644 +--- a/js/src/vm/Time.cpp ++++ b/js/src/vm/Time.cpp +@@ -262,7 +262,7 @@ PRMJ_InvalidParameterHandler(const wchar_t* expression, + /* Format a time value into a buffer. Same semantics as strftime() */ + size_t + PRMJ_FormatTime(char* buf, int buflen, const char* fmt, const PRMJTime* prtm, +- int equivalentYear, int offsetInSeconds) ++ int timeZoneYear, int offsetInSeconds) + { + size_t result = 0; + #if defined(XP_UNIX) || defined(XP_WIN) +@@ -295,7 +295,8 @@ PRMJ_FormatTime(char* buf, int buflen, const char* fmt, const PRMJTime* prtm, + * Fill out |td| to the time represented by |prtm|, leaving the + * timezone fields zeroed out. localtime_r will then fill in the + * timezone fields for that local time according to the system's +- * timezone parameters. ++ * timezone parameters. Use |timeZoneYear| for the year to ensure the ++ * time zone name matches the time zone offset used by the caller. + */ + struct tm td; + memset(&td, 0, sizeof(td)); +@@ -305,19 +306,12 @@ PRMJ_FormatTime(char* buf, int buflen, const char* fmt, const PRMJTime* prtm, + td.tm_mday = prtm->tm_mday; + td.tm_mon = prtm->tm_mon; + td.tm_wday = prtm->tm_wday; +- td.tm_year = prtm->tm_year - 1900; ++ td.tm_year = timeZoneYear - 1900; + td.tm_yday = prtm->tm_yday; + td.tm_isdst = prtm->tm_isdst; + + time_t t = mktime(&td); + +- // If |prtm| cannot be represented in |time_t| the year is probably +- // out of range, try again with the DST equivalent year. +- if (t == static_cast(-1)) { +- td.tm_year = equivalentYear - 1900; +- t = mktime(&td); +- } +- + // If either mktime or localtime_r failed, fill in the fallback time + // zone offset |offsetInSeconds| and set the time zone identifier to + // the empty string. +diff --git a/js/src/vm/Time.h b/js/src/vm/Time.h +index db61e89..597673b 100644 +--- a/js/src/vm/Time.h ++++ b/js/src/vm/Time.h +@@ -55,7 +55,7 @@ PRMJ_NowShutdown() {} + /* Format a time value into a buffer. Same semantics as strftime() */ + extern size_t + PRMJ_FormatTime(char* buf, int buflen, const char* fmt, const PRMJTime* tm, +- int equivalentYear, int offsetInSeconds); ++ int timeZoneYear, int offsetInSeconds); + + + /** diff --git a/build-icu-big-endian.patch b/build-icu-big-endian.patch new file mode 100644 index 0000000..2cfc839 --- /dev/null +++ b/build-icu-big-endian.patch @@ -0,0 +1,13 @@ +diff -up firefox-60.0/build/autoconf/icu.m4.icu firefox-60.0/build/autoconf/icu.m4 +--- firefox-60.0/build/autoconf/icu.m4.icu 2018-04-24 13:13:03.938961958 +0200 ++++ firefox-60.0/build/autoconf/icu.m4 2018-04-24 13:14:44.472714375 +0200 +@@ -78,7 +78,7 @@ if test -n "$USE_ICU"; then + # TODO: the l is actually endian-dependent + # We could make this set as 'l' or 'b' for little or big, respectively, + # but we'd need to check in a big-endian version of the file. +- ICU_DATA_FILE="icudt${version}l.dat" ++ ICU_DATA_FILE="icudt${version}b.dat" + + MOZ_ICU_DATA_ARCHIVE= + fi + diff --git a/copy-headers.patch b/copy-headers.patch new file mode 100644 index 0000000..aec3b10 --- /dev/null +++ b/copy-headers.patch @@ -0,0 +1,29 @@ +From: Rico Tzschichholz +Date: Wed, 5 Jul 2017 22:45:59 -0700 +Subject: build: Copy headers on install instead of symlinking + +Patch ported forward to mozjs52 by Philip Chimento +. +--- + python/mozbuild/mozbuild/backend/recursivemake.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py +index dd9020d..6918ef8 100644 +--- a/python/mozbuild/mozbuild/backend/recursivemake.py ++++ b/python/mozbuild/mozbuild/backend/recursivemake.py +@@ -1427,11 +1427,11 @@ class RecursiveMakeBackend(CommonBackend): + raise Exception("Wildcards are only supported in the filename part of " + "srcdir-relative or absolute paths.") + +- install_manifest.add_pattern_link(basepath, wild, path) ++ install_manifest.add_pattern_copy(basepath, wild, path) + else: +- install_manifest.add_pattern_link(f.srcdir, f, path) ++ install_manifest.add_pattern_copy(f.srcdir, f, path) + else: +- install_manifest.add_link(f.full_path, dest) ++ install_manifest.add_copy(f.full_path, dest) + else: + install_manifest.add_optional_exists(dest) + backend_file.write('%s_FILES += %s\n' % ( diff --git a/emitter.patch b/emitter.patch new file mode 100644 index 0000000..0f414d7 --- /dev/null +++ b/emitter.patch @@ -0,0 +1,15 @@ +--- a/python/mozbuild/mozbuild/frontend/emitter.py ++++ b/python/mozbuild/mozbuild/frontend/emitter.py +@@ -1127,11 +1127,6 @@ + raise SandboxValidationError('Path specified in LOCAL_INCLUDES ' + 'does not exist: %s (resolved to %s)' % (local_include, + full_path), context) +- if (full_path == context.config.topsrcdir or +- full_path == context.config.topobjdir): +- raise SandboxValidationError('Path specified in LOCAL_INCLUDES ' +- 'is not allowed: %s (resolved to %s)' % (local_include, +- full_path), context) + include_obj = LocalInclude(context, local_include) + local_includes.append(include_obj.path.full_path) + yield include_obj + diff --git a/emitter_test.patch b/emitter_test.patch new file mode 100644 index 0000000..dad8ddc --- /dev/null +++ b/emitter_test.patch @@ -0,0 +1,26 @@ +--- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py ++++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py +@@ -999,22 +999,6 @@ + + self.assertEqual(local_includes, expected) + +- def test_local_includes_invalid(self): +- """Test that invalid LOCAL_INCLUDES are properly detected.""" +- reader = self.reader('local_includes-invalid/srcdir') +- +- with self.assertRaisesRegexp( +- SandboxValidationError, +- 'Path specified in LOCAL_INCLUDES is not allowed:'): +- objs = self.read_topsrcdir(reader) +- +- reader = self.reader('local_includes-invalid/objdir') +- +- with self.assertRaisesRegexp( +- SandboxValidationError, +- 'Path specified in LOCAL_INCLUDES is not allowed:'): +- objs = self.read_topsrcdir(reader) +- + def test_generated_includes(self): + """Test that GENERATED_INCLUDES is emitted correctly.""" + reader = self.reader('generated_includes') + diff --git a/fix-soname.patch b/fix-soname.patch new file mode 100644 index 0000000..fc8052a --- /dev/null +++ b/fix-soname.patch @@ -0,0 +1,25 @@ +From: "Laszlo Boszormenyi (GCS)" +Date: Fri, 2 May 2014 22:20:45 +0200 +Subject: fix soname + +Add soname switch to linker, regardless of Operating System + +Bug-Debian: http://bugs.debian.org/746705 +--- + config/rules.mk | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/config/rules.mk b/config/rules.mk +index eb86b0c..1bb3988 100644 +--- a/config/rules.mk ++++ b/config/rules.mk +@@ -359,6 +359,9 @@ endif + endif + EXTRA_DEPS += $(SYMBOLS_FILE) + endif ++ ++EXTRA_DSO_LDOPTS += -Wl,-soname,lib$(JS_LIBRARY_NAME).so.0 ++ + # + # GNU doesn't have path length limitation + # diff --git a/icu_sources_data-Write-command-output-to-our-stderr.patch b/icu_sources_data-Write-command-output-to-our-stderr.patch new file mode 100644 index 0000000..19c0cc0 --- /dev/null +++ b/icu_sources_data-Write-command-output-to-our-stderr.patch @@ -0,0 +1,34 @@ +From: Simon McVittie +Date: Mon, 9 Oct 2017 09:23:14 +0100 +Subject: icu_sources_data: Write command output to our stderr + +Saying "See output in /tmp/foobar" is all very well for a developer +build, but on a buildd our /tmp is going to get thrown away after +the build. Just log the usual way instead. +--- + intl/icu_sources_data.py | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + +diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py +index 8cf9290..7d2d983 100644 +--- a/intl/icu_sources_data.py ++++ b/intl/icu_sources_data.py +@@ -84,16 +84,13 @@ def update_sources(topsrcdir): + + def try_run(name, command, cwd=None, **kwargs): + try: +- with tempfile.NamedTemporaryFile(prefix=name, delete=False) as f: +- subprocess.check_call(command, cwd=cwd, stdout=f, ++ subprocess.check_call(command, cwd=cwd, stdout=sys.stderr, + stderr=subprocess.STDOUT, **kwargs) + except subprocess.CalledProcessError: +- print('''Error running "{}" in directory {} +- See output in {}'''.format(' '.join(command), cwd, f.name), ++ print('''Error running "{}" in directory {}'''.format(' '.join(command), cwd), + file=sys.stderr) + return False + else: +- os.unlink(f.name) + return True + + diff --git a/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch b/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch new file mode 100644 index 0000000..5c75a89 --- /dev/null +++ b/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch @@ -0,0 +1,26 @@ +From: Simon McVittie +Date: Mon, 9 Oct 2017 09:22:12 +0100 +Subject: icu_sources_data.py: Decouple from Mozilla build system + +mozpack.path is a wrapper around os.path that normalizes path +separators on Windows, but on Unix we only have one path separator +so there's nothing to normalize. Avoid needing to import all of it. +--- + intl/icu_sources_data.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/intl/icu_sources_data.py b/intl/icu_sources_data.py +index 98c0ccb..8cf9290 100644 +--- a/intl/icu_sources_data.py ++++ b/intl/icu_sources_data.py +@@ -19,7 +19,9 @@ import subprocess + import sys + import tempfile + +-from mozpack import path as mozpath ++# Close enough ++import os.path as mozpath ++mozpath.normsep = lambda p: p + + + def find_source_file(dir, filename): diff --git a/init_patch.patch b/init_patch.patch new file mode 100644 index 0000000..2c1db67 --- /dev/null +++ b/init_patch.patch @@ -0,0 +1,12 @@ +--- a/python/mozbuild/mozbuild/configure/__init__.py ++++ b/python/mozbuild/mozbuild/configure/__init__.py +@@ -421,7 +421,7 @@ + # All options should have been removed (handled) by now. + for arg in self._helper: + without_value = arg.split('=', 1)[0] +- raise InvalidOptionError('Unknown option: %s' % without_value) ++ # raise InvalidOptionError('Unknown option: %s' % without_value) + + # Run the execution queue + for func, args in self._execution_queue: + diff --git a/mozjs60.spec b/mozjs60.spec new file mode 100644 index 0000000..82aa728 --- /dev/null +++ b/mozjs60.spec @@ -0,0 +1,239 @@ +%global major 60 + +# Require libatomic for ppc +%ifarch ppc +%global system_libatomic 1 +%endif + +# Big endian platforms +%ifarch ppc ppc64 s390 s390x +%global big_endian 1 +%endif + +Name: mozjs%{major} +Version: 60.1.0 +Release: 1%{?dist} +Summary: SpiderMonkey JavaScript library + +License: MPLv2.0 and MPLv1.1 and BSD and GPLv2+ and GPLv3+ and LGPLv2+ and AFL and ASL 2.0 +URL: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey +Source0: https://ftp.mozilla.org/pub/firefox/releases/%{version}esr/source/firefox-%{version}esr.source.tar.xz + +# Patches from Debian mozjs52_52.3.1-4.debian.tar.xz: +Patch0001: fix-soname.patch +Patch0002: copy-headers.patch +Patch0003: tests-increase-timeout.patch +Patch0004: tests-snans-be.patch +Patch0008: Always-use-the-equivalent-year-to-determine-the-time-zone.patch +Patch0009: icu_sources_data.py-Decouple-from-Mozilla-build-system.patch +Patch0010: icu_sources_data-Write-command-output-to-our-stderr.patch +Patch0011: tests-For-tests-that-are-skipped-on-64-bit-mips64-is-also.patch + +# Build fixes - https://hg.mozilla.org/mozilla-central/rev/ca36a6c4f8a4a0ddaa033fdbe20836d87bbfb873 +Patch12: emitter.patch +Patch13: emitter_test.patch +Patch14: init_patch.patch + +# Patches from Fedora firefox package: +Patch26: build-icu-big-endian.patch + +BuildRequires: autoconf213 +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: perl-devel +BuildRequires: pkgconfig(libffi) +BuildRequires: pkgconfig(zlib) +BuildRequires: python2-devel +BuildRequires: readline-devel +BuildRequires: /usr/bin/zip +%if 0%{?system_libatomic} +BuildRequires: libatomic +%endif + +# Firefox does not allow to build with system version of jemalloc +Provides: bundled(jemalloc) = 4.3.1 + +%description +SpiderMonkey is the code-name for Mozilla Firefox's C++ implementation of +JavaScript. It is intended to be embedded in other applications +that provide host environments for JavaScript. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%prep +%setup -q -n firefox-%{version}/js/src + +pushd ../.. +%patch0001 -p1 +%patch0002 -p1 +%patch0003 -p1 +%patch0004 -p1 +%patch0008 -p1 +%patch0009 -p1 +%patch0010 -p1 +%patch0011 -p1 + +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 + +# Patch for big endian platforms only +%if 0%{?big_endian} +%patch26 -p1 -b .icu +%endif + +# make sure we don't ever accidentally link against bundled security libs +rm -rf security/ +popd + +# Remove zlib directory (to be sure using system version) +rm -rf ../../modules/zlib + +%build +# Disable null pointer gcc6 optimization in gcc6 (rhbz#1328045) +export CFLAGS="%{optflags} -fno-tree-vrp -fno-strict-aliasing -fno-delete-null-pointer-checks" +export CXXFLAGS="$CFLAGS" +export LINKFLAGS="%{?__global_ldflags}" +export PYTHON="%{__python2}" + +autoconf-2.13 +%configure \ + --without-system-icu \ + --enable-posix-nspr-emulation \ + --with-system-zlib \ + --enable-tests \ + --disable-strip \ + --with-intl-api \ + --enable-readline \ + --enable-shared-js \ + --disable-optimize \ + --enable-pie \ + --disable-jemalloc \ + +%if 0%{?big_endian} +echo "Generate big endian version of config/external/icu/data/icud58l.dat" +pushd ../.. + ./mach python intl/icu_sources_data.py . + ls -l config/external/icu/data + rm -f config/external/icu/data/icudt*l.dat +popd +%endif + +%make_build + +%install +%make_install + +# Fix permissions +chmod -x %{buildroot}%{_libdir}/pkgconfig/*.pc + +# Remove unneeded files +rm %{buildroot}%{_bindir}/js%{major}-config +rm %{buildroot}%{_libdir}/libjs_static.ajs + +# Rename library and create symlinks, following fix-soname.patch +mv %{buildroot}%{_libdir}/libmozjs-%{major}.so \ + %{buildroot}%{_libdir}/libmozjs-%{major}.so.0.0.0 +ln -s libmozjs-%{major}.so.0.0.0 %{buildroot}%{_libdir}/libmozjs-%{major}.so.0 +ln -s libmozjs-%{major}.so.0 %{buildroot}%{_libdir}/libmozjs-%{major}.so + +%check +# Run SpiderMonkey tests +%{__python2} tests/jstests.py -d -s -t 1800 --no-progress ../../js/src/js/src/shell/js \ +%ifarch %{ix86} x86_64 %{arm} aarch64 ppc ppc64le +; +%else +|| : +%endif + +# Run basic JIT tests +%{__python2} jit-test/jit_test.py -s -t 1800 --no-progress ../../js/src/js/src/shell/js basic \ +%ifarch %{ix86} x86_64 %{arm} aarch64 ppc ppc64le +; +%else +|| : +%endif + +%ldconfig_scriptlets + +%files +%doc README.html +%{_libdir}/libmozjs-%{major}.so.0* + +%files devel +%{_bindir}/js%{major} +%{_libdir}/libmozjs-%{major}.so +%{_libdir}/pkgconfig/*.pc +%{_includedir}/mozjs-%{major}/ + +%changelog +* Tue Sep 04 2018 Frantisek Zatloukal - 60.1.0-1 +- Update to 60.1.0 + +* Wed Jul 25 2018 Kalev Lember - 52.9.0-1 +- Update to 52.9.0 + +* Fri Jul 13 2018 Fedora Release Engineering - 52.8.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 11 2018 Ray Strode - 52.8.0-2 +- safeguard against linking against bundled nss + Related: #1563708 + +* Fri May 11 2018 Kalev Lember - 52.8.0-1 +- Update to 52.8.0 +- Fix the build on ppc +- Disable JS Helper threads on ppc64le (#1523121) + +* Sat Apr 07 2018 Kalev Lember - 52.7.3-1 +- Update to 52.7.3 + +* Tue Mar 20 2018 Kalev Lember - 52.7.2-1 +- Update to 52.7.2 +- Switch to %%ldconfig_scriptlets + +* Thu Feb 08 2018 Fedora Release Engineering - 52.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 23 2018 Kalev Lember - 52.6.0-1 +- Update to 52.6.0 + +* Fri Nov 24 2017 Björn Esser - 52.5.0-5 +- SpiderMonkey tests have regressions on %%{power64}, too + +* Fri Nov 24 2017 Björn Esser - 52.5.0-4 +- SpiderMonkey tests have regressions on big endian platforms + +* Fri Nov 24 2017 Björn Esser - 52.5.0-3 +- SpiderMonkey tests do not fail on any arch +- Basic JIT tests are failing on s390 arches, only +- Use macro for ppc64 arches +- Run tests using Python2 explicitly +- Simplify %%check +- Use the %%{major} macro consequently +- Replace %%define with %%global + +* Fri Nov 24 2017 Björn Esser - 52.5.0-2 +- Use macro for Python 2 interpreter +- Use proper export and quoting + +* Tue Nov 14 2017 Kalev Lember - 52.5.0-1 +- Update to 52.5.0 + +* Tue Oct 31 2017 Kalev Lember - 52.4.0-3 +- Include standalone /usr/bin/js52 interpreter + +* Tue Oct 31 2017 Kalev Lember - 52.4.0-2 +- Various secondary arch fixes + +* Thu Sep 28 2017 Kalev Lember - 52.4.0-1 +- Update to 52.4.0 + +* Wed Sep 20 2017 Kalev Lember - 52.3.0-1 +- Initial Fedora packaging, based on earlier mozjs45 work diff --git a/sources b/sources new file mode 100644 index 0000000..c1393ba --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (firefox-60.1.0esr.source.tar.xz) = 06c2d6d02086b77cc243eb4438d643cbc51fb766f1be8d5002bf77587d5c14145c6e26c1496c654b8ed1cc325cad29b049aac55a32f757d167d183bf73fff396 diff --git a/tests-For-tests-that-are-skipped-on-64-bit-mips64-is-also.patch b/tests-For-tests-that-are-skipped-on-64-bit-mips64-is-also.patch new file mode 100644 index 0000000..d7ac441 --- /dev/null +++ b/tests-For-tests-that-are-skipped-on-64-bit-mips64-is-also.patch @@ -0,0 +1,41 @@ +From: Simon McVittie +Date: Mon, 9 Oct 2017 09:46:31 +0100 +Subject: tests: For tests that are skipped on 64-bit, mips64 is also 64-bit + +mips64 is a 64-bit platform and a Debian release architecture. +--- + js/src/tests/non262/Array/regress-157652.js | 2 +- + js/src/tests/non262/Array/regress-330812.js | 2 +- + js/src/tests/non262/regress/regress-422348.js | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/js/src/tests/non262/Array/regress-157652.js b/js/src/tests/non262/Array/regress-157652.js +index 6916fe1..b21dcc3 100644 +--- a/js/src/tests/non262/Array/regress-157652.js ++++ b/js/src/tests/non262/Array/regress-157652.js +@@ -1,4 +1,4 @@ +-// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x/)||Android) -- No test results ++// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x|mips64/)||Android) -- No test results + /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ + /* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this +diff --git a/js/src/tests/non262/Array/regress-330812.js b/js/src/tests/non262/Array/regress-330812.js +index c48f4c8..6b1ba2a 100644 +--- a/js/src/tests/non262/Array/regress-330812.js ++++ b/js/src/tests/non262/Array/regress-330812.js +@@ -1,4 +1,4 @@ +-// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x/)||Android) -- No test results ++// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x|mips64/)||Android) -- No test results + /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ + /* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this +diff --git a/js/src/tests/non262/regress/regress-422348.js b/js/src/tests/non262/regress/regress-422348.js +index 2c28d5a..e94c397 100644 +--- a/js/src/tests/non262/regress/regress-422348.js ++++ b/js/src/tests/non262/regress/regress-422348.js +@@ -1,4 +1,4 @@ +-// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x/)) -- On 64-bit, takes forever rather than throwing ++// |reftest| skip-if(xulRuntime.XPCOMABI.match(/x86_64|aarch64|ppc64|ppc64le|s390x|mips64/)) -- On 64-bit, takes forever rather than throwing + /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ + /* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/tests-increase-timeout.patch b/tests-increase-timeout.patch new file mode 100644 index 0000000..91f5fa7 --- /dev/null +++ b/tests-increase-timeout.patch @@ -0,0 +1,22 @@ +From: Adrian Bunk +Date: Tue, 3 Jul 2018 10:03:37 +0100 +Subject: Increase the test timeout for slower buildds + +Bug-Debian: https://bugs.debian.org/878284 +--- + js/src/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/js/src/Makefile.in b/js/src/Makefile.in +index 4ac9f48..6ab5582 100644 +--- a/js/src/Makefile.in ++++ b/js/src/Makefile.in +@@ -72,7 +72,7 @@ check:: check-style check-masm check-js-msg check-opcode + + check-jstests: + $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/tests/jstests.py \ +- --no-progress --format=automation --timeout 300 \ ++ --no-progress --format=automation --timeout 600 \ + $(JSTESTS_EXTRA_ARGS) \ + $(DIST)/bin/$(JS_SHELL_NAME)$(BIN_SUFFIX) + diff --git a/tests-snans-be.patch b/tests-snans-be.patch new file mode 100644 index 0000000..cd794c9 --- /dev/null +++ b/tests-snans-be.patch @@ -0,0 +1,32 @@ +From: Adrian Bunk +Date: Tue, 3 Jul 2018 10:03:37 +0100 +Subject: Fix sort_snans.js test on big endian + +Bug-Debian: https://bugs.debian.org/878285 +--- + js/src/tests/non262/TypedArray/sort_snans.js | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/js/src/tests/non262/TypedArray/sort_snans.js b/js/src/tests/non262/TypedArray/sort_snans.js +index 9e3ad16..df6cd52 100644 +--- a/js/src/tests/non262/TypedArray/sort_snans.js ++++ b/js/src/tests/non262/TypedArray/sort_snans.js +@@ -34,6 +34,18 @@ function testFloat32NaNRanges(start, end) { + // and startHi, startLow and endHi, endLow should be 32-bit integers which, + // when combined (Hi + Low), form Float64 NaNs. + function testFloat64NaNRanges(startHi, startLow, endHi, endLow) { ++ ++ // Swap on big endian platforms ++ if ((new Uint32Array((new Uint8Array([1,2,3,4])).buffer))[0] === 0x01020304) { ++ let tmp = startHi; ++ startHi = startLow; ++ startLow = tmp; ++ ++ tmp = endHi; ++ endHi = endLow; ++ endLow = tmp; ++ } ++ + let skipN = 10e6; + + let sampleSizeHi = Math.floor((endHi - startHi)/skipN);