Date: Friday, September 13, 2019 @ 21:25:11 Author: heftig Revision: 510398
archrelease: copy trunk to community-staging-x86_64 Added: gnome-screensaver/repos/community-staging-x86_64/ gnome-screensaver/repos/community-staging-x86_64/PKGBUILD (from rev 510397, gnome-screensaver/trunk/PKGBUILD) gnome-screensaver/repos/community-staging-x86_64/fix-autoconf.patch (from rev 510397, gnome-screensaver/trunk/fix-autoconf.patch) gnome-screensaver/repos/community-staging-x86_64/fix-systemd-support.patch (from rev 510397, gnome-screensaver/trunk/fix-systemd-support.patch) gnome-screensaver/repos/community-staging-x86_64/gnome-screensaver.pam (from rev 510397, gnome-screensaver/trunk/gnome-screensaver.pam) gnome-screensaver/repos/community-staging-x86_64/lightdm_switch_user.patch (from rev 510397, gnome-screensaver/trunk/lightdm_switch_user.patch) gnome-screensaver/repos/community-staging-x86_64/lock_screen_on_suspend.patch (from rev 510397, gnome-screensaver/trunk/lock_screen_on_suspend.patch) gnome-screensaver/repos/community-staging-x86_64/move-desktop-file.patch (from rev 510397, gnome-screensaver/trunk/move-desktop-file.patch) gnome-screensaver/repos/community-staging-x86_64/recenter.patch (from rev 510397, gnome-screensaver/trunk/recenter.patch) gnome-screensaver/repos/community-staging-x86_64/use-screensaver-background.patch (from rev 510397, gnome-screensaver/trunk/use-screensaver-background.patch) ----------------------------------+ PKGBUILD | 77 ++++++++++++++++++++++++++++ fix-autoconf.patch | 12 ++++ fix-systemd-support.patch | 91 +++++++++++++++++++++++++++++++++ gnome-screensaver.pam | 3 + lightdm_switch_user.patch | 100 +++++++++++++++++++++++++++++++++++++ lock_screen_on_suspend.patch | 51 ++++++++++++++++++ move-desktop-file.patch | 34 ++++++++++++ recenter.patch | 16 +++++ use-screensaver-background.patch | 53 +++++++++++++++++++ 9 files changed, 437 insertions(+) Copied: gnome-screensaver/repos/community-staging-x86_64/PKGBUILD (from rev 510397, gnome-screensaver/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2019-09-13 21:25:11 UTC (rev 510398) @@ -0,0 +1,77 @@ +# Maintainer: Balló György <ballogyor+arch at gmail dot com> +# Contributor: Jan Alexander Steffens (heftig) <jan.steff...@gmail.com> +# Contributor: Jan de Groot <j...@archlinux.org> + +pkgname=gnome-screensaver +pkgver=3.6.1 +pkgrel=16 +pkgdesc="Legacy GNOME screensaver" +arch=('x86_64') +license=('GPL') +url="https://wiki.gnome.org/Projects/GnomeScreensaver" +backup=(etc/pam.d/gnome-screensaver) +depends=('dbus-glib' 'libgnomekbd' 'gnome-desktop') +makedepends=('intltool' 'gnome-common') +optdepends=('gnome-backgrounds: default background') +source=(https://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz + gnome-screensaver.pam + move-desktop-file.patch + fix-autoconf.patch + fix-systemd-support.patch + lock_screen_on_suspend.patch + lightdm_switch_user.patch + use-screensaver-background.patch + recenter.patch) +sha256sums=('f39b78d4f7fed748c7f0a31d694112fb907c6d3c4e63db22eb858df07e962cd0' + 'b6ea9e2eb586d94bcabb617a8f1c2958111df87afdbb51f645882bccdc15cbda' + '4bb96f62aa069c83b629204a79a3f63b146bcaf773569aee8b5dd23fbcd88974' + 'c4da9c18b543ecbc781c1f103321b324a855bdd0979fd36b437f6033736ad4bb' + '8aa387578c1756e573f6558a66be25fc96d7e8567fb7bee580159479841f5f45' + '516c479558576c6c5a2509abfcbf4fdafb5953d252e7a4ab972f9db6137daca8' + '5d40bd6e1843150912dc52932eaa94c0f6d57931fd45a3769ef40e2335fe3c6f' + '7161ff962801d9e34ea564c372de4b5f93b30180b83c13aadbc9a8a1cd73ff65' + '6c428b9296376e4b5e2aaf503a754a1ba58333aab50c82279b7c5615d8dd9e69') + +prepare() { + cd $pkgname-$pkgver + + # Upstream patch that moves gnome-screensaver desktop file out of autostart + patch -Np1 -i ../move-desktop-file.patch + + # Fix build + patch -Np1 -i ../fix-autoconf.patch + + # Fix systemd support + patch -Np1 -i ../fix-systemd-support.patch + + # Lock screen on suspend with systemd + patch -Np1 -i ../lock_screen_on_suspend.patch + + # Add support for user switch with LightDM + patch -Np1 -i ../lightdm_switch_user.patch + + # Honour background setting of the lock screen + patch -Np1 -i ../use-screensaver-background.patch + + # Restore the original position after shake + patch -Np1 -i ../recenter.patch + + # Fix build with systemd support + sed -i 's/libsystemd-login libsystemd-daemon/libsystemd/' configure.ac + + autoreconf -fi +} + +build() { + cd $pkgname-$pkgver + CFLAGS+=" -Wno-error=return-type" + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/$pkgname \ + --with-mit-ext --without-console-kit --with-systemd + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install + install -Dm644 ../gnome-screensaver.pam "$pkgdir/etc/pam.d/gnome-screensaver" +} Copied: gnome-screensaver/repos/community-staging-x86_64/fix-autoconf.patch (from rev 510397, gnome-screensaver/trunk/fix-autoconf.patch) =================================================================== --- community-staging-x86_64/fix-autoconf.patch (rev 0) +++ community-staging-x86_64/fix-autoconf.patch 2019-09-13 21:25:11 UTC (rev 510398) @@ -0,0 +1,12 @@ +diff -Naur gnome-screensaver-3.6.1.orig/configure.ac gnome-screensaver-3.6.1/configure.ac +--- gnome-screensaver-3.6.1.orig/configure.ac 2012-10-16 04:28:59.000000000 +0200 ++++ gnome-screensaver-3.6.1/configure.ac 2013-04-10 14:24:44.844833193 +0200 +@@ -10,7 +10,7 @@ + AM_INIT_AUTOMAKE([1.10 no-dist-gzip dist-xz tar-ustar]) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + AM_MAINTAINER_MODE([enable]) + Copied: gnome-screensaver/repos/community-staging-x86_64/fix-systemd-support.patch (from rev 510397, gnome-screensaver/trunk/fix-systemd-support.patch) =================================================================== --- community-staging-x86_64/fix-systemd-support.patch (rev 0) +++ community-staging-x86_64/fix-systemd-support.patch 2019-09-13 21:25:11 UTC (rev 510398) @@ -0,0 +1,91 @@ +From cac2c0ad8f4f40b6b175b9fbcde06935859f1bbc Mon Sep 17 00:00:00 2001 +From: Peter de Ridder <pe...@xfce.org> +Date: Wed, 20 Mar 2013 20:44:51 +0100 +Subject: [PATCH] Use the session path instead of the session id. + +--- + src/gs-listener-dbus.c | 47 +++++++++++++++++++++++++++-------------------- + 1 file changed, 27 insertions(+), 20 deletions(-) + +diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c +index 703d9e1..11fb95e 100644 +--- a/src/gs-listener-dbus.c ++++ b/src/gs-listener-dbus.c +@@ -25,6 +25,7 @@ + #include <stdio.h> + #include <time.h> + #include <string.h> ++#include <unistd.h> + + #include <glib/gi18n.h> + +@@ -116,19 +117,8 @@ enum { + if (listener->priv->session_id == NULL) + return FALSE; + +-#ifdef WITH_SYSTEMD +- /* The bus object path is simply the actual session ID +- * prefixed to make it a bus path */ +- if (listener->priv->have_systemd) +- return g_str_has_prefix (ssid, SYSTEMD_LOGIND_SESSION_PATH "/") +- && strcmp (ssid + sizeof (SYSTEMD_LOGIND_SESSION_PATH), +- listener->priv->session_id) == 0; +-#endif +- +-#ifdef WITH_CONSOLE_KIT + if (strcmp (ssid, listener->priv->session_id) == 0) + return TRUE; +-#endif + + return FALSE; + } +@@ -416,20 +406,37 @@ enum { + + #ifdef WITH_SYSTEMD + if (listener->priv->have_systemd) { +- char *t; +- int r; ++ dbus_uint32_t pid = getpid(); + +- r = sd_pid_get_session (0, &t); +- if (r < 0) { +- gs_debug ("Couldn't determine our own session id: %s", strerror (-r)); ++ message = dbus_message_new_method_call (SYSTEMD_LOGIND_SERVICE, SYSTEMD_LOGIND_PATH, SYSTEMD_LOGIND_INTERFACE, "GetSessionByPID"); ++ if (message == NULL) { ++ gs_debug ("Couldn't allocate the dbus message"); + return NULL; + } + +- /* t is allocated with malloc(), we need it with g_malloc() */ +- ssid = g_strdup(t); +- free (t); ++ if (dbus_message_append_args (message, DBUS_TYPE_UINT32, &pid, DBUS_TYPE_INVALID) == FALSE) { ++ gs_debug ("Couldn't add args to the dbus message"); ++ return NULL; ++ } ++ ++ /* FIXME: use async? */ ++ reply = dbus_connection_send_with_reply_and_block (listener->priv->system_connection, ++ message, ++ -1, &error); ++ dbus_message_unref (message); ++ ++ if (dbus_error_is_set (&error)) { ++ gs_debug ("%s raised:\n %s\n\n", error.name, error.message); ++ dbus_error_free (&error); ++ return NULL; ++ } ++ ++ dbus_message_iter_init (reply, &reply_iter); ++ dbus_message_iter_get_basic (&reply_iter, &ssid); ++ ++ dbus_message_unref (reply); + +- return ssid; ++ return g_strdup (ssid); + } + #endif + +-- +1.8.4 + Copied: gnome-screensaver/repos/community-staging-x86_64/gnome-screensaver.pam (from rev 510397, gnome-screensaver/trunk/gnome-screensaver.pam) =================================================================== --- community-staging-x86_64/gnome-screensaver.pam (rev 0) +++ community-staging-x86_64/gnome-screensaver.pam 2019-09-13 21:25:11 UTC (rev 510398) @@ -0,0 +1,3 @@ +#%PAM-1.0 +auth substack system-login +-auth optional pam_gnome_keyring.so Copied: gnome-screensaver/repos/community-staging-x86_64/lightdm_switch_user.patch (from rev 510397, gnome-screensaver/trunk/lightdm_switch_user.patch) =================================================================== --- community-staging-x86_64/lightdm_switch_user.patch (rev 0) +++ community-staging-x86_64/lightdm_switch_user.patch 2019-09-13 21:25:11 UTC (rev 510398) @@ -0,0 +1,100 @@ +Description: Under lightdm, use dbus to switch to greeter instead of + calling gdmflexiserver +Author: Marc Deslauriers <marc.deslauri...@canonical.com> +Forwarded: No, upstream uses GDM +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-screensaver/+bug/950583 + +Index: gnome-screensaver-3.4.2/src/gs-lock-plug.c +=================================================================== +--- gnome-screensaver-3.4.2.orig/src/gs-lock-plug.c 2012-06-28 10:50:53.955326278 +1200 ++++ gnome-screensaver-3.4.2/src/gs-lock-plug.c 2012-06-28 10:50:58.055326137 +1200 +@@ -148,28 +148,60 @@ + static void + do_user_switch (GSLockPlug *plug) + { +- GAppInfo *app; +- GAppLaunchContext *context; +- GError *error; +- char *command; +- +- command = g_strdup_printf ("%s %s", +- GDM_FLEXISERVER_COMMAND, +- GDM_FLEXISERVER_ARGS); ++ GError *error = NULL; + +- error = NULL; +- context = (GAppLaunchContext*)gdk_app_launch_context_new (); +- app = g_app_info_create_from_commandline (command, "gdmflexiserver", 0, &error); +- if (app) +- g_app_info_launch (app, NULL, context, &error); +- +- g_free (command); +- g_object_unref (context); +- g_object_unref (app); ++ /* If running under LightDM switch to the greeter using dbus */ ++ if (g_getenv("XDG_SEAT_PATH")) { ++ GDBusConnection *bus; ++ GVariant *result = NULL; ++ ++ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); ++ if (error) ++ g_warning ("Failed to get system bus: %s", error->message); ++ g_clear_error (&error); ++ ++ if (bus) ++ result = g_dbus_connection_call_sync (bus, ++ "org.freedesktop.DisplayManager", ++ g_getenv ("XDG_SEAT_PATH"), ++ "org.freedesktop.DisplayManager.Seat", ++ "SwitchToGreeter", ++ g_variant_new ("()"), ++ G_VARIANT_TYPE ("()"), ++ G_DBUS_CALL_FLAGS_NONE, ++ -1, ++ NULL, ++ &error); ++ if (error) ++ g_warning ("Failed to switch to greeter: %s", error->message); ++ g_clear_error (&error); + +- if (error != NULL) { +- gs_debug ("Unable to start GDM greeter: %s", error->message); +- g_error_free (error); ++ if (result) ++ g_variant_unref (result); ++ } else { ++ ++ GAppInfo *app; ++ GAppLaunchContext *context; ++ char *command; ++ ++ command = g_strdup_printf ("%s %s", ++ GDM_FLEXISERVER_COMMAND, ++ GDM_FLEXISERVER_ARGS); ++ ++ error = NULL; ++ context = (GAppLaunchContext*)gdk_app_launch_context_new (); ++ app = g_app_info_create_from_commandline (command, "gdmflexiserver", 0, &error); ++ if (app) ++ g_app_info_launch (app, NULL, context, &error); ++ ++ g_free (command); ++ g_object_unref (context); ++ g_object_unref (app); ++ ++ if (error != NULL) { ++ gs_debug ("Unable to start GDM greeter: %s", error->message); ++ g_error_free (error); ++ } + } + } + +@@ -1026,7 +1058,7 @@ + if (switch_enabled) { + gboolean found; + found = is_program_in_path (GDM_FLEXISERVER_COMMAND); +- if (found) { ++ if (found || g_getenv("XDG_SEAT_PATH")) { + gtk_widget_show (plug->priv->auth_switch_button); + } else { + gs_debug ("Waring: GDM flexiserver command not found: %s", GDM_FLEXISERVER_COMMAND); Copied: gnome-screensaver/repos/community-staging-x86_64/lock_screen_on_suspend.patch (from rev 510397, gnome-screensaver/trunk/lock_screen_on_suspend.patch) =================================================================== --- community-staging-x86_64/lock_screen_on_suspend.patch (rev 0) +++ community-staging-x86_64/lock_screen_on_suspend.patch 2019-09-13 21:25:11 UTC (rev 510398) @@ -0,0 +1,51 @@ +From f8f9beb6a3bf81240d36bfec43e5db9b102ea91e Mon Sep 17 00:00:00 2001 +From: Martin Pitt <martinp...@gnome.org> +Date: Wed, 1 May 2013 10:55:49 -0700 +Subject: [PATCH] Lock screen on suspend + +Listen for logind's PrepareForSleep signal, and lock the screen (if configured +to do so). This mirrors what gnome-shell's screensaver does. +--- + src/gs-listener-dbus.c | 28 ++++++++++++++++++++++++++++ + src/gs-listener-dbus.h | 1 + + src/gs-monitor.c | 20 ++++++++++++++++++++ + 3 files changed, 49 insertions(+) + +diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c +index 7f718fa..49586fd 100644 +--- a/src/gs-listener-dbus.c ++++ b/src/gs-listener-dbus.c +@@ -871,6 +872,17 @@ listener_dbus_handle_system_message (DBusConnection *connection, + } + + return DBUS_HANDLER_RESULT_HANDLED; ++ } else if (dbus_message_is_signal (message, SYSTEMD_LOGIND_INTERFACE, "PrepareForSleep")) { ++ gboolean active; ++ if (dbus_message_get_args (message, NULL, ++ DBUS_TYPE_BOOLEAN, &active, ++ DBUS_TYPE_INVALID) && active) { ++ gs_debug ("systemd notified that system is about to sleep"); ++ g_signal_emit (listener, signals [LOCK], 0); ++ } else { ++ gs_debug ("cannot parse PrepareForSleep"); ++ } ++ return DBUS_HANDLER_RESULT_HANDLED; + } else if (dbus_message_is_signal (message, DBUS_INTERFACE_PROPERTIES, "PropertiesChanged")) { + + if (_listener_message_path_is_our_session (listener, message)) { +@@ -1370,6 +1392,12 @@ gs_listener_acquire (GSListener *listener, + ",interface='"DBUS_INTERFACE_PROPERTIES"'" + ",member='PropertiesChanged'", + NULL); ++ dbus_bus_add_match (listener->priv->system_connection, ++ "type='signal'" ++ ",sender='"SYSTEMD_LOGIND_SERVICE"'" ++ ",interface='"SYSTEMD_LOGIND_INTERFACE"'" ++ ",member='PrepareForSleep'", ++ NULL); + + return (res != -1); + } +-- +1.8.1.2 + Copied: gnome-screensaver/repos/community-staging-x86_64/move-desktop-file.patch (from rev 510397, gnome-screensaver/trunk/move-desktop-file.patch) =================================================================== --- community-staging-x86_64/move-desktop-file.patch (rev 0) +++ community-staging-x86_64/move-desktop-file.patch 2019-09-13 21:25:11 UTC (rev 510398) @@ -0,0 +1,34 @@ +From 1940dc6bc8ad5ee2c029714efb1276c05ca80bd4 Mon Sep 17 00:00:00 2001 +From: Tim Lunn <t...@feathertop.org> +Date: Thu, 18 Oct 2012 23:08:56 +0000 +Subject: move gnome-screensaver desktop file out of autostart + +https://bugzilla.gnome.org/show_bug.cgi?id=683060 +--- +diff --git a/src/Makefile.am b/src/Makefile.am +index 1dd5d46..97ffa07 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -47,7 +47,7 @@ noinst_PROGRAMS = \ + test-window \ + $(NULL) + +-desktopdir = $(sysconfdir)/xdg/autostart ++desktopdir = $(datadir)/applications + desktop_in_files = gnome-screensaver.desktop.in + desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) + @INTLTOOL_DESKTOP_RULE@ +diff --git a/src/gnome-screensaver.desktop.in.in b/src/gnome-screensaver.desktop.in.in +index fae80c4..82d6d6f 100644 +--- a/src/gnome-screensaver.desktop.in.in ++++ b/src/gnome-screensaver.desktop.in.in +@@ -5,7 +5,6 @@ _Comment=Launch screensaver and locker program + Icon=preferences-desktop-screensaver + Exec=gnome-screensaver + OnlyShowIn=GNOME; +-AutostartCondition=GNOME3 if-session gnome-fallback + NoDisplay=true + X-GNOME-Autostart-Phase=Application + X-GNOME-Autostart-Notify=true +-- +cgit v0.9.1 Copied: gnome-screensaver/repos/community-staging-x86_64/recenter.patch (from rev 510397, gnome-screensaver/trunk/recenter.patch) =================================================================== --- community-staging-x86_64/recenter.patch (rev 0) +++ community-staging-x86_64/recenter.patch 2019-09-13 21:25:11 UTC (rev 510398) @@ -0,0 +1,16 @@ +diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c +index d267f59..fbfbd8a 100644 +--- a/src/gs-window-x11.c ++++ b/src/gs-window-x11.c +@@ -1283,6 +1283,11 @@ shake_dialog (GSWindow *window) + g_usleep (10000); + } + ++ gtk_alignment_set_padding (GTK_ALIGNMENT (window->priv->lock_box), ++ 0, 0, ++ 0, ++ 0); ++ + window->priv->dialog_shake_in_progress = FALSE; + maybe_kill_dialog (window); + } Copied: gnome-screensaver/repos/community-staging-x86_64/use-screensaver-background.patch (from rev 510397, gnome-screensaver/trunk/use-screensaver-background.patch) =================================================================== --- community-staging-x86_64/use-screensaver-background.patch (rev 0) +++ community-staging-x86_64/use-screensaver-background.patch 2019-09-13 21:25:11 UTC (rev 510398) @@ -0,0 +1,53 @@ +diff -Naur gnome-screensaver-3.6.1.orig/src/gs-manager.c gnome-screensaver-3.6.1/src/gs-manager.c +--- gnome-screensaver-3.6.1.orig/src/gs-manager.c 2012-08-20 19:12:39.000000000 +0200 ++++ gnome-screensaver-3.6.1/src/gs-manager.c 2014-10-08 03:49:37.877178771 +0200 +@@ -555,40 +555,8 @@ + gint n_keys, + GSManager *manager) + { +-#if 0 +- /* FIXME: since we bind user settings instead of system ones, +- * watching for changes is no longer valid. +- */ + gnome_bg_load_from_preferences (manager->priv->bg, + manager->priv->settings); +-#endif +- +- return FALSE; +-} +- +-static GSettings * +-get_system_settings (void) +-{ +- GSettings *settings; +- gchar **keys; +- gchar **k; +- +- /* FIXME: we need to bind system settings instead of user but +- * that's currently impossible, not implemented yet. +- * Hence, reset to system default values. +- */ +- /* TODO: Ideally we would like to bind some other key, screensaver-specific. */ +- settings = g_settings_new ("org.gnome.desktop.background"); +- +- g_settings_delay (settings); +- +- keys = g_settings_list_keys (settings); +- for (k = keys; *k; k++) { +- g_settings_reset (settings, *k); +- } +- g_strfreev (keys); +- +- return settings; + } + + static void +@@ -599,7 +567,7 @@ + manager->priv->fade = gs_fade_new (); + manager->priv->grab = gs_grab_new (); + +- manager->priv->settings = get_system_settings (); ++ manager->priv->settings = g_settings_new ("org.gnome.desktop.screensaver"); + manager->priv->bg = gnome_bg_new (); + + g_signal_connect (manager->priv->bg,