summaryrefslogtreecommitdiff
path: root/extra/polkit
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-01-08 01:01:51 -0800
committerroot <root@rshg054.dnsready.net>2013-01-08 01:01:51 -0800
commitc6944c224fa06987b04ffc1e90f5db0dfb200be9 (patch)
tree9660fefded7f8fd5e1ea1a47e60c13e80bbb7d25 /extra/polkit
parent6691bda410e7b989932f459d788e7caa7bbd3a41 (diff)
Tue Jan 8 01:01:51 PST 2013
Diffstat (limited to 'extra/polkit')
-rw-r--r--extra/polkit/PKGBUILD18
-rw-r--r--extra/polkit/fix-xauthority.patch58
2 files changed, 67 insertions, 9 deletions
diff --git a/extra/polkit/PKGBUILD b/extra/polkit/PKGBUILD
index 40300622d..4c5a22e39 100644
--- a/extra/polkit/PKGBUILD
+++ b/extra/polkit/PKGBUILD
@@ -1,29 +1,29 @@
-# $Id: PKGBUILD 169989 2012-10-30 23:00:46Z heftig $
+# $Id: PKGBUILD 174766 2013-01-07 11:39:56Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=polkit
-pkgver=0.107
-pkgrel=4
+pkgver=0.109
+pkgrel=1
pkgdesc="Application development toolkit for controlling system-wide privileges"
arch=(i686 x86_64)
license=('LGPL')
-url="http://www.freedesktop.org/wiki/Software/PolicyKit"
+url="http://www.freedesktop.org/wiki/Software/polkit"
depends=('glib2' 'pam' 'expat' 'libsystemd' 'js')
makedepends=('intltool' 'gtk-doc' 'gobject-introspection')
replaces=('policykit')
options=('!libtool')
install=polkit.install
source=(http://www.freedesktop.org/software/polkit/releases/$pkgname-$pkgver.tar.gz
- polkit.pam fix-empty-wheel.patch)
-md5sums=('0e4f9c53f43fd1b25ac3f0d2e09b2ae1'
+ polkit.pam
+ fix-xauthority.patch)
+md5sums=('8c3f08287dd3e1e546e3c2ae00090908'
'6564f95878297b954f0572bc1610dd15'
- 'c99ab2a7919ad0b69fde4804c043b07f')
+ '78db344a30d7aa089b4705009ec95b58')
build() {
cd $pkgname-$pkgver
- # https://bugs.archlinux.org/task/31717
- patch -Np1 -i ../fix-empty-wheel.patch
+ patch -Np1 -i ../fix-xauthority.patch
./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var --libexecdir=/usr/lib/polkit-1 \
diff --git a/extra/polkit/fix-xauthority.patch b/extra/polkit/fix-xauthority.patch
new file mode 100644
index 000000000..cf00b929c
--- /dev/null
+++ b/extra/polkit/fix-xauthority.patch
@@ -0,0 +1,58 @@
+From d6acecdd0ebb42e28ff28e04e0207cb01fa20910 Mon Sep 17 00:00:00 2001
+From: David Zeuthen <zeuthen@gmail.com>
+Date: Wed, 19 Dec 2012 19:28:29 +0000
+Subject: Set XAUTHORITY environment variable if is unset
+
+The way it works is that if XAUTHORITY is unset, then its default
+value is $HOME/.Xauthority. But since we're changing user identity
+this will not work since $HOME will now change. Therefore, if
+XAUTHORITY is unset, just set its default value before changing
+identity. This bug only affected login managers using X Window
+Authorization but not explicitly setting the XAUTHORITY variable.
+
+You can argue that XAUTHORITY is broken since it forces uid-changing
+apps like pkexec(1) to do more work - and get involved in intimate
+details of how X works and so on - but that doesn't change how things
+work.
+
+Based on a patch from Peter Wu <lekensteyn@gmail.com>.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=51623
+
+Signed-off-by: David Zeuthen <zeuthen@gmail.com>
+---
+diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
+index 840eb3c..da9784a 100644
+--- a/src/programs/pkexec.c
++++ b/src/programs/pkexec.c
+@@ -608,6 +608,28 @@ main (int argc, char *argv[])
+ g_ptr_array_add (saved_env, g_strdup (value));
+ }
+
++ /* $XAUTHORITY is "special" - if unset, we need to set it to ~/.Xauthority. Yes,
++ * this is broken but it's unfortunately how things work (see fdo #51623 for
++ * details)
++ */
++ if (g_getenv ("XAUTHORITY") == NULL)
++ {
++ const gchar *home;
++
++ /* pre-2.36 GLib does not examine $HOME (it always looks in /etc/passwd) and
++ * this is not what we want
++ */
++ home = g_getenv ("HOME");
++ if (home == NULL)
++ home = g_get_home_dir ();
++
++ if (home != NULL)
++ {
++ g_ptr_array_add (saved_env, g_strdup ("XAUTHORITY"));
++ g_ptr_array_add (saved_env, g_build_filename (home, ".Xauthority", NULL));
++ }
++ }
++
+ /* Nuke the environment to get a well-known and sanitized environment to avoid attacks
+ * via e.g. the DBUS_SYSTEM_BUS_ADDRESS environment variable and similar.
+ */
+--
+cgit v0.9.0.2-2-gbebe