From 808c33ce17c5cc5e2fec9642bdbb6065ea050479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= Date: Thu, 6 Sep 2018 08:02:16 +0200 Subject: [PATCH] spidermonkey_60 --- pkgs/desktops/gnome-3/core/gjs/default.nix | 4 +- .../interpreters/spidermonkey/60.nix | 68 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 3 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/interpreters/spidermonkey/60.nix diff --git a/pkgs/desktops/gnome-3/core/gjs/default.nix b/pkgs/desktops/gnome-3/core/gjs/default.nix index 533d2bffcb70e..75350a6fc3ab8 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 0000000000000..488b2f909e0e3 --- /dev/null +++ b/pkgs/development/interpreters/spidermonkey/60.nix @@ -0,0 +1,68 @@ +{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, python2, zip, which, readline, icu, zlib, nspr }: + +let + version = "60.2.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 = "05vpwyxsy7q6w6ff1r51wd69hzcl36rfkqr28gklq8s8as5xqnvr"; + }; + + buildInputs = [ readline icu zlib nspr ]; + nativeBuildInputs = [ autoconf213 pkgconfig perl which python2 zip ]; + + # Apparently this package fails to build correctly with modern compilers, which at least + # on ARMv6 causes polkit testsuite to break with an assertion failure in spidermonkey. + # These flags were stolen from: + # https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/js52 + NIX_CFLAGS_COMPILE = "-fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp"; + + patches = [ + (fetchpatch { + url = https://bug1415202.bmoattachments.org/attachment.cgi?id=8926363; + sha256 = "082ryrvqa3lvs67v3sq9kf2jshf4qp1fpi195wffc40jdrl8fnin"; + }) + (fetchpatch { + url = https://salsa.debian.org/gnome-team/mozjs52/raw/debian/master/debian/patches/fix-soname.patch; + sha256 = "0dd7z4z4v0sqvvxk2psvzfz5mbdac690jgb8rh8xn50pb35xgmfj"; + }) + # # needed to build gnome3.gjs + # (fetchpatch { + # name = "mozjs52-disable-mozglue.patch"; + # url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/mozjs52-disable-mozglue.patch?h=packages/js52&id=4279d2e18d9a44f6375f584911f63d13de7704be; + # sha256 = "18wkss0agdyff107p5lfflk72qiz350xqw2yqc353alkx4fsfpz0"; + # }) + ]; + + preConfigure = '' + export CXXFLAGS="-fpermissive" + export LIBXUL_DIST=$out + export PYTHON="${python2.interpreter}" + + cd js/src + + autoconf + ''; + + configureFlags = [ + "--with-system-nspr" + "--with-system-zlib" + "--with-system-icu" + "--with-intl-api" + "--enable-readline" + "--enable-shared-js" + "--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 2163393599e04..af4cda9eae527 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7754,6 +7754,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 { };