[arch-commits] Commit in js60/repos (4 files)
Jan Steffens
heftig at archlinux.org
Tue Jul 9 21:35:19 UTC 2019
Date: Tuesday, July 9, 2019 @ 21:35:19
Author: heftig
Revision: 357490
archrelease: copy trunk to testing-x86_64
Added:
js60/repos/testing-x86_64/
js60/repos/testing-x86_64/PKGBUILD
(from rev 357489, js60/trunk/PKGBUILD)
js60/repos/testing-x86_64/bug1415202.patch
(from rev 357489, js60/trunk/bug1415202.patch)
js60/repos/testing-x86_64/mozjs60-fix-soname.patch
(from rev 357489, js60/trunk/mozjs60-fix-soname.patch)
--------------------------+
PKGBUILD | 86 ++++++++++++++++++++++++++++++
bug1415202.patch | 127 +++++++++++++++++++++++++++++++++++++++++++++
mozjs60-fix-soname.patch | 25 ++++++++
3 files changed, 238 insertions(+)
Copied: js60/repos/testing-x86_64/PKGBUILD (from rev 357489, js60/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD (rev 0)
+++ testing-x86_64/PKGBUILD 2019-07-09 21:35:19 UTC (rev 357490)
@@ -0,0 +1,86 @@
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
+
+pkgname=js60
+pkgver=60.8.0
+pkgrel=1
+pkgdesc="JavaScript interpreter and libraries - Version 60"
+arch=(x86_64)
+url="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+license=(MPL)
+depends=(gcc-libs readline zlib sh)
+makedepends=(python2 zip autoconf2.13)
+_relver=${pkgver}esr
+source=(https://archive.mozilla.org/pub/firefox/releases/$_relver/source/firefox-$_relver.source.tar.xz{,.asc}
+ bug1415202.patch
+ mozjs60-fix-soname.patch)
+sha256sums=('c13387d944e635aebd5f1d2ce9ab77cb706a74043a240cbb7b70654519487fbe'
+ 'SKIP'
+ '0b410aa6ebd0236cd3ea524340c2da2235973a42cd0eaa90f7f394cd5bcbab95'
+ 'c792837930defe27355941080e9b80ec1d45003c097e4707860acc13d43bc519')
+validpgpkeys=('14F26682D0916CDD81E37B6D61B7B526D98F0353') # Mozilla Software Releases <release at mozilla.com>
+
+prepare() {
+ cd firefox-$pkgver
+ mkdir obj
+
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1479687
+ patch -Np1 -i ../bug1415202.patch
+
+ # https://salsa.debian.org/gnome-team/mozjs52/tree/debian/master/debian/patches
+ patch -Np1 -i ../mozjs60-fix-soname.patch
+}
+
+build() {
+ local configure_args=(
+ --prefix=/usr
+ --disable-debug
+ --disable-debug-symbols
+ --disable-jemalloc
+ --disable-strip
+ --enable-hardening
+ --enable-linker=gold
+ --enable-optimize
+ --enable-posix-nspr-emulation
+ --enable-readline
+ --enable-release
+ --enable-shared-js
+ --enable-tests
+ --with-intl-api
+ --with-system-zlib
+ --without-system-icu
+ )
+
+ cd firefox-$pkgver/obj
+
+ export PYTHON=/usr/bin/python2
+
+ sh ../js/src/configure "${configure_args[@]}"
+ make
+}
+
+check() {
+ local jstests_extra_args=(
+ --format=none
+ --exclude-random
+ ) jittest_extra_args=(
+ --format=none
+ --timeout 300
+ ) jittest_test_args=(
+ basic
+ )
+
+ cd firefox-$pkgver/obj
+ make -C js/src check-jstests check-jit-test \
+ JSTESTS_EXTRA_ARGS="${jstests_extra_args[*]}" \
+ JITTEST_EXTRA_ARGS="${jittest_extra_args[*]}" \
+ JITTEST_TEST_ARGS="${jittest_test_args[*]}"
+}
+
+package() {
+ cd firefox-$pkgver/obj
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir"/usr/lib/*.ajs
+ find "$pkgdir"/usr/{lib/pkgconfig,include} -type f -exec chmod -c a-x {} +
+}
+
+# vim:set ts=2 sw=2 et:
Copied: js60/repos/testing-x86_64/bug1415202.patch (from rev 357489, js60/trunk/bug1415202.patch)
===================================================================
--- testing-x86_64/bug1415202.patch (rev 0)
+++ testing-x86_64/bug1415202.patch 2019-07-09 21:35:19 UTC (rev 357490)
@@ -0,0 +1,127 @@
+# HG changeset patch
+# User André Bargull <andre.bargull at gmail.com>
+# Date 1510140221 28800
+# Wed Nov 08 03:23:41 2017 -0800
+# Node ID 8bf5e7460a7c5ba3430b501d1659c469a862a929
+# Parent 60fd4a5b01ec70ded9ddfd560fd5be191b1c74b9
+Bug 1415202: Always use the equivalent year to determine the time zone offset and name. r=Waldo
+
+diff --git a/js/src/jsdate.cpp b/js/src/jsdate.cpp
+--- a/js/src/jsdate.cpp
++++ b/js/src/jsdate.cpp
+@@ -2348,22 +2348,26 @@ static PRMJTime ToPRMJTime(double localT
+ prtm.tm_isdst = (DaylightSavingTA(utcTime) != 0);
+
+ return prtm;
+ }
+
+ static size_t FormatTime(char* buf, int buflen, const char* fmt, double utcTime,
+ double localTime) {
+ PRMJTime prtm = ToPRMJTime(localTime, utcTime);
+- int eqivalentYear = IsRepresentableAsTime32(utcTime)
++
++ // 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,
++ return PRMJ_FormatTime(buf, buflen, fmt, &prtm, timeZoneYear,
+ offsetInSeconds);
+ }
+
+ enum class FormatSpec { DateTime, Date, Time };
+
+ static bool FormatDate(JSContext* cx, double utcTime, FormatSpec format,
+ MutableHandleValue rval) {
+ JSString* str;
+diff --git a/js/src/vm/Time.cpp b/js/src/vm/Time.cpp
+--- a/js/src/vm/Time.cpp
++++ b/js/src/vm/Time.cpp
+@@ -242,17 +242,17 @@ static void PRMJ_InvalidParameterHandler
+ const wchar_t* file, unsigned int line,
+ uintptr_t pReserved) {
+ /* empty */
+ }
+ #endif
+
+ /* 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,
++ const PRMJTime* prtm, int timeZoneYear,
+ int offsetInSeconds) {
+ size_t result = 0;
+ #if defined(XP_UNIX) || defined(XP_WIN)
+ struct tm a;
+ #ifdef XP_WIN
+ _invalid_parameter_handler oldHandler;
+ #ifndef __MINGW32__
+ int oldReportMode;
+@@ -275,39 +275,33 @@ size_t PRMJ_FormatTime(char* buf, int bu
+ */
+ #if defined(HAVE_LOCALTIME_R) && defined(HAVE_TM_ZONE_TM_GMTOFF)
+ char emptyTimeZoneId[] = "";
+ {
+ /*
+ * 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));
+ td.tm_sec = prtm->tm_sec;
+ td.tm_min = prtm->tm_min;
+ td.tm_hour = prtm->tm_hour;
+ 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<time_t>(-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.
+ if (t != static_cast<time_t>(-1) && localtime_r(&t, &td)) {
+ a.tm_gmtoff = td.tm_gmtoff;
+ a.tm_zone = td.tm_zone;
+ } else {
+ a.tm_gmtoff = offsetInSeconds;
+diff --git a/js/src/vm/Time.h b/js/src/vm/Time.h
+--- a/js/src/vm/Time.h
++++ b/js/src/vm/Time.h
+@@ -44,17 +44,17 @@ inline void PRMJ_NowInit() {}
+ #ifdef XP_WIN
+ extern void PRMJ_NowShutdown();
+ #else
+ inline void PRMJ_NowShutdown() {}
+ #endif
+
+ /* 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,
++ const PRMJTime* tm, int timeZoneYear,
+ int offsetInSeconds);
+
+ /**
+ * Requesting the number of cycles from the CPU.
+ *
+ * `rdtsc`, or Read TimeStamp Cycle, is an instruction provided by
+ * x86-compatible CPUs that lets processes request the number of
+ * cycles spent by the CPU executing instructions since the CPU was
Copied: js60/repos/testing-x86_64/mozjs60-fix-soname.patch (from rev 357489, js60/trunk/mozjs60-fix-soname.patch)
===================================================================
--- testing-x86_64/mozjs60-fix-soname.patch (rev 0)
+++ testing-x86_64/mozjs60-fix-soname.patch 2019-07-09 21:35:19 UTC (rev 357490)
@@ -0,0 +1,25 @@
+diff --git i/js/src/build/Makefile.in w/js/src/build/Makefile.in
+index ee19104e0ef5..a0f06fd35a18 100644
+--- i/js/src/build/Makefile.in
++++ w/js/src/build/Makefile.in
+@@ -89,6 +89,8 @@ ifneq (,$(REAL_LIBRARY))
+ endif
+ ifneq (,$(SHARED_LIBRARY))
+ $(SYSINSTALL) $(SHARED_LIBRARY) $(DESTDIR)$(libdir)
++ mv -f $(DESTDIR)$(libdir)/$(SHARED_LIBRARY) $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).0
++ ln -s $(SHARED_LIBRARY).0 $(DESTDIR)$(libdir)/$(SHARED_LIBRARY)
+ ifeq ($(OS_ARCH),Darwin)
+ install_name_tool -id $(abspath $(libdir)/$(SHARED_LIBRARY)) $(DESTDIR)$(libdir)/$(SHARED_LIBRARY)
+ endif
+diff --git i/js/src/build/moz.build w/js/src/build/moz.build
+index a7f5fa4ce8eb..726687c13fb0 100644
+--- i/js/src/build/moz.build
++++ w/js/src/build/moz.build
+@@ -23,6 +23,7 @@ if not CONFIG['JS_STANDALONE']:
+ if CONFIG['JS_SHARED_LIBRARY']:
+ GeckoSharedLibrary('js', linkage=None)
+ SHARED_LIBRARY_NAME = CONFIG['JS_LIBRARY_NAME']
++ LDFLAGS += ['-Wl,-soname,lib{}.so.0'.format(SHARED_LIBRARY_NAME)]
+ else:
+ Library('js')
+
More information about the arch-commits
mailing list