python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / services / misc / packagekit.nix
blobf3e6bf50e9b2fb7508a2ac6d1efa5f64a2c276e3
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 = "nix";
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 Nix.")
39   ];
41   options.services.packagekit = {
42     enable = mkEnableOption (lib.mdDoc ''
43       PackageKit provides 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 = lib.mdDoc "Additional settings passed straight through to PackageKit.conf";
52     };
54     vendorSettings = mkOption {
55       type = iniFmt.type;
56       default = { };
57       description = lib.mdDoc "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   };