silx: 2.1.1 -> 2.1.2 (#361612)
[NixPkgs.git] / nixos / modules / services / misc / packagekit.nix
blob1be689794d9fbc8bc15ed4f54561e892baee4f72
1 { config, lib, pkgs, ... }:
3 let
4   cfg = config.services.packagekit;
6   inherit (lib)
7     mkEnableOption mkOption mkIf mkRemovedOptionModule types
8     listToAttrs recursiveUpdate;
10   iniFmt = pkgs.formats.ini { };
12   confFiles = [
13     (iniFmt.generate "PackageKit.conf" (recursiveUpdate
14       {
15         Daemon = {
16           DefaultBackend = "test_nop";
17           KeepCache = false;
18         };
19       }
20       cfg.settings))
22     (iniFmt.generate "Vendor.conf" (recursiveUpdate
23       {
24         PackagesNotFound = rec {
25           DefaultUrl = "https://github.com/NixOS/nixpkgs";
26           CodecUrl = DefaultUrl;
27           HardwareUrl = DefaultUrl;
28           FontUrl = DefaultUrl;
29           MimeUrl = DefaultUrl;
30         };
31       }
32       cfg.vendorSettings))
33   ];
37   imports = [
38     (mkRemovedOptionModule [ "services" "packagekit" "backend" ] "Always set to test_nop, Nix backend is broken see #177946.")
39   ];
41   options.services.packagekit = {
42     enable = mkEnableOption ''
43       PackageKit, a cross-platform D-Bus abstraction layer for
44       installing software. Software utilizing PackageKit can install
45       software regardless of the package manager
46     '';
48     settings = mkOption {
49       type = iniFmt.type;
50       default = { };
51       description = "Additional settings passed straight through to PackageKit.conf";
52     };
54     vendorSettings = mkOption {
55       type = iniFmt.type;
56       default = { };
57       description = "Additional settings passed straight through to Vendor.conf";
58     };
59   };
61   config = mkIf cfg.enable {
63     services.dbus.packages = with pkgs; [ packagekit ];
65     environment.systemPackages = with pkgs; [ packagekit ];
67     systemd.packages = with pkgs; [ packagekit ];
69     environment.etc = listToAttrs (map
70       (e:
71         lib.nameValuePair "PackageKit/${e.name}" { source = e; })
72       confFiles);
73   };