summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mate-extra')
-rw-r--r--mate-extra/mate-power-manager/files/mate-power-manager-1.24.1-libsecret.patch287
-rw-r--r--mate-extra/mate-power-manager/mate-power-manager-1.24.1-r2.ebuild20
-rw-r--r--mate-extra/mate-power-manager/metadata.xml1
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>