[devassistant/f20] Backported custom polkit policy (bz#1156292)
Tomas Radej
tradej at fedoraproject.org
Mon Oct 27 09:00:59 UTC 2014
commit 5a38cb10fa5d0cbca14adc5e03affdc35a053a20
Author: Tomas Radej <tradej at redhat.com>
Date: Fri Oct 24 19:46:21 2014 +0200
Backported custom polkit policy (bz#1156292)
devassistant-polkit.patch | 73 +++++++++++++++++++++++++++++++++++++++++++++
devassistant.spec | 18 ++++++++++-
2 files changed, 90 insertions(+), 1 deletions(-)
---
diff --git a/devassistant-polkit.patch b/devassistant-polkit.patch
new file mode 100644
index 0000000..b760606
--- /dev/null
+++ b/devassistant-polkit.patch
@@ -0,0 +1,73 @@
+diff --git a/devassistant/command_helpers.py b/devassistant/command_helpers.py
+index b83b1dc..107e36b 100644
+--- a/devassistant/command_helpers.py
++++ b/devassistant/command_helpers.py
+@@ -13,6 +13,7 @@ import six
+
+ from devassistant import exceptions
+ from devassistant.logger import logger
++from devassistant.settings import ROOT_EXECUTABLE
+
+
+ class ClHelper(object):
+@@ -123,7 +124,11 @@ class ClHelper(object):
+ heredoc_firstline = ['pkexec']
+ if as_user != 'root':
+ heredoc_firstline.extend(['--user', as_user])
+- heredoc_firstline.append('bash << {delim}'.format(delim=delimiter))
++ if os.path.isfile(ROOT_EXECUTABLE) and os.access(ROOT_EXECUTABLE, os.X_OK):
++ executable = ROOT_EXECUTABLE
++ else:
++ executable = 'bash'
++ heredoc_firstline.append('{exe} << {delim}'.format(exe=executable, delim=delimiter))
+ cmd = '\n'.join([' '.join(heredoc_firstline),
+ cmd_str,
+ delimiter
+diff --git a/devassistant/settings.py b/devassistant/settings.py
+index 292ab75..1da47b6 100644
+--- a/devassistant/settings.py
++++ b/devassistant/settings.py
+@@ -22,6 +22,8 @@ for level_short, level_name in LOG_LEVELS_MAP.items():
+ LAST_LR_VAR = 'LAST_LRES'
+ LAST_R_VAR = 'LAST_RES'
+
++ROOT_EXECUTABLE = '/usr/libexec/da_auth'
++
+ SUBASSISTANT_PREFIX = 'subassistant'
+ SUBASSISTANT_N_STRING = 'subassistant_{0}'
+
+diff --git a/polkit/da_auth b/polkit/da_auth
+new file mode 100755
+index 0000000..2b7623b
+--- /dev/null
++++ b/polkit/da_auth
+@@ -0,0 +1,3 @@
++#!/usr/bin/bash
++
++$*
+diff --git a/polkit/devassistant_auth.policy b/polkit/devassistant_auth.policy
+new file mode 100644
+index 0000000..2819e0b
+--- /dev/null
++++ b/polkit/devassistant_auth.policy
+@@ -0,0 +1,20 @@
++<?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>DevAssistant</vendor>
++
++ <action id="devassistant_auth">
++ <description>Perform authenticated operation with DevAssistant</description>
++ <message>DevAssistant needs to perform an authenticated operation as '$(user)'.</message>
++ <defaults>
++ <allow_any>auth_admin</allow_any>
++ <allow_inactive>auth_admin</allow_inactive>
++ <allow_active>auth_admin</allow_active>
++ </defaults>
++ <annotate key="org.freedesktop.policykit.exec.path">/usr/libexec/da_auth</annotate>
++ <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
++ </action>
++
++</policyconfig>
diff --git a/devassistant.spec b/devassistant.spec
index 81d9256..6f0f071 100644
--- a/devassistant.spec
+++ b/devassistant.spec
@@ -2,7 +2,7 @@
Name: devassistant
Version: 0.9.2
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: DevAssistant - Making life easier for developers
License: GPLv2+ and CC-BY-SA
@@ -14,7 +14,10 @@ Source0: https://pypi.python.org/packages/source/d/%{name}/%{name}-%{vers
# # devassistant.desktop, appdata/devassistant.appdata.xml
Source1: %{name}.desktop
Source2: %{name}.appdata.xml
+
Patch0: devassistant-0.6.0-alter-paths-for-fedora.patch
+# Backport of upstream polkit policy + message (bz #1156292)
+Patch1: %{name}-polkit.patch
BuildArch: noarch
@@ -58,6 +61,8 @@ rm -rf %{name}.egg-info
cp %{SOURCE1} .
sed -i '/Version/d' %{name}.desktop
+%patch1 -p1 -F1
+
%build
%{__python} setup.py build
@@ -98,6 +103,12 @@ desktop-file-install --dir %{buildroot}%{_datadir}/applications %{name}.desktop
mkdir -p %{buildroot}/%{_datadir}/appdata
cp -a %{SOURCE2} %{buildroot}/%{_datadir}/appdata
+# polkit
+mkdir -p %{buildroot}%{_datadir}/polkit-1/actions/
+install -p -m 644 polkit/%{name}_auth.policy %{buildroot}%{_datadir}/polkit-1/actions/
+mkdir -p %{buildroot}%{_libexecdir}
+install -p -m 755 polkit/da_auth %{buildroot}%{_libexecdir}
+
%check
%{__python} setup.py test -t py.test
@@ -131,11 +142,16 @@ fi
%{_datadir}/appdata/%{name}.appdata.xml
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%{_datadir}/icons/HighContrast/*/apps/%{name}.png
+%{_datadir}/polkit-1/actions/%{name}_auth.policy
+%{_libexecdir}/da_auth
%{_sysconfdir}/bash_completion.d/
%{python_sitelib}/%{name}
%{python_sitelib}/%{name}-%{version}-py?.?.egg-info
%changelog
+* Fri Oct 24 2014 Tomas Radej <tradej at redhat.com> - 0.9.2-3
+- Backported custom polkit policy (bz#1156292)
+
* Thu Oct 02 2014 Slavek Kabrda <bkabrda at redhat.com> - 0.9.2-2
- Add openssh-askpass dependency.
More information about the scm-commits
mailing list