[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