about summary refs log tree commit diff
path: root/pkgs/development/interpreters
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-12-16 22:55:06 +0100
committerJan Tojnar <jtojnar@gmail.com>2018-12-16 22:55:06 +0100
commitaead6e12f96a76a2c1c6b64ba81b18d647e6e3d0 (patch)
treeaff35e8cfa837fd92319e23951493431b3d2dacc /pkgs/development/interpreters
parent4027966602c1d3bfac7091e390c2cf678115d59f (diff)
parenteceb2b06a1bd012a938697718c5f3b7b6fd9249a (diff)
downloadnixlib-aead6e12f96a76a2c1c6b64ba81b18d647e6e3d0.tar
nixlib-aead6e12f96a76a2c1c6b64ba81b18d647e6e3d0.tar.gz
nixlib-aead6e12f96a76a2c1c6b64ba81b18d647e6e3d0.tar.bz2
nixlib-aead6e12f96a76a2c1c6b64ba81b18d647e6e3d0.tar.lz
nixlib-aead6e12f96a76a2c1c6b64ba81b18d647e6e3d0.tar.xz
nixlib-aead6e12f96a76a2c1c6b64ba81b18d647e6e3d0.tar.zst
nixlib-aead6e12f96a76a2c1c6b64ba81b18d647e6e3d0.zip
Merge remote-tracking branch 'upstream/master' into staging
Diffstat (limited to 'pkgs/development/interpreters')
-rw-r--r--pkgs/development/interpreters/erlang/R21.nix4
-rw-r--r--pkgs/development/interpreters/love/11.1.nix4
-rw-r--r--pkgs/development/interpreters/metamath/default.nix34
-rw-r--r--pkgs/development/interpreters/php/default.nix59
-rw-r--r--pkgs/development/interpreters/php/fix-bug-71041.patch25
-rw-r--r--pkgs/development/interpreters/php/php73-darwin-isfinite.patch60
-rw-r--r--pkgs/development/interpreters/renpy/default.nix4
-rw-r--r--pkgs/development/interpreters/spidermonkey/17.nix88
-rw-r--r--pkgs/development/interpreters/spidermonkey/31.nix64
-rw-r--r--pkgs/development/interpreters/spidermonkey/38.nix10
-rw-r--r--pkgs/development/interpreters/spidermonkey/60.nix20
11 files changed, 185 insertions, 187 deletions
diff --git a/pkgs/development/interpreters/erlang/R21.nix b/pkgs/development/interpreters/erlang/R21.nix
index 965845c5a33a..b787f3f44f54 100644
--- a/pkgs/development/interpreters/erlang/R21.nix
+++ b/pkgs/development/interpreters/erlang/R21.nix
@@ -1,8 +1,8 @@
 { mkDerivation }:
 
 mkDerivation rec {
-  version = "21.1.3";
-  sha256 = "0374qpafrpnfspsvjaa3sgs0h8ryi3ah8fvmr7dm7zsmgb4ihdsg";
+  version = "21.2";
+  sha256 = "0v9smdp2vxkpsz65a6ypwzl12fqdfrsi7k29f5i7af0v27r308cm";
 
   prePatch = ''
     substituteInPlace configure.in --replace '`sw_vers -productVersion`' '10.10'
diff --git a/pkgs/development/interpreters/love/11.1.nix b/pkgs/development/interpreters/love/11.1.nix
index e92a84b40b86..77cbd8a8245a 100644
--- a/pkgs/development/interpreters/love/11.1.nix
+++ b/pkgs/development/interpreters/love/11.1.nix
@@ -5,7 +5,7 @@
 
 let
   pname = "love";
-  version = "11.1";
+  version = "11.2";
 in
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     owner = "rude";
     repo = "love";
     rev = "${version}";
-    sha256 = "16jn6klbsz8qi2wn3llbr7ri5arlc0b19la19ypzk6p7v20z4sfr";
+    sha256 = "0bp22mzkjy48gncj5vm9b7whzrggcbs5pd4cnb6k8jpl9j02dhdv";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/interpreters/metamath/default.nix b/pkgs/development/interpreters/metamath/default.nix
new file mode 100644
index 000000000000..2fb1ccb24bc4
--- /dev/null
+++ b/pkgs/development/interpreters/metamath/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "metamath-${version}";
+  version = "0.168";
+
+  buildInputs = [ autoreconfHook ];
+
+  # This points to my own repository because there is no official repository
+  # for metamath; there's a download location but it gets updated in place with
+  # no permanent link. See discussion at
+  # https://groups.google.com/forum/#!topic/metamath/N4WEWQQVUfY
+  src = fetchFromGitHub {
+    owner = "Taneb";
+    repo = "metamath";
+    rev = "542bfd5e53d8ce026ce5d29da9e7069ec807f5e0";
+    sha256 = "07ssgqh9ipiw1bf60snmjaxngln1an1h9q0vgszadc94wzw06zi4";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Interpreter for the metamath proof language";
+    longDescription = ''
+      The metamath program is an ASCII-based ANSI C program with a command-line
+      interface. It was used (along with mmj2) to build and verify the proofs
+      in the Metamath Proof Explorer, and it generated its web pages. The *.mm
+      ASCII databases (set.mm and others) are also included in this derivation.
+    '';
+    homepage = http://us.metamath.org;
+    downloadPage = "http://us.metamath.org/#downloads";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.taneb ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index 03a235ae3849..ae4e9b9635d0 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -1,9 +1,9 @@
 # pcre functionality is tested in nixos/tests/php-pcre.nix
 { lib, stdenv, fetchurl, flex, bison, autoconf
 , mysql, libxml2, readline, zlib, curl, postgresql, gettext
-, openssl, pcre, pkgconfig, sqlite, config, libjpeg, libpng, freetype
+, openssl, pcre, pcre2, pkgconfig, sqlite, config, libjpeg, libpng, freetype
 , libxslt, libmcrypt, bzip2, icu, openldap, cyrus_sasl, libmhash, freetds
-, uwimap, pam, gmp, apacheHttpd, libiconv, systemd, libsodium, html-tidy, libargon2
+, uwimap, pam, gmp, apacheHttpd, libiconv, systemd, libsodium, html-tidy, libargon2, libzip
 }:
 
 with lib;
@@ -13,6 +13,7 @@ let
   { version
   , sha256
   , extraPatches ? []
+  , withSystemd ? config.php.systemd or stdenv.isLinux
   , imapSupport ? config.php.imap or (!stdenv.isDarwin)
   , ldapSupport ? config.php.ldap or true
   , mhashSupport ? config.php.mhash or true
@@ -41,7 +42,7 @@ let
   , intlSupport ? config.php.intl or true
   , exifSupport ? config.php.exif or true
   , xslSupport ? config.php.xsl or false
-  , mcryptSupport ? config.php.mcrypt or true
+  , mcryptSupport ? (config.php.mcrypt or true) && (versionOlder version "7.2")
   , bz2Support ? config.php.bz2 or false
   , zipSupport ? config.php.zip or true
   , ftpSupport ? config.php.ftp or true
@@ -53,6 +54,11 @@ let
   , sodiumSupport ? (config.php.sodium or true) && (versionAtLeast version "7.2")
   , tidySupport ? (config.php.tidy or false)
   , argon2Support ? (config.php.argon2 or true) && (versionAtLeast version "7.2")
+  , libzipSupport ? (config.php.libzip or true) && (versionAtLeast version "7.3")
+  , phpdbgSupport ? config.php.phpdbg or true
+  , cgiSupport ? config.php.cgi or true
+  , cliSupport ? config.php.cli or true
+  , pharSupport ? config.php.phar or true
   }:
 
     let
@@ -67,8 +73,10 @@ let
       enableParallelBuilding = true;
 
       nativeBuildInputs = [ pkgconfig autoconf ];
-      buildInputs = [ flex bison pcre ]
-        ++ optional stdenv.isLinux systemd
+      buildInputs = [ flex bison ]
+        ++ optional (versionOlder version "7.3") pcre
+        ++ optional (versionAtLeast version "7.3") pcre2
+        ++ optional withSystemd systemd
         ++ optionals imapSupport [ uwimap openssl pam ]
         ++ optionals curlSupport [ curl openssl ]
         ++ optionals ldapSupport [ openldap openssl ]
@@ -95,17 +103,18 @@ let
         ++ optional (mssqlSupport && !stdenv.isDarwin) freetds
         ++ optional sodiumSupport libsodium
         ++ optional tidySupport html-tidy
-        ++ optional argon2Support libargon2;
+        ++ optional argon2Support libargon2
+        ++ optional libzipSupport libzip;
 
       CXXFLAGS = optional stdenv.cc.isClang "-std=c++11";
 
-
       configureFlags = [
         "--with-config-file-scan-dir=/etc/php.d"
-        "--with-pcre-regex=${pcre.dev} PCRE_LIBDIR=${pcre}"
       ]
+      ++ optional (versionOlder version "7.3") "--with-pcre-regex=${pcre.dev} PCRE_LIBDIR=${pcre}"
+      ++ optional (versionAtLeast version "7.3") "--with-pcre-regex=${pcre2.dev} PCRE_LIBDIR=${pcre2}"
       ++ optional stdenv.isDarwin "--with-iconv=${libiconv}"
-      ++ optional stdenv.isLinux  "--with-fpm-systemd"
+      ++ optional withSystemd "--with-fpm-systemd"
       ++ optionals imapSupport [
         "--with-imap=${uwimap}"
         "--with-imap-ssl"
@@ -162,8 +171,13 @@ let
       ++ optional calendarSupport "--enable-calendar"
       ++ optional sodiumSupport "--with-sodium=${libsodium.dev}"
       ++ optional tidySupport "--with-tidy=${html-tidy}"
-      ++ optional argon2Support "--with-password-argon2=${libargon2}";
-
+      ++ optional argon2Support "--with-password-argon2=${libargon2}"
+      ++ optional libzipSupport "--with-libzip=${libzip.dev}"
+      ++ optional phpdbgSupport "--enable-phpdbg"
+      ++ optional (!phpdbgSupport) "--disable-phpdbg"
+      ++ optional (!cgiSupport) "--disable-cgi"
+      ++ optional (!cliSupport) "--disable-cli"
+      ++ optional (!pharSupport) "--disable-phar";
 
       hardeningDisable = [ "bindnow" ];
 
@@ -188,6 +202,7 @@ let
       '';
 
       postInstall = ''
+        test -d $out/etc || mkdir $out/etc
         cp php.ini-production $out/etc/php.ini
       '';
 
@@ -227,18 +242,30 @@ let
 
 in {
   php71 = generic {
-    version = "7.1.24";
-    sha256 = "02qy76krbdhlbkzs9k1sa5mgmj0qnbb8gcf1j3q0cq3z7kkj9pk6";
+    version = "7.1.25";
+    sha256 = "1b5az5vhap593ggjxirs1zdlg20hcv9h94iq5kgaxky71a4dqb00";
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = optional stdenv.isDarwin ./php71-darwin-isfinite.patch;
   };
 
   php72 = generic {
-    version = "7.2.12";
-    sha256 = "1dpnbsv4bdlc5v40ddddi971f456jp1qrn89w5di1dj70g1c895p";
+    version = "7.2.13";
+    sha256 = "0bg9nfc250p24hxn4bdjz7ngcw75h8rpf4qjxqzcs6s9fvxlcjjv";
+
+    # https://bugs.php.net/bug.php?id=71041
+    # https://bugs.php.net/bug.php?id=76826
+    extraPatches = [ ./fix-bug-71041.patch ]
+      ++ optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
+  };
+
+  php73 = generic {
+    version = "7.3.0";
+    sha256 = "0rvwx37dsmxivgrf4wfc1y778iln498c6a40biy9k6lnr6p7s9ks";
 
+    # https://bugs.php.net/bug.php?id=71041
     # https://bugs.php.net/bug.php?id=76826
-    extraPatches = optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
+    extraPatches = [ ./fix-bug-71041.patch ]
+      ++ optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
   };
 }
diff --git a/pkgs/development/interpreters/php/fix-bug-71041.patch b/pkgs/development/interpreters/php/fix-bug-71041.patch
new file mode 100644
index 000000000000..350b635bdf36
--- /dev/null
+++ b/pkgs/development/interpreters/php/fix-bug-71041.patch
@@ -0,0 +1,25 @@
+diff --git a/Zend/zend_signal.c b/Zend/zend_signal.c
+index 24d454d..6307620 100644
+--- a/Zend/zend_signal.c
++++ b/Zend/zend_signal.c
+@@ -399,7 +399,7 @@ void zend_signal_init(void) /* {{{ */
+ 
+ /* {{{ zend_signal_startup
+  * alloc zend signal globals */
+-void zend_signal_startup(void)
++ZEND_API void zend_signal_startup(void)
+ {
+ 
+ #ifdef ZTS
+diff --git a/Zend/zend_signal.h b/Zend/zend_signal.h
+index e8ee7d6..462d06f 100644
+--- a/Zend/zend_signal.h
++++ b/Zend/zend_signal.h
+@@ -89,7 +89,7 @@ ZEND_API void zend_signal_handler_unblock(void);
+ void zend_signal_activate(void);
+ void zend_signal_deactivate(void);
+ BEGIN_EXTERN_C()
+-void zend_signal_startup(void);
++ZEND_API void zend_signal_startup(void);
+ END_EXTERN_C()
+ void zend_signal_init(void);
diff --git a/pkgs/development/interpreters/php/php73-darwin-isfinite.patch b/pkgs/development/interpreters/php/php73-darwin-isfinite.patch
new file mode 100644
index 000000000000..7f784e0f5a95
--- /dev/null
+++ b/pkgs/development/interpreters/php/php73-darwin-isfinite.patch
@@ -0,0 +1,60 @@
+diff -ru a/configure.ac b/configure.ac
+--- a/configure.ac      2018-12-04 19:12:20.000000000 +0300
++++ b/configure.ac      2018-12-10 12:30:37.798917520 +0300
+@@ -68,7 +68,7 @@
+ #include <math.h>
+
+ #ifndef zend_isnan
+-#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isnan(a) isnan(a)
+ #elif defined(HAVE_FPCLASS)
+ #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
+@@ -77,7 +77,7 @@
+ #endif
+ #endif
+
+-#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isinf(a) isinf(a)
+ #elif defined(INFINITY)
+ /* Might not work, but is required by ISO C99 */
+@@ -88,7 +88,7 @@
+ #define zend_isinf(a) 0
+ #endif
+
+-#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_finite(a) isfinite(a)
+ #elif defined(HAVE_FINITE)
+ #define zend_finite(a) finite(a)
+diff -ru a/Zend/configure.ac b/Zend/configure.ac
+--- a/Zend/configure.ac 2018-12-04 19:12:30.000000000 +0300
++++ b/Zend/configure.ac 2018-12-10 12:28:50.350929699 +0300
+@@ -59,7 +59,7 @@
+ #include <math.h>
+
+ #ifndef zend_isnan
+-#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isnan(a) isnan(a)
+ #elif defined(HAVE_FPCLASS)
+ #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
+@@ -68,7 +68,7 @@
+ #endif
+ #endif
+
+-#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isinf(a) isinf(a)
+ #elif defined(INFINITY)
+ /* Might not work, but is required by ISO C99 */
+@@ -79,7 +79,7 @@
+ #define zend_isinf(a) 0
+ #endif
+
+-#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_finite(a) isfinite(a)
+ #elif defined(HAVE_FINITE)
+ #define zend_finite(a) finite(a)
diff --git a/pkgs/development/interpreters/renpy/default.nix b/pkgs/development/interpreters/renpy/default.nix
index 22b4f93b136c..947f05809034 100644
--- a/pkgs/development/interpreters/renpy/default.nix
+++ b/pkgs/development/interpreters/renpy/default.nix
@@ -7,7 +7,7 @@ with pythonPackages;
 
 stdenv.mkDerivation rec {
   name = "renpy-${version}";
-  version = "7.1.1";
+  version = "7.1.3";
 
   meta = with stdenv.lib; {
     description = "Ren'Py Visual Novel Engine";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://www.renpy.org/dl/${version}/renpy-${version}-source.tar.bz2";
-    sha256 = "1lmahwgy5jyak0bdbh4jlr23x35f87k7jcydkywns3mph6q7r01i";
+    sha256 = "0z6s1vzjb5jh0i79pv5kgynfrzqj1a1f3afrpmp2aaqbrljkidbn";
   };
 
   patches = [
diff --git a/pkgs/development/interpreters/spidermonkey/17.nix b/pkgs/development/interpreters/spidermonkey/17.nix
deleted file mode 100644
index e2eef0fab695..000000000000
--- a/pkgs/development/interpreters/spidermonkey/17.nix
+++ /dev/null
@@ -1,88 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, nspr, perl, python2, zip, libffi
-, enableReadline ? (!stdenv.isDarwin), readline
-, libobjc }:
-
-stdenv.mkDerivation rec {
-  version = "17.0.0";
-  name = "spidermonkey-${version}";
-
-  src = fetchurl {
-    url = "mirror://mozilla/js/mozjs${version}.tar.gz";
-    sha256 = "1fig2wf4f10v43mqx67y68z6h77sy900d1w0pz9qarrqx57rc7ij";
-  };
-
-  outputs = [ "out" "dev" "lib" ];
-
-  propagatedBuildInputs = [ nspr ];
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ perl python2 zip libffi readline ]
-             ++ stdenv.lib.optional enableReadline readline
-             ++ stdenv.lib.optional stdenv.isDarwin libobjc;
-
-  postUnpack = "sourceRoot=\${sourceRoot}/js/src";
-
-  patches = [
-    (fetchurl {
-      name = "jsoptparse-gcc7.patch";
-      url = "https://src.fedoraproject.org/cgit/rpms/mozjs17.git/plain/"
-          + "mozjs17.0.0-gcc7.patch?id=43b846629a299f";
-      sha256 = "17plyaq0jwf9wli4zlgvh4ri3zyk6nj1fiakh3wnd37nsl90raf9";
-    })
-  ];
-  patchFlags = "-p3";
-
-  postPatch = ''
-    # Fixes an issue with version detection under perl 5.22.x
-    sed -i 's/(defined\((@TEMPLATE_FILE)\))/\1/' config/milestone.pl
-  '' + stdenv.lib.optionalString stdenv.isAarch64 ''
-    patch -p1 -d ../.. < ${./aarch64-double-conversion.patch}
-    patch -p1 -d ../.. < ${./aarch64-48bit-va-fix.patch}
-  '';
-
-  preConfigure = ''
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr.dev}/include/nspr"
-    export LIBXUL_DIST=$out
-  '';
-
-  setOutputFlags = false;
-  configureFlags = [
-    "--libdir=$(lib)/lib"
-    "--includedir=$(dev)/include"
-    "--enable-threadsafe"
-    "--with-system-nspr"
-    "--with-system-ffi"
-    (if enableReadline then "--enable-readline" else "--disable-readline")
-  ];
-
-  # hack around a make problem, see https://github.com/NixOS/nixpkgs/issues/1279#issuecomment-29547393
-  preBuild = "touch -- {.,shell,jsapi-tests}/{-lpthread,-ldl}";
-
-  enableParallelBuilding = true;
-
-  doCheck = true;
-  preCheck = ''
-    rm jit-test/tests/sunspider/check-date-format-tofte.js    # https://bugzil.la/600522
-
-    # Test broken on ARM. Fedora disables it.
-    # https://lists.fedoraproject.org/pipermail/scm-commits/Week-of-Mon-20130617/1041155.html
-    echo -e '#!${stdenv.shell}\nexit 0' > config/find_vanilla_new_calls
-
-  '' + stdenv.lib.optionalString stdenv.isLinux ''
-    paxmark m shell/js17
-    paxmark mr jsapi-tests/jsapi-tests
-  '';
-
-  postInstall = ''
-    rm "$lib"/lib/*.a # halve the output size
-    moveToOutput "bin/js*-config" "$dev" # break the cycle
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Mozilla's JavaScript engine written in C/C++";
-    homepage = https://developer.mozilla.org/en/SpiderMonkey;
-    # TODO: MPL/GPL/LGPL tri-license.
-    maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/interpreters/spidermonkey/31.nix b/pkgs/development/interpreters/spidermonkey/31.nix
deleted file mode 100644
index e64ab1b39a7c..000000000000
--- a/pkgs/development/interpreters/spidermonkey/31.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gnused_422, perl, python2, zip, libffi, nspr, icu, readline }:
-
-stdenv.mkDerivation rec {
-  version = "31.5.0";
-  name = "spidermonkey-${version}";
-
-  # the release notes point to some guys home directory, see
-  # https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/31
-  # probably it would be more ideal to pull a particular tag/revision
-  # from the mercurial repo
-  src = fetchurl {
-    url = "https://people.freebsd.org/~sunpoet/sunpoet/mozjs-31.5.0.tar.bz2";
-    sha256 = "1q8icql5hh1g3gzg5fp4rl9rfagyhm9gilfn3dgi7qn4i1mrfqsd";
-  };
-
-  buildInputs = [ libffi readline nspr icu ];
-  nativeBuildInputs = [ pkgconfig perl python2 zip gnused_422 ];
-
-  postUnpack = "sourceRoot=\${sourceRoot}/js/src";
-
-  preConfigure = ''
-    export CXXFLAGS="-fpermissive"
-    export LIBXUL_DIST=$out
-  '';
-
-  configureFlags = [
-    "--enable-threadsafe"
-    "--with-system-ffi"
-    "--with-system-nspr"
-    "--with-system-icu"
-    "--enable-readline"
-
-    # enabling these because they're wanted by 0ad. They may or may
-    # not be good defaults for other uses.
-    "--enable-gcgenerational"
-    "--enable-shared-js"
-
-    # Due to a build-system bug, this means the exact opposite of what it says.
-    # It is required by gcgenerational.
-    "--disable-exact-rooting"
-  ];
-
-  # This addresses some build system bug. It's quite likely to be safe
-  # to re-enable parallel builds if the source revision changes.
-  enableParallelBuilding = false;
-
-  postFixup = ''
-    # The headers are symlinks to a directory that doesn't get put
-    # into $out, so they end up broken. Fix that by just resolving the
-    # symlinks.
-    for i in $(find $out -type l); do
-      cp --remove-destination "$(readlink "$i")" "$i";
-    done
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Mozilla's JavaScript engine written in C/C++";
-    homepage = https://developer.mozilla.org/en/SpiderMonkey;
-    # TODO: MPL/GPL/LGPL tri-license.
-
-    maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/interpreters/spidermonkey/38.nix b/pkgs/development/interpreters/spidermonkey/38.nix
index 133679495a59..d48cf841b048 100644
--- a/pkgs/development/interpreters/spidermonkey/38.nix
+++ b/pkgs/development/interpreters/spidermonkey/38.nix
@@ -2,16 +2,12 @@
 , libobjc }:
 
 stdenv.mkDerivation rec {
-  version = "38.2.1.rc0";
+  version = "38.8.0";
   name = "spidermonkey-${version}";
 
-  # the release notes point to some guys home directory, see
-  # https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/38
-  # probably it would be more ideal to pull a particular tag/revision
-  # from the mercurial repo
   src = fetchurl {
-    url = "https://people.freebsd.org/~sunpoet/sunpoet/mozjs-${version}.tar.bz2";
-    sha256 = "0p4bmbpgkfsj54xschcny0a118jdrdgg0q29rwxigg3lh5slr681";
+    url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.bz2";
+    sha256 = "10lrync6cxnjlnadc0j3vg8r2dq9b3wwanw8qj1h6ncxwb7asxcl";
   };
 
   buildInputs = [ libffi readline icu zlib nspr ]
diff --git a/pkgs/development/interpreters/spidermonkey/60.nix b/pkgs/development/interpreters/spidermonkey/60.nix
index de65006be95a..1dfaf9a22860 100644
--- a/pkgs/development/interpreters/spidermonkey/60.nix
+++ b/pkgs/development/interpreters/spidermonkey/60.nix
@@ -1,16 +1,17 @@
-{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, python2, zip, which, readline, icu, zlib, nspr }:
+{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, python2, zip
+, which, readline, zlib, icu }:
 
 let
-  version = "60.3.0";
+  version = "60.4.0";
 in stdenv.mkDerivation rec {
   name = "spidermonkey-${version}";
 
   src = fetchurl {
     url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha256 = "0qak5gmkx8xm88xgnxdmj4z7sivbbvmg2v029fp9q5ms38cg6rjm";
+    sha256 = "11gzxd82grc3kg1ha4yni6ag6b97n46qycvv6x15s91ziia5hli0";
   };
 
-  buildInputs = [ readline icu zlib nspr ];
+  buildInputs = [ readline zlib icu ];
   nativeBuildInputs = [ autoconf213 pkgconfig perl which python2 zip ];
 
   patches = [
@@ -31,8 +32,6 @@ in stdenv.mkDerivation rec {
     configureScript=../js/src/configure
   '';
 
-  # We need the flags specified here for gjs:
-  # https://gitlab.gnome.org/GNOME/gnome-sdk-images/blob/bc8829439a4f1019d0c56a293ddd84e936fdf9f9/org.gnome.Sdk.json.in#L744
   configureFlags = [
     "--with-system-zlib"
     "--with-system-icu"
@@ -41,9 +40,18 @@ in stdenv.mkDerivation rec {
     "--enable-shared-js"
     "--enable-posix-nspr-emulation"
     "--disable-jemalloc"
+    # Fedora and Arch disable optimize, but it doesn't seme to be necessary
+    # It turns on -O3 which some gcc version had a problem with:
+    # https://src.fedoraproject.org/rpms/mozjs38/c/761399aba092bcb1299bb4fccfd60f370ab4216e
+    "--enable-optimize"
     "--enable-release"
   ];
 
+  # Remove unnecessary static lib
+  preFixup = ''
+    rm $out/lib/libjs_static.ajs
+  '';
+
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {