summary refs log tree commit diff
path: root/pkgs/tools/misc/gparted
diff options
context:
space:
mode:
authorworldofpeace <worldofpeace@protonmail.ch>2019-08-08 18:39:25 -0400
committerworldofpeace <worldofpeace@protonmail.ch>2019-08-12 14:45:27 -0400
commit7b3006478d0db846971f284ff80ea773309d9231 (patch)
tree07274b83d8523d8d3bb04740270385f949f612b2 /pkgs/tools/misc/gparted
parent397c7d26fcb001ce5e1e3c53a3366524c4f91bf9 (diff)
downloadnixpkgs-7b3006478d0db846971f284ff80ea773309d9231.tar
nixpkgs-7b3006478d0db846971f284ff80ea773309d9231.tar.gz
nixpkgs-7b3006478d0db846971f284ff80ea773309d9231.tar.bz2
nixpkgs-7b3006478d0db846971f284ff80ea773309d9231.tar.lz
nixpkgs-7b3006478d0db846971f284ff80ea773309d9231.tar.xz
nixpkgs-7b3006478d0db846971f284ff80ea773309d9231.tar.zst
nixpkgs-7b3006478d0db846971f284ff80ea773309d9231.zip
gparted: correct polkit support
Use wrapGAppsHook as well
Diffstat (limited to 'pkgs/tools/misc/gparted')
-rw-r--r--pkgs/tools/misc/gparted/default.nix33
-rw-r--r--pkgs/tools/misc/gparted/polkit.patch12
2 files changed, 36 insertions, 9 deletions
diff --git a/pkgs/tools/misc/gparted/default.nix b/pkgs/tools/misc/gparted/default.nix
index 6834a555e4d..2f3e2ab2acd 100644
--- a/pkgs/tools/misc/gparted/default.nix
+++ b/pkgs/tools/misc/gparted/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, intltool, gettext, makeWrapper
-, parted, glib, libuuid, pkgconfig, gtkmm3, libxml2, hicolor-icon-theme
-, gpart, hdparm, procps, utillinux
+{ stdenv, fetchurl, intltool, gettext, makeWrapper, coreutils, gnused
+, gnugrep, parted, glib, libuuid, pkgconfig, gtkmm3, libxml2, hicolor-icon-theme
+, gpart, hdparm, procps, utillinux, polkit, wrapGAppsHook, substituteAll
 }:
 
 stdenv.mkDerivation rec {
@@ -11,16 +11,31 @@ stdenv.mkDerivation rec {
     sha256 = "0mdvn85jvy72ff7nds3dakx9kzknh8gx1z8i0w2sf970q03qp2z4";
   };
 
+  # Tries to run `pkexec --version` to get version.
+  # however the binary won't be suid so it returns
+  # an error preventing the program from detection
+  patches = [
+    (substituteAll {
+      src = ./polkit.patch;
+      polkit_version = polkit.version;
+    })
+  ];
+
   configureFlags = [ "--disable-doc" ];
 
-  buildInputs = [ parted glib libuuid gtkmm3 libxml2 hicolor-icon-theme ];
-  nativeBuildInputs = [ intltool gettext makeWrapper pkgconfig ];
+  buildInputs = [ parted glib libuuid gtkmm3 libxml2 hicolor-icon-theme polkit.bin  ];
+  nativeBuildInputs = [ intltool gettext pkgconfig wrapGAppsHook ];
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+       --prefix PATH : "${stdenv.lib.makeBinPath [ gpart hdparm utillinux procps coreutils gnused gnugrep ]}"
+    )
+  '';
 
+  # Doesn't get installed automaticallly if PREFIX != /usr
   postInstall = ''
-    wrapProgram $out/bin/gparted \
-      --prefix PATH : "${procps}/bin"
-    wrapProgram $out/sbin/gpartedbin \
-      --prefix PATH : "${stdenv.lib.makeBinPath [ gpart hdparm utillinux ]}"
+    install -D -m0644 org.gnome.gparted.policy \
+      $out/share/polkit-1/actions/org.gnome.gparted.policy
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/gparted/polkit.patch b/pkgs/tools/misc/gparted/polkit.patch
new file mode 100644
index 00000000000..a42ed785de9
--- /dev/null
+++ b/pkgs/tools/misc/gparted/polkit.patch
@@ -0,0 +1,12 @@
+diff -ru old/gparted-1.0.0/configure gparted-1.0.0/configure
+--- old/gparted-1.0.0/configure	2019-05-29 12:02:13.000000000 -0400
++++ gparted-1.0.0/configure	2019-08-08 18:09:52.792795781 -0400
+@@ -16145,7 +16145,7 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pkexec >= $PKEXEC_REQUIRED_VERSION" >&5
+ $as_echo_n "checking for pkexec >= $PKEXEC_REQUIRED_VERSION... " >&6; }
+ PKEXEC_REQUIRED_INT=`echo "$PKEXEC_REQUIRED_VERSION" | $AWK -F. '{print $1 * 10000 + $2}'`
+-PKEXEC_VERSION_OUTPUT=`pkexec --version 2> /dev/null` ||
++PKEXEC_VERSION_OUTPUT='pkexec version @polkit_version@' ||
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ $as_echo "not found" >&6; }
+ if test "x$PKEXEC_VERSION_OUTPUT" != 'x'; then