anchor.diff:      [ glib gtk-doc pkgconfig intltool perl ]
       ++ [ libxslt docbook_xsl docbook_xml_dtd_412 ]; # man pages
     buildInputs =
  -    [ expat pam spidermonkey_60 ]
  +    [ expat pam spidermonkey_78 ]
       # 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;
  
positive.code: 
  stdenv.mkDerivation rec {
    pname = "polkit";
    version = "0.116";
  
    src = fetchurl {
      url = "https://www.freedesktop.org/software/${pname}/releases/${pname}-${version}.tar.gz";
      sha256 = "1c9lbpndh5zis22f154vjrhnqw65z8s85nrgl42v738yf6g0q5w8";
    };
  
    patches = [
  
negative.code:   inherit doCheck;
    checkInputs = [ dbus ];
    checkPhase = ''
      # unfortunately this test needs python-dbusmock, but python-dbusmock needs polkit,
      # leading to a circular dependency
      substituteInPlace test/Makefile --replace polkitbackend ""
  
      # 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'
    '';
  