Date: Friday, October 11, 2019 @ 20:01:41 Author: bgyorgy Revision: 515164
archrelease: copy trunk to community-x86_64 Added: mate-session-manager/repos/community-x86_64/PKGBUILD (from rev 515163, mate-session-manager/trunk/PKGBUILD) mate-session-manager/repos/community-x86_64/gnome-keyring-3.34.patch (from rev 515163, mate-session-manager/trunk/gnome-keyring-3.34.patch) Deleted: mate-session-manager/repos/community-x86_64/PKGBUILD mate-session-manager/repos/community-x86_64/gnome-keyring-3.34.patch --------------------------+ PKGBUILD | 90 +++++------ gnome-keyring-3.34.patch | 364 ++++++++++++++++++++++++++------------------- 2 files changed, 257 insertions(+), 197 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2019-10-11 20:01:38 UTC (rev 515163) +++ PKGBUILD 2019-10-11 20:01:41 UTC (rev 515164) @@ -1,45 +0,0 @@ -# Maintainer: Brad Fanella <ces...@archlinux.org> -# Contributor: Martin Wimpress <c...@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/PKGBUILD (from rev 515163, mate-session-manager/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2019-10-11 20:01:41 UTC (rev 515164) @@ -0,0 +1,45 @@ +# Maintainer: Brad Fanella <ces...@archlinux.org> +# Contributor: Martin Wimpress <c...@flexion.org> + +pkgname=mate-session-manager +pkgver=1.22.2 +pkgrel=2 +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' + 'f3ca47a508523e1ed346d224cf236870190204943b4a0cdab967d37fe04bde8e') + +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 +} Deleted: gnome-keyring-3.34.patch =================================================================== --- gnome-keyring-3.34.patch 2019-10-11 20:01:38 UTC (rev 515163) +++ gnome-keyring-3.34.patch 2019-10-11 20:01:41 UTC (rev 515164) @@ -1,152 +0,0 @@ -From 7bf6d1ca718c337659fb4ca581fcc47a80191c75 Mon Sep 17 00:00:00 2001 -From: Jindrich Makovicka <makov...@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; Copied: mate-session-manager/repos/community-x86_64/gnome-keyring-3.34.patch (from rev 515163, mate-session-manager/trunk/gnome-keyring-3.34.patch) =================================================================== --- gnome-keyring-3.34.patch (rev 0) +++ gnome-keyring-3.34.patch 2019-10-11 20:01:41 UTC (rev 515164) @@ -0,0 +1,212 @@ +From 8bcc7153e0ef5aeb5fb276350c7015579f6e432a Mon Sep 17 00:00:00 2001 +From: Jindrich Makovicka <makov...@gmail.com> +Date: Sun, 6 Oct 2019 10:35:46 +0200 +Subject: [PATCH 1/2] Remove GNOME_KEYRING_LIFETIME_FD + +Keyring lifetime fd was removed from gnome-keyring in 2009 + +See "[daemon] Use new control protocol for daemon." +--- + mate-session/msm-gnome.c | 35 ++--------------------------------- + 1 file changed, 2 insertions(+), 33 deletions(-) + +diff --git a/mate-session/msm-gnome.c b/mate-session/msm-gnome.c +index 5e9cf02..97e08b8 100644 +--- a/mate-session/msm-gnome.c ++++ b/mate-session/msm-gnome.c +@@ -48,29 +48,9 @@ + + + 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 +-child_setup (gpointer user_data) +-{ +- gint open_max; +- gint fd; +- char *fd_str; +- +- open_max = sysconf (_SC_OPEN_MAX); +- for (fd = 3; fd < open_max; fd++) +- { +- if (fd != keyring_lifetime_pipe[0]) +- fcntl (fd, F_SETFD, FD_CLOEXEC); +- } +- +- fd_str = g_strdup_printf ("%d", keyring_lifetime_pipe[0]); +- g_setenv ("GNOME_KEYRING_LIFETIME_FD", fd_str, TRUE); +- g_free (fd_str); +-} +- + + static void + gnome_keyring_daemon_startup (void) +@@ -87,26 +67,15 @@ gnome_keyring_daemon_startup (void) + gchar *name; + const gchar *value; + +- /* Pipe to slave keyring lifetime to */ +- if (pipe (keyring_lifetime_pipe)) +- { +- g_warning ("Failed to set up pipe for gnome-keyring: %s", strerror (errno)); +- return; +- } +- + error = NULL; + 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, ++ G_SPAWN_SEARCH_PATH, ++ NULL, 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. */ +- + if (error != NULL) + { + g_printerr ("Failed to run gnome-keyring-daemon: %s\n", + +From 023f6f7b69b2a9c0399d7737d7729d464f9671e5 Mon Sep 17 00:00:00 2001 +From: Jindrich Makovicka <makov...@gmail.com> +Date: Sun, 6 Oct 2019 10:38:05 +0200 +Subject: [PATCH 2/2] 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 | 85 ++++++++++------------------------------ + 1 file changed, 20 insertions(+), 65 deletions(-) + +diff --git a/mate-session/msm-gnome.c b/mate-session/msm-gnome.c +index 97e08b8..b43f1ad 100644 +--- a/mate-session/msm-gnome.c ++++ b/mate-session/msm-gnome.c +@@ -48,88 +48,46 @@ + + + static gboolean gnome_compat_started = FALSE; +-static pid_t gnome_keyring_daemon_pid = 0; + static Window gnome_smproxy_window = None; + ++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; ++ GPid pid; + gchar *argv[3]; +- gchar *p; +- gchar *name; +- const gchar *value; + + error = NULL; + argv[0] = GNOME_KEYRING_DAEMON; + argv[1] = "--start"; + argv[2] = NULL; +- g_spawn_sync (NULL, argv, NULL, +- G_SPAWN_SEARCH_PATH, +- NULL, NULL, +- &sout, NULL, &status, &error); ++ g_spawn_async (NULL, argv, NULL, ++ G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, ++ NULL, NULL, &pid, ++ &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; +- } ++ g_child_watch_add (pid, gnome_keyring_daemon_finished, NULL); + } + + +@@ -232,9 +190,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;