From 18f2a534c21a944c1cebd4739e621f5c7ead46dd Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Fri, 15 Jun 2018 18:12:15 -0400 Subject: [PATCH 1/3] spidermonkey_17: get darwin working LLVM building is apparently broken. This is a similar fix to what was done in spidermonkey_38. enableReadline flag is also introduced (defaults to true except on darwin). --- pkgs/development/interpreters/spidermonkey/17.nix | 14 +++++++++----- pkgs/top-level/all-packages.nix | 5 ++++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/pkgs/development/interpreters/spidermonkey/17.nix b/pkgs/development/interpreters/spidermonkey/17.nix index 9c47ebe79b6..e2eef0fab69 100644 --- a/pkgs/development/interpreters/spidermonkey/17.nix +++ b/pkgs/development/interpreters/spidermonkey/17.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchurl, pkgconfig, nspr, perl, python2, zip, libffi, readline }: +{ stdenv, fetchurl, pkgconfig, nspr, perl, python2, zip, libffi +, enableReadline ? (!stdenv.isDarwin), readline +, libobjc }: stdenv.mkDerivation rec { version = "17.0.0"; @@ -14,7 +16,9 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ nspr ]; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ perl python2 zip libffi readline ]; + buildInputs = [ perl python2 zip libffi readline ] + ++ stdenv.lib.optional enableReadline readline + ++ stdenv.lib.optional stdenv.isDarwin libobjc; postUnpack = "sourceRoot=\${sourceRoot}/js/src"; @@ -48,7 +52,7 @@ stdenv.mkDerivation rec { "--enable-threadsafe" "--with-system-nspr" "--with-system-ffi" - "--enable-readline" + (if enableReadline then "--enable-readline" else "--disable-readline") ]; # hack around a make problem, see https://github.com/NixOS/nixpkgs/issues/1279#issuecomment-29547393 @@ -64,6 +68,7 @@ stdenv.mkDerivation rec { # 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 ''; @@ -78,7 +83,6 @@ stdenv.mkDerivation rec { homepage = https://developer.mozilla.org/en/SpiderMonkey; # TODO: MPL/GPL/LGPL tri-license. maintainers = [ maintainers.goibhniu ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } - diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 45e62452181..e941860fdd3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7518,7 +7518,10 @@ with pkgs; spark_22 = callPackage ../applications/networking/cluster/spark { version = "2.2.1"; }; spidermonkey_1_8_5 = callPackage ../development/interpreters/spidermonkey/1.8.5.nix { }; - spidermonkey_17 = callPackage ../development/interpreters/spidermonkey/17.nix { }; + spidermonkey_17 = callPackage ../development/interpreters/spidermonkey/17.nix { + inherit (darwin) libobjc; + stdenv = gccStdenv; + }; spidermonkey_31 = callPackage ../development/interpreters/spidermonkey/31.nix { }; spidermonkey_38 = callPackage ../development/interpreters/spidermonkey/38.nix ({ inherit (darwin) libobjc; From 133cf0ce1bafb37d971dcc223738f7c5c329cb6a Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Fri, 15 Jun 2018 22:57:44 -0400 Subject: [PATCH 2/3] polkit: supports darwin - apply musl patch unconditionally - add doCheck arg - make paxmark linux0nly --- pkgs/development/libraries/polkit/default.nix | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix index ef865529805..0619097af91 100644 --- a/pkgs/development/libraries/polkit/default.nix +++ b/pkgs/development/libraries/polkit/default.nix @@ -2,6 +2,7 @@ , intltool, spidermonkey_17 , gobjectIntrospection, libxslt, docbook_xsl , docbook_xml_dtd_412, gtk-doc , useSystemd ? stdenv.isLinux, systemd +, doCheck ? false }: let @@ -37,15 +38,16 @@ stdenv.mkDerivation rec { url = "http://src.fedoraproject.org/cgit/rpms/polkit.git/plain/polkit-0.113-itstool.patch?id=fa6fd575804de92886c95d3bc2b7eb2abcd13760"; sha256 = "0bxmjwp8ahy1y5g1l0kxmld0l3mlvb2l0i5n1qabia3d5iyjkyfh"; }) - ] - # Could be applied uncondtionally but don't want to trigger rebuild - # https://bugs.freedesktop.org/show_bug.cgi?id=50145 - ++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch { - name = "netgroup-optional.patch"; - url = "https://bugs.freedesktop.org/attachment.cgi?id=118753"; - sha256 = "1zq51dhmqi9zi86bj9dq4i4pxlxm41k3k4a091j07bd78cjba038"; - }); + (fetchpatch { + name = "netgroup-optional.patch"; + url = "https://bugs.freedesktop.org/attachment.cgi?id=118753"; + sha256 = "1zq51dhmqi9zi86bj9dq4i4pxlxm41k3k4a091j07bd78cjba038"; + }) + ]; + postPatch = stdenv.lib.optionalString stdenv.isDarwin '' + sed -i -e "s/-Wl,--as-needed//" configure.ac + ''; outputs = [ "bin" "dev" "out" ]; # small man pages in $bin @@ -83,22 +85,22 @@ stdenv.mkDerivation rec { "--with-polkitd-user=polkituser" #TODO? config.ids.uids.polkituser "--with-os-type=NixOS" # not recognized but prevents impurities on non-NixOS "--enable-introspection" - ]; + ] ++ stdenv.lib.optional (!doCheck) "--disable-test"; makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0 INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"; # The following is required on grsecurity/PaX due to spidermonkey's JIT - postBuild = '' + postBuild = stdenv.lib.optionalString stdenv.isLinux '' paxmark mr src/polkitbackend/.libs/polkitd paxmark mr test/polkitbackend/.libs/polkitbackendjsauthoritytest ''; - #doCheck = true; # some /bin/bash problem that isn't auto-solved by patchShebangs + inherit doCheck; meta = with stdenv.lib; { homepage = http://www.freedesktop.org/wiki/Software/polkit; description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes"; - platforms = platforms.linux; + platforms = platforms.unix; maintainers = [ ]; }; } From 3b995bba987d97eab2bc3155402126f8dda5dcae Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Fri, 15 Jun 2018 23:07:45 -0400 Subject: [PATCH 3/3] packagekit: supports darwin - make systemd optional --- pkgs/tools/package-management/packagekit/default.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix index 5eb20169412..142f6176dbc 100644 --- a/pkgs/tools/package-management/packagekit/default.nix +++ b/pkgs/tools/package-management/packagekit/default.nix @@ -1,10 +1,11 @@ { stdenv, fetchFromGitHub, lib -, intltool, glib, pkgconfig, polkit, python, sqlite, systemd +, intltool, glib, pkgconfig, polkit, python, sqlite , gobjectIntrospection, vala_0_38, gtk-doc, autoreconfHook, autoconf-archive # TODO: set enableNixBackend to true, as soon as it builds , nix, enableNixBackend ? false, boost , enableCommandNotFound ? false -, enableBashCompletion ? false, bash-completion ? null }: +, enableBashCompletion ? false, bash-completion ? null +, enableSystemd ? stdenv.isLinux, systemd }: stdenv.mkDerivation rec { name = "packagekit-${version}"; @@ -17,7 +18,8 @@ stdenv.mkDerivation rec { sha256 = "11drd6ixx75q3w12am3z1npwllq1kxnhbxv0npng92c69kn291zs"; }; - buildInputs = [ glib polkit systemd python gobjectIntrospection vala_0_38 ] + buildInputs = [ glib polkit python gobjectIntrospection vala_0_38 ] + ++ lib.optional enableSystemd systemd ++ lib.optional enableBashCompletion bash-completion; propagatedBuildInputs = [ sqlite nix boost ]; nativeBuildInputs = [ intltool pkgconfig autoreconfHook autoconf-archive gtk-doc ]; @@ -28,7 +30,7 @@ stdenv.mkDerivation rec { ''; configureFlags = [ - "--enable-systemd" + (if enableSystemd then "--enable-systemd" else "--disable-systemd") "--disable-dummy" "--disable-cron" "--disable-introspection" @@ -63,7 +65,7 @@ stdenv.mkDerivation rec { ''; homepage = http://www.packagekit.org/; license = licenses.gpl2Plus; - platforms = platforms.linux; + platforms = platforms.darwin; maintainers = with maintainers; [ matthewbauer ]; }; }