From fe9a768f29e5a9837b7be5976e74a46fed2f3a42 Mon Sep 17 00:00:00 2001
From: Rohan Garg <rohan@kde.org>
Date: Tue, 4 Nov 2014 17:57:44 +0100
Subject: [PATCH] Use pkexec to execute calamares with the right permissions

---
 CMakeLists.txt                     |  8 ++++++++
 calamares.desktop                  |  3 ++-
 com.github.calamares.calamares.bin | 22 ++++++++++++++++++++++
 3 files changed, 32 insertions(+), 1 deletion(-)
 create mode 100644 com.github.calamares.calamares.bin

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 51a813bde3..b2f77dc6b2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -31,6 +31,7 @@ set( QT_VERSION 5.3.0 )
 
 find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Core Gui Widgets LinguistTools Svg )
 find_package( YamlCpp 0.5.1 REQUIRED )
+find_package( PolkitQt5-1 REQUIRED )
 
 option( WITH_PYTHON "Enable Python modules support." ON )
 
@@ -178,3 +179,10 @@ install(
     DESTINATION
         share/calamares
 )
+
+install(
+  FILES
+      com.github.calamares.calamares.bin
+  DESTINATION
+      "${POLKITQT-1_POLICY_FILES_INSTALL_DIR}"
+)
diff --git a/calamares.desktop b/calamares.desktop
index 06df67598b..776d263593 100644
--- a/calamares.desktop
+++ b/calamares.desktop
@@ -4,8 +4,9 @@ Version=1.0
 Name=Calamares
 GenericName=System Installer
 TryExec=calamares
-Exec=calamares
+Exec=pkexec /usr/bin/calamares
 Comment=Calamares — System Installer
 Icon=calamares
 Terminal=false
+StartupNotify=false
 Categories=Qt;System;
diff --git a/com.github.calamares.calamares.bin b/com.github.calamares.calamares.bin
new file mode 100644
index 0000000000..6bc250e3bb
--- /dev/null
+++ b/com.github.calamares.calamares.bin
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE policyconfig PUBLIC
+"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
+"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
+<policyconfig>
+
+ <vendor>Calamares</vendor>
+ <vendor_url>https://github.com/calamares</vendor_url>
+
+ <action id="com.github.calamares.calamares.pkexec.run">
+    <description>Run Installer</description>
+    <message>Authentication is required to run the installation program</message>
+    <icon_name>drive-harddisk</icon_name>
+    <defaults>
+     <allow_any>no</allow_any>
+     <allow_inactive>no</allow_inactive>
+     <allow_active>auth_admin</allow_active>
+    </defaults>
+    <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/calamares</annotate>
+    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
+ </action>
+</policyconfig>
\ No newline at end of file
-- 
GitLab