polkit: supports darwin

- apply musl patch unconditionally
- add doCheck arg
- make paxmark linux0nly
This commit is contained in:
Matthew Bauer 2018-06-15 22:57:44 -04:00
parent 18f2a534c2
commit 133cf0ce1b

View File

@ -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 {
(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? <nixos> 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 = [ ];
};
}