diff options
Diffstat (limited to 'mate-extra')
3 files changed, 300 insertions, 8 deletions
diff --git a/mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-libsecret.patch b/mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-libsecret.patch new file mode 100644 index 000000000000..11a9f94b1008 --- /dev/null +++ b/mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-libsecret.patch @@ -0,0 +1,287 @@ +From b2d876a16de9214270f248d7c445542120ae7800 Mon Sep 17 00:00:00 2001 +From: NP-Hardass <np.hardass@gmail.com> +Date: Mon, 3 Aug 2020 01:46:00 -0400 +Subject: [PATCH 1/5] Add autotools support for libsecret + +--- + README | 1 + + configure.ac | 22 ++++++++++++++++++++++ + src/Makefile.am | 3 +++ + 3 files changed, 26 insertions(+) + +diff --git a/README b/README +index 118da697..32a8a5cc 100644 +--- a/README ++++ b/README +@@ -15,6 +15,7 @@ To build, MATE Power Manager requires + + - Glib (2.36.0 or later) + - GTK+3 (3.14.0 or later) ++ - libsecret (0.11 or later) + - GNOME Keyring (3.0.0 or later) + - DBus (0.70 or later) + - libnotify (0.7.0 or later) +diff --git a/configure.ac b/configure.ac +index 1db39321..b4758dca 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -68,6 +68,7 @@ GLIB_REQUIRED=2.50.0 + GIO_REQUIRED=2.50.0 + GDK_REQUIRED=3.22.0 + GTK_REQUIRED=3.22.0 ++LIBSECRET_REQUIRED=0.11 + GNOME_KEYRING_REQUIRED=3.0.0 + DBUS_REQUIRED=1.0 + DBUS_GLIB_REQUIRED=0.70 +@@ -134,6 +135,22 @@ else + fi + AM_CONDITIONAL([HAVE_TESTS], [test $have_tests = yes]) + ++dnl --------------------------------------------------------------------------- ++dnl - Build libsecret support ++dnl --------------------------------------------------------------------------- ++AC_ARG_WITH(libsecret, ++ [AS_HELP_STRING([--with-libsecret], ++ [Enable the use of libsecret])], ++ [], ++ [with_libsecret=no]) ++ ++AM_CONDITIONAL([WITH_LIBSECRET],[test "$with_libsecret" = "yes"]) ++ ++if test "$with_libsecret" = "yes"; then ++ PKG_CHECK_MODULES(LIBSECRET, libsecret-1 >= $LIBSECRET_REQUIRED) ++ AC_DEFINE([WITH_LIBSECRET],[1],[Define if LIBSECRET support is enabled]) ++fi ++ + dnl --------------------------------------------------------------------------- + dnl - Build gnome-keyring support + dnl --------------------------------------------------------------------------- +@@ -150,6 +167,10 @@ if test "$with_keyring" = "yes"; then + AC_DEFINE([WITH_KEYRING],[1],[Define if KEYRING support is enabled]) + fi + ++if test "$with_libsecret" = "yes" -a "$with_keyring" = "yes"; then ++ AC_MSG_ERROR([Please select only 1, keyring or libsecret]) ++fi ++ + dnl --------------------------------------------------------------------------- + dnl - Build applets + dnl --------------------------------------------------------------------------- +@@ -222,6 +243,7 @@ echo " + compiler: ${CC} + cflags: ${CFLAGS} + cwarnings: ${WARN_CFLAGS} ++ libsecret support: ${with_libsecret} + gnome-keyring support: ${with_keyring} + Building extra applets: ${enable_applets} + Self test support: ${have_tests} +diff --git a/src/Makefile.am b/src/Makefile.am +index 1a966e8f..47815c5f 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -14,6 +14,7 @@ AM_CPPFLAGS = \ + $(GLIB_CFLAGS) \ + $(DBUS_CFLAGS) \ + $(CAIRO_CFLAGS) \ ++ $(LIBSECRET_CFLAGS) \ + $(KEYRING_CFLAGS) \ + $(X11_CFLAGS) \ + $(LIBNOTIFY_CFLAGS) \ +@@ -197,6 +198,7 @@ mate_power_manager_LDADD = \ + $(X11_LIBS) \ + $(GSTREAMER_LIBS) \ + $(CAIRO_LIBS) \ ++ $(LIBSECRET_LIBS) \ + $(KEYRING_LIBS) \ + $(DBUS_LIBS) \ + $(X11_LIBS) \ +@@ -259,6 +261,7 @@ mate_power_self_test_LDADD = \ + $(GLIB_LIBS) \ + $(X11_LIBS) \ + $(CAIRO_LIBS) \ ++ $(LIBSECRET_LIBS) \ + $(KEYRING_LIBS) \ + $(GSTREAMER_LIBS) \ + $(UPOWER_LIBS) \ + +From 7dbbf59fc5dc64cf512932993616a06903d5f22b Mon Sep 17 00:00:00 2001 +From: NP-Hardass <np.hardass@gmail.com> +Date: Mon, 3 Aug 2020 01:49:47 -0400 +Subject: [PATCH 2/5] gpm-control.c: Add libsecret implementation to + gpm_control_suspend() + +--- + src/gpm-control.c | 39 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 39 insertions(+) + +diff --git a/src/gpm-control.c b/src/gpm-control.c +index 4834a050..e64bfb12 100644 +--- a/src/gpm-control.c ++++ b/src/gpm-control.c +@@ -39,6 +39,9 @@ + #include <gio/gio.h> + #include <glib/gi18n.h> + ++#ifdef WITH_LIBSECRET ++#include <libsecret/secret.h> ++#endif /* WITH_LIBSECRET */ + #ifdef WITH_KEYRING + #include <gnome-keyring.h> + #endif /* WITH_KEYRING */ +@@ -210,6 +213,13 @@ gpm_control_suspend (GpmControl *control, GError **error) + EggConsoleKit *console; + GpmScreensaver *screensaver; + guint32 throttle_cookie = 0; ++#ifdef WITH_LIBSECRET ++ gboolean lock_libsecret; ++ GCancellable *libsecret_cancellable = NULL; ++ SecretService *secretservice_proxy = NULL; ++ gint num_secrets_locked; ++ GList *libsecret_collections = NULL; ++#endif /* WITH_LIBSECRET */ + #ifdef WITH_KEYRING + gboolean lock_gnome_keyring; + GnomeKeyringResult keyres; +@@ -233,6 +243,35 @@ gpm_control_suspend (GpmControl *control, GError **error) + } + } + ++#ifdef WITH_LIBSECRET ++ /* we should perhaps lock keyrings when sleeping #375681 */ ++ lock_libsecret = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_SUSPEND); ++ if (lock_libsecret) { ++ libsecret_cancellable = g_cancellable_new(); ++ secretservice_proxy = secret_service_get_sync(SECRET_SERVICE_LOAD_COLLECTIONS, ++ libsecret_cancellable, ++ error); ++ if (secretservice_proxy == NULL) { ++ g_warning ("failed to connect to secret service"); ++ } else { ++ libsecret_collections = secret_service_get_collections(secretservice_proxy); ++ if ( libsecret_collections == NULL) { ++ g_warning ("failed to get secret collections"); ++ } else { ++ num_secrets_locked = secret_service_lock_sync(secretservice_proxy, ++ libsecret_collections, ++ libsecret_cancellable, ++ NULL, ++ error); ++ if (num_secrets_locked <= 0) ++ g_warning ("could not lock keyring"); ++ g_list_free(libsecret_collections); ++ } ++ g_object_unref(secretservice_proxy); ++ } ++ g_object_unref(libsecret_cancellable); ++ } ++#endif /* WITH_LIBSECRET */ + #ifdef WITH_KEYRING + /* we should perhaps lock keyrings when sleeping #375681 */ + lock_gnome_keyring = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_SUSPEND); + +From 74acfabab04f10e95dc91fdc633a893a4564a820 Mon Sep 17 00:00:00 2001 +From: NP-Hardass <np.hardass@gmail.com> +Date: Mon, 3 Aug 2020 01:55:43 -0400 +Subject: [PATCH 3/5] gpm-control.c: Add libsecret implementation to + gpm_control_hibernate() + +--- + src/gpm-control.c | 36 ++++++++++++++++++++++++++++++++++++ + 1 file changed, 36 insertions(+) + +diff --git a/src/gpm-control.c b/src/gpm-control.c +index e64bfb12..98bb6f4e 100644 +--- a/src/gpm-control.c ++++ b/src/gpm-control.c +@@ -367,6 +367,13 @@ gpm_control_hibernate (GpmControl *control, GError **error) + EggConsoleKit *console; + GpmScreensaver *screensaver; + guint32 throttle_cookie = 0; ++#ifdef WITH_LIBSECRET ++ gboolean lock_libsecret; ++ GCancellable *libsecret_cancellable = NULL; ++ SecretService *secretservice_proxy = NULL; ++ gint num_secrets_locked; ++ GList *libsecret_collections = NULL; ++#endif /* WITH_LIBSECRET */ + #ifdef WITH_KEYRING + gboolean lock_gnome_keyring; + GnomeKeyringResult keyres; +@@ -390,6 +397,35 @@ gpm_control_hibernate (GpmControl *control, GError **error) + } + } + ++#ifdef WITH_LIBSECRET ++ /* we should perhaps lock keyrings when sleeping #375681 */ ++ lock_libsecret = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_SUSPEND); ++ if (lock_libsecret) { ++ libsecret_cancellable = g_cancellable_new(); ++ secretservice_proxy = secret_service_get_sync(SECRET_SERVICE_LOAD_COLLECTIONS, ++ libsecret_cancellable, ++ error); ++ if (secretservice_proxy == NULL) { ++ g_warning ("failed to connect to secret service"); ++ } else { ++ libsecret_collections = secret_service_get_collections(secretservice_proxy); ++ if ( libsecret_collections == NULL) { ++ g_warning ("failed to get secret collections"); ++ } else { ++ num_secrets_locked = secret_service_lock_sync(secretservice_proxy, ++ libsecret_collections, ++ libsecret_cancellable, ++ NULL, ++ error); ++ if (num_secrets_locked <= 0) ++ g_warning ("could not lock keyring"); ++ g_list_free(libsecret_collections); ++ } ++ g_object_unref(secretservice_proxy); ++ } ++ g_object_unref(libsecret_cancellable); ++ } ++#endif /* WITH_LIBSECRET */ + #ifdef WITH_KEYRING + /* we should perhaps lock keyrings when sleeping #375681 */ + lock_gnome_keyring = g_settings_get_boolean (control->priv->settings, GPM_SETTINGS_LOCK_KEYRING_HIBERNATE); + +From a5b4e5b14510ea3aeb8824294876c152635503ae Mon Sep 17 00:00:00 2001 +From: NP-Hardass <np.hardass@gmail.com> +Date: Mon, 3 Aug 2020 02:01:10 -0400 +Subject: [PATCH 5/5] Switch default from libgnome-keyring to libsecret + +--- + configure.ac | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b4758dca..7fbc8206 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -139,10 +139,10 @@ dnl --------------------------------------------------------------------------- + dnl - Build libsecret support + dnl --------------------------------------------------------------------------- + AC_ARG_WITH(libsecret, +- [AS_HELP_STRING([--with-libsecret], +- [Enable the use of libsecret])], ++ [AS_HELP_STRING([--without-libsecret], ++ [Disable the use of libsecret])], + [], +- [with_libsecret=no]) ++ [with_libsecret=yes]) + + AM_CONDITIONAL([WITH_LIBSECRET],[test "$with_libsecret" = "yes"]) + +@@ -155,10 +155,10 @@ dnl --------------------------------------------------------------------------- + dnl - Build gnome-keyring support + dnl --------------------------------------------------------------------------- + AC_ARG_WITH(keyring, +- [AS_HELP_STRING([--without-keyring], +- [Disable the use of gnome-keyring])], ++ [AS_HELP_STRING([--with-keyring], ++ [Enable the use of gnome-keyring])], + [], +- [with_keyring=yes]) ++ [with_keyring=no]) + + AM_CONDITIONAL([WITH_KEYRING],[test "$with_keyring" = "yes"]) + diff --git a/mate-extra/mate-power-manager/mate-power-manager-1.24.1-r2.ebuild b/mate-extra/mate-power-manager/mate-power-manager-1.24.1-r2.ebuild index 55bf4d7a986e..b476637a4ea4 100644 --- a/mate-extra/mate-power-manager/mate-power-manager-1.24.1-r2.ebuild +++ b/mate-extra/mate-power-manager/mate-power-manager-1.24.1-r2.ebuild @@ -13,9 +13,9 @@ DESCRIPTION="A session daemon for MATE that makes it easy to manage your laptop LICENSE="FDL-1.1+ GPL-2+ LGPL-2+" SLOT="0" -IUSE="+applet elogind policykit systemd test" +IUSE="+applet elogind libsecret policykit systemd test" -REQUIRED_USE="?? ( elogind systemd )" +REQUIRED_USE="^^ ( elogind systemd )" # Interactive testsuite. RESTRICT="test" @@ -25,6 +25,7 @@ COMMON_DEPEND=" >=dev-libs/glib-2.50:2 >=media-libs/libcanberra-0.10:0[gtk3] >=sys-apps/dbus-1 + >=sys-power/upower-0.99.8:= >=x11-apps/xrandr-1.3 >=x11-libs/cairo-1 >=x11-libs/gdk-pixbuf-2.11:2 @@ -35,15 +36,15 @@ COMMON_DEPEND=" >=x11-libs/libnotify-0.7:0 x11-libs/pango applet? ( >=mate-base/mate-panel-1.17.0 ) - >=sys-power/upower-0.99.8:=" + libsecret? ( >=app-crypt/libsecret-0.11 ) +" RDEPEND="${COMMON_DEPEND} virtual/libintl policykit? ( >=mate-extra/mate-polkit-1.6 ) systemd? ( sys-apps/systemd ) - !systemd? ( - elogind? ( sys-auth/elogind ) - )" + elogind? ( sys-auth/elogind ) +" DEPEND="${COMMON_DEPEND} app-text/docbook-xml-dtd:4.3 @@ -54,12 +55,15 @@ DEPEND="${COMMON_DEPEND} dev-util/glib-utils >=sys-devel/gettext-0.19.8:* virtual/pkgconfig - x11-base/xorg-proto" + x11-base/xorg-proto +" + +PATCHES=( "${FILESDIR}/${P}-libsecret.patch" ) src_configure() { mate_src_configure \ - --without-keyring \ --enable-compile-warnings=minimum \ + $(use_with libsecret) \ $(use_enable applet applets) \ $(use_enable test tests) } diff --git a/mate-extra/mate-power-manager/metadata.xml b/mate-extra/mate-power-manager/metadata.xml index ff952f0b3170..2eb98c6de08b 100644 --- a/mate-extra/mate-power-manager/metadata.xml +++ b/mate-extra/mate-power-manager/metadata.xml @@ -7,6 +7,7 @@ </maintainer> <use> <flag name="applet">Enable building of the MATE applet.</flag> + <flag name="libsecret">Support locking of keyring via <pkg>app-crypt/libsecret</pkg></flag> </use> <upstream> <remote-id type="github">mate-desktop/mate-power-manager</remote-id> |