[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