diff options
author | Alyssa Ross <hi@alyssa.is> | 2020-01-11 23:37:02 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2020-01-11 23:41:30 +0000 |
commit | 6c557e3f1c28cf87e9fba232811d6875dd1399c1 (patch) | |
tree | 035a071d5d8980df6de0fa42e2ef8fc0cce7055e /nixpkgs/pkgs/development/libraries/polkit | |
parent | da7500bc026e937ac7fce7b50f67a0e1765737a7 (diff) | |
parent | e4134747f5666bcab8680aff67fa3b63384f9a0f (diff) | |
download | nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar.gz nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar.bz2 nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar.lz nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar.xz nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.tar.zst nixlib-6c557e3f1c28cf87e9fba232811d6875dd1399c1.zip |
Merge commit 'e4134747f5666bcab8680aff67fa3b63384f9a0f'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/polkit')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/polkit/default.nix | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/nixpkgs/pkgs/development/libraries/polkit/default.nix b/nixpkgs/pkgs/development/libraries/polkit/default.nix index b5b9f1f7fa4d..17163c2206cd 100644 --- a/nixpkgs/pkgs/development/libraries/polkit/default.nix +++ b/nixpkgs/pkgs/development/libraries/polkit/default.nix @@ -1,15 +1,19 @@ -{ stdenv, fetchurl, pkgconfig, glib, expat, pam, perl +{ stdenv, fetchurl, pkgconfig, glib, expat, pam, perl, fetchpatch , intltool, spidermonkey_60 , gobject-introspection, libxslt, docbook_xsl, dbus , docbook_xml_dtd_412, gtk-doc, coreutils -, useSystemd ? stdenv.isLinux, systemd -, withGnome ? true -, doCheck ? stdenv.isLinux +, useSystemd ? (stdenv.isLinux && !stdenv.hostPlatform.isMusl), systemd, elogind +, withIntrospection ? true +# A few tests currently fail on musl (polkitunixusertest, polkitunixgrouptest, polkitidentitytest segfault). +# Not yet investigated; it may be due to the "Make netgroup support optional" +# patch not updating the tests correctly yet, or doing something wrong, +# or being unrelated to that. +, doCheck ? (stdenv.isLinux && !stdenv.hostPlatform.isMusl) }: let system = "/run/current-system/sw"; - setuid = "/run/wrappers/bin"; #TODO: from <nixos> config.security.wrapperDir; + setuid = "/run/wrappers/bin"; in @@ -22,6 +26,24 @@ stdenv.mkDerivation rec { sha256 = "1c9lbpndh5zis22f154vjrhnqw65z8s85nrgl42v738yf6g0q5w8"; }; + patches = [ + # Don't use etc/dbus-1/system.d + # Upstream MR: https://gitlab.freedesktop.org/polkit/polkit/merge_requests/11 + (fetchpatch { + url = "https://gitlab.freedesktop.org/polkit/polkit/commit/5dd4e22efd05d55833c4634b56e473812b5acbf2.patch"; + sha256 = "17lv7xj5ksa27iv4zpm4zwd4iy8zbwjj4ximslfq3sasiz9kxhlp"; + }) + ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + # Make netgroup support optional (musl does not have it) + # Upstream MR: https://gitlab.freedesktop.org/polkit/polkit/merge_requests/10 + # We use the version of the patch that Alpine uses successfully. + (fetchpatch { + name = "make-innetgr-optional.patch"; + url = "https://git.alpinelinux.org/aports/plain/main/polkit/make-innetgr-optional.patch?id=391e7de6ced1a96c2dac812e0b12f1d7e0ea705e"; + sha256 = "1p9qqqhnrfyjvvd50qh6vpl256kyfblm1qnhz5pm09klrl1bh1n4"; + }) + ]; + postPatch = stdenv.lib.optionalString stdenv.isDarwin '' sed -i -e "s/-Wl,--as-needed//" configure.ac ''; @@ -32,11 +54,14 @@ stdenv.mkDerivation rec { [ glib gtk-doc pkgconfig intltool perl ] ++ [ libxslt docbook_xsl docbook_xml_dtd_412 ]; # man pages buildInputs = - [ glib expat pam spidermonkey_60 ] - ++ stdenv.lib.optional useSystemd systemd - ++ stdenv.lib.optional withGnome gobject-introspection; + [ expat pam spidermonkey_60 ] + # On Linux, fall back to elogind when systemd support is off. + ++ stdenv.lib.optional stdenv.isLinux (if useSystemd then systemd else elogind) + ++ stdenv.lib.optional withIntrospection gobject-introspection; - NIX_CFLAGS_COMPILE = " -Wno-deprecated-declarations "; # for polkit 0.114 and glib 2.56 + propagatedBuildInputs = [ + glib # in .pc Requires + ]; preConfigure = '' chmod +x test/mocklibc/bin/mocklibc{,-test}.in @@ -61,7 +86,7 @@ stdenv.mkDerivation rec { "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system" "--with-polkitd-user=polkituser" #TODO? <nixos> config.ids.uids.polkituser "--with-os-type=NixOS" # not recognized but prevents impurities on non-NixOS - (if withGnome then "--enable-introspection" else "--disable-introspection") + (if withIntrospection then "--enable-introspection" else "--disable-introspection") ] ++ stdenv.lib.optional (!doCheck) "--disable-test"; makeFlags = [ @@ -75,7 +100,7 @@ stdenv.mkDerivation rec { ]; inherit doCheck; - checkInputs = [dbus]; + checkInputs = [ dbus ]; checkPhase = '' # tests need access to the system bus dbus-run-session --config-file=${./system_bus.conf} -- sh -c 'DBUS_SYSTEM_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS make check' @@ -86,6 +111,6 @@ stdenv.mkDerivation rec { description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes"; license = licenses.gpl2; platforms = platforms.unix; - maintainers = [ ]; + maintainers = with maintainers; [ worldofpeace ]; }; } |