diff --git a/pkgs/desktops/gnome-3/core/gjs/default.nix b/pkgs/desktops/gnome-3/core/gjs/default.nix index 4aa12000e116..43048fc43996 100644 --- a/pkgs/desktops/gnome-3/core/gjs/default.nix +++ b/pkgs/desktops/gnome-3/core/gjs/default.nix @@ -1,5 +1,5 @@ { fetchurl, stdenv, pkgconfig, gnome3, gtk3, atk, gobjectIntrospection -, spidermonkey_52, pango, readline, glib, libxml2, dbus, gdk_pixbuf +, spidermonkey_60, pango, readline, glib, libxml2, dbus, gdk_pixbuf , makeWrapper }: stdenv.mkDerivation rec { @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig makeWrapper ]; buildInputs = [ libxml2 gobjectIntrospection gtk3 glib pango readline dbus ]; - propagatedBuildInputs = [ spidermonkey_52 ]; + propagatedBuildInputs = [ spidermonkey_60 ]; configureFlags = [ "--enable-installed-tests" diff --git a/pkgs/development/interpreters/spidermonkey/60.nix b/pkgs/development/interpreters/spidermonkey/60.nix new file mode 100644 index 000000000000..de65006be95a --- /dev/null +++ b/pkgs/development/interpreters/spidermonkey/60.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, python2, zip, which, readline, icu, zlib, nspr }: + +let + version = "60.3.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"; + }; + + buildInputs = [ readline icu zlib nspr ]; + nativeBuildInputs = [ autoconf213 pkgconfig perl which python2 zip ]; + + patches = [ + (fetchpatch { + url = https://bug1415202.bmoattachments.org/attachment.cgi?id=8926363; + sha256 = "082ryrvqa3lvs67v3sq9kf2jshf4qp1fpi195wffc40jdrl8fnin"; + }) + ]; + + preConfigure = '' + export CXXFLAGS="-fpermissive" + export LIBXUL_DIST=$out + export PYTHON="${python2.interpreter}" + + # We can't build in js/src/, so create a build dir + mkdir obj + cd obj/ + 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" + "--with-intl-api" + "--enable-readline" + "--enable-shared-js" + "--enable-posix-nspr-emulation" + "--disable-jemalloc" + "--enable-release" + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Mozilla's JavaScript engine written in C/C++"; + homepage = https://developer.mozilla.org/en/SpiderMonkey; + license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license. + maintainers = [ maintainers.abbradar ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c8a25f0209e2..e9775212f830 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7993,6 +7993,7 @@ with pkgs; stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4' })); spidermonkey_52 = callPackage ../development/interpreters/spidermonkey/52.nix { }; + spidermonkey_60 = callPackage ../development/interpreters/spidermonkey/60.nix { }; spidermonkey = spidermonkey_31; ssm-agent = callPackage ../applications/networking/cluster/ssm-agent { };