From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QkooS-0007sY-Cy for garchives@archives.gentoo.org; Sun, 24 Jul 2011 02:53:04 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 798E621C1AE; Sun, 24 Jul 2011 02:52:56 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 14EC921C1AE for ; Sun, 24 Jul 2011 02:52:55 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1E55B1B400A for ; Sun, 24 Jul 2011 02:52:55 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 308E68003D for ; Sun, 24 Jul 2011 02:52:54 +0000 (UTC) From: "Alexandre Restovtsev" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Alexandre Restovtsev" Message-ID: Subject: [gentoo-commits] proj/gnome:master commit in: sys-apps/accountsservice/files/, sys-apps/accountsservice/ X-VCS-Repository: proj/gnome X-VCS-Files: sys-apps/accountsservice/accountsservice-0.6.12.ebuild sys-apps/accountsservice/accountsservice-0.6.13.ebuild sys-apps/accountsservice/files/accountsservice-0.6.13-PATH_GDM_CUSTOM.patch sys-apps/accountsservice/files/accountsservice-0.6.13-SetAutomaticLogin-false.patch sys-apps/accountsservice/files/accountsservice-0.6.13-etc-passwd-timeout.patch sys-apps/accountsservice/files/accountsservice-0.6.13-monitor-etc-gdm-custom.conf.patch X-VCS-Directories: sys-apps/accountsservice/files/ sys-apps/accountsservice/ X-VCS-Committer: tetromino X-VCS-Committer-Name: Alexandre Restovtsev X-VCS-Revision: b0cb098bac1ffe0271cec5d4ae587e3d2438edcd Date: Sun, 24 Jul 2011 02:52:54 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 52e7c8d91cb7a73a460be6a5fc46b059 commit: b0cb098bac1ffe0271cec5d4ae587e3d2438edcd Author: Alexandre Rostovtsev gmail com> AuthorDate: Sun Jul 24 02:38:55 2011 +0000 Commit: Alexandre Restovtsev gmail com> CommitDate: Sun Jul 24 02:38:55 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/gnome.git;a=3D= commit;h=3Db0cb098b sys-apps/accountsservice: 0.6.12 =E2=86=92 0.6.13 Version bump, plugs a memory leak and fixes use of deprecated API. In addition, add 4 useful patches from upstream git: 1. don't disable autologin for all accounts when trying to disable it for just one account; 2. a small cleanup used by the next patch; 3. monitor /etc/gdm/custom.conf for autologin information; 4. don't call reload_users twice (after update to /etc/passwd and then after update to /etc/shadow). --- ...0.6.12.ebuild =3D> accountsservice-0.6.13.ebuild} | 14 ++- .../accountsservice-0.6.13-PATH_GDM_CUSTOM.patch | 69 ++++++++++++ ...ntsservice-0.6.13-SetAutomaticLogin-false.patch | 40 +++++++ ...accountsservice-0.6.13-etc-passwd-timeout.patch | 52 +++++++++ ...ervice-0.6.13-monitor-etc-gdm-custom.conf.patch | 115 ++++++++++++++= ++++++ 5 files changed, 288 insertions(+), 2 deletions(-) diff --git a/sys-apps/accountsservice/accountsservice-0.6.12.ebuild b/sys= -apps/accountsservice/accountsservice-0.6.13.ebuild similarity index 70% rename from sys-apps/accountsservice/accountsservice-0.6.12.ebuild rename to sys-apps/accountsservice/accountsservice-0.6.13.ebuild index 3f2b469..455a342 100644 --- a/sys-apps/accountsservice/accountsservice-0.6.12.ebuild +++ b/sys-apps/accountsservice/accountsservice-0.6.13.ebuild @@ -6,11 +6,11 @@ EAPI=3D"3" GCONF_DEBUG=3D"no" GNOME2_LA_PUNT=3D"yes" =20 -inherit gnome2 systemd +inherit eutils gnome2 systemd =20 DESCRIPTION=3D"D-Bus interfaces for querying and manipulating user accou= nt information" HOMEPAGE=3D"http://www.fedoraproject.org/wiki/Features/UserAccountDialog= " -SRC_URI=3D"http://www.freedesktop.org/software/${PN}/${P}.tar.bz2" +SRC_URI=3D"http://www.freedesktop.org/software/${PN}/${P}.tar.xz" =20 LICENSE=3D"GPL-3" SLOT=3D"0" @@ -44,3 +44,13 @@ pkg_setup() { $(use_enable introspection)" DOCS=3D"AUTHORS NEWS README TODO" } + +src_prepare() { + # Useful patches from upstream git, will be in next release + epatch "${FILESDIR}/${P}-SetAutomaticLogin-false.patch" \ + "${FILESDIR}/${P}-PATH_GDM_CUSTOM.patch" \ + "${FILESDIR}/${P}-monitor-etc-gdm-custom.conf.patch" \ + "${FILESDIR}/${P}-etc-passwd-timeout.patch" + + gnome2_src_prepare +} diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.13-PATH_G= DM_CUSTOM.patch b/sys-apps/accountsservice/files/accountsservice-0.6.13-P= ATH_GDM_CUSTOM.patch new file mode 100644 index 0000000..8f57cf1 --- /dev/null +++ b/sys-apps/accountsservice/files/accountsservice-0.6.13-PATH_GDM_CUST= OM.patch @@ -0,0 +1,69 @@ +From 0c32736980a4f02d4eacf90d145bf937bf29dea6 Mon Sep 17 00:00:00 2001 +From: Vincent Untz +Date: Thu, 21 Jul 2011 16:04:13 -0400 +Subject: [PATCH 2/4] daemon: use PATH_GDM_CUSTOM instead of string liter= al + +It's better to consolidate references to file path in one +place up top. +--- + src/daemon.c | 13 ++++--------- + 1 files changed, 4 insertions(+), 9 deletions(-) + +diff --git a/src/daemon.c b/src/daemon.c +index f8753d6..eb9aa61 100644 +--- a/src/daemon.c ++++ b/src/daemon.c +@@ -50,6 +50,7 @@ + #define PATH_PASSWD "/etc/passwd" + #define PATH_SHADOW "/etc/shadow" + #define PATH_LOGIN_DEFS "/etc/login.defs" ++#define PATH_GDM_CUSTOM "/etc/gdm/custom.conf" +=20 + #ifndef FALLBACK_MINIMAL_UID + #define FALLBACK_MINIMAL_UID 500 +@@ -1207,15 +1208,12 @@ load_autologin (Daemon *daemon, + GError **error) + { + GKeyFile *keyfile; +- const gchar *filename; + GError *local_error; + gchar *string; +=20 +- filename =3D "/etc/gdm/custom.conf"; +- + keyfile =3D g_key_file_new (); + if (!g_key_file_load_from_file (keyfile, +- filename, ++ PATH_GDM_CUSTOM, + G_KEY_FILE_KEEP_COMMENTS, + error)) { + g_key_file_free (keyfile); +@@ -1257,15 +1255,12 @@ save_autologin (Daemon *daemon, + GError **error) + { + GKeyFile *keyfile; +- const gchar *filename; + gchar *data; + gboolean result; +=20 +- filename =3D "/etc/gdm/custom.conf"; +- + keyfile =3D g_key_file_new (); + if (!g_key_file_load_from_file (keyfile, +- filename, ++ PATH_GDM_CUSTOM, + G_KEY_FILE_KEEP_COMMENTS, + error)) { + g_key_file_free (keyfile); +@@ -1276,7 +1271,7 @@ save_autologin (Daemon *daemon, + g_key_file_set_string (keyfile, "daemon", "AutomaticLogin", nam= e); +=20 + data =3D g_key_file_to_data (keyfile, NULL, NULL); +- result =3D g_file_set_contents (filename, data, -1, error); ++ result =3D g_file_set_contents (PATH_GDM_CUSTOM, data, -1, erro= r); +=20 + g_key_file_free (keyfile); + g_free (data); +--=20 +1.7.6 + diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.13-SetAut= omaticLogin-false.patch b/sys-apps/accountsservice/files/accountsservice-= 0.6.13-SetAutomaticLogin-false.patch new file mode 100644 index 0000000..9afafc2 --- /dev/null +++ b/sys-apps/accountsservice/files/accountsservice-0.6.13-SetAutomaticL= ogin-false.patch @@ -0,0 +1,40 @@ +From df8e8831131663efc7ca42c4016e445362bee843 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Wed, 20 Jul 2011 10:54:35 -0400 +Subject: [PATCH 1/4] daemon: ignore extraneous SetAutomaticLogin(false) = calls + for a user + +Right now, if a user is not configured for automatic login, and +SetAutomaticLogin(false) is called for that user then we disable +automatic login system wide even if someone else is configured +for automatic login. + +This commit changes the semantics of the call such that +SetAutomaticLogin(false) is a no op for users where automatic login +isn't already enabled. + +Spotted by Vincent Untz + +https://bugs.freedesktop.org/show_bug.cgi?id=3D39402 +--- + src/daemon.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/src/daemon.c b/src/daemon.c +index ec319a9..f8753d6 100644 +--- a/src/daemon.c ++++ b/src/daemon.c +@@ -1294,6 +1294,10 @@ daemon_local_set_automatic_login (Daemon *daem= on, + return TRUE; + } +=20 ++ if (daemon->priv->autologin !=3D user && !enabled) { ++ return TRUE; ++ } ++ + if (!save_autologin (daemon, user_local_get_user_name (user), e= nabled, error)) { + return FALSE; + } +--=20 +1.7.6 + diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.13-etc-pa= sswd-timeout.patch b/sys-apps/accountsservice/files/accountsservice-0.6.1= 3-etc-passwd-timeout.patch new file mode 100644 index 0000000..36e3f5a --- /dev/null +++ b/sys-apps/accountsservice/files/accountsservice-0.6.13-etc-passwd-ti= meout.patch @@ -0,0 +1,52 @@ +From 4e3fad33442dfd908561960921aad335fad6b5a8 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Thu, 21 Jul 2011 16:09:13 -0400 +Subject: [PATCH 4/4] daemon: call reload_users after timeout on passwd/s= hadow + changes + +Often the two files are changed in concert, so it makes sense to +wait a bit before doing a heavy reload operation. + +Suggested by Vincent. + +https://bugs.freedesktop.org/show_bug.cgi?id=3D39413 +--- + src/daemon.c | 15 ++++++++++++++- + 1 files changed, 14 insertions(+), 1 deletions(-) + +diff --git a/src/daemon.c b/src/daemon.c +index 882fb2f..79915a7 100644 +--- a/src/daemon.c ++++ b/src/daemon.c +@@ -492,6 +492,19 @@ reload_autologin_timeout (Daemon *daemon) + } +=20 + static void ++queue_reload_users_soon (Daemon *daemon) ++{ ++ if (daemon->priv->reload_id > 0) { ++ return; ++ } ++ ++ /* we wait half a second or so in case /etc/passwd and ++ * /etc/shadow are changed at the same time, or repeatedly. ++ */ ++ daemon->priv->reload_id =3D g_timeout_add (500, (GSourceFunc)re= load_users_timeout, daemon); ++} ++ ++static void + queue_reload_users (Daemon *daemon) + { + if (daemon->priv->reload_id > 0) { +@@ -523,7 +536,7 @@ on_passwd_monitor_changed (GFileMonitor *monito= r, + return; + } +=20 +- reload_users (daemon); ++ queue_reload_users_soon (daemon); + } +=20 + static void +--=20 +1.7.6 + diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.13-monito= r-etc-gdm-custom.conf.patch b/sys-apps/accountsservice/files/accountsserv= ice-0.6.13-monitor-etc-gdm-custom.conf.patch new file mode 100644 index 0000000..0389c7e --- /dev/null +++ b/sys-apps/accountsservice/files/accountsservice-0.6.13-monitor-etc-g= dm-custom.conf.patch @@ -0,0 +1,115 @@ +From 07ea415a5ea0fc5039c947f967c5683ef0e31201 Mon Sep 17 00:00:00 2001 +From: Vincent Untz +Date: Thu, 21 Jul 2011 08:20:08 +0200 +Subject: [PATCH 3/4] daemon: Monitor /etc/gdm/custom.conf for changes in + autologin config + +We also emit relevant signals when loading the file. + +https://bugs.freedesktop.org/show_bug.cgi?id=3D39413 +--- + src/daemon.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- + 1 files changed, 47 insertions(+), 4 deletions(-) + +diff --git a/src/daemon.c b/src/daemon.c +index eb9aa61..882fb2f 100644 +--- a/src/daemon.c ++++ b/src/daemon.c +@@ -107,6 +107,7 @@ struct DaemonPrivate { +=20 + GFileMonitor *passwd_monitor; + GFileMonitor *shadow_monitor; ++ GFileMonitor *gdm_monitor; +=20 + guint reload_id; + guint autologin_id; +@@ -451,7 +452,7 @@ reload_autologin_timeout (Daemon *daemon) + gboolean enabled; + gchar *name =3D NULL; + GError *error =3D NULL; +- User *user; ++ User *user =3D NULL; +=20 + daemon->priv->autologin_id =3D 0; +=20 +@@ -463,11 +464,23 @@ reload_autologin_timeout (Daemon *daemon) + return FALSE; + } +=20 ++ if (enabled && name) ++ user =3D daemon_local_find_user_by_name (daemon, name); ++ ++ if (daemon->priv->autologin !=3D NULL && daemon->priv->autologi= n !=3D user) { ++ g_object_set (daemon->priv->autologin, "automatic-login= ", FALSE, NULL); ++ g_signal_emit_by_name (daemon->priv->autologin, "change= d", 0); ++ g_object_unref (daemon->priv->autologin); ++ daemon->priv->autologin =3D NULL; ++ } ++ + if (enabled) { + g_debug ("automatic login is enabled for '%s'\n", name)= ; +- user =3D daemon_local_find_user_by_name (daemon, name); +- g_object_set (user, "automatic-login", TRUE, NULL); +- daemon->priv->autologin =3D g_object_ref (user); ++ if (daemon->priv->autologin !=3D user) { ++ g_object_set (user, "automatic-login", TRUE, NU= LL); ++ daemon->priv->autologin =3D g_object_ref (user)= ; ++ g_signal_emit_by_name (daemon->priv->autologin,= "changed", 0); ++ } + } + else { + g_debug ("automatic login is disabled\n"); +@@ -513,6 +526,21 @@ on_passwd_monitor_changed (GFileMonitor *monit= or, + reload_users (daemon); + } +=20 ++static void ++on_gdm_monitor_changed (GFileMonitor *monitor, ++ GFile *file, ++ GFile *other_file, ++ GFileMonitorEvent event_type, ++ Daemon *daemon) ++{ ++ if (event_type !=3D G_FILE_MONITOR_EVENT_CHANGED && ++ event_type !=3D G_FILE_MONITOR_EVENT_CREATED) { ++ return; ++ } ++ ++ queue_reload_autologin (daemon); ++} ++ + static uid_t + get_minimal_uid (void) + { +@@ -603,6 +631,12 @@ daemon_init (Daemon *daemon) + NULL, + &error); + g_object_unref (file); ++ file =3D g_file_new_for_path (PATH_GDM_CUSTOM); ++ daemon->priv->gdm_monitor =3D g_file_monitor_file (file, ++ G_FILE_MONITOR= _NONE, ++ NULL, ++ &error); ++ g_object_unref (file); +=20 + if (daemon->priv->passwd_monitor !=3D NULL) { + g_signal_connect (daemon->priv->passwd_monitor, +@@ -622,6 +656,15 @@ daemon_init (Daemon *daemon) + g_warning ("Unable to monitor %s: %s", PATH_SHADOW, err= or->message); + g_error_free (error); + } ++ if (daemon->priv->gdm_monitor !=3D NULL) { ++ g_signal_connect (daemon->priv->gdm_monitor, ++ "changed", ++ G_CALLBACK (on_gdm_monitor_changed), ++ daemon); ++ } else { ++ g_warning ("Unable to monitor %s: %s", PATH_GDM_CUSTOM,= error->message); ++ g_error_free (error); ++ } +=20 + queue_reload_users (daemon); + queue_reload_autologin (daemon); +--=20 +1.7.6 +