diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2018-12-03 16:24:45 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2019-01-18 20:32:12 +0100 |
commit | 204cfbe1f40bcb1584bfca6dfc1c5c46f6e8ac61 (patch) | |
tree | 28040f7107216fd6a0fe457a862bd58b6a19830d | |
parent | 6cc147a31bca3378b28b92b4b2aa668b62c32825 (diff) | |
download | guix-204cfbe1f40bcb1584bfca6dfc1c5c46f6e8ac61.tar.gz |
gnu: Add mozjs-60.
* gnu/packages/gnuzilla.scm (mozjs-60): New variable.
-rw-r--r-- | gnu/packages/gnuzilla.scm | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 2742976ac9..0ef8a91bfa 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -331,6 +331,73 @@ in C/C++.") ("automake" ,automake) ,@(package-native-inputs mozjs-38)))))) +(define-public mozjs-60 + ;; No releases yet at <https://archive.mozilla.org/pub/spidermonkey/releases/>. + ;; While we could take a snapshot of the complete mozilla-esr60 repository at + ;; <https://treeherder.mozilla.org/#/jobs?repo=mozilla-esr60&filter-searchStr=sm-tc>, + ;; we take the Debian version instead, because it is easier to work with. + (package + (inherit mozjs-38) + (version "60.2.3-2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://salsa.debian.org/gnome-team/mozjs60.git") + (commit (string-append "debian/" version)))) + (file-name (git-file-name "mozjs" version)) + (sha256 + (base32 + "091w050rwzrdcbgyi934k2viyccmlqxrp13sm2mql71mabb5dai6")))) + (arguments + `(#:tests? #f ; FIXME: all tests pass, but then the check phase fails anyway. + #:test-target "check-jstests" + #:configure-flags + '("--enable-ctypes" + "--enable-optimize" + "--enable-pie" + "--enable-readline" + "--enable-shared-js" + "--enable-system-ffi" + "--with-system-nspr" + "--with-system-zlib" + "--with-system-icu" + "--with-intl-api" + ;; This is important because without it gjs will segfault during the + ;; configure phase. With jemalloc only the standalone mozjs console + ;; will work. + "--disable-jemalloc") + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs configure-flags #:allow-other-keys) + ;; The configure script does not accept environment variables as + ;; arguments. It also must be run from a different directory, + ;; but not the root directory either. + (let ((out (assoc-ref outputs "out"))) + (mkdir "run-configure-from-here") + (chdir "run-configure-from-here") + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (setenv "AUTOCONF" (string-append (assoc-ref inputs "autoconf") + "/bin/autoconf")) + (apply invoke "../js/src/configure" + (cons (string-append "--prefix=" out) + configure-flags)) + #t))) + (add-after 'unpack 'disable-broken-tests + (lambda _ + ;; This test assumes that /bin exists and contains certain + ;; executables. + (delete-file "js/src/tests/shell/os.js") + #t))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("which" ,which) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-2))))) + (define-public nspr (package (name "nspr") |