ieda: init at 0-unstable-2024-10-11 (#338769)
[NixPkgs.git] / pkgs / by-name / bl / blivet-gui / package.nix
blobefe4fe2de78568a154a899cf4c48258db88ce92b
1 # Notes for using this package outside of NixOS:
2 # 1. --pure cannot be used (as pkexec will be used from the path,
3 #    and we can't use nixpkgs polkit due to lack of setuid bit)
4 # 2. You must prefix the blivet-gui command with "SHELL=/bin/bash"
5 #    (otherwise your system polkit will reject the SHEL Lfrom nixpkgs).
8   lib,
9   python3,
10   fetchFromGitHub,
11   gtk3,
12   util-linux,
13   gobject-introspection,
14   adwaita-icon-theme,
15   hicolor-icon-theme,
16   wrapGAppsHook3,
17   pkexecPath ? "pkexec",
18   testers,
19   blivet-gui,
22 python3.pkgs.buildPythonApplication rec {
23   pname = "blivet-gui";
24   version = "2.5.0";
25   format = "setuptools";
27   src = fetchFromGitHub {
28     owner = "storaged-project";
29     repo = "blivet-gui";
30     rev = version;
31     hash = "sha256-fKd2Vj8clZ6Q7bZipfN5umyMW2rBXMUnpAuDE70p67U=";
32   };
34   postPatch = ''
35     substituteInPlace blivetgui/gui_utils.py --replace-fail /usr/share $out/share
36     substituteInPlace blivet-gui --replace-fail "pkexec blivet-gui-daemon" "pkexec $out/bin/blivet-gui-daemon"
37     substituteInPlace blivet-gui --replace-fail "pkexec" "${pkexecPath}"
38   '';
40   nativeBuildInputs = [
41     util-linux
42     gobject-introspection
43     wrapGAppsHook3
44   ];
46   buildInputs = [ gtk3 ];
48   dependencies = [
49     python3.pkgs.blivet
50     python3.pkgs.pyparted
51     python3.pkgs.pid
52   ];
54   dontWrapGApps = true;
56   preFixup = ''
57     makeWrapperArgs+=(
58       ''${gappsWrapperArgs[@]}
59       --prefix XDG_DATA_DIRS : ${adwaita-icon-theme}/share
60     )
61   '';
63   passthru.tests.version = testers.testVersion { package = blivet-gui; };
65   meta = {
66     description = "GUI tool for storage configuration using blivet library";
67     homepage = "https://fedoraproject.org/wiki/Blivet";
68     license = lib.licenses.gpl2Plus;
69     mainProgram = "blivet-gui";
70     maintainers = with lib.maintainers; [ cybershadow ];
71     platforms = lib.platforms.linux;
72   };