audiobookshelf: 2.18.1 -> 2.19.0 (#378967)
[NixPkgs.git] / pkgs / by-name / po / power-profiles-daemon / package.nix
blobd66292e80a52f8b2cb9d869a53bddb5d3c40ad22
2   stdenv,
3   lib,
4   bash-completion,
5   pkg-config,
6   meson,
7   mesonEmulatorHook,
8   ninja,
9   fetchFromGitLab,
10   libgudev,
11   glib,
12   polkit,
13   dbus,
14   gobject-introspection,
15   wrapGAppsNoGuiHook,
16   gettext,
17   gtk-doc,
18   docbook-xsl-nons,
19   docbook_xml_dtd_412,
20   libxml2,
21   libxslt,
22   upower,
23   umockdev,
24   systemd,
25   python3,
26   nixosTests,
27   nix-update-script,
30 stdenv.mkDerivation (finalAttrs: {
31   pname = "power-profiles-daemon";
32   version = "0.23";
34   outputs = [
35     "out"
36     "devdoc"
37   ];
39   src = fetchFromGitLab {
40     domain = "gitlab.freedesktop.org";
41     owner = "upower";
42     repo = "power-profiles-daemon";
43     rev = finalAttrs.version;
44     hash = "sha256-kX8adu+GXxkaHtARUKp51K3Jf9xO+l12vctsJzIavyM=";
45   };
47   nativeBuildInputs =
48     [
49       pkg-config
50       meson
51       ninja
52       gettext
53       gtk-doc
54       docbook-xsl-nons
55       docbook_xml_dtd_412
56       libxml2 # for xmllint for stripping GResources
57       libxslt # for xsltproc for building docs
58       gobject-introspection
59       wrapGAppsNoGuiHook
60       # checkInput but checked for during the configuring
61       (python3.pythonOnBuildForHost.withPackages (
62         ps: with ps; [
63           pygobject3
64           dbus-python
65           python-dbusmock
66           argparse-manpage
67           shtab
68         ]
69       ))
70     ]
71     ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
72       mesonEmulatorHook
73     ];
75   buildInputs = [
76     bash-completion
77     libgudev
78     systemd
79     upower
80     glib
81     polkit
82     # for cli tool
83     (python3.withPackages (ps: [
84       ps.pygobject3
85     ]))
86   ];
88   strictDeps = true;
90   checkInputs = [
91     umockdev
92   ];
94   nativeCheckInputs = [
95     umockdev
96     dbus
97   ];
99   mesonFlags = [
100     "-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
101     "-Dgtk_doc=true"
102     "-Dpylint=disabled"
103     "-Dzshcomp=${placeholder "out"}/share/zsh/site-functions"
104     "-Dtests=${lib.boolToString (stdenv.buildPlatform.canExecute stdenv.hostPlatform)}"
105   ];
107   doCheck = true;
109   # Only need to wrap the Python tool (powerprofilectl)
110   dontWrapGApps = true;
112   PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions";
114   postPatch = ''
115     patchShebangs --build \
116       tests/integration-test.py \
117       tests/unittest_inspector.py
119     patchShebangs --host \
120       src/powerprofilesctl
121   '';
123   postFixup = ''
124     wrapGApp "$out/bin/powerprofilesctl"
125   '';
127   passthru = {
128     updateScript = nix-update-script { };
129     tests = {
130       nixos = nixosTests.power-profiles-daemon;
131     };
132   };
134   meta = with lib; {
135     changelog = "https://gitlab.freedesktop.org/upower/power-profiles-daemon/-/releases/${finalAttrs.version}";
136     homepage = "https://gitlab.freedesktop.org/upower/power-profiles-daemon";
137     description = "Makes user-selected power profiles handling available over D-Bus";
138     mainProgram = "powerprofilesctl";
139     platforms = platforms.linux;
140     license = licenses.gpl3Plus;
141     maintainers = with maintainers; [
142       mvnetbiz
143       picnoir
144       lyndeno
145     ];
146   };