[system-config-keyboard] use polkit/pkexec instead of consolehelper
Nils Philippsen
nphilipp at fedoraproject.org
Thu Apr 18 13:22:48 UTC 2013
commit 995a684c3b0d69c5d2fe33cdf64e156fc709e120
Author: Nils Philippsen <nils at redhat.com>
Date: Thu Apr 18 15:22:09 2013 +0200
use polkit/pkexec instead of consolehelper
system-config-keyboard-1.3.1-pkexec.patch | 104 +++++++++++++++++++++++++++++
system-config-keyboard.spec | 7 ++-
2 files changed, 109 insertions(+), 2 deletions(-)
---
diff --git a/system-config-keyboard-1.3.1-pkexec.patch b/system-config-keyboard-1.3.1-pkexec.patch
new file mode 100644
index 0000000..0602b64
--- /dev/null
+++ b/system-config-keyboard-1.3.1-pkexec.patch
@@ -0,0 +1,104 @@
+diff -up system-config-keyboard-1.3.1/Makefile.pkexec system-config-keyboard-1.3.1/Makefile
+--- system-config-keyboard-1.3.1/Makefile.pkexec 2009-09-14 13:04:33.000000000 +0200
++++ system-config-keyboard-1.3.1/Makefile 2013-04-18 15:20:01.911423604 +0200
+@@ -1,5 +1,5 @@
+ # License: GPL
+-# Copyright Red Hat Inc. 2001 - 2008
++# Copyright Red Hat Inc. 2001 - 2008, 2013
+ # Copyright Lubomir Rintel <lkundrak at v3.sk> 2008, 2009
+
+ PKGNAME=system-config-keyboard
+@@ -15,24 +15,31 @@ MANDIR=$(DATADIR)/man
+
+ PKGDATADIR=$(DATADIR)/$(PKGNAME)
+ PKGIMAGESDIR=$(PKGDATADIR)/pixmaps
+-PAMD_DIR=$(SYSCONFDIR)/pam.d
+-SECURITY_DIR=$(SYSCONFDIR)/security/console.apps
++POLKITDIR=$(DATADIR)/polkit-1/actions
++
++POLKITFILE=org.fedoraproject.config.keyboard.policy
++PKEXEC=$(BINDIR)/pkexec
+
+ PYTHON=python
+ PYTHON_SITELIB=$(shell $(PYTHON) -c 'from distutils.sysconfig import get_python_lib; print get_python_lib()')
+ PYTHON_MODULE=$(shell echo $(PKGNAME) |sed 's/-/_/g')
+
+-all: gettext
++all: ${PKGNAME}.desktop gettext polkit
++
++polkit: $(PKGNAME).sh
++
++$(PKGNAME).sh::
++ echo -e "#!/bin/sh\nexec $(PKEXEC) $(SBINDIR)/$(PKGNAME) \"\$$@\"" > "$@"
++ chmod 755 "$@"
+
+ gettext:
+ cd po && for i in *.po; do msgfmt $$i -o $$(echo $$i |sed s/.po/.mo/) || exit 1; done
+
+-install: ${PKGNAME}.desktop
++install: all
+ mkdir -p $(DESTDIR)$(BINDIR)
+ mkdir -p $(DESTDIR)$(SBINDIR)
+ mkdir -p $(DESTDIR)$(PKGDATADIR)
+- mkdir -p $(DESTDIR)$(PAMD_DIR)
+- mkdir -p $(DESTDIR)$(SECURITY_DIR)
++ mkdir -p $(DESTDIR)$(POLKITDIR)
+ mkdir -p $(DESTDIR)$(PKGDATADIR)/pixmaps
+ mkdir -p $(DESTDIR)/usr/share/applications
+ mkdir -p $(DESTDIR)/usr/share/firstboot
+@@ -42,12 +49,11 @@ install: ${PKGNAME}.desktop
+ install -m 644 src/*.py $(DESTDIR)$(PKGDATADIR)
+ install -m 755 src/${PKGNAME} $(DESTDIR)$(SBINDIR)/$(PKGNAME)
+ install -m 644 lib/*.py $(DESTDIR)$(PYTHON_SITELIB)/$(PYTHON_MODULE)
++ install -m 755 $(PKGNAME).sh $(DESTDIR)$(BINDIR)/$(PKGNAME)
++ install -m 644 $(POLKITFILE) $(DESTDIR)$(POLKITDIR)
+ install -m 644 pixmaps/*.png $(DESTDIR)$(PKGDATADIR)/pixmaps
+ install -m 644 pixmaps/${PKGNAME}.png $(DESTDIR)/usr/share/icons/hicolor/48x48/apps
+- install -m 644 ${PKGNAME}.pam $(DESTDIR)$(PAMD_DIR)/${PKGNAME}
+- install -m 644 ${PKGNAME}.console $(DESTDIR)$(SECURITY_DIR)/${PKGNAME}
+ install -m 644 ${PKGNAME}.desktop $(DESTDIR)/usr/share/applications/${PKGNAME}.desktop
+- ln -sf consolehelper $(DESTDIR)/$(BINDIR)/${PKGNAME}
+ ln -sf $(PKGDATADIR)/keyboard_gui.py $(DESTDIR)/usr/share/firstboot/modules/keyboard.py
+ cd po && for i in *.mo; do mkdir -p $(DESTDIR)/usr/share/locale/$$(echo $$i |sed s/.mo//)/LC_MESSAGES/; install -m 644 $$i $(DESTDIR)/usr/share/locale/$$(echo $$i |sed s/.mo//)/LC_MESSAGES/system-config-keyboard.mo || exit 1; done
+
+diff -up system-config-keyboard-1.3.1/org.fedoraproject.config.keyboard.policy.pkexec system-config-keyboard-1.3.1/org.fedoraproject.config.keyboard.policy
+--- system-config-keyboard-1.3.1/org.fedoraproject.config.keyboard.policy.pkexec 2013-04-18 15:19:02.737276374 +0200
++++ system-config-keyboard-1.3.1/org.fedoraproject.config.keyboard.policy 2013-04-18 15:19:02.737276374 +0200
+@@ -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>System Config Keyboard</vendor>
++ <vendor_url>http://fedoraproject.org/wiki/SystemConfig/keyboard</vendor_url>
++
++ <action id="org.fedoraproject.config.keyboard.pkexec.run">
++ <description>Run System Config Keyboard</_description>
++ <message>Authentication is required to run system-config-keyboard</_message>
++ <icon_name>system-config-keyboard</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/sbin/system-config-keyboard</annotate>
++ <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
++ </action>
++</policyconfig>
+diff -up system-config-keyboard-1.3.1/system-config-keyboard.console.pkexec system-config-keyboard-1.3.1/system-config-keyboard.console
+--- system-config-keyboard-1.3.1/system-config-keyboard.console.pkexec 2008-04-12 15:37:19.000000000 +0200
++++ system-config-keyboard-1.3.1/system-config-keyboard.console 2013-04-18 15:19:02.737276374 +0200
+@@ -1,3 +0,0 @@
+-. config-util
+-PROGRAM=/usr/sbin/system-config-keyboard
+-SESSION=true
+diff -up system-config-keyboard-1.3.1/system-config-keyboard.pam.pkexec system-config-keyboard-1.3.1/system-config-keyboard.pam
+--- system-config-keyboard-1.3.1/system-config-keyboard.pam.pkexec 2005-10-21 00:22:25.000000000 +0200
++++ system-config-keyboard-1.3.1/system-config-keyboard.pam 2013-04-18 15:19:02.737276374 +0200
+@@ -1,4 +0,0 @@
+-#%PAM-1.0
+-auth include config-util
+-account include config-util
+-session include config-util
diff --git a/system-config-keyboard.spec b/system-config-keyboard.spec
index c5394aa..c84b610 100644
--- a/system-config-keyboard.spec
+++ b/system-config-keyboard.spec
@@ -19,11 +19,13 @@ BuildRequires: intltool
Requires: system-config-keyboard-base = %{version}-%{release}
Requires: newt-python
Requires: usermode >= 1.36
+Requires: polkit
Obsoletes: kbdconfig
Obsoletes: redhat-config-keyboard
Patch0: system-config-keyboard-1.3.1-do_not_remove_the_OK_button.patch
Patch1: system-config-keyboard-1.3.1-no-pyxf86config.patch
+Patch2: system-config-keyboard-1.3.1-pkexec.patch
%description
@@ -46,6 +48,7 @@ Base components of system-config-keyboard.
%setup -q
%patch0 -p1 -b .do_not_remove_the_OK_button
%patch1 -p1 -b .no-pyxf86config
+%patch2 -p1 -b .pkexec
%build
make
@@ -87,8 +90,7 @@ fi
%attr(0755,root,root) %dir %{_datadir}/firstboot/modules
%{_datadir}/firstboot/modules/*
%attr(0644,root,root) %{_datadir}/applications/system-config-keyboard.desktop
-%attr(0644,root,root) %config %{_sysconfdir}/security/console.apps/system-config-keyboard
-%attr(0644,root,root) %config %{_sysconfdir}/pam.d/system-config-keyboard
+%attr(0644,root,root) %{_datadir}/polkit-1/actions/org.fedoraproject.config.keyboard.policy
%attr(0644,root,root) %{_datadir}/icons/hicolor/48x48/apps/system-config-keyboard.png
@@ -101,6 +103,7 @@ fi
%changelog
* Thu Apr 18 2013 Nils Philippsen <nils at redhat.com>
- use consistent names for patches, create backup files
+- use polkit/pkexec instead of consolehelper
* Fri Feb 15 2013 Ville Skyttä <ville.skytta at iki.fi> - 1.3.1-11
- Add dependency on newt-python (#845391, Sandro Mani).
More information about the scm-commits
mailing list