[arch-commits] Commit in mate-session-manager/repos/community-x86_64 (3 files)
Balló György
bgyorgy at archlinux.org
Fri Oct 4 21:27:17 UTC 2019
Date: Friday, October 4, 2019 @ 21:27:17
Author: bgyorgy
Revision: 512861
archrelease: copy trunk to community-x86_64
Added:
mate-session-manager/repos/community-x86_64/PKGBUILD
(from rev 512860, mate-session-manager/trunk/PKGBUILD)
mate-session-manager/repos/community-x86_64/gnome-keyring-3.34.patch
(from rev 512860, mate-session-manager/trunk/gnome-keyring-3.34.patch)
Deleted:
mate-session-manager/repos/community-x86_64/PKGBUILD
--------------------------+
PKGBUILD | 80 +++++++++++++----------
gnome-keyring-3.34.patch | 152 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 197 insertions(+), 35 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2019-10-04 21:27:13 UTC (rev 512860)
+++ PKGBUILD 2019-10-04 21:27:17 UTC (rev 512861)
@@ -1,35 +0,0 @@
-# Maintainer: Brad Fanella <cesura at archlinux.org>
-# Contributor: Martin Wimpress <code at flexion.org>
-
-pkgname=mate-session-manager
-pkgver=1.22.1
-pkgrel=1
-pkgdesc="The MATE Session Handler"
-url="http://mate-desktop.org"
-arch=('x86_64')
-license=('GPL')
-depends=('dbus-glib' 'gtk3' 'libsm' 'mate-desktop')
-makedepends=('intltool' 'xtrans' 'systemd' 'python')
-optdepends=('gnome-keyring: keyring support'
- 'xdg-user-dirs-gtk: manage user directories')
-groups=('mate')
-conflicts=('mate-session-manager-gtk3')
-replaces=('mate-session-manager-gtk3')
-source=("http://pub.mate-desktop.org/releases/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz")
-sha256sums=('2f1a68447a2ec30791e07865fd3747e367c3fffe8373d07ea948b0d759bca8c7')
-
-build() {
- cd "${pkgname}-${pkgver}"
- ./configure \
- --prefix=/usr \
- --libexecdir=/usr/lib/${pkgname} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --disable-upower
- make
-}
-
-package() {
- cd "${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
-}
Copied: mate-session-manager/repos/community-x86_64/PKGBUILD (from rev 512860, mate-session-manager/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2019-10-04 21:27:17 UTC (rev 512861)
@@ -0,0 +1,45 @@
+# Maintainer: Brad Fanella <cesura at archlinux.org>
+# Contributor: Martin Wimpress <code at flexion.org>
+
+pkgname=mate-session-manager
+pkgver=1.22.2
+pkgrel=1
+pkgdesc="The MATE Session Handler"
+url="https://mate-desktop.org"
+arch=('x86_64')
+license=('GPL')
+depends=('dbus-glib' 'gtk3' 'libsm' 'mate-desktop')
+makedepends=('intltool' 'xtrans' 'systemd' 'python')
+optdepends=('gnome-keyring: keyring support'
+ 'xdg-user-dirs-gtk: manage user directories')
+groups=('mate')
+conflicts=('mate-session-manager-gtk3')
+replaces=('mate-session-manager-gtk3')
+source=("https://pub.mate-desktop.org/releases/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
+ "gnome-keyring-3.34.patch")
+sha256sums=('a814b07cbd42920ab86fe77c40f3e1ce7118cbc5da3251b1eb2ab9aa974c0aec'
+ '1fc88b5c804dc8fc7fd29ef3733d19e428322fdd34ae06c372ffffbbf26d22cf')
+
+prepare() {
+ cd "${pkgname}-${pkgver}"
+
+ # Fix timeout with gnome-keyring 3.34
+ # https://github.com/mate-desktop/mate-session-manager/pull/223
+ patch -Np1 -i ../gnome-keyring-3.34.patch
+}
+
+build() {
+ cd "${pkgname}-${pkgver}"
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/${pkgname} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-upower
+ make
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
Copied: mate-session-manager/repos/community-x86_64/gnome-keyring-3.34.patch (from rev 512860, mate-session-manager/trunk/gnome-keyring-3.34.patch)
===================================================================
--- gnome-keyring-3.34.patch (rev 0)
+++ gnome-keyring-3.34.patch 2019-10-04 21:27:17 UTC (rev 512861)
@@ -0,0 +1,152 @@
+From 7bf6d1ca718c337659fb4ca581fcc47a80191c75 Mon Sep 17 00:00:00 2001
+From: Jindrich Makovicka <makovick at gmail.com>
+Date: Fri, 4 Oct 2019 21:08:28 +0200
+Subject: [PATCH] Fix timeout with gnome-keyring 3.34
+
+Launch gnome-keyring-daemon asynchronously, and remove the
+GNOME_KEYRING_PID reading code.
+
+GNOME_KEYRING_PID exposure was removed from gnome-keyring in 2014.
+---
+ mate-session/msm-gnome.c | 94 +++++++++++-----------------------------
+ 1 file changed, 25 insertions(+), 69 deletions(-)
+
+diff --git a/mate-session/msm-gnome.c b/mate-session/msm-gnome.c
+index 5e9cf02..f7f1154 100644
+--- a/mate-session/msm-gnome.c
++++ b/mate-session/msm-gnome.c
+@@ -49,7 +49,6 @@
+
+ static gboolean gnome_compat_started = FALSE;
+ static int keyring_lifetime_pipe[2];
+-static pid_t gnome_keyring_daemon_pid = 0;
+ static Window gnome_smproxy_window = None;
+
+ static void
+@@ -71,21 +70,26 @@ child_setup (gpointer user_data)
+ g_free (fd_str);
+ }
+
++static void
++gnome_keyring_daemon_finished (GPid pid,
++ gint status,
++ gpointer user_data)
++{
++ if (WEXITSTATUS (status) != 0)
++ {
++ /* daemon failed for some reason */
++ g_printerr ("gnome-keyring-daemon failed to start correctly, "
++ "exit code: %d\n", WEXITSTATUS (status));
++ }
++}
+
+ static void
+ gnome_keyring_daemon_startup (void)
+ {
+ GError *error = NULL;
+- gchar *sout;
+- gchar **lines;
+- gsize lineno;
+- gint status;
+- glong pid;
+- gchar *end;
++ gint sout;
++ GPid pid;
+ gchar *argv[3];
+- gchar *p;
+- gchar *name;
+- const gchar *value;
+
+ /* Pipe to slave keyring lifetime to */
+ if (pipe (keyring_lifetime_pipe))
+@@ -98,69 +102,24 @@ gnome_keyring_daemon_startup (void)
+ argv[0] = GNOME_KEYRING_DAEMON;
+ argv[1] = "--start";
+ argv[2] = NULL;
+- g_spawn_sync (NULL, argv, NULL,
+- G_SPAWN_SEARCH_PATH | G_SPAWN_LEAVE_DESCRIPTORS_OPEN,
+- child_setup, NULL,
+- &sout, NULL, &status, &error);
+-
+- close (keyring_lifetime_pipe[0]);
+- /* We leave keyring_lifetime_pipe[1] open for the lifetime of the session,
+- in order to slave the keyring daemon lifecycle to the session. */
++ g_spawn_async_with_pipes (NULL, argv, NULL,
++ G_SPAWN_SEARCH_PATH | G_SPAWN_LEAVE_DESCRIPTORS_OPEN,
++ child_setup, NULL, &pid,
++ NULL, &sout, NULL, &error);
+
+ if (error != NULL)
+ {
+- g_printerr ("Failed to run gnome-keyring-daemon: %s\n",
++ g_printerr ("Failed to spawn gnome-keyring-daemon: %s\n",
+ error->message);
+ g_error_free (error);
++ return;
+ }
+- else
+- {
+- if (WIFEXITED (status) && WEXITSTATUS (status) == 0 && sout != NULL)
+- {
+- lines = g_strsplit (sout, "\n", 0);
+-
+- for (lineno = 0; lines[lineno] != NULL; lineno++)
+- {
+- p = strchr (lines[lineno], '=');
+- if (p == NULL)
+- continue;
+-
+- name = g_strndup (lines[lineno], p - lines[lineno]);
+- value = p + 1;
+-
+- g_setenv (name, value, TRUE);
+-
+- if (g_strcmp0 (name, "GNOME_KEYRING_PID") == 0)
+- {
+- pid = strtol (value, &end, 10);
+- if (end != value)
+- gnome_keyring_daemon_pid = pid;
+- }
+-
+- g_free (name);
+- }
+-
+- g_strfreev (lines);
+- }
+- else
+- {
+- /* daemon failed for some reason */
+- g_printerr ("gnome-keyring-daemon failed to start correctly, "
+- "exit code: %d\n", WEXITSTATUS (status));
+- }
+-
+- g_free (sout);
+- }
+-}
+
+-static void
+-gnome_keyring_daemon_shutdown (void)
+-{
+- if (gnome_keyring_daemon_pid != 0)
+- {
+- kill (gnome_keyring_daemon_pid, SIGTERM);
+- gnome_keyring_daemon_pid = 0;
+- }
++ close (keyring_lifetime_pipe[0]);
++ /* We leave keyring_lifetime_pipe[1] open for the lifetime of the session,
++ in order to slave the keyring daemon lifecycle to the session. */
++
++ g_child_watch_add (pid, gnome_keyring_daemon_finished, NULL);
+ }
+
+
+@@ -263,9 +222,6 @@ msm_gnome_stop (void)
+
+ g_debug ("MsmGnome: stopping");
+
+- /* shutdown the keyring daemon */
+- gnome_keyring_daemon_shutdown ();
+-
+ msm_compat_gnome_smproxy_shutdown ();
+
+ gnome_compat_started = FALSE;
More information about the arch-commits
mailing list