[packages/polkit] Updated to 0.107
megabajt
megabajt at pld-linux.org
Sun Oct 7 23:51:04 CEST 2012
commit a7e4998202e8131bbe36d19d4a3e09a21d85d6b0
Author: Marcin Banasiak <marcin.banasiak at gmail.com>
Date: Sun Oct 7 23:50:03 2012 +0200
Updated to 0.107
polkit.spec | 80 +++++-----
systemd-fallback.patch | 402 +++++++++++++++++++++++++------------------------
2 files changed, 248 insertions(+), 234 deletions(-)
---
diff --git a/polkit.spec b/polkit.spec
index af8ad53..a2c07a3 100644
--- a/polkit.spec
+++ b/polkit.spec
@@ -6,14 +6,14 @@
Summary: A framework for defining policy for system-wide components
Summary(pl.UTF-8): Szkielet do definiowania polityki dla komponentów systemowych
Name: polkit
-Version: 0.104
-Release: 4
+Version: 0.107
+Release: 1
License: LGPL v2+
Group: Libraries
-Source0: http://hal.freedesktop.org/releases/%{name}-%{version}.tar.gz
-# Source0-md5: e380b4c6fb1e7bccf854e92edc0a8ce1
+Source0: http://www.freedesktop.org/software/polkit/releases/%{name}-%{version}.tar.gz
+# Source0-md5: 0e4f9c53f43fd1b25ac3f0d2e09b2ae1
Patch0: systemd-fallback.patch
-URL: http://www.freedesktop.org/wiki/Software/PolicyKit
+URL: http://www.freedesktop.org/wiki/Software/polkit
BuildRequires: autoconf >= 2.60
BuildRequires: automake >= 1:1.7
BuildRequires: docbook-dtd412-xml
@@ -26,15 +26,21 @@ BuildRequires: gobject-introspection-devel >= 0.6.2
%{?with_apidocs:BuildRequires: gtk-doc >= 1.3}
BuildRequires: gtk-doc-automake >= 1.3
BuildRequires: intltool >= 0.40.0
+BuildRequires: js185-devel
BuildRequires: libtool
BuildRequires: libxslt-progs
BuildRequires: pam-devel >= 0.80
BuildRequires: pkgconfig
BuildRequires: python-modules
-BuildRequires: rpmbuild(macros) >= 1.527
+BuildRequires: rpmbuild(macros) >= 1.647
%{?with_systemd:BuildRequires: systemd-devel}
Requires: %{name}-libs = %{version}-%{release}
+%if %{without systemd}
Requires: ConsoleKit >= 0.4.1
+%else
+Requires: systemd-units >= 38
+Suggests: ConsoleKit >= 0.4.1
+%endif
Requires: dbus >= 1.1.2-5
Obsoletes: PolicyKit
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -120,7 +126,8 @@ Statyczne biblioteki PolicyKit.
%{__enable_disable systemd systemd} \
--with-html-dir=%{_gtkdocdir} \
--with-pam-include=system-auth \
- --with-pam-module-dir=/%{_lib}/security
+ --with-pam-module-dir=/%{_lib}/security \
+ --with-polkitd-user=polkitd
%{__make}
%install
@@ -129,7 +136,6 @@ rm -rf $RPM_BUILD_ROOT
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/polkit-1/extensions/*.{la,a}
%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
%find_lang polkit-1
@@ -137,6 +143,24 @@ rm -rf $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
+%pre
+%groupadd -g 283 polkitd
+%useradd -u 283 -s /bin/false -c "polkitd pseudo user" -g polkitd polkitd
+
+%post
+%{?with_systemd:%systemd_post polkit.service}
+
+%preun
+%{?with_systemd:%systemd_preun polkit.service}
+
+%postun
+if [ "$1" = "0" ]; then
+ %userremove polkitd
+ %groupremove polkitd
+fi
+
+%{?with_systemd:%systemd_reload}
+
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
@@ -146,38 +170,25 @@ rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_bindir}/pkaction
%attr(755,root,root) %{_bindir}/pkcheck
%attr(4755,root,root) %{_bindir}/pkexec
+%attr(755,root,root) %{_bindir}/pkttyagent
%attr(755,root,root) %{_bindir}/pk-example-frobnicate
-%attr(4755,root,root) %{_libexecdir}/polkit-agent-helper-1
-%attr(755,root,root) %{_libexecdir}/polkitd
-%dir %{_libdir}/polkit-1
-%dir %{_libdir}/polkit-1/extensions
-%attr(755,root,root) %{_libdir}/polkit-1/extensions/libnullbackend.so
+%dir %{_prefix}/lib/polkit-1
+%attr(4755,root,root) %{_prefix}/lib/polkit-1/polkit-agent-helper-1
+%attr(755,root,root) %{_prefix}/lib/polkit-1/polkitd
%dir %{_sysconfdir}/polkit-1
-%dir %{_sysconfdir}/polkit-1/localauthority.conf.d
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/polkit-1/localauthority.conf.d/*.conf
-%attr(700,root,root) %dir %{_sysconfdir}/polkit-1/localauthority
-%dir %{_sysconfdir}/polkit-1/localauthority/10-vendor.d
-%dir %{_sysconfdir}/polkit-1/localauthority/20-org.d
-%dir %{_sysconfdir}/polkit-1/localauthority/30-site.d
-%dir %{_sysconfdir}/polkit-1/localauthority/50-local.d
-%dir %{_sysconfdir}/polkit-1/localauthority/90-mandatory.d
-%dir %{_sysconfdir}/polkit-1/nullbackend.conf.d
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/polkit-1/nullbackend.conf.d/*.conf
+%attr(700,polkitd,root) %dir %{_sysconfdir}/polkit-1/rules.d
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/polkit-1/rules.d/50-default.rules
/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf
/etc/pam.d/polkit-1
-%{_datadir}/polkit-1
+%dir %{_datadir}/polkit-1
+%{_datadir}/polkit-1/actions
+%attr(700,polkitd,root) %dir %{_datadir}/polkit-1/rules.d
%{_datadir}/dbus-1/system-services/org.freedesktop.PolicyKit1.service
-%attr(700,root,root) %dir /var/lib/polkit-1
-%dir /var/lib/polkit-1/localauthority
-%dir /var/lib/polkit-1/localauthority/10-vendor.d
-%dir /var/lib/polkit-1/localauthority/20-org.d
-%dir /var/lib/polkit-1/localauthority/30-site.d
-%dir /var/lib/polkit-1/localauthority/50-local.d
-%dir /var/lib/polkit-1/localauthority/90-mandatory.d
+%{?with_systemd:%{systemdunitdir}/polkit.service}
%{_mandir}/man1/pkaction.1*
%{_mandir}/man1/pkcheck.1*
%{_mandir}/man1/pkexec.1*
-%{_mandir}/man8/pklocalauthority.8*
+%{_mandir}/man1/pkttyagent.1*
%{_mandir}/man8/polkit.8*
%{_mandir}/man8/polkitd.8*
@@ -193,8 +204,6 @@ rm -rf $RPM_BUILD_ROOT
%doc COPYING
%attr(755,root,root) %{_libdir}/libpolkit-agent-1.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libpolkit-agent-1.so.0
-%attr(755,root,root) %{_libdir}/libpolkit-backend-1.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libpolkit-backend-1.so.0
%attr(755,root,root) %{_libdir}/libpolkit-gobject-1.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libpolkit-gobject-1.so.0
%{_libdir}/girepository-1.0/Polkit-1.0.typelib
@@ -203,11 +212,9 @@ rm -rf $RPM_BUILD_ROOT
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libpolkit-agent-1.so
-%attr(755,root,root) %{_libdir}/libpolkit-backend-1.so
%attr(755,root,root) %{_libdir}/libpolkit-gobject-1.so
%{_includedir}/polkit-1
%{_pkgconfigdir}/polkit-agent-1.pc
-%{_pkgconfigdir}/polkit-backend-1.pc
%{_pkgconfigdir}/polkit-gobject-1.pc
%{_datadir}/gir-1.0/Polkit-1.0.gir
%{_datadir}/gir-1.0/PolkitAgent-1.0.gir
@@ -215,5 +222,4 @@ rm -rf $RPM_BUILD_ROOT
%files static
%defattr(644,root,root,755)
%{_libdir}/libpolkit-agent-1.a
-%{_libdir}/libpolkit-backend-1.a
%{_libdir}/libpolkit-gobject-1.a
diff --git a/systemd-fallback.patch b/systemd-fallback.patch
index ee6aba6..b38ad67 100644
--- a/systemd-fallback.patch
+++ b/systemd-fallback.patch
@@ -1,59 +1,45 @@
-diff -uNr polkit-0.104/configure.ac polkit-0.104.systemd/configure.ac
---- polkit-0.104/configure.ac 2012-01-03 17:25:49.000000000 +0100
-+++ polkit-0.104.systemd/configure.ac 2012-04-02 20:56:04.906628803 +0200
-@@ -160,14 +160,15 @@
- [enable_systemd=auto])
- if test "$enable_systemd" != "no"; then
- PKG_CHECK_MODULES(SYSTEMD,
+diff -urN polkit-0.107.old/configure.ac polkit-0.107/configure.ac
+--- polkit-0.107.old/configure.ac 2012-10-07 21:31:48.402911710 +0200
++++ polkit-0.107/configure.ac 2012-10-07 22:27:11.041586743 +0200
+@@ -163,7 +163,7 @@
+ [enable_libsystemd_login=auto])
+ if test "$enable_libsystemd_login" != "no"; then
+ PKG_CHECK_MODULES(LIBSYSTEMD_LOGIN,
- [libsystemd-login],
+ [libsystemd-login libsystemd-daemon],
- have_systemd=yes,
- have_systemd=no)
- if test "$have_systemd" = "yes"; then
-+ AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is used for session tracking])
- SESSION_TRACKING=systemd
- else
- if test "$enable_systemd" = "yes"; then
-- AC_MSG_ERROR([systemd support requested but libsystemd-login1 library not found])
-+ AC_MSG_ERROR([systemd support requested but systemd libraries not found])
- fi
- fi
- fi
-diff -uNr polkit-0.104/src/polkit/Makefile.am polkit-0.104.systemd/src/polkit/Makefile.am
---- polkit-0.104/src/polkit/Makefile.am 2012-01-03 16:03:47.000000000 +0100
-+++ polkit-0.104.systemd/src/polkit/Makefile.am 2012-04-02 20:55:14.940232827 +0200
+ have_libsystemd_login=yes,
+ have_libsystemd_login=no)
+ if test "$have_libsystemd_login" = "yes"; then
+diff -urN polkit-0.107.old/src/polkit/Makefile.am polkit-0.107/src/polkit/Makefile.am
+--- polkit-0.107.old/src/polkit/Makefile.am 2012-10-07 21:31:48.379578504 +0200
++++ polkit-0.107/src/polkit/Makefile.am 2012-10-07 21:51:14.746593099 +0200
@@ -79,15 +79,8 @@
polkitimplicitauthorization.c polkitimplicitauthorization.h \
polkittemporaryauthorization.c polkittemporaryauthorization.h \
polkitpermission.c polkitpermission.h \
- $(NULL)
-
--if HAVE_SYSTEMD
+-if HAVE_LIBSYSTEMD_LOGIN
-libpolkit_gobject_1_la_SOURCES += \
- polkitunixsession-systemd.c polkitunixsession.h
-else
-libpolkit_gobject_1_la_SOURCES += \
- polkitunixsession.c polkitunixsession.h
+- polkitunixsession.c polkitunixsession.h
-endif
-+ $(NULL)
++ polkitunixsession.c polkitunixsession.h \
++ $(NULL)
libpolkit_gobject_1_la_CFLAGS = \
-D_POLKIT_COMPILATION \
-diff -uNr polkit-0.104/src/polkit/polkitunixsession.c polkit-0.104.systemd/src/polkit/polkitunixsession.c
---- polkit-0.104/src/polkit/polkitunixsession.c 2011-10-18 19:02:27.000000000 +0200
-+++ polkit-0.104.systemd/src/polkit/polkitunixsession.c 2012-04-02 20:55:14.940232827 +0200
-@@ -23,12 +23,18 @@
- # include "config.h"
- #endif
-
-+#include <stdlib.h>
- #include <string.h>
- #include "polkitunixsession.h"
- #include "polkitsubject.h"
+diff -urN polkit-0.107.old/src/polkit/polkitunixsession.c polkit-0.107/src/polkit/polkitunixsession.c
+--- polkit-0.107.old/src/polkit/polkitunixsession.c 2012-10-07 21:31:48.376245189 +0200
++++ polkit-0.107/src/polkit/polkitunixsession.c 2012-10-07 22:44:55.042489220 +0200
+@@ -29,6 +29,12 @@
#include "polkiterror.h"
#include "polkitprivate.h"
-+#ifdef HAVE_SYSTEMD
++#ifdef HAVE_LIBSYSTEMD_LOGIN
++# include <stdlib.h>
+# include <systemd/sd-daemon.h>
+# include <systemd/sd-login.h>
+#endif
@@ -61,19 +47,23 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession.c polkit-0.104.systemd/src/p
/**
* SECTION:polkitunixsession
* @title: PolkitUnixSession
-@@ -364,34 +370,44 @@
+@@ -363,35 +369,49 @@
+ {
PolkitUnixSession *session = POLKIT_UNIX_SESSION (subject);
GDBusConnection *connection;
- GVariant *result;
-- gboolean ret;
--
-- ret = FALSE;
-+ gboolean ret = FALSE;
+- GVariant *result;
++ GVariant *result = NULL;
+ gboolean ret;
+
++ connection = NULL;
+ ret = FALSE;
- connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error);
- if (connection == NULL)
- goto out;
--
++#ifdef HAVE_LIBSYSTEMD_LOGIN
++ uid_t uid;
+
- result = g_dbus_connection_call_sync (connection,
- "org.freedesktop.ConsoleKit", /* name */
- session->session_id, /* object path */
@@ -87,16 +77,13 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession.c polkit-0.104.systemd/src/p
- error);
- if (result == NULL)
- goto out;
-+#ifdef HAVE_SYSTEMD
-+ uid_t uid;
-+
+ if (sd_booted () > 0)
+ {
+ if (sd_session_get_uid (session->session_id, &uid) == 0)
+ ret = TRUE;
+ }
+ else
-+#endif
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
+ {
+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error);
+ if (connection == NULL)
@@ -120,40 +107,45 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession.c polkit-0.104.systemd/src/p
- g_variant_unref (result);
+ ret = TRUE;
+ g_variant_unref (result);
-
-- out:
-- if (connection != NULL)
-- g_object_unref (connection);
-+ out:
-+ if (connection != NULL)
-+ g_object_unref (connection);
+ }
+
+ out:
+ if (connection != NULL)
+ g_object_unref (connection);
++
return ret;
}
-@@ -470,12 +486,9 @@
- GError **error)
- {
- PolkitUnixSession *session = POLKIT_UNIX_SESSION (initable);
-- GDBusConnection *connection;
-+ GDBusConnection *connection = NULL;
+@@ -474,6 +494,7 @@
GVariant *result;
-- gboolean ret;
--
-- connection = NULL;
-- ret = FALSE;
-+ gboolean ret = FALSE;
+ gboolean ret;
- if (session->session_id != NULL)
- {
-@@ -484,33 +497,56 @@
++ result = NULL;
+ connection = NULL;
+ ret = FALSE;
+
+@@ -484,28 +505,51 @@
goto out;
}
- connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error);
- if (connection == NULL)
- goto out;
-+#ifdef HAVE_SYSTEMD
+-
+- result = g_dbus_connection_call_sync (connection,
+- "org.freedesktop.ConsoleKit", /* name */
+- "/org/freedesktop/ConsoleKit/Manager", /* object path */
+- "org.freedesktop.ConsoleKit.Manager", /* interface name */
+- "GetSessionForUnixProcess", /* method */
+- g_variant_new ("(u)", session->pid), /* parameters */
+- G_VARIANT_TYPE ("(o)"),
+- G_DBUS_CALL_FLAGS_NONE,
+- -1,
+- cancellable,
+- error);
+- if (result == NULL)
+- goto out;
++#ifdef HAVE_LIBSYSTEMD_LOGIN
+ char *s;
+
+ if (sd_booted () > 0)
@@ -165,7 +157,7 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession.c polkit-0.104.systemd/src/p
+ ret = TRUE;
+ goto out;
+ }
-+
++
+ g_set_error (error,
+ POLKIT_ERROR,
+ POLKIT_ERROR_FAILED,
@@ -173,8 +165,8 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession.c polkit-0.104.systemd/src/p
+ (gint) session->pid);
+ }
+ else
-+#endif
-+ {
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
++ {
+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error);
+ if (connection == NULL)
+ goto out;
@@ -191,42 +183,23 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession.c polkit-0.104.systemd/src/p
+ cancellable,
+ error);
+ if (result == NULL)
-+ goto out;
++ goto out;
-- result = g_dbus_connection_call_sync (connection,
-- "org.freedesktop.ConsoleKit", /* name */
-- "/org/freedesktop/ConsoleKit/Manager", /* object path */
-- "org.freedesktop.ConsoleKit.Manager", /* interface name */
-- "GetSessionForUnixProcess", /* method */
-- g_variant_new ("(u)", session->pid), /* parameters */
-- G_VARIANT_TYPE ("(o)"),
-- G_DBUS_CALL_FLAGS_NONE,
-- -1,
-- cancellable,
-- error);
-- if (result == NULL)
-- goto out;
+- g_variant_get (result, "(o)", &session->session_id);
+- g_variant_unref (result);
+ g_variant_get (result, "(o)", &session->session_id);
+ g_variant_unref (result);
-- g_variant_get (result, "(o)", &session->session_id);
-- g_variant_unref (result);
+- ret = TRUE;
+ ret = TRUE;
+ }
-- ret = TRUE;
-
out:
if (connection != NULL)
- g_object_unref (connection);
--
- return ret;
- }
-
-diff -uNr polkit-0.104/src/polkit/polkitunixsession-systemd.c polkit-0.104.systemd/src/polkit/polkitunixsession-systemd.c
---- polkit-0.104/src/polkit/polkitunixsession-systemd.c 2012-01-03 16:03:47.000000000 +0100
-+++ polkit-0.104.systemd/src/polkit/polkitunixsession-systemd.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,481 +0,0 @@
+diff -urN polkit-0.107.old/src/polkit/polkitunixsession-systemd.c polkit-0.107/src/polkit/polkitunixsession-systemd.c
+--- polkit-0.107.old/src/polkit/polkitunixsession-systemd.c 2012-10-07 21:31:48.379578504 +0200
++++ polkit-0.107/src/polkit/polkitunixsession-systemd.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,490 +0,0 @@
-/*
- * Copyright (C) 2011 Red Hat, Inc.
- *
@@ -252,6 +225,7 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession-systemd.c polkit-0.104.syste
-# include "config.h"
-#endif
-
+-#include <stdlib.h>
-#include <string.h>
-#include "polkitunixsession.h"
-#include "polkitsubject.h"
@@ -589,17 +563,15 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession-systemd.c polkit-0.104.syste
-
-static gboolean
-polkit_unix_session_exists_sync (PolkitSubject *subject,
-- GCancellable *cancellable,
-- GError **error)
+- GCancellable *cancellable,
+- GError **error)
-{
- PolkitUnixSession *session = POLKIT_UNIX_SESSION (subject);
-- gboolean ret;
+- gboolean ret = FALSE;
- uid_t uid;
-
-- ret = FALSE;
--
-- if (!sd_session_get_uid (session->session_id, &uid))
-- ret = FALSE;
+- if (sd_session_get_uid (session->session_id, &uid) == 0)
+- ret = TRUE;
-
- return ret;
-}
@@ -679,9 +651,8 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession-systemd.c polkit-0.104.syste
- GError **error)
-{
- PolkitUnixSession *session = POLKIT_UNIX_SESSION (initable);
-- gboolean ret;
--
-- ret = FALSE;
+- gboolean ret = FALSE;
+- char *s;
-
- if (session->session_id != NULL)
- {
@@ -690,8 +661,19 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession-systemd.c polkit-0.104.syste
- goto out;
- }
-
-- if (!sd_pid_get_session (session->pid, &session->session_id))
-- ret = TRUE;
+- if (sd_pid_get_session (session->pid, &s) == 0)
+- {
+- session->session_id = g_strdup (s);
+- free (s);
+- ret = TRUE;
+- goto out;
+- }
+-
+- g_set_error (error,
+- POLKIT_ERROR,
+- POLKIT_ERROR_FAILED,
+- "No session for pid %d",
+- (gint) session->pid);
-
-out:
- return ret;
@@ -708,38 +690,68 @@ diff -uNr polkit-0.104/src/polkit/polkitunixsession-systemd.c polkit-0.104.syste
-{
- /* use default implementation to run GInitable code in a thread */
-}
-diff -uNr polkit-0.104/src/polkitbackend/Makefile.am polkit-0.104.systemd/src/polkitbackend/Makefile.am
---- polkit-0.104/src/polkitbackend/Makefile.am 2012-01-03 16:03:47.000000000 +0100
-+++ polkit-0.104.systemd/src/polkitbackend/Makefile.am 2012-04-02 20:55:14.943566142 +0200
-@@ -41,15 +41,8 @@
+diff -urN polkit-0.107.old/src/polkitbackend/Makefile.am polkit-0.107/src/polkitbackend/Makefile.am
+--- polkit-0.107.old/src/polkitbackend/Makefile.am 2012-10-07 21:31:48.382911819 +0200
++++ polkit-0.107/src/polkitbackend/Makefile.am 2012-10-07 21:53:38.455814545 +0200
+@@ -36,15 +36,8 @@
+ polkitbackendactionpool.h polkitbackendactionpool.c \
polkitbackendconfigsource.h polkitbackendconfigsource.c \
polkitbackendactionlookup.h polkitbackendactionlookup.c \
- polkitbackendlocalauthorizationstore.h polkitbackendlocalauthorizationstore.c \
- $(NULL)
-
--if HAVE_SYSTEMD
+-if HAVE_LIBSYSTEMD_LOGIN
-libpolkit_backend_1_la_SOURCES += \
- polkitbackendsessionmonitor.h polkitbackendsessionmonitor-systemd.c
-else
-libpolkit_backend_1_la_SOURCES += \
- polkitbackendsessionmonitor.h polkitbackendsessionmonitor.c
+- polkitbackendsessionmonitor.h polkitbackendsessionmonitor.c
-endif
-+ $(NULL)
++ polkitbackendsessionmonitor.h polkitbackendsessionmonitor.c \
++ $(NULL)
libpolkit_backend_1_la_CFLAGS = \
-D_POLKIT_COMPILATION \
-diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.104.systemd/src/polkitbackend/polkitbackendsessionmonitor.c
---- polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c 2011-10-18 19:02:27.000000000 +0200
-+++ polkit-0.104.systemd/src/polkitbackend/polkitbackendsessionmonitor.c 2012-04-02 20:55:14.943566142 +0200
+diff -urN polkit-0.107.old/src/polkitbackend/polkitbackendjsauthority.c polkit-0.107/src/polkitbackend/polkitbackendjsauthority.c
+--- polkit-0.107.old/src/polkitbackend/polkitbackendjsauthority.c 2012-10-07 21:31:48.382911819 +0200
++++ polkit-0.107/src/polkitbackend/polkitbackendjsauthority.c 2012-10-07 21:52:58.786029455 +0200
+@@ -35,6 +35,7 @@
+ #include <polkit/polkitprivate.h>
+
+ #ifdef HAVE_LIBSYSTEMD_LOGIN
++#include <systemd/sd-daemon.h>
+ #include <systemd/sd-login.h>
+ #endif /* HAVE_LIBSYSTEMD_LOGIN */
+
+@@ -731,11 +732,14 @@
+ }
+
+ #ifdef HAVE_LIBSYSTEMD_LOGIN
+- if (sd_pid_get_session (pid, &session_str) == 0)
++ if (sd_booted () > 0)
+ {
+- if (sd_session_get_seat (session_str, &seat_str) == 0)
++ if (sd_pid_get_session (pid, &session_str) == 0)
+ {
+- /* do nothing */
++ if (sd_session_get_seat (session_str, &seat_str) == 0)
++ {
++ /* do nothing */
++ }
+ }
+ }
+ #endif /* HAVE_LIBSYSTEMD_LOGIN */
+diff -urN polkit-0.107.old/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.107/src/polkitbackend/polkitbackendsessionmonitor.c
+--- polkit-0.107.old/src/polkitbackend/polkitbackendsessionmonitor.c 2012-10-07 21:31:48.379578504 +0200
++++ polkit-0.107/src/polkitbackend/polkitbackendsessionmonitor.c 2012-10-07 22:25:54.305335789 +0200
@@ -26,6 +26,12 @@
#include <string.h>
#include <glib/gstdio.h>
-+#ifdef HAVE_SYSTEMD
++#ifdef HAVE_LIBSYSTEMD_LOGIN
++# include <stdlib.h>
+# include <systemd/sd-daemon.h>
+# include <systemd/sd-login.h>
-+# include <stdlib.h>
-+#endif
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
+
#include <polkit/polkit.h>
#include "polkitbackendsessionmonitor.h"
@@ -748,7 +760,7 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
* The #PolkitBackendSessionMonitor class is a utility class to track and monitor sessions.
*/
-+#ifdef HAVE_SYSTEMD
++#ifdef HAVE_LIBSYSTEMD_LOGIN
+typedef struct
+{
+ GSource source;
@@ -828,7 +840,7 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
+
+ return source;
+}
-+#endif /* HAVE_SYSTEMD */
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
+
struct _PolkitBackendSessionMonitor
{
@@ -837,18 +849,18 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
GKeyFile *database;
GFileMonitor *database_monitor;
time_t database_mtime;
-+
-+#ifdef HAVE_SYSTEMD
++
++#ifdef HAVE_LIBSYSTEMD_LOGIN
+ GSource *sd_source;
-+#endif
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
};
struct _PolkitBackendSessionMonitorClass
-@@ -162,6 +254,18 @@
- g_signal_emit (monitor, signals[CHANGED_SIGNAL], 0);
- }
+@@ -70,6 +162,18 @@
+
+ /* ---------------------------------------------------------------------------------------------------- */
-+#ifdef HAVE_SYSTEMD
++#ifdef HAVE_LIBSYSTEMD_LOGIN
+static gboolean
+sessions_changed (gpointer user_data)
+{
@@ -858,64 +870,62 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
+
+ return TRUE;
+}
-+#endif
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
+
- static void
- polkit_backend_session_monitor_init (PolkitBackendSessionMonitor *monitor)
- {
+ static gboolean
+ reload_database (PolkitBackendSessionMonitor *monitor,
+ GError **error)
@@ -176,31 +280,47 @@
g_error_free (error);
}
- error = NULL;
- if (!ensure_database (monitor, &error))
-- {
-- g_printerr ("Error loading " CKDB_PATH ": %s", error->message);
-- g_error_free (error);
-- }
-+#ifdef HAVE_SYSTEMD
++#ifdef HAVE_LIBSYSTEMD_LOGIN
+ monitor->sd_source = NULL;
-+
++
+ if (sd_booted () > 0)
-+ {
+ {
+- g_printerr ("Error loading " CKDB_PATH ": %s", error->message);
+- g_error_free (error);
+ monitor->sd_source = sd_source_new ();
+ g_source_set_callback (monitor->sd_source, sessions_changed, monitor, NULL);
+ g_source_attach (monitor->sd_source, NULL);
++
++ monitor->database_monitor = NULL;
++ monitor->database = NULL;
+ }
++ else
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
++ {
++ error = NULL;
++ if (!ensure_database (monitor, &error))
++ {
++ g_printerr ("Error loading " CKDB_PATH ": %s", error->message);
++ g_error_free (error);
++ }
- error = NULL;
- file = g_file_new_for_path (CKDB_PATH);
- monitor->database_monitor = g_file_monitor_file (file,
-- G_FILE_MONITOR_NONE,
-- NULL,
-- &error);
++ error = NULL;
++ file = g_file_new_for_path (CKDB_PATH);
++ monitor->database_monitor = g_file_monitor_file (file,
+ G_FILE_MONITOR_NONE,
+ NULL,
+ &error);
- g_object_unref (file);
- if (monitor->database_monitor == NULL)
- {
- g_printerr ("Error monitoring " CKDB_PATH ": %s", error->message);
- g_error_free (error);
-+ monitor->database = NULL;
-+ monitor->database_monitor = NULL;
- }
- else
-+#endif
- {
+- }
+- else
+- {
- g_signal_connect (monitor->database_monitor,
- "changed",
- G_CALLBACK (on_file_monitor_changed),
- monitor);
-+ error = NULL;
-+ if (!ensure_database (monitor, &error))
-+ {
-+ g_printerr ("Error loading " CKDB_PATH ": %s", error->message);
-+ g_error_free (error);
-+ }
-+
-+ error = NULL;
-+ file = g_file_new_for_path (CKDB_PATH);
-+ monitor->database_monitor = g_file_monitor_file (file,
-+ G_FILE_MONITOR_NONE,
-+ NULL,
-+ &error);
+ g_object_unref (file);
+ if (monitor->database_monitor == NULL)
+ {
@@ -932,27 +942,25 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
}
}
-@@ -212,6 +332,14 @@
- if (monitor->system_bus != NULL)
- g_object_unref (monitor->system_bus);
+@@ -218,6 +338,12 @@
+ if (monitor->database != NULL)
+ g_key_file_free (monitor->database);
-+#ifdef HAVE_SYSTEMD
+ if (monitor->sd_source != NULL)
+ {
+ g_source_destroy (monitor->sd_source);
+ g_source_unref (monitor->sd_source);
+ }
-+#endif
+
- if (monitor->database_monitor != NULL)
- g_object_unref (monitor->database_monitor);
-
-@@ -328,22 +456,38 @@
+ if (G_OBJECT_CLASS (polkit_backend_session_monitor_parent_class)->finalize != NULL)
+ G_OBJECT_CLASS (polkit_backend_session_monitor_parent_class)->finalize (object);
+ }
+@@ -328,22 +454,38 @@
}
else if (POLKIT_IS_UNIX_SESSION (subject))
{
- if (!ensure_database (monitor, error))
-+#ifdef HAVE_SYSTEMD
++#ifdef HAVE_LIBSYSTEMD_LOGIN
+ if (monitor->sd_source != NULL)
{
- g_prefix_error (error, "Error getting user for session: Error ensuring CK database at " CKDB_PATH ": ");
@@ -960,9 +968,9 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
+ if (sd_session_get_uid (polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (subject)), &uid) < 0)
+ {
+ g_set_error (error,
-+ POLKIT_ERROR,
-+ POLKIT_ERROR_FAILED,
-+ "Error getting uid for session");
++ POLKIT_ERROR,
++ POLKIT_ERROR_FAILED,
++ "Error getting uid for session");
+ goto out;
+ }
}
@@ -972,7 +980,7 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
- uid = g_key_file_get_integer (monitor->database, group, "uid", &local_error);
- if (local_error != NULL)
+ else
-+#endif
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
{
- g_propagate_prefixed_error (error, local_error, "Error getting uid using " CKDB_PATH ": ");
+ if (!ensure_database (monitor, error))
@@ -997,7 +1005,7 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
ret = polkit_unix_user_new (uid);
}
-@@ -373,29 +517,46 @@
+@@ -373,29 +515,46 @@
if (POLKIT_IS_UNIX_PROCESS (subject))
{
@@ -1019,7 +1027,7 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
- g_variant_get (result, "(&o)", &session_id);
- session = polkit_unix_session_new (session_id);
- g_variant_unref (result);
-+#ifdef HAVE_SYSTEMD
++#ifdef HAVE_LIBSYSTEMD_LOGIN
+ if (monitor->sd_source != NULL)
+ {
+ gchar *session_id;
@@ -1033,7 +1041,7 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
+ free (session_id);
+ }
+ else
-+#endif
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
+ {
+ const gchar *session_id;
+ GVariant *result;
@@ -1063,7 +1071,7 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
GVariant *result;
result = g_dbus_connection_call_sync (monitor->system_bus,
-@@ -414,22 +575,35 @@
+@@ -414,22 +573,35 @@
g_variant_get (result, "(u)", &pid);
g_variant_unref (result);
@@ -1083,7 +1091,7 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
- g_variant_get (result, "(&o)", &session_id);
- session = polkit_unix_session_new (session_id);
- g_variant_unref (result);
-+#ifdef HAVE_SYSTEMD
++#ifdef HAVE_LIBSYSTEMD_LOGIN
+ if (monitor->sd_source != NULL)
+ {
+ if (sd_pid_get_session (pid, &session_id) < 0)
@@ -1093,7 +1101,7 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
+ free (session_id);
+ }
+ else
-+#endif
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
+ {
+ result = g_dbus_connection_call_sync (monitor->system_bus,
+ "org.freedesktop.ConsoleKit",
@@ -1115,12 +1123,12 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
}
else
{
-@@ -490,7 +664,22 @@
+@@ -490,7 +662,22 @@
polkit_backend_session_monitor_is_session_local (PolkitBackendSessionMonitor *monitor,
PolkitSubject *session)
{
- return get_boolean (monitor, session, "is_local");
-+#ifdef HAVE_SYSTEMD
++#ifdef HAVE_LIBSYSTEMD_LOGIN
+ if (monitor->sd_source != NULL)
+ {
+ char *seat;
@@ -1134,27 +1142,27 @@ diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor.c polkit-0.
+ return FALSE;
+ }
+ else
-+#endif
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
+ return get_boolean (monitor, session, "is_local");
}
-@@ -498,6 +687,11 @@
+@@ -498,6 +685,11 @@
polkit_backend_session_monitor_is_session_active (PolkitBackendSessionMonitor *monitor,
PolkitSubject *session)
{
- return get_boolean (monitor, session, "is_active");
-+#ifdef HAVE_SYSTEMD
++#ifdef HAVE_LIBSYSTEMD_LOGIN
+ if (monitor->sd_source != NULL)
+ return sd_session_is_active (polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (session)));
+ else
-+#endif
++#endif /* HAVE_LIBSYSTEMD_LOGIN */
+ return get_boolean (monitor, session, "is_active");
}
-diff -uNr polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor-systemd.c polkit-0.104.systemd/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
---- polkit-0.104/src/polkitbackend/polkitbackendsessionmonitor-systemd.c 2012-01-03 16:03:47.000000000 +0100
-+++ polkit-0.104.systemd/src/polkitbackend/polkitbackendsessionmonitor-systemd.c 1970-01-01 01:00:00.000000000 +0100
+diff -urN polkit-0.107.old/src/polkitbackend/polkitbackendsessionmonitor-systemd.c polkit-0.107/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
+--- polkit-0.107.old/src/polkitbackend/polkitbackendsessionmonitor-systemd.c 2012-10-07 21:31:48.382911819 +0200
++++ polkit-0.107/src/polkitbackend/polkitbackendsessionmonitor-systemd.c 1970-01-01 01:00:00.000000000 +0100
@@ -1,414 +0,0 @@
-/*
- * Copyright (C) 2011 Red Hat, Inc.
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/polkit.git/commitdiff/a7e4998202e8131bbe36d19d4a3e09a21d85d6b0
More information about the pld-cvs-commit
mailing list