aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2018-12-03 16:24:45 +0100
committerRicardo Wurmus <rekado@elephly.net>2019-01-18 20:32:12 +0100
commit204cfbe1f40bcb1584bfca6dfc1c5c46f6e8ac61 (patch)
tree28040f7107216fd6a0fe457a862bd58b6a19830d
parent6cc147a31bca3378b28b92b4b2aa668b62c32825 (diff)
downloadgnu-guix-204cfbe1f40bcb1584bfca6dfc1c5c46f6e8ac61.tar
gnu-guix-204cfbe1f40bcb1584bfca6dfc1c5c46f6e8ac61.tar.gz
gnu: Add mozjs-60.
* gnu/packages/gnuzilla.scm (mozjs-60): New variable.
-rw-r--r--gnu/packages/gnuzilla.scm67
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")