forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mate-extra/mate-power-manager: Add libsecret support
Fix edit of 418634d Bug: https://bugs.gentoo.org/713048 Package-Manager: Portage-2.3.103, Repoman-2.3.23 Signed-off-by: Adam Feldman <[email protected]>
- Loading branch information
1 parent
af679b7
commit ba6a0d6
Showing
3 changed files
with
300 additions
and
8 deletions.
There are no files selected for viewing
287 changes: 287 additions & 0 deletions
287
mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-libsecret.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,287 @@ | ||
From b2d876a16de9214270f248d7c445542120ae7800 Mon Sep 17 00:00:00 2001 | ||
From: NP-Hardass <[email protected]> | ||
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 <[email protected]> | ||
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 <[email protected]> | ||
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 <[email protected]> | ||
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"]) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters