diff options
Diffstat (limited to 'nixpkgs/nixos/modules/services/misc/packagekit.nix')
-rw-r--r-- | nixpkgs/nixos/modules/services/misc/packagekit.nix | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/nixpkgs/nixos/modules/services/misc/packagekit.nix b/nixpkgs/nixos/modules/services/misc/packagekit.nix new file mode 100644 index 00000000000..325c4e84e0d --- /dev/null +++ b/nixpkgs/nixos/modules/services/misc/packagekit.nix @@ -0,0 +1,65 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.packagekit; + + packagekitConf = '' + [Daemon] + DefaultBackend=${cfg.backend} + KeepCache=false + ''; + + vendorConf = '' + [PackagesNotFound] + DefaultUrl=https://github.com/NixOS/nixpkgs + CodecUrl=https://github.com/NixOS/nixpkgs + HardwareUrl=https://github.com/NixOS/nixpkgs + FontUrl=https://github.com/NixOS/nixpkgs + MimeUrl=https://github.com/NixOS/nixpkgs + ''; + +in + +{ + + options = { + + services.packagekit = { + enable = mkEnableOption + '' + PackageKit provides a cross-platform D-Bus abstraction layer for + installing software. Software utilizing PackageKit can install + software regardless of the package manager. + ''; + + # TODO: integrate with PolicyKit if the nix backend matures to the point + # where it will require elevated permissions + backend = mkOption { + type = types.enum [ "test_nop" ]; + default = "test_nop"; + description = '' + PackageKit supports multiple different backends and <literal>auto</literal> which + should do the right thing. + </para> + <para> + On NixOS however, we do not have a backend compatible with nix 2.0 + (refer to <link xlink:href="https://github.com/NixOS/nix/issues/233">this issue</link> so we have to force + it to <literal>test_nop</literal> for now. + ''; + }; + }; + }; + + config = mkIf cfg.enable { + + services.dbus.packages = with pkgs; [ packagekit ]; + + systemd.packages = with pkgs; [ packagekit ]; + + environment.etc."PackageKit/PackageKit.conf".text = packagekitConf; + environment.etc."PackageKit/Vendor.conf".text = vendorConf; + }; +} |