You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ko...@apache.org on 2022/02/07 00:04:57 UTC

[couchdb-pkg] branch main updated (7a653fa -> 5869af0)

This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-pkg.git.


    from 7a653fa  Add bullseye to distributions
     new 7c7eb6d  feat: initial js68 support
     new 9387f4f  feat: add aarch64-rhel build support
     new 5869af0  chore: create rpm subfolder for js68

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                                         |   1 +
 Makefile                                           |  13 +
 .../SOURCES/Exclude-failing-tests-on-s390x.patch   |  29 ++
 ...e-unused-LLVM-and-Rust-build-dependencies.patch |  72 +++++
 ...able_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch |  10 +
 js68/rpm/SOURCES/build-icu-big-endian.patch        |  12 +
 js68/rpm/SOURCES/copy-headers.patch                |  29 ++
 js68/rpm/SOURCES/emitter.patch                     |  14 +
 js68/rpm/SOURCES/emitter_test.patch                |  27 ++
 js68/rpm/SOURCES/fix-soname.patch                  |  25 ++
 ...s_data-Write-command-output-to-our-stderr.patch |  34 +++
 ...ata.py-Decouple-from-Mozilla-build-system.patch |  26 ++
 js68/rpm/SOURCES/init_patch.patch                  |  13 +
 js68/rpm/SOURCES/jstests_python-3.patch            |  57 ++++
 js68/rpm/SOURCES/sources                           |   1 +
 js68/rpm/SOURCES/spidermonkey_checks_disable.patch |  10 +
 .../spidermonkey_style_check_disable_s390x.patch   |  11 +
 js68/rpm/SOURCES/tests-increase-timeout.patch      |  22 ++
 js68/rpm/SPECS/js68.spec                           | 336 +++++++++++++++++++++
 rpm/SOURCES/0001-build-with-sm68-on-aarch64.patch  |  23 ++
 rpm/SPECS/couchdb.spec.in                          |  10 +-
 21 files changed, 773 insertions(+), 2 deletions(-)
 create mode 100644 js68/rpm/SOURCES/Exclude-failing-tests-on-s390x.patch
 create mode 100644 js68/rpm/SOURCES/Remove-unused-LLVM-and-Rust-build-dependencies.patch
 create mode 100644 js68/rpm/SOURCES/armv7_disable_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch
 create mode 100644 js68/rpm/SOURCES/build-icu-big-endian.patch
 create mode 100644 js68/rpm/SOURCES/copy-headers.patch
 create mode 100644 js68/rpm/SOURCES/emitter.patch
 create mode 100644 js68/rpm/SOURCES/emitter_test.patch
 create mode 100644 js68/rpm/SOURCES/fix-soname.patch
 create mode 100644 js68/rpm/SOURCES/icu_sources_data-Write-command-output-to-our-stderr.patch
 create mode 100644 js68/rpm/SOURCES/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
 create mode 100644 js68/rpm/SOURCES/init_patch.patch
 create mode 100644 js68/rpm/SOURCES/jstests_python-3.patch
 create mode 100644 js68/rpm/SOURCES/sources
 create mode 100644 js68/rpm/SOURCES/spidermonkey_checks_disable.patch
 create mode 100644 js68/rpm/SOURCES/spidermonkey_style_check_disable_s390x.patch
 create mode 100644 js68/rpm/SOURCES/tests-increase-timeout.patch
 create mode 100644 js68/rpm/SPECS/js68.spec
 create mode 100644 rpm/SOURCES/0001-build-with-sm68-on-aarch64.patch

[couchdb-pkg] 03/03: chore: create rpm subfolder for js68

Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-pkg.git

commit 5869af0db17d4b351a309c0c826bebcb3f2c732b
Author: mokou <mo...@fastmail.com>
AuthorDate: Wed Feb 2 15:22:08 2022 +0100

    chore: create rpm subfolder for js68
---
 js68/{ => rpm}/SOURCES/Exclude-failing-tests-on-s390x.patch               | 0
 .../SOURCES/Remove-unused-LLVM-and-Rust-build-dependencies.patch          | 0
 .../SOURCES/armv7_disable_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch      | 0
 js68/{ => rpm}/SOURCES/build-icu-big-endian.patch                         | 0
 js68/{ => rpm}/SOURCES/copy-headers.patch                                 | 0
 js68/{ => rpm}/SOURCES/emitter.patch                                      | 0
 js68/{ => rpm}/SOURCES/emitter_test.patch                                 | 0
 js68/{ => rpm}/SOURCES/fix-soname.patch                                   | 0
 .../SOURCES/icu_sources_data-Write-command-output-to-our-stderr.patch     | 0
 .../SOURCES/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch  | 0
 js68/{ => rpm}/SOURCES/init_patch.patch                                   | 0
 js68/{ => rpm}/SOURCES/jstests_python-3.patch                             | 0
 js68/{ => rpm}/SOURCES/sources                                            | 0
 js68/{ => rpm}/SOURCES/spidermonkey_checks_disable.patch                  | 0
 js68/{ => rpm}/SOURCES/spidermonkey_style_check_disable_s390x.patch       | 0
 js68/{ => rpm}/SOURCES/tests-increase-timeout.patch                       | 0
 js68/{ => rpm}/SPECS/js68.spec                                            | 0
 17 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/js68/SOURCES/Exclude-failing-tests-on-s390x.patch b/js68/rpm/SOURCES/Exclude-failing-tests-on-s390x.patch
similarity index 100%
rename from js68/SOURCES/Exclude-failing-tests-on-s390x.patch
rename to js68/rpm/SOURCES/Exclude-failing-tests-on-s390x.patch
diff --git a/js68/SOURCES/Remove-unused-LLVM-and-Rust-build-dependencies.patch b/js68/rpm/SOURCES/Remove-unused-LLVM-and-Rust-build-dependencies.patch
similarity index 100%
rename from js68/SOURCES/Remove-unused-LLVM-and-Rust-build-dependencies.patch
rename to js68/rpm/SOURCES/Remove-unused-LLVM-and-Rust-build-dependencies.patch
diff --git a/js68/SOURCES/armv7_disable_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch b/js68/rpm/SOURCES/armv7_disable_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch
similarity index 100%
rename from js68/SOURCES/armv7_disable_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch
rename to js68/rpm/SOURCES/armv7_disable_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch
diff --git a/js68/SOURCES/build-icu-big-endian.patch b/js68/rpm/SOURCES/build-icu-big-endian.patch
similarity index 100%
rename from js68/SOURCES/build-icu-big-endian.patch
rename to js68/rpm/SOURCES/build-icu-big-endian.patch
diff --git a/js68/SOURCES/copy-headers.patch b/js68/rpm/SOURCES/copy-headers.patch
similarity index 100%
rename from js68/SOURCES/copy-headers.patch
rename to js68/rpm/SOURCES/copy-headers.patch
diff --git a/js68/SOURCES/emitter.patch b/js68/rpm/SOURCES/emitter.patch
similarity index 100%
rename from js68/SOURCES/emitter.patch
rename to js68/rpm/SOURCES/emitter.patch
diff --git a/js68/SOURCES/emitter_test.patch b/js68/rpm/SOURCES/emitter_test.patch
similarity index 100%
rename from js68/SOURCES/emitter_test.patch
rename to js68/rpm/SOURCES/emitter_test.patch
diff --git a/js68/SOURCES/fix-soname.patch b/js68/rpm/SOURCES/fix-soname.patch
similarity index 100%
rename from js68/SOURCES/fix-soname.patch
rename to js68/rpm/SOURCES/fix-soname.patch
diff --git a/js68/SOURCES/icu_sources_data-Write-command-output-to-our-stderr.patch b/js68/rpm/SOURCES/icu_sources_data-Write-command-output-to-our-stderr.patch
similarity index 100%
rename from js68/SOURCES/icu_sources_data-Write-command-output-to-our-stderr.patch
rename to js68/rpm/SOURCES/icu_sources_data-Write-command-output-to-our-stderr.patch
diff --git a/js68/SOURCES/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch b/js68/rpm/SOURCES/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
similarity index 100%
rename from js68/SOURCES/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
rename to js68/rpm/SOURCES/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
diff --git a/js68/SOURCES/init_patch.patch b/js68/rpm/SOURCES/init_patch.patch
similarity index 100%
rename from js68/SOURCES/init_patch.patch
rename to js68/rpm/SOURCES/init_patch.patch
diff --git a/js68/SOURCES/jstests_python-3.patch b/js68/rpm/SOURCES/jstests_python-3.patch
similarity index 100%
rename from js68/SOURCES/jstests_python-3.patch
rename to js68/rpm/SOURCES/jstests_python-3.patch
diff --git a/js68/SOURCES/sources b/js68/rpm/SOURCES/sources
similarity index 100%
rename from js68/SOURCES/sources
rename to js68/rpm/SOURCES/sources
diff --git a/js68/SOURCES/spidermonkey_checks_disable.patch b/js68/rpm/SOURCES/spidermonkey_checks_disable.patch
similarity index 100%
rename from js68/SOURCES/spidermonkey_checks_disable.patch
rename to js68/rpm/SOURCES/spidermonkey_checks_disable.patch
diff --git a/js68/SOURCES/spidermonkey_style_check_disable_s390x.patch b/js68/rpm/SOURCES/spidermonkey_style_check_disable_s390x.patch
similarity index 100%
rename from js68/SOURCES/spidermonkey_style_check_disable_s390x.patch
rename to js68/rpm/SOURCES/spidermonkey_style_check_disable_s390x.patch
diff --git a/js68/SOURCES/tests-increase-timeout.patch b/js68/rpm/SOURCES/tests-increase-timeout.patch
similarity index 100%
rename from js68/SOURCES/tests-increase-timeout.patch
rename to js68/rpm/SOURCES/tests-increase-timeout.patch
diff --git a/js68/SPECS/js68.spec b/js68/rpm/SPECS/js68.spec
similarity index 100%
rename from js68/SPECS/js68.spec
rename to js68/rpm/SPECS/js68.spec

[couchdb-pkg] 01/03: feat: initial js68 support

Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-pkg.git

commit 7c7eb6dc0f181f717872bbce9a8a7e2a00dccaa4
Author: mokou <mo...@fastmail.com>
AuthorDate: Wed Jan 12 11:59:55 2022 +0100

    feat: initial js68 support
---
 .gitignore                                         |   1 +
 Makefile                                           |   5 +
 js68/SOURCES/Exclude-failing-tests-on-s390x.patch  |  29 ++
 ...e-unused-LLVM-and-Rust-build-dependencies.patch |  72 +++++
 ...able_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch |  10 +
 js68/SOURCES/build-icu-big-endian.patch            |  12 +
 js68/SOURCES/copy-headers.patch                    |  29 ++
 js68/SOURCES/emitter.patch                         |  14 +
 js68/SOURCES/emitter_test.patch                    |  27 ++
 js68/SOURCES/fix-soname.patch                      |  25 ++
 ...s_data-Write-command-output-to-our-stderr.patch |  34 +++
 ...ata.py-Decouple-from-Mozilla-build-system.patch |  26 ++
 js68/SOURCES/init_patch.patch                      |  13 +
 js68/SOURCES/jstests_python-3.patch                |  57 ++++
 js68/SOURCES/sources                               |   1 +
 js68/SOURCES/spidermonkey_checks_disable.patch     |  10 +
 .../spidermonkey_style_check_disable_s390x.patch   |  11 +
 js68/SOURCES/tests-increase-timeout.patch          |  22 ++
 js68/SPECS/js68.spec                               | 336 +++++++++++++++++++++
 19 files changed, 734 insertions(+)

diff --git a/.gitignore b/.gitignore
index d630ae8..395f1d0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,4 @@ stage/
 *.tar.gz
 *.bak
 *~
+.idea/
diff --git a/Makefile b/Makefile
index 8366e15..77fdfa0 100644
--- a/Makefile
+++ b/Makefile
@@ -243,3 +243,8 @@ couch-js-rpms: couch-js-clean
 	cp js/src/js185-1.0.0.tar.gz ../rpmbuild/SOURCES
 	cd ../rpmbuild && rpmbuild --verbose -bb SPECS/js.spec
 
+couch-js-68-rpms: couch-js-clean
+	mkdir -p ../rpmbuild
+	cp -R js68/* ../rpmbuild
+	cd ../rpmbuild/SOURCES && curl -O https://ftp.mozilla.org/pub/firefox/releases/68.12.0esr/source/firefox-68.12.0esr.source.tar.xz
+	cd ../rpmbuild && rpmbuild --verbose -bb SPECS/js68.spec
diff --git a/js68/SOURCES/Exclude-failing-tests-on-s390x.patch b/js68/SOURCES/Exclude-failing-tests-on-s390x.patch
new file mode 100644
index 0000000..064f868
--- /dev/null
+++ b/js68/SOURCES/Exclude-failing-tests-on-s390x.patch
@@ -0,0 +1,29 @@
+From b9e1976edca1af828a219d5ac35d07202170e5ba Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fz...@redhat.com>
+Date: Mon, 24 Aug 2020 15:45:36 +0200
+Subject: [PATCH] Exclude failing tests on s390x
+
+---
+ js/src/tests/jstests.list | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list
+index 8f5c0df..75f80f8 100644
+--- a/js/src/tests/jstests.list
++++ b/js/src/tests/jstests.list
+@@ -493,6 +493,12 @@ skip script test262/language/expressions/class/elements/derived-cls-direct-eval-
+ skip script test262/language/statements/class/elements/derived-cls-direct-eval-err-contains-superproperty-1.js
+ skip script test262/language/statements/class/elements/derived-cls-direct-eval-err-contains-superproperty-2.js
+
++# Crashes on s390x and ppc64, avoid it
++skip-if(xulRuntime.XPCOMABI.match(/s390x|ppc64-/)) script non262/extensions/clone-errors.js
++
++# Crashes on s390x
++skip-if(xulRuntime.XPCOMABI.match(/s390x/)) script test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
++skip-if(xulRuntime.XPCOMABI.match(/s390x/)) script non262/Intl/DateTimeFormat/timeZone_backward_links.js
+
+ ###########################################################
+ # Tests disabled due to issues in test262 importer script #
+--
+2.26.2
+
diff --git a/js68/SOURCES/Remove-unused-LLVM-and-Rust-build-dependencies.patch b/js68/SOURCES/Remove-unused-LLVM-and-Rust-build-dependencies.patch
new file mode 100644
index 0000000..d98b577
--- /dev/null
+++ b/js68/SOURCES/Remove-unused-LLVM-and-Rust-build-dependencies.patch
@@ -0,0 +1,72 @@
+Description: Remove unused LLVM and Rust build dependencies
+ Since the Javascript engine is normally part of Firefox, its build
+ system has dependencies on the LLVM and Rust toolchains. This limits
+ the number of architectures which mozjs68 can be built on.
+ .
+ It turns out, however, that neither LLVM nor Rust are used when mozjs68
+ is being built and these build dependencies are therefore not necessary.
+ .
+ This patch removes them and allows mozjs68 to be built on any architecture.
+ .
+Author: John Paul Adrian Glaubitz <gl...@physik.fu-berlin.de>
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959144
+Forwarded: no
+Last-Update: 2020-04-30
+
+Index: mozjs68-68.6.0/js/moz.configure
+===================================================================
+--- mozjs68-68.6.0.orig/js/moz.configure
++++ mozjs68-68.6.0/js/moz.configure
+@@ -18,11 +18,6 @@ def building_js(build_project):
+ option(env='JS_STANDALONE', default=building_js,
+        help='Reserved for internal use')
+
+-include('../build/moz.configure/rust.configure',
+-        when='--enable-compile-environment')
+-include('../build/moz.configure/bindgen.configure',
+-        when='--enable-compile-environment')
+-
+ @depends('JS_STANDALONE')
+ def js_standalone(value):
+     if value:
+Index: mozjs68-68.6.0/moz.configure
+===================================================================
+--- mozjs68-68.6.0.orig/moz.configure
++++ mozjs68-68.6.0/moz.configure
+@@ -598,36 +598,6 @@ set_config('MAKENSISU_FLAGS', nsis_flags
+
+ check_prog('7Z', ('7z', '7za'), allow_missing=True, when=target_is_windows)
+
+-
+-@depends(host_c_compiler, c_compiler, bindgen_config_paths)
+-def llvm_objdump(host_c_compiler, c_compiler, bindgen_config_paths):
+-    clang = None
+-    for compiler in (host_c_compiler, c_compiler):
+-        if compiler and compiler.type == 'clang':
+-            clang = compiler.compiler
+-            break
+-        elif compiler and compiler.type == 'clang-cl':
+-            clang = os.path.join(os.path.dirname(compiler.compiler), 'clang')
+-            break
+-
+-    if not clang and bindgen_config_paths:
+-        clang = bindgen_config_paths.clang_path
+-    llvm_objdump = 'llvm-objdump'
+-    if clang:
+-        out = check_cmd_output(clang, '--print-prog-name=llvm-objdump',
+-                               onerror=lambda: None)
+-        if out:
+-            llvm_objdump = out.rstrip()
+-    return (llvm_objdump,)
+-
+-
+-llvm_objdump = check_prog('LLVM_OBJDUMP', llvm_objdump, what='llvm-objdump',
+-                          when='--enable-compile-environment',
+-                          paths=toolchain_search_path)
+-
+-add_old_configure_assignment('LLVM_OBJDUMP', llvm_objdump)
+-
+-
+ # Please do not add configure checks from here on.
+
+ # Fallthrough to autoconf-based configure
diff --git a/js68/SOURCES/armv7_disable_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch b/js68/SOURCES/armv7_disable_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch
new file mode 100644
index 0000000..0cb26ac
--- /dev/null
+++ b/js68/SOURCES/armv7_disable_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch
@@ -0,0 +1,10 @@
+--- firefox-68.0/js/src/wasm/WasmSignalHandlers.cpp
++++ firefox-68.0/js/src/wasm/WasmSignalHandlers.cpp
+@@ -243,7 +243,7 @@
+ // If you run into compile problems on a tier-3 platform, you can disable the
+ // emulation here.
+
+-#if defined(__linux__) && defined(__arm__)
++#if 0 && defined(__linux__) && defined(__arm__)
+ #  define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
+ #endif
diff --git a/js68/SOURCES/build-icu-big-endian.patch b/js68/SOURCES/build-icu-big-endian.patch
new file mode 100644
index 0000000..70a5481
--- /dev/null
+++ b/js68/SOURCES/build-icu-big-endian.patch
@@ -0,0 +1,12 @@
+diff -up firefox-68.0/build/autoconf/icu.m4.icu firefox-68.0/build/autoconf/icu.m4
+--- firefox-68.0/build/autoconf/icu.m4.icu	2018-04-24 13:13:03.938961958 +0200
++++ firefox-68.0/build/autoconf/icu.m4	2018-04-24 13:14:44.472714375 +0200
+@@ -78,7 +78,7 @@
+     # 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"
+ fi
+
+ AC_SUBST(MOZ_ICU_VERSION)
diff --git a/js68/SOURCES/copy-headers.patch b/js68/SOURCES/copy-headers.patch
new file mode 100644
index 0000000..aec3b10
--- /dev/null
+++ b/js68/SOURCES/copy-headers.patch
@@ -0,0 +1,29 @@
+From: Rico Tzschichholz <ri...@ubuntu.com>
+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
+<ph...@gmail.com>.
+---
+ 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/js68/SOURCES/emitter.patch b/js68/SOURCES/emitter.patch
new file mode 100644
index 0000000..4254553
--- /dev/null
+++ b/js68/SOURCES/emitter.patch
@@ -0,0 +1,14 @@
+--- a/python/mozbuild/mozbuild/frontend/emitter.py
++++ b/python/mozbuild/mozbuild/frontend/emitter.py
+@@ -1195,11 +1195,6 @@
+                     raise SandboxValidationError('Path specified in LOCAL_INCLUDES '
+                         'is a filename, but a directory is required: %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 '
+-                    '(%s) resolves to the topsrcdir or topobjdir (%s), which is '
+-                    'not allowed' % (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/js68/SOURCES/emitter_test.patch b/js68/SOURCES/emitter_test.patch
new file mode 100644
index 0000000..59366d3
--- /dev/null
+++ b/js68/SOURCES/emitter_test.patch
@@ -0,0 +1,27 @@
+--- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py
++++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
+@@ -1051,24 +1051,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.*resolves to the '
+-                'topsrcdir or topobjdir'):
+-            objs = self.read_topsrcdir(reader)
+-
+-        reader = self.reader('local_includes-invalid/objdir')
+-
+-        with self.assertRaisesRegexp(
+-                SandboxValidationError,
+-                'Path specified in LOCAL_INCLUDES.*resolves to the '
+-                'topsrcdir or topobjdir'):
+-            objs = self.read_topsrcdir(reader)
+-
+     def test_local_includes_file(self):
+         """Test that a filename can't be used in LOCAL_INCLUDES."""
+         reader = self.reader('local_includes-filename')
diff --git a/js68/SOURCES/fix-soname.patch b/js68/SOURCES/fix-soname.patch
new file mode 100644
index 0000000..fc8052a
--- /dev/null
+++ b/js68/SOURCES/fix-soname.patch
@@ -0,0 +1,25 @@
+From: "Laszlo Boszormenyi (GCS)" <gc...@debian.org>
+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/js68/SOURCES/icu_sources_data-Write-command-output-to-our-stderr.patch b/js68/SOURCES/icu_sources_data-Write-command-output-to-our-stderr.patch
new file mode 100644
index 0000000..e2ed484
--- /dev/null
+++ b/js68/SOURCES/icu_sources_data-Write-command-output-to-our-stderr.patch
@@ -0,0 +1,34 @@
+From: Simon McVittie <sm...@debian.org>
+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
+@@ -187,16 +187,13 @@
+
+ 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,
+-                                  stderr=subprocess.STDOUT, **kwargs)
++        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),
+-              file=sys.stderr)
++        print('''Error running "{}" in directory {}'''.format(' '.join(command), cwd),
++            file=sys.stderr)
+         return False
+     else:
+-        os.unlink(f.name)
+         return True
diff --git a/js68/SOURCES/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch b/js68/SOURCES/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
new file mode 100644
index 0000000..a853a16
--- /dev/null
+++ b/js68/SOURCES/icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
@@ -0,0 +1,26 @@
+From: Simon McVittie <sm...@debian.org>
+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
+@@ -21,7 +21,9 @@
+ import sys
+ import tempfile
+
+-from mozpack import path as mozpath
++# Close enough
++import os.path as mozpath
++mozpath.normsep = lambda p: p
+
+ # The following files have been determined to be dead/unused by a
+ # semi-automated analysis. You can just remove any of the files below
diff --git a/js68/SOURCES/init_patch.patch b/js68/SOURCES/init_patch.patch
new file mode 100644
index 0000000..fd09eb7
--- /dev/null
+++ b/js68/SOURCES/init_patch.patch
@@ -0,0 +1,13 @@
+--- a/python/mozbuild/mozbuild/configure/__init__.py
++++ b/python/mozbuild/mozbuild/configure/__init__.py
+@@ -473,8 +473,8 @@
+             msg = 'Unknown option: %s' % without_value
+             if self._help:
+                 self._logger.warning(msg)
+-            else:
+-                raise InvalidOptionError(msg)
++            #else:
++            #    raise InvalidOptionError(msg)
+
+         # Run the execution queue
+         for func, args in self._execution_queue:
diff --git a/js68/SOURCES/jstests_python-3.patch b/js68/SOURCES/jstests_python-3.patch
new file mode 100644
index 0000000..484a02c
--- /dev/null
+++ b/js68/SOURCES/jstests_python-3.patch
@@ -0,0 +1,57 @@
+From e75a1c531767f3efd158fd8309084cf5157307be Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fz...@redhat.com>
+Date: Tue, 5 Nov 2019 19:14:38 +0100
+Subject: [PATCH] Python 3
+
+---
+ js/src/jit-test/jit_test.py    | 2 +-
+ js/src/tests/lib/manifest.py   | 5 ++++-
+ js/src/tests/lib/tasks_unix.py | 3 +++
+ 3 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/js/src/jit-test/jit_test.py b/js/src/jit-test/jit_test.py
+index 8fcd0c5..f51c544 100755
+--- a/js/src/jit-test/jit_test.py
++++ b/js/src/jit-test/jit_test.py
+@@ -138,7 +138,7 @@ def main(argv):
+                   help='With --write-failures=FILE, additionally write the'
+                   ' output of failed tests to [FILE]')
+     op.add_option('--jitflags', dest='jitflags', default='none',
+-                  choices=valid_jitflags(),
++                  choices=list(valid_jitflags()),
+                   help='IonMonkey option combinations. One of %s.' % ', '.join(valid_jitflags()))
+     op.add_option('--ion', dest='jitflags', action='store_const', const='ion',
+                   help='Run tests once with --ion-eager and once with'
+diff --git a/js/src/tests/lib/manifest.py b/js/src/tests/lib/manifest.py
+index 617f0f1..f54cc1e 100644
+--- a/js/src/tests/lib/manifest.py
++++ b/js/src/tests/lib/manifest.py
+@@ -105,7 +105,10 @@ class XULInfoTester:
+                 '-e', self.js_prologue,
+                 '-e', 'print(!!({}))'.format(cond)
+             ]
+-            p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
++            try:
++                p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, encoding="utf-8")
++            except TypeError:
++                p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
+             out, err = p.communicate()
+             if out in ('true\n', 'true\r\n'):
+                 ans = True
+diff --git a/js/src/tests/lib/tasks_unix.py b/js/src/tests/lib/tasks_unix.py
+index 40528b8..5edfe92 100644
+--- a/js/src/tests/lib/tasks_unix.py
++++ b/js/src/tests/lib/tasks_unix.py
+@@ -182,6 +182,9 @@ def reap_zombies(tasks, timeout):
+         if os.WIFSIGNALED(status):
+             returncode = -os.WTERMSIG(status)
+ 
++        ended.out=[x.decode('utf-8') for x in ended.out]
++        ended.err=[x.decode('utf-8') for x in ended.err]
++
+         finished.append(
+             TestOutput(
+                 ended.test,
+-- 
+2.23.0
+
diff --git a/js68/SOURCES/sources b/js68/SOURCES/sources
new file mode 100644
index 0000000..ca61a0b
--- /dev/null
+++ b/js68/SOURCES/sources
@@ -0,0 +1 @@
+SHA512 (firefox-68.12.0esr.source.tar.xz) = 839b02422e4c87bdb12e0995cd35ca8c1996f3fba00bbb46b419e46b67df5ec48a264cb14632db777ce29166ee4fdcb06e2ee3ce847e64328c58c9a2f9129f4c
diff --git a/js68/SOURCES/spidermonkey_checks_disable.patch b/js68/SOURCES/spidermonkey_checks_disable.patch
new file mode 100644
index 0000000..14ba0ad
--- /dev/null
+++ b/js68/SOURCES/spidermonkey_checks_disable.patch
@@ -0,0 +1,10 @@
+--- a/config/run_spidermonkey_checks.py
++++ b/config/run_spidermonkey_checks.py
+@@ -11,5 +11,5 @@
+     for script in scripts:
+         retcode = subprocess.call(
+             [sys.executable, script], cwd=buildconfig.topsrcdir)
+-        if retcode != 0:
+-            raise Exception(script + " failed")
++        #if retcode != 0:
++        #    raise Exception(script + " failed")
diff --git a/js68/SOURCES/spidermonkey_style_check_disable_s390x.patch b/js68/SOURCES/spidermonkey_style_check_disable_s390x.patch
new file mode 100644
index 0000000..690c1c5
--- /dev/null
+++ b/js68/SOURCES/spidermonkey_style_check_disable_s390x.patch
@@ -0,0 +1,11 @@
+--- a/config/check_spidermonkey_style.py
++++ b/config/check_spidermonkey_style.py
+
+@@ -766,6 +766,7 @@
+
+
+ def main():
++    sys.exit(0)
+     if sys.argv[1:] == ["--fixup"]:
+         # Sort #include directives in-place.  Fixup mode doesn't solve
+         # all possible silliness that the script checks for; it's just a
diff --git a/js68/SOURCES/tests-increase-timeout.patch b/js68/SOURCES/tests-increase-timeout.patch
new file mode 100644
index 0000000..91f5fa7
--- /dev/null
+++ b/js68/SOURCES/tests-increase-timeout.patch
@@ -0,0 +1,22 @@
+From: Adrian Bunk <bu...@debian.org>
+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/js68/SPECS/js68.spec b/js68/SPECS/js68.spec
new file mode 100644
index 0000000..bd72b24
--- /dev/null
+++ b/js68/SPECS/js68.spec
@@ -0,0 +1,336 @@
+%global major 68
+
+# LTO - Enable in Release builds, but consider disabling for development as it increases compile time
+%global build_with_lto    1
+
+# Require tests to pass?
+%global require_tests     1
+
+%if 0%{?build_with_lto}
+%global optflags        %{optflags} -flto
+%global build_ldflags   %{build_ldflags} -flto
+%endif
+
+# 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:           couch-js-68
+Version:        68.12.0
+Release:        4%{?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 mozjs60, rebased for mozjs68:
+Patch01:        fix-soname.patch
+Patch02:        copy-headers.patch
+Patch03:        tests-increase-timeout.patch
+Patch09:        icu_sources_data.py-Decouple-from-Mozilla-build-system.patch
+Patch10:        icu_sources_data-Write-command-output-to-our-stderr.patch
+
+# Build fixes - https://hg.mozilla.org/mozilla-central/rev/ca36a6c4f8a4a0ddaa033fdbe20836d87bbfb873
+Patch12:        emitter.patch
+Patch13:        emitter_test.patch
+
+# Build fixes
+Patch14:        init_patch.patch
+# TODO: Check with mozilla for cause of these fails and re-enable spidermonkey compile time checks if needed
+Patch15:        spidermonkey_checks_disable.patch
+Patch16:        Remove-unused-LLVM-and-Rust-build-dependencies.patch
+
+# armv7 fixes
+Patch17:        armv7_disable_WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS.patch
+
+# s390x fixes, TODO: file bug report upstream?
+Patch18:        spidermonkey_style_check_disable_s390x.patch
+Patch19:        Exclude-failing-tests-on-s390x.patch
+
+# Patches from Fedora firefox package:
+Patch26:        build-icu-big-endian.patch
+
+# Support Python 3 in js tests
+Patch30:        jstests_python-3.patch
+
+BuildRequires: make
+BuildRequires:  autoconf213
+BuildRequires:  cargo
+BuildRequires:  clang-devel
+BuildRequires:  gcc
+BuildRequires:  gcc-c++
+BuildRequires:  perl-devel
+BuildRequires:  pkgconfig(libffi)
+BuildRequires:  pkgconfig(zlib)
+# Build requires Python 2, tests are patched to run with Python 3
+BuildRequires:  python2-devel
+BuildRequires:  python3-devel
+BuildRequires:  python3-setuptools
+BuildRequires:  python3-six
+BuildRequires:  readline-devel
+BuildRequires:  zip
+%if 0%{?system_libatomic}
+BuildRequires:  libatomic
+%endif
+
+%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 ../..
+%patch01 -p1
+%patch02 -p1
+%patch03 -p1
+%patch09 -p1
+%patch10 -p1
+
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+
+%ifarch armv7hl
+# Disable WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS as it causes the compilation to fail
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1526653
+%patch17 -p1
+%endif
+
+%ifarch s390x
+%patch18 -p1
+%patch19 -p1
+%endif
+
+# Patch for big endian platforms only
+%if 0%{?big_endian}
+%patch26 -p1 -b .icu
+%endif
+
+# Execute tests with Python 3
+%patch30 -p1
+
+# 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
+# Prefer GCC, because clang doesn't support -fstack-clash-protection yet
+export CC=gcc
+export CXX=g++
+
+%if 0%{?build_with_lto} && 0%{?fedora} < 33
+export AR=%{_bindir}/gcc-ar
+export RANLIB=%{_bindir}/gcc-ranlib
+export NM=%{_bindir}/gcc-nm
+%endif
+
+export CFLAGS="%{optflags}"
+export CXXFLAGS="$CFLAGS"
+export LINKFLAGS="%{?__global_ldflags}"
+export PYTHON="%{__python2}"
+
+autoconf-2.13
+%configure \
+  --without-system-icu \
+  --enable-posix-nspr-emulation \
+  --with-system-zlib \
+  --disable-tests \
+  --disable-strip \
+  --with-intl-api \
+  --enable-readline \
+  --enable-shared-js \
+  --disable-optimize \
+  --enable-pie \
+  --disable-jemalloc \
+  --enable-unaligned-private-values
+
+%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
+
+# Avoid multilib conflicts
+case `uname -i` in
+  i386 | ppc | s390 | sparc )
+    wordsize="32"
+    ;;
+  x86_64 | ppc64 | s390x | sparc64 )
+    wordsize="64"
+    ;;
+  *)
+    wordsize=""
+    ;;
+esac
+
+if test -n "$wordsize"
+then
+  mv %{buildroot}%{_includedir}/mozjs-%{major}/js-config.h \
+     %{buildroot}%{_includedir}/mozjs-%{major}/js-config-$wordsize.h
+
+  cat >%{buildroot}%{_includedir}/mozjs-%{major}/js-config.h <<EOF
+#ifndef JS_CONFIG_H_MULTILIB
+#define JS_CONFIG_H_MULTILIB
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 32
+# include "js-config-32.h"
+#elif __WORDSIZE == 64
+# include "js-config-64.h"
+#else
+# error "unexpected value for __WORDSIZE macro"
+#endif
+
+#endif
+EOF
+
+fi
+
+# 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
+%if 0%{?require_tests}
+PYTHONPATH=tests/lib %{__python3} tests/jstests.py -d -s -t 1800 --no-progress --wpt=disabled ../../js/src/dist/bin/js%{major}
+%else
+PYTHONPATH=tests/lib %{__python3} tests/jstests.py -d -s -t 1800 --no-progress --wpt=disabled ../../js/src/dist/bin/js%{major} || :
+%endif
+
+# Run basic JIT tests
+%if 0%{?require_tests}
+PYTHONPATH=tests/lib %{__python3} jit-test/jit_test.py -s -t 1800 --no-progress ../../js/src/dist/bin/js%{major} basic
+%else
+PYTHONPATH=tests/lib %{__python3} jit-test/jit_test.py -s -t 1800 --no-progress ../../js/src/dist/bin/js%{major} basic || :
+%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
+* Wed Jan 22 2022 Olivia Hugger <ol...@neighbourhood.ie> - 88.12.0-4
+- Port to CouchDB's internal packaging infrastucture
+
+* Thu Jul 22 2021 Fedora Release Engineering <re...@fedoraproject.org> - 68.12.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Tue Jan 26 2021 Fedora Release Engineering <re...@fedoraproject.org> - 68.12.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Mon Aug 24 2020 Frantisek Zatloukal <fz...@redhat.com> - 68.12.0-1
+- Update to 68.12.0
+- Force tests to pass even on s390x, disable the failing ones
+
+* Fri Jul 31 2020 Frantisek Zatloukal <fz...@redhat.com> - 68.11.0-1
+- Update to 68.11.0
+
+* Thu Jul 30 2020 Tom Stellard <ts...@redhat.com> - 68.10.0-3
+- Stop using gcc specific binutils
+
+* Tue Jul 28 2020 Fedora Release Engineering <re...@fedoraproject.org> - 68.10.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Tue Jun 30 2020 Frantisek Zatloukal <fz...@redhat.com> - 68.10.0-1
+- Update to 68.10.0
+
+* Tue Jun 02 2020 Frantisek Zatloukal <fz...@redhat.com> - 68.9.0-1
+- Update to 68.9.0
+- Drop llvm and rust deps
+
+* Wed May 06 2020 Frantisek Zatloukal <fz...@redhat.com> - 68.8.0-1
+- Update to 68.8.0
+
+* Tue Apr 07 2020 Frantisek Zatloukal <fz...@redhat.com> - 68.7.0-1
+- Update to 68.7.0
+
+* Tue Mar 17 2020 Frantisek Zatloukal <fz...@redhat.com> - 68.6.0-2
+- Rebuild with GCC 10
+- Nuke check_spidermonkey_style.py on s390x
+
+* Wed Mar 11 2020 Kalev Lember <kl...@redhat.com> - 68.6.0-1
+- Update to 68.6.0
+
+* Mon Feb 10 2020 Frantisek Zatloukal <fz...@redhat.com> - 68.5.0-1
+- Update to 68.5.0
+
+* Mon Feb 03 2020 Kalev Lember <kl...@redhat.com> - 68.4.2-3
+- Build with --enable-unaligned-private-values
+
+* Wed Jan 29 2020 Fedora Release Engineering <re...@fedoraproject.org> - 68.4.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Wed Jan 22 2020 Frantisek Zatloukal <fz...@redhat.com> - 68.4.2-1
+- Update to 68.4.2
+
+* Tue Jan 07 2020 Frantisek Zatloukal <fz...@redhat.com> - 68.4.0-1
+- Update to 68.4.0
+
+* Sat Dec 07 2019 Frantisek Zatloukal <fz...@redhat.com> - 68.3.0-1
+- Update to 68.3.0
+
+* Wed Nov 20 2019 Frantisek Zatloukal <fz...@redhat.com> - 68.2.0-5
+- Don't enforce tests to pass on s390 and s390x again
+
+* Tue Nov 19 2019 Frantisek Zatloukal <fz...@redhat.com> - 68.2.0-4
+- Enable LTO
+- Enforce SpiderMonkey tests in check section on all architectures
+
+* Sun Nov 17 2019 Frantisek Zatloukal <fz...@redhat.com> - 68.2.0-3
+- Fix armv7 build
+
+* Thu Nov 14 2019 Frantisek Zatloukal <fz...@redhat.com> - 68.2.0-2
+- Fix s390x build
+- Exclude armv7 for now, see comment up in the spec
+
+* Mon Nov 04 2019 Frantisek Zatloukal <fz...@redhat.com> - 68.2.0-1
+- Initial mozjs68 package based on mozjs60

[couchdb-pkg] 02/03: feat: add aarch64-rhel build support

Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-pkg.git

commit 9387f4fdc4c1013fb32bb8442147988a529df7f0
Author: mokou <mo...@fastmail.com>
AuthorDate: Wed Jan 12 14:12:47 2022 +0100

    feat: add aarch64-rhel build support
---
 Makefile                                          |  8 ++++++++
 rpm/SOURCES/0001-build-with-sm68-on-aarch64.patch | 23 +++++++++++++++++++++++
 rpm/SPECS/couchdb.spec.in                         | 10 ++++++++--
 3 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 77fdfa0..36bda2f 100644
--- a/Makefile
+++ b/Makefile
@@ -148,6 +148,14 @@ centos8: SPIDERMONKEY_DEV=mozjs60-devel
 centos8: SM_VER=60
 centos8: sm-ver-rpm make-rpmbuild centos
 
+# aarch64 RHEL-based
+aarch64-rhel: DIST=rhel
+# Needs 68 for aarch compat, we're using the included one here
+aarch64-rhel: SPIDERMONKEY=couch-js-68
+aarch64-rhel: SPIDERMONKEY_DEV=couch-js-68-devel
+aarch64-rhel: SM_VER=68
+aarch64-rhel: sm-ver-rpm make-rpmbuild centos
+
 openSUSE: centos7
 
 
diff --git a/rpm/SOURCES/0001-build-with-sm68-on-aarch64.patch b/rpm/SOURCES/0001-build-with-sm68-on-aarch64.patch
new file mode 100644
index 0000000..a96213e
--- /dev/null
+++ b/rpm/SOURCES/0001-build-with-sm68-on-aarch64.patch
@@ -0,0 +1,23 @@
+From: Peter Lemenkov <le...@gmail.com>
+Date: Thu, 5 Mar 2020 16:36:42 +0300
+Subject: [PATCH] Build with SpiderMonkey 60 on ARM 64
+
+Signed-off-by: Peter Lemenkov <le...@gmail.com>
+
+diff --git a/configure b/configure
+index 38e62e317..995b537f8 100755
+--- a/configure
++++ b/configure
+@@ -178,12 +178,6 @@ parse_opts() {
+
+ parse_opts $@
+
+-if [ "${ARCH}" = "aarch64" ] && [ "${SM_VSN}" != "1.8.5" ]
+-then
+-  echo "ERROR: SpiderMonkey 60 is known broken on ARM 64 (aarch64). Use 1.8.5 instead."
+-  exit 1
+-fi
+-
+ echo "==> configuring couchdb in rel/couchdb.config"
+ cat > rel/couchdb.config << EOF
+ % Licensed under the Apache License, Version 2.0 (the "License"); you may not
diff --git a/rpm/SPECS/couchdb.spec.in b/rpm/SPECS/couchdb.spec.in
index bbb611c..990d8b8 100644
--- a/rpm/SPECS/couchdb.spec.in
+++ b/rpm/SPECS/couchdb.spec.in
@@ -28,10 +28,11 @@ Prefix:        %{prefix}
 Group:         Applications/Databases
 URL:           https://couchdb.apache.org/
 Vendor:        The Apache Software Foundation
-BuildArch:     x86_64 ppc64le
-ExclusiveArch: x86_64 ppc64le
+BuildArch:     x86_64 ppc64le aarch64
+ExclusiveArch: x86_64 ppc64le aarch64
 Exclusiveos:   linux
 Packager:      CouchDB Developers <de...@couchdb.apache.org>
+Patch1:        0001-build-with-sm68-on-aarch64.patch
 
 %if 0%{?suse_version}
 BuildRequires: erlang
@@ -92,6 +93,11 @@ languages and environments.
 # NOTE: Stripping binaries causes issues so we skip it.
 %define __os_install_post %{nil}
 
+%prep
+%ifarch aarch64
+%patch01 -p1
+%endif
+
 %build
 ./configure --spidermonkey-version=%SM_VER%
 %{__make} release