[polkit] * Fri Aug 13 2010 David Zeuthen <davidz at redhat.com> - 0.97-3 - Add a patch to make pkcheck(1) work t
David Zeuthen
davidz at fedoraproject.org
Fri Aug 13 15:23:29 UTC 2010
commit 63764f004b2ea5643eaa47894381273528cf00ad
Author: David Zeuthen <davidz at redhat.com>
Date: Fri Aug 13 11:23:27 2010 -0400
* Fri Aug 13 2010 David Zeuthen <davidz at redhat.com> - 0.97-3
- Add a patch to make pkcheck(1) work the way libvirtd uses it (#623257)
- Require GLib >= 2.25.12 instead of 2.25.11
- Ensure polkit-gnome packages earlier than 0.97 are not used with
these packages
polkit-0.97-subject-scanning.patch | 76 ++++++++++++++++++++++++++++++++++++
polkit.spec | 18 ++++++++-
2 files changed, 92 insertions(+), 2 deletions(-)
---
diff --git a/polkit-0.97-subject-scanning.patch b/polkit-0.97-subject-scanning.patch
new file mode 100644
index 0000000..d4ab680
--- /dev/null
+++ b/polkit-0.97-subject-scanning.patch
@@ -0,0 +1,76 @@
+From 17f0600529dc926ae4a0c85dc56c393cc09e4011 Mon Sep 17 00:00:00 2001
+From: David Zeuthen <davidz at redhat.com>
+Date: Thu, 12 Aug 2010 20:49:25 +0000
+Subject: Fix scanning of unix-process subjects
+
+In particular accept both "unix-process:<pid>,<starttime>" and
+"unix-process:<pid>". For the latter, return an error if we cannot
+lookup the starttime (for example if the given pid references a
+non-existing process).
+
+Signed-off-by: David Zeuthen <davidz at redhat.com>
+---
+diff --git a/src/polkit/polkitsubject.c b/src/polkit/polkitsubject.c
+index 19d60b9..51e60e0 100644
+--- a/src/polkit/polkitsubject.c
++++ b/src/polkit/polkitsubject.c
+@@ -24,6 +24,7 @@
+ #endif
+
+ #include <string.h>
++#include <stdio.h>
+
+ #include "polkitsubject.h"
+ #include "polkitunixprocess.h"
+@@ -222,8 +223,6 @@ polkit_subject_from_string (const gchar *str,
+ GError **error)
+ {
+ PolkitSubject *subject;
+- guint64 val;
+- gchar *endptr;
+
+ g_return_val_if_fail (str != NULL, NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+@@ -234,12 +233,15 @@ polkit_subject_from_string (const gchar *str,
+
+ if (g_str_has_prefix (str, "unix-process:"))
+ {
+- val = g_ascii_strtoull (str + sizeof "unix-process:" - 1,
+- &endptr,
+- 10);
+- if (*endptr == '\0')
++ gint scanned_pid;
++ guint64 scanned_starttime;
++ if (sscanf (str, "unix-process:%d:%" G_GUINT64_FORMAT, &scanned_pid, &scanned_starttime) == 2)
+ {
+- subject = polkit_unix_process_new ((gint) val);
++ subject = polkit_unix_process_new_full (scanned_pid, scanned_starttime);
++ }
++ else if (sscanf (str, "unix-process:%d", &scanned_pid) == 1)
++ {
++ subject = polkit_unix_process_new_full (scanned_pid, 0);
+ if (polkit_unix_process_get_start_time (POLKIT_UNIX_PROCESS (subject)) == 0)
+ {
+ g_object_unref (subject);
+@@ -247,8 +249,8 @@ polkit_subject_from_string (const gchar *str,
+ g_set_error (error,
+ POLKIT_ERROR,
+ POLKIT_ERROR_FAILED,
+- "No process with pid %" G_GUINT64_FORMAT,
+- val);
++ "Unable to determine start time for process with pid %d",
++ scanned_pid);
+ }
+ }
+ }
+@@ -266,7 +268,7 @@ polkit_subject_from_string (const gchar *str,
+ g_set_error (error,
+ POLKIT_ERROR,
+ POLKIT_ERROR_FAILED,
+- "Malformed subject string '%s'",
++ "Malformed subject string `%s'",
+ str);
+ }
+
+--
+cgit v0.8.3-6-g21f6
diff --git a/polkit.spec b/polkit.spec
index 04a8024..a772426 100644
--- a/polkit.spec
+++ b/polkit.spec
@@ -1,13 +1,13 @@
Summary: PolicyKit Authorization Framework
Name: polkit
Version: 0.97
-Release: 2%{?dist}
+Release: 3%{?dist}
License: LGPLv2+
URL: http://www.freedesktop.org/wiki/Software/PolicyKit
Source0: http://hal.freedesktop.org/releases/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Group: System Environment/Libraries
-BuildRequires: glib2-devel >= 2.25.11
+BuildRequires: glib2-devel >= 2.25.12
BuildRequires: expat-devel
BuildRequires: pam-devel
BuildRequires: gtk-doc
@@ -20,6 +20,13 @@ Requires: dbus
Obsoletes: PolicyKit <= 0.10
Provides: PolicyKit = 0.11
+# polkit saw some API/ABI changes from 0.96 to 0.97 so require a
+# sufficiently new polkit-gnome package
+Conflicts: polkit-gnome < 0.97
+
+# upstream
+Patch0: polkit-0.97-subject-scanning.patch
+
%description
PolicyKit is a toolkit for defining and handling authorizations.
It is used for allowing unprivileged processes to speak to privileged
@@ -62,6 +69,7 @@ Roles and default policy for desktop usage.
%prep
%setup -q
+%patch0 -p1 -b .subject-scanning
%build
%configure --enable-gtk-doc --disable-static --libexecdir=%{_libexecdir}/polkit-1 --disable-introspection --enable-examples
@@ -183,6 +191,12 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/gtk-doc/html/*
%changelog
+* Fri Aug 13 2010 David Zeuthen <davidz at redhat.com> - 0.97-3
+- Add a patch to make pkcheck(1) work the way libvirtd uses it (#623257)
+- Require GLib >= 2.25.12 instead of 2.25.11
+- Ensure polkit-gnome packages earlier than 0.97 are not used with
+ these packages
+
* Mon Aug 09 2010 David Zeuthen <davidz at redhat.com> - 0.97-2
- Rebuild
More information about the scm-commits
mailing list