diff options
author | Pacho Ramos <pacho@gentoo.org> | 2014-11-01 17:15:52 +0000 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2014-11-01 17:15:52 +0000 |
commit | e3278af1ec495690229556a772f01ed054e26d74 (patch) | |
tree | 921ff770057fe49a71167de2d01912ca0938a29a /sys-apps/accountsservice | |
parent | Specify LICENSE more precisely. Update ebuild to EAPI 5. (diff) | |
download | gentoo-2-e3278af1ec495690229556a772f01ed054e26d74.tar.gz gentoo-2-e3278af1ec495690229556a772f01ed054e26d74.tar.bz2 gentoo-2-e3278af1ec495690229556a772f01ed054e26d74.zip |
Drop old
(Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key A188FBD4)
Diffstat (limited to 'sys-apps/accountsservice')
10 files changed, 11 insertions, 929 deletions
diff --git a/sys-apps/accountsservice/ChangeLog b/sys-apps/accountsservice/ChangeLog index 20342986ec5d..991d8782306e 100644 --- a/sys-apps/accountsservice/ChangeLog +++ b/sys-apps/accountsservice/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for sys-apps/accountsservice # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/accountsservice/ChangeLog,v 1.46 2014/09/05 11:52:43 zlogene Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/accountsservice/ChangeLog,v 1.47 2014/11/01 17:15:52 pacho Exp $ + + 01 Nov 2014; Pacho Ramos <pacho@gentoo.org> -accountsservice-0.6.29-r1.ebuild, + -accountsservice-0.6.35.ebuild, + -files/accountsservice-0.6.21-gentoo-system-users.patch, + -files/accountsservice-0.6.29-32bit-crash.patch, + -files/accountsservice-0.6.34-gentoo-system-users.patch, + -files/accountsservice-0.6.35-nondelete-root.patch, + -files/accountsservice-0.6.35-older-glib.patch, + -files/accountsservice-0.6.35-user-logic.patch, metadata.xml: + Drop old 05 Sep 2014; Mikle Kolyada <zlogene@gentoo.org> accountsservice-0.6.37.ebuild: ppc/ppc64 stable wrt bug #518014 diff --git a/sys-apps/accountsservice/accountsservice-0.6.29-r1.ebuild b/sys-apps/accountsservice/accountsservice-0.6.29-r1.ebuild deleted file mode 100644 index 7b7e94da12c6..000000000000 --- a/sys-apps/accountsservice/accountsservice-0.6.29-r1.ebuild +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/accountsservice/accountsservice-0.6.29-r1.ebuild,v 1.9 2014/04/18 19:51:09 swift Exp $ - -EAPI="4" -GCONF_DEBUG="no" -GNOME2_LA_PUNT="yes" -VALA_MIN_API_VERSION="0.16" -VALA_USE_DEPEND="vapigen" - -inherit eutils gnome2 systemd vala - -DESCRIPTION="D-Bus interfaces for querying and manipulating user account information" -HOMEPAGE="http://www.fedoraproject.org/wiki/Features/UserAccountDialog" -SRC_URI="http://www.freedesktop.org/software/${PN}/${P}.tar.xz" - -LICENSE="GPL-3+" -SLOT="0" -KEYWORDS="~alpha amd64 arm ~ia64 ~ppc ~ppc64 ~sparc x86" -IUSE="doc +introspection selinux systemd vala" -REQUIRED_USE="vala? ( introspection )" - -# Want glib-2.30 for gdbus -RDEPEND=">=dev-libs/glib-2.30:2 - sys-auth/polkit - introspection? ( >=dev-libs/gobject-introspection-0.9.12 ) - selinux? ( sec-policy/selinux-accountsd ) - systemd? ( >=sys-apps/systemd-186 ) - !systemd? ( sys-auth/consolekit )" -DEPEND="${RDEPEND} - dev-libs/libxslt - dev-util/gdbus-codegen - >=dev-util/gtk-doc-am-1.15 - >=dev-util/intltool-0.40 - sys-devel/gettext - virtual/pkgconfig - doc? ( - app-text/docbook-xml-dtd:4.1.2 - app-text/xmlto ) - vala? ( - >=dev-lang/vala-0.16.1-r1 - $(vala_depend) )" - -src_prepare() { - epatch "${FILESDIR}/${PN}-0.6.21-gentoo-system-users.patch" - epatch "${FILESDIR}/${P}-32bit-crash.patch" # bug #445894, fixed in 0.6.30 - use vala && vala_src_prepare - gnome2_src_prepare -} - -src_configure() { - DOCS="AUTHORS NEWS README TODO" - G2CONF="${G2CONF} - --disable-static - --disable-more-warnings - --localstatedir="${EPREFIX}"/var - --docdir="${EPREFIX}"/usr/share/doc/${PF} - $(use_enable doc docbook-docs) - $(use_enable introspection) - $(use_enable vala) - $(use_enable systemd) - $(systemd_with_unitdir)" - gnome2_src_configure -} diff --git a/sys-apps/accountsservice/accountsservice-0.6.35.ebuild b/sys-apps/accountsservice/accountsservice-0.6.35.ebuild deleted file mode 100644 index 36a81aa61002..000000000000 --- a/sys-apps/accountsservice/accountsservice-0.6.35.ebuild +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/accountsservice/accountsservice-0.6.35.ebuild,v 1.7 2014/04/18 19:51:08 swift Exp $ - -EAPI="5" -GCONF_DEBUG="no" - -inherit autotools eutils gnome2 systemd - -DESCRIPTION="D-Bus interfaces for querying and manipulating user account information" -HOMEPAGE="http://www.freedesktop.org/wiki/Software/AccountsService/" -SRC_URI="http://www.freedesktop.org/software/${PN}/${P}.tar.xz" - -LICENSE="GPL-3+" -SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc x86" - -IUSE="doc +introspection selinux systemd" - -# Want glib-2.34 for g_clear_pointer, bug #462938 -RDEPEND=" - >=dev-libs/glib-2.34.0:2 - sys-auth/polkit - introspection? ( >=dev-libs/gobject-introspection-0.9.12 ) - selinux? ( sec-policy/selinux-accountsd ) - systemd? ( >=sys-apps/systemd-186:0= ) - !systemd? ( sys-auth/consolekit ) -" -DEPEND="${RDEPEND} - dev-libs/libxslt - dev-util/gdbus-codegen - >=dev-util/gtk-doc-am-1.15 - >=dev-util/intltool-0.40 - sys-devel/gettext - virtual/pkgconfig - doc? ( - app-text/docbook-xml-dtd:4.1.2 - app-text/xmlto ) -" - -src_prepare() { - epatch "${FILESDIR}/${PN}-0.6.35-gentoo-system-users.patch" - - # Daemon: rip out extension interface as it needs glib-2.37 - epatch "${FILESDIR}/${PN}-0.6.35-older-glib.patch" - - # Avoid deleting the root user (from 'master') - epatch "${FILESDIR}/${PN}-0.6.35-nondelete-root.patch" - - # Change up user classification logic again (from 'master') - epatch "${FILESDIR}/${PN}-0.6.35-user-logic.patch" - - eautoreconf - gnome2_src_prepare -} - -src_configure() { - gnome2_src_configure \ - --disable-static \ - --disable-more-warnings \ - --localstatedir="${EPREFIX}"/var \ - --docdir="${EPREFIX}"/usr/share/doc/${PF} \ - --enable-admin-group="wheel" \ - $(use_enable doc docbook-docs) \ - $(use_enable introspection) \ - $(use_enable systemd) \ - $(systemd_with_unitdir) -} diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.21-gentoo-system-users.patch b/sys-apps/accountsservice/files/accountsservice-0.6.21-gentoo-system-users.patch deleted file mode 100644 index 1424f3dc75d0..000000000000 --- a/sys-apps/accountsservice/files/accountsservice-0.6.21-gentoo-system-users.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 3fe83b83f422d08f0030195f4951b332706ad7f8 Mon Sep 17 00:00:00 2001 -From: Alexandre Rostovtsev <tetromino@gentoo.org> -Date: Mon, 25 Jun 2012 01:48:39 -0400 -Subject: [PATCH] Additional Gentoo system user accounts with non-trivial - login shell - ---- - src/daemon.c | 34 ++++++++++++++++++++++++++++++++++ - 1 files changed, 34 insertions(+), 0 deletions(-) - -diff --git a/src/daemon.c b/src/daemon.c -index d1708ca..2ad2aff 100644 ---- a/src/daemon.c -+++ b/src/daemon.c -@@ -77,6 +77,40 @@ static const char *default_excludes[] = { - "games", - "man", - "at", -+ /* Additional Gentoo system users with non-trivial login shell */ -+ "amanda", -+ "backuppc", -+ "drqueue", -+ "firebird", -+ "flexlm", -+ "foldingathome", -+ "geneweb", -+ "git", -+ "gnump3d", -+ "hacluster", -+ "hg", -+ "hsqldb", -+ "infinote", -+ "jffnms", -+ "klive", -+ "mailman", -+ "mpd", -+ "mythtv", -+ "nagios", -+ "nx", -+ "oneadmin", -+ "openvpn", -+ "p2p", -+ "phxd", -+ "resin", -+ "rplayd", -+ "scponly", -+ "secoff", -+ "tinyproxy", -+ "ttrssd", -+ "vboxguest", -+ "vdr", -+ "vdradmin", - NULL - }; - --- -1.7.8.6 - diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.29-32bit-crash.patch b/sys-apps/accountsservice/files/accountsservice-0.6.29-32bit-crash.patch deleted file mode 100644 index 1015072ef709..000000000000 --- a/sys-apps/accountsservice/files/accountsservice-0.6.29-32bit-crash.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 4d5166d1833e42d81b854374aa6e73f83a67a70e Mon Sep 17 00:00:00 2001 -From: Matthias Clasen <mclasen@redhat.com> -Date: Tue, 27 Nov 2012 18:30:45 -0500 -Subject: [PATCH] Fix a crash on 32bit systems - -The login-frequency property of the User interface is defined -as uint64 type. Therefore, when setting it with g_object_set, -a 64bit value is collected, and passing an int might lead to -bad things. -https://bugs.freedesktop.org/show_bug.cgi?id=57343 ---- - src/daemon.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/daemon.c b/src/daemon.c -index ed3a114..4d6f3ab 100644 ---- a/src/daemon.c -+++ b/src/daemon.c -@@ -207,7 +207,7 @@ daemon_local_user_is_excluded (Daemon *daemon, const gchar *username, const gcha - #ifdef HAVE_UTMPX_H - - typedef struct { -- int frequency; -+ guint64 frequency; - gint64 time; - GList *previous_logins; - } UserAccounting; --- -1.8.0 - diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.34-gentoo-system-users.patch b/sys-apps/accountsservice/files/accountsservice-0.6.34-gentoo-system-users.patch deleted file mode 100644 index 445b4e735fa0..000000000000 --- a/sys-apps/accountsservice/files/accountsservice-0.6.34-gentoo-system-users.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- src/daemon.c~ 2013-06-11 17:50:37.000000000 +0200 -+++ src/daemon.c 2013-07-16 23:49:58.804406874 +0200 -@@ -82,6 +82,48 @@ - "at", - "gdm", - "gnome-initial-setup", -+ /* Additional Gentoo system users with non-trivial login shell */ -+ "amanda", -+ "backuppc", -+ "drqueue", -+ "firebird", -+ "flexlm", -+ "foldingathome", -+ "geneweb", -+ "git", -+ "gnump3d", -+ "hacluster", -+ "hg", -+ "hsqldb", -+ "infinote", -+ "foldingathome", -+ "geneweb", -+ "git", -+ "gnump3d", -+ "hacluster", -+ "hg", -+ "hsqldb", -+ "infinote", -+ "jffnms", -+ "klive", -+ "mailman", -+ "mpd", -+ "mythtv", -+ "nagios", -+ "nx", -+ "oneadmin", -+ "openvpn", -+ "p2p", -+ "phxd", -+ "resin", -+ "rplayd", -+ "scponly", -+ "secoff", -+ "tinyproxy", -+ "ttrssd", -+ "vboxguest", -+ "vdr", -+ "vdradmin", - NULL - }; - diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.35-nondelete-root.patch b/sys-apps/accountsservice/files/accountsservice-0.6.35-nondelete-root.patch deleted file mode 100644 index b8dfaa931935..000000000000 --- a/sys-apps/accountsservice/files/accountsservice-0.6.35-nondelete-root.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 980692e6b9cfe4a34e22f566e0981a8c549e4348 Mon Sep 17 00:00:00 2001 -From: Matthias Clasen <mclasen@redhat.com> -Date: Fri, 01 Nov 2013 21:09:25 +0000 -Subject: Avoid deleting the root user - -The check we have in place against deleting the root user can -be tricked by exploiting the fact that we are checking a gint64, -and then later cast it to a uid_t. This can be seen with the -following test, which will delete your root account: - -qdbus --system org.freedesktop.Accounts /org/freedesktop/Accounts \ - org.freedesktop.Accounts.DeleteUser -9223372036854775808 true - -Found with the dfuzzer tool, -https://github.com/matusmarhefka/dfuzzer ---- -diff --git a/src/daemon.c b/src/daemon.c -index ea75190..9c7001b 100644 ---- a/src/daemon.c -+++ b/src/daemon.c -@@ -1227,7 +1227,7 @@ daemon_uncache_user (AccountsAccounts *accounts, - } - - typedef struct { -- gint64 uid; -+ uid_t uid; - gboolean remove_files; - } DeleteUserData; - -@@ -1309,13 +1309,13 @@ daemon_delete_user (AccountsAccounts *accounts, - Daemon *daemon = (Daemon*)accounts; - DeleteUserData *data; - -- if (uid == 0) { -+ if ((uid_t)uid == 0) { - throw_error (context, ERROR_FAILED, "Refuse to delete root user"); - return TRUE; - } - - data = g_new0 (DeleteUserData, 1); -- data->uid = uid; -+ data->uid = (uid_t)uid; - data->remove_files = remove_files; - - daemon_local_check_auth (daemon, --- -cgit v0.9.0.2-2-gbebe diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.35-older-glib.patch b/sys-apps/accountsservice/files/accountsservice-0.6.35-older-glib.patch deleted file mode 100644 index 64f21777aa73..000000000000 --- a/sys-apps/accountsservice/files/accountsservice-0.6.35-older-glib.patch +++ /dev/null @@ -1,396 +0,0 @@ -From f86c93014e698d81d43fe1ebaf805fa794e5a984 Mon Sep 17 00:00:00 2001 -From: Ray Strode <rstrode@redhat.com> -Date: Tue, 22 Oct 2013 19:42:16 +0000 -Subject: daemon: rip out extension interface - -It requires newer glib than we're shipping ---- -diff --git a/configure.ac b/configure.ac -index cb1fcda..a7f4e20 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -25,7 +25,7 @@ AC_SUBST(LT_CURRENT) - AC_SUBST(LT_REVISION) - AC_SUBST(LT_AGE) - --PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.37.3 gio-unix-2.0) -+PKG_CHECK_MODULES(GIO, gio-2.0 gio-unix-2.0) - PKG_CHECK_MODULES(POLKIT, gio-unix-2.0 polkit-gobject-1) - - AM_MAINTAINER_MODE([enable]) -diff --git a/src/Makefile.am b/src/Makefile.am -index 6940f2d..de57e7a 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -34,7 +34,6 @@ accounts_daemon_SOURCES = \ - types.h \ - daemon.h \ - daemon.c \ -- extensions.c \ - user-classify.h \ - user-classify.c \ - user.h \ -diff --git a/src/daemon.c b/src/daemon.c -index 9c9f617..ea75190 100644 ---- a/src/daemon.c -+++ b/src/daemon.c -@@ -80,7 +80,6 @@ struct DaemonPrivate { - guint autologin_id; - - PolkitAuthority *authority; -- GHashTable *extension_ifaces; - }; - - typedef struct passwd * (* EntryGeneratorFunc) (GHashTable *, gpointer *); -@@ -683,8 +682,6 @@ daemon_init (Daemon *daemon) - { - daemon->priv = DAEMON_GET_PRIVATE (daemon); - -- daemon->priv->extension_ifaces = daemon_read_extension_ifaces (); -- - daemon->priv->users = create_users_hash_table (); - - daemon->priv->passwd_monitor = setup_monitor (daemon, -@@ -728,8 +725,6 @@ daemon_finalize (GObject *object) - - g_hash_table_destroy (daemon->priv->users); - -- g_hash_table_unref (daemon->priv->extension_ifaces); -- - G_OBJECT_CLASS (daemon_parent_class)->finalize (object); - } - -@@ -1553,12 +1548,6 @@ daemon_local_set_automatic_login (Daemon *daemon, - return TRUE; - } - --GHashTable * --daemon_get_extension_ifaces (Daemon *daemon) --{ -- return daemon->priv->extension_ifaces; --} -- - static void - get_property (GObject *object, - guint prop_id, -diff --git a/src/daemon.h b/src/daemon.h -index b7e072e..e036407 100644 ---- a/src/daemon.h -+++ b/src/daemon.h -@@ -96,9 +96,6 @@ gboolean daemon_local_set_automatic_login (Daemon *daemon, - gboolean enabled, - GError **error); - --GHashTable * daemon_read_extension_ifaces (void); --GHashTable * daemon_get_extension_ifaces (Daemon *daemon); -- - G_END_DECLS - - #endif /* __DAEMON_H__ */ -diff --git a/src/user.c b/src/user.c -index 1698eeb..163d136 100644 ---- a/src/user.c -+++ b/src/user.c -@@ -104,9 +104,6 @@ struct User { - gboolean automatic_login; - gboolean system_account; - gboolean local_account; -- -- guint *extension_ids; -- guint n_extension_ids; - }; - - typedef struct UserClass -@@ -463,259 +460,6 @@ move_extra_data (const gchar *old_name, - g_free (new_filename); - } - --static GVariant * --user_extension_get_value (User *user, -- GDBusInterfaceInfo *interface, -- const GDBusPropertyInfo *property) --{ -- const GVariantType *type = G_VARIANT_TYPE (property->signature); -- GVariant *value; -- gchar *printed; -- gint i; -- -- /* First, try to get the value from the keyfile */ -- printed = g_key_file_get_value (user->keyfile, interface->name, property->name, NULL); -- if (printed) { -- value = g_variant_parse (type, printed, NULL, NULL, NULL); -- g_free (printed); -- -- if (value != NULL) -- return value; -- } -- -- /* If that didn't work, try for a default value annotation */ -- for (i = 0; property->annotations && property->annotations[i]; i++) { -- GDBusAnnotationInfo *annotation = property->annotations[i]; -- -- if (g_str_equal (annotation->key, "org.freedesktop.Accounts.DefaultValue.String")) { -- if (g_str_equal (property->signature, "s")) -- return g_variant_ref_sink (g_variant_new_string (annotation->value)); -- } -- else if (g_str_equal (annotation->key, "org.freedesktop.Accounts.DefaultValue")) { -- value = g_variant_parse (type, annotation->value, NULL, NULL, NULL); -- if (value != NULL) -- return value; -- } -- } -- -- /* Nothing found... */ -- return NULL; --} -- --static void --user_extension_get_property (User *user, -- Daemon *daemon, -- GDBusInterfaceInfo *interface, -- GDBusMethodInvocation *invocation) --{ -- const GDBusPropertyInfo *property = g_dbus_method_invocation_get_property_info (invocation); -- GVariant *value; -- -- value = user_extension_get_value (user, interface, property); -- -- if (value) { -- g_dbus_method_invocation_return_value (invocation, g_variant_new ("(v)", value)); -- g_variant_unref (value); -- } -- else { -- g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, -- "Key '%s' is not set and has no default value", -- property->name); -- } --} -- --static void --user_extension_get_all_properties (User *user, -- Daemon *daemon, -- GDBusInterfaceInfo *interface, -- GDBusMethodInvocation *invocation) --{ -- GVariantBuilder builder; -- gint i; -- -- g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); -- for (i = 0; interface->properties && interface->properties[i]; i++) { -- GDBusPropertyInfo *property = interface->properties[i]; -- GVariant *value; -- -- value = user_extension_get_value (user, interface, property); -- -- if (value) { -- g_variant_builder_add (&builder, "{sv}", property->name, value); -- g_variant_unref (value); -- } -- } -- -- g_dbus_method_invocation_return_value (invocation, g_variant_new ("(a{sv})", &builder)); --} -- --static void --user_extension_set_property (User *user, -- Daemon *daemon, -- GDBusInterfaceInfo *interface, -- GDBusMethodInvocation *invocation) --{ -- const GDBusPropertyInfo *property = g_dbus_method_invocation_get_property_info (invocation); -- GVariant *value; -- gchar *printed; -- gchar *prev; -- -- g_variant_get_child (g_dbus_method_invocation_get_parameters (invocation), 2, "v", &value); -- -- /* We'll always have the type when we parse it back so -- * we don't need it to be printed with annotations. -- */ -- printed = g_variant_print (value, FALSE); -- -- /* May as well try to avoid the thrashing... */ -- prev = g_key_file_get_value (user->keyfile, interface->name, property->name, NULL); -- -- if (!prev || !g_str_equal (printed, prev)) { -- g_key_file_set_value (user->keyfile, interface->name, property->name, printed); -- -- /* Emit a change signal. Use invalidation -- * because the data may not be world-readable. -- */ -- g_dbus_connection_emit_signal (g_dbus_method_invocation_get_connection (invocation), -- NULL, /* destination_bus_name */ -- g_dbus_method_invocation_get_object_path (invocation), -- "org.freedesktop.DBus.Properties", "PropertiesChanged", -- g_variant_new_parsed ("( %s, %a{sv}, [ %s ] )", -- interface->name, NULL, property->name), -- NULL); -- -- accounts_user_emit_changed (ACCOUNTS_USER (user)); -- save_extra_data (user); -- } -- -- g_variant_unref (value); -- g_free (printed); -- g_free (prev); -- -- g_dbus_method_invocation_return_value (invocation, g_variant_new ("()")); --} -- --static void --user_extension_authentication_done (Daemon *daemon, -- User *user, -- GDBusMethodInvocation *invocation, -- gpointer user_data) --{ -- GDBusInterfaceInfo *interface = user_data; -- const gchar *method_name; -- -- method_name = g_dbus_method_invocation_get_method_name (invocation); -- -- if (g_str_equal (method_name, "Get")) -- user_extension_get_property (user, daemon, interface, invocation); -- else if (g_str_equal (method_name, "GetAll")) -- user_extension_get_all_properties (user, daemon, interface, invocation); -- else if (g_str_equal (method_name, "Set")) -- user_extension_set_property (user, daemon, interface, invocation); -- else -- g_assert_not_reached (); --} -- --static void --user_extension_method_call (GDBusConnection *connection, -- const gchar *sender, -- const gchar *object_path, -- const gchar *interface_name, -- const gchar *method_name, -- GVariant *parameters, -- GDBusMethodInvocation *invocation, -- gpointer user_data) --{ -- User *user = user_data; -- GDBusInterfaceInfo *iface_info; -- const gchar *annotation_name; -- const gchar *action_id; -- gint uid; -- gint i; -- -- /* We don't allow method calls on extension interfaces, so we -- * should only ever see property calls here. -- */ -- g_assert_cmpstr (interface_name, ==, "org.freedesktop.DBus.Properties"); -- -- /* Now get the real interface name */ -- g_variant_get_child (parameters, 0, "&s", &interface_name); -- -- if (get_caller_uid (invocation, &uid) && (uid_t) uid == user->uid) { -- /* Operation on sender's own User object */ -- if (g_str_equal (method_name, "Set")) { -- annotation_name = "org.freedesktop.Accounts.Authentication.ChangeOwn"; -- action_id = "org.freedesktop.accounts.change-own-user-data"; -- } -- else { -- annotation_name = "org.freedesktop.Accounts.Authentication.ReadOwn"; -- action_id = ""; /* reading allowed by default */ -- } -- } -- else { -- /* Operation on someone else's User object */ -- if (g_str_equal (method_name, "Set")) { -- annotation_name = "org.freedesktop.Accounts.Authentication.ChangeAny"; -- action_id = "org.freedesktop.accounts.user-administration"; -- } -- else { -- annotation_name = "org.freedesktop.Accounts.Authentication.ReadAny"; -- action_id = ""; /* reading allowed by default */ -- } -- } -- -- iface_info = g_hash_table_lookup (daemon_get_extension_ifaces (user->daemon), interface_name); -- g_assert (iface_info != NULL); -- -- for (i = 0; iface_info->annotations && iface_info->annotations[i]; i++) { -- if (g_str_equal (iface_info->annotations[i]->key, annotation_name)) { -- action_id = iface_info->annotations[i]->value; -- break; -- } -- } -- -- if (action_id[0] == '\0') { -- /* Should always allow this call, so just do it now */ -- user_extension_authentication_done (user->daemon, user, invocation, iface_info); -- } -- else { -- daemon_local_check_auth (user->daemon, user, action_id, TRUE, -- user_extension_authentication_done, -- invocation, iface_info, NULL); -- } --} -- --static void --user_register_extensions (User *user) --{ -- static const GDBusInterfaceVTable vtable = { -- user_extension_method_call, -- NULL /* get_property */, -- NULL /* set_property */ -- }; -- GHashTable *extensions; -- GHashTableIter iter; -- gpointer iface; -- gint i = 0; -- -- g_assert (user->extension_ids == NULL); -- g_assert (user->n_extension_ids == 0); -- -- extensions = daemon_get_extension_ifaces (user->daemon); -- user->n_extension_ids = g_hash_table_size (extensions); -- user->extension_ids = g_new (guint, user->n_extension_ids); -- g_hash_table_iter_init (&iter, extensions); -- -- /* Ignore errors when registering more interfaces because (a) -- * they won't happen and (b) even if they do, we still want to -- * publish the main user interface. -- */ -- while (g_hash_table_iter_next (&iter, NULL, &iface)) -- user->extension_ids[i++] = g_dbus_connection_register_object (user->system_bus_connection, -- user->object_path, iface, -- &vtable, user, NULL, NULL); --} -- - static gchar * - compute_object_path (User *user) - { -@@ -753,8 +497,6 @@ user_register (User *user) - } - return; - } -- -- user_register_extensions (user); - } - - void -@@ -767,21 +509,6 @@ void - user_unregister (User *user) - { - g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (user)); -- -- if (user->extension_ids) { -- guint i; -- -- for (i = 0; i < user->n_extension_ids; i++) { -- /* In theory, if an error happened during registration, we could have 0 here. */ -- if (user->extension_ids[i] == 0) -- continue; -- -- g_dbus_connection_unregister_object (user->system_bus_connection, user->extension_ids[i]); -- } -- -- g_clear_pointer (&user->extension_ids, g_free); -- user->n_extension_ids = 0; -- } - } - - void --- -cgit v0.9.0.2-2-gbebe diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.35-user-logic.patch b/sys-apps/accountsservice/files/accountsservice-0.6.35-user-logic.patch deleted file mode 100644 index 8de3cfcffef1..000000000000 --- a/sys-apps/accountsservice/files/accountsservice-0.6.35-user-logic.patch +++ /dev/null @@ -1,211 +0,0 @@ -From ba13b59cb91ec67c86b3e3fb390d91db01df8963 Mon Sep 17 00:00:00 2001 -From: Ray Strode <rstrode@redhat.com> -Date: Fri, 15 Nov 2013 15:11:15 +0000 -Subject: Change up user classification logic again - -relying on login.defs is fragile, and the -user heuristics are fragile. - -This commit requires an explicit uid minimum -get configured, and heuristics now only get -applied to the specific problematic range -they were added to address. - -https://bugs.freedesktop.org/show_bug.cgi?id=71801 ---- -diff --git a/configure.ac b/configure.ac -index cb1fcda..39c5b92 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -55,11 +55,17 @@ AS_IF([test x$enable_admin_group = xauto], [ - AC_DEFINE_UNQUOTED([ADMIN_GROUP], ["$enable_admin_group"], [Define to the group for administrator users]) - - AC_ARG_ENABLE(user-heuristics, -- [AS_HELP_STRING([--enable-user-heuristics],[Enable heuristics for guessing system vs. human users])], -+ [AS_HELP_STRING([--enable-user-heuristics],[Enable heuristics for guessing system vs. human users in the range 500-minimum-uid])], - [if test "$enableval" = yes; then - AC_DEFINE([ENABLE_USER_HEURISTICS], , [System vs. human user heuristics enabled]) - fi]) - -+AC_ARG_WITH(minimum-uid, -+ [AS_HELP_STRING([--with-minimum-uid],[Set minimum uid for human users])], -+ ,with_minimum_uid=1000) -+ -+AC_DEFINE_UNQUOTED([MINIMUM_UID], $with_minimum_uid, [Define to the minumum UID of human users]) -+ - dnl --------------------------------------------------------------------------- - dnl - coverage - dnl --------------------------------------------------------------------------- -diff --git a/src/user-classify.c b/src/user-classify.c -index b68c9ae..69e6809 100644 ---- a/src/user-classify.c -+++ b/src/user-classify.c -@@ -26,7 +26,6 @@ - - #include <string.h> - --#ifdef ENABLE_USER_HEURISTICS - static const char *default_excludes[] = { - "bin", - "root", -@@ -57,16 +56,10 @@ static const char *default_excludes[] = { - "gnome-initial-setup" - }; - --#define PATH_NOLOGIN "/sbin/nologin" --#define PATH_FALSE "/bin/false" -- - static gboolean --user_classify_is_excluded_by_heuristics (const gchar *username, -- const gchar *shell, -- const gchar *password_hash) -+user_classify_is_blacklisted (const char *username) - { - static GHashTable *exclusions; -- gboolean ret = FALSE; - - if (exclusions == NULL) { - guint i; -@@ -82,6 +75,20 @@ user_classify_is_excluded_by_heuristics (const gchar *username, - return TRUE; - } - -+ return FALSE; -+} -+ -+#define PATH_NOLOGIN "/sbin/nologin" -+#define PATH_FALSE "/bin/false" -+ -+#ifdef ENABLE_USER_HEURISTICS -+static gboolean -+user_classify_is_excluded_by_heuristics (const gchar *username, -+ const gchar *shell, -+ const gchar *password_hash) -+{ -+ gboolean ret = FALSE; -+ - if (shell != NULL) { - char *basename, *nologin_basename, *false_basename; - -@@ -139,99 +146,6 @@ user_classify_is_excluded_by_heuristics (const gchar *username, - - return ret; - } -- --#else /* ENABLE_USER_HEURISTICS */ -- --static gboolean --user_classify_parse_login_defs_field (const gchar *contents, -- const gchar *key, -- uid_t *result) --{ -- gsize key_len; -- gint64 value; -- gchar *end; -- -- key_len = strlen (key); -- -- for (;;) { -- /* Our key has to be at the start of the line, followed by whitespace */ -- if (strncmp (contents, key, key_len) == 0 && g_ascii_isspace (contents[key_len])) { -- /* Found it. Move contents past the key itself and break out. */ -- contents += key_len; -- break; -- } -- -- /* Didn't find it. Find the end of the line. */ -- contents = strchr (contents, '\n'); -- -- /* EOF? */ -- if (!contents) { -- /* We didn't find the field... */ -- return FALSE; -- } -- -- /* Start at the beginning of the next line on next iteration. */ -- contents++; -- } -- -- /* 'contents' now points at the whitespace character just after -- * the field name. strtoll can deal with that. -- */ -- value = g_ascii_strtoll (contents, &end, 10); -- -- if (*end && !g_ascii_isspace (*end)) { -- g_warning ("Trailing junk after '%s' field in login.defs", key); -- return FALSE; -- } -- -- if (value <= 0 || value >= G_MAXINT32) { -- g_warning ("Value for '%s' field out of range", key); -- return FALSE; -- } -- -- *result = value; -- -- return TRUE; --} -- --static void --user_classify_read_login_defs (uid_t *min_uid, -- uid_t *max_uid) --{ -- GError *error = NULL; -- char *contents; -- -- if (!g_file_get_contents ("/etc/login.defs", &contents, NULL, &error)) { -- g_warning ("Could not open /etc/login.defs: %s. Falling back to default human uid range of %d to %d", -- error->message, (int) *min_uid, (int) *max_uid); -- g_error_free (error); -- return; -- } -- -- if (!user_classify_parse_login_defs_field (contents, "UID_MIN", min_uid)) { -- g_warning ("Could not find UID_MIN value in login.defs. Using default of %d", (int) *min_uid); -- } -- -- if (!user_classify_parse_login_defs_field (contents, "UID_MAX", max_uid)) { -- g_warning ("Could not find UID_MIN value in login.defs. Using default of %d", (int) *max_uid); -- } -- -- g_free (contents); --} -- --static gboolean --user_classify_is_in_human_range (uid_t uid) --{ -- static uid_t min_uid = 1000, max_uid = 60000; -- static gboolean initialised; -- -- if (!initialised) { -- user_classify_read_login_defs (&min_uid, &max_uid); -- initialised = TRUE; -- } -- -- return min_uid <= uid && uid <= max_uid; --} - #endif /* ENABLE_USER_HEURISTICS */ - - gboolean -@@ -240,9 +154,16 @@ user_classify_is_human (uid_t uid, - const gchar *shell, - const gchar *password_hash) - { -+ if (user_classify_is_blacklisted (username)) -+ return FALSE; -+ - #ifdef ENABLE_USER_HEURISTICS -- return !user_classify_is_excluded_by_heuristics (username, shell, password_hash); --#else -- return user_classify_is_in_human_range (uid); -+ /* only do heuristics on the range 500-1000 to catch one off migration problems in Fedora */ -+ if (uid >= 500 && uid < MINIMUM_UID) { -+ if (!user_classify_is_excluded_by_heuristics (username, shell, password_hash)) -+ return TRUE; -+ } - #endif -+ -+ return uid >= MINIMUM_UID; - } --- -cgit v0.9.0.2-2-gbebe diff --git a/sys-apps/accountsservice/metadata.xml b/sys-apps/accountsservice/metadata.xml index 520c0d8ba24f..863d6473f89d 100644 --- a/sys-apps/accountsservice/metadata.xml +++ b/sys-apps/accountsservice/metadata.xml @@ -3,10 +3,7 @@ <pkgmetadata> <herd>gnome</herd> <use> - <flag name="introspection">Use <pkg>dev-libs/gobject-introspection</pkg> - for introspection</flag> <flag name="systemd">Use <pkg>sys-apps/systemd</pkg> instead of <pkg>sys-auth/consolekit</pkg> for session tracking</flag> - <flag name="vala">Enable bindings for <pkg>dev-lang/vala</pkg></flag> </use> </pkgmetadata> |