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 @@ (define-public mozjs-52 ("automake" ,automake) ,@(package-native-inputs mozjs-38)))))) +(define-public mozjs-60 + ;; No releases yet at . + ;; While we could take a snapshot of the complete mozilla-esr60 repository at + ;; , + ;; 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")