commit:     da921b9a45dabcebc70594e997f20e1426704454
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 27 14:56:09 2023 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Thu Apr 27 14:56:09 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da921b9a

mate-extra/mate-polkit: Support ayatana indicators

Backported patch from future 1.28 release

Closes: https://bugs.gentoo.org/898394
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 .../files/mate-polkit-1.26.0-ayatana.patch         | 176 +++++++++++++++++++++
 .../mate-polkit/mate-polkit-1.26.0-r1.ebuild       |  46 ++++++
 2 files changed, 222 insertions(+)

diff --git a/mate-extra/mate-polkit/files/mate-polkit-1.26.0-ayatana.patch 
b/mate-extra/mate-polkit/files/mate-polkit-1.26.0-ayatana.patch
new file mode 100644
index 000000000000..edd91c2a1111
--- /dev/null
+++ b/mate-extra/mate-polkit/files/mate-polkit-1.26.0-ayatana.patch
@@ -0,0 +1,176 @@
+From 65a6c367e28e338dc74931dece1af9e53338276f Mon Sep 17 00:00:00 2001
+From: lukefromdc <lukefro...@hushmail.com>
+Date: Tue, 31 Jan 2023 01:25:20 -0500
+Subject: [PATCH] Prefer building against Ayatana AppIndicator, but also
+ support legacy Ubuntu Appindicator
+
+---
+ configure.ac    | 54 +++++++++++++++++++++++++++++++++++--------------
+ src/Makefile.am |  6 ++++--
+ src/main.c      | 15 +++++++-------
+ 3 files changed, 51 insertions(+), 24 deletions(-)
+
+--- a/configure.ac.old 2023-04-27 16:48:35.940816452 +0200
++++ b/configure.ac     2023-04-27 16:52:21.303890924 +0200
+@@ -111,8 +111,17 @@
+ 
+ AM_CONDITIONAL([HAVE_ACCOUNTSSERVICE], [test "x$enable_accountsservice" = 
xyes])
+ 
+-# Application indicator
+-APPINDICATOR_PKG=appindicator3-0.1
++# Application Indicator (Ubuntu and Ayatana implementation)
++
++AYATANA_APPINDICATOR_PKG=ayatana-appindicator3-0.1
++UBUNTU_APPINDICATOR_PKG=appindicator3-0.1
++
++PKG_CHECK_EXISTS($AYATANA_APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED,
++                [have_appindicator_ayatana="yes"],
++                [have_appindicator_ayatana="no"])
++PKG_CHECK_EXISTS($UBUNTU_APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED,
++                [have_appindicator_ubuntu="yes"],
++                [have_appindicator_ubuntu="no"])
+ 
+ AC_ARG_ENABLE([appindicator],
+             
AS_HELP_STRING([--enable-appindicator[=@<:@no/auto/yes@:>@]],[Build support for 
application indicators]),
+@@ -120,22 +129,33 @@
+             [enable_appindicator="auto"])
+ 
+ 
+-if test "x$enable_appindicator" = "xauto"; then
+-      PKG_CHECK_EXISTS($APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED,
+-                       [enable_appindicator="yes"],
+-                       [enable_appindicator="no"])
++if  test "x$enable_appindicator" == "xauto" &&
++   (test "x$have_appindicator_ayatana" == "xyes" ||
++    test "x$have_appindicator_ubuntu" == "xyes"); then
++       AC_MSG_NOTICE([Enabling AppIndicator support (as 
--enable-appindicator=auto was used).])
++       enable_appindicator="yes"
+ fi
+ 
+-if test "x$enable_appindicator" = "xyes"; then
+-      PKG_CHECK_MODULES(APPINDICATOR,
+-                        [$APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED],
+-                        [AC_DEFINE(HAVE_APPINDICATOR, 1, [Have 
AppIndicator])])
++if test "x$enable_appindicator" == "xyes"; then
++       if test "x$have_appindicator_ayatana" == "xyes"; then
++               AC_MSG_NOTICE([Buidling against Ayatana AppIndicator.])
++               PKG_CHECK_MODULES(AYATANA_APPINDICATOR,
++                                 [$AYATANA_APPINDICATOR_PKG >= 
$APPINDICATOR_REQUIRED],
++                                 [AC_DEFINE(HAVE_AYATANA_APPINDICATOR, 1, 
[Have Ayatana AppIndicator])])
++               AC_SUBST(AYATANA_APPINDICATOR_CFLAGS)
++               AC_SUBST(AYATANA_APPINDICATOR_LIBS)
++       elif test "x$have_appindicator_ubuntu" == "xyes"; then
++               AC_MSG_NOTICE([Buidling against Ubuntu AppIndicator.])
++               PKG_CHECK_MODULES(UBUNTU_APPINDICATOR,
++                                 [$UBUNTU_APPINDICATOR_PKG >= 
$APPINDICATOR_REQUIRED],
++                                 [AC_DEFINE(HAVE_UBUNTU_APPINDICATOR, 1, 
[Have Ubuntu AppIndicator])])
++               AC_SUBST(UBUNTU_APPINDICATOR_CFLAGS)
++               AC_SUBST(UBUNTU_APPINDICATOR_LIBS)
++       else
++               AC_MSG_ERROR([Neither Ayatana AppIndicator nor Ubuntu 
AppIndicator library is present, but you enabled AppIndicator support.])
++       fi
+ fi
+ 
+-AM_CONDITIONAL(HAVE_APPINDICATOR, test "x$enable_appindicator" = "xyes")
+-AC_SUBST(APPINDICATOR_CFLAGS)
+-AC_SUBST(APPINDICATOR_LIBS)
+-
+ # ********************
+ # Internationalisation
+ # ********************
+@@ -181,6 +201,10 @@
+         Warning flags:              ${WARN_CFLAGS}
+ 
+         Accountsservice:            ${enable_accountsservice}
+-        Application indicator:      ${enable_appindicator}
++
++      AppIndicator enabled:              ${enable_appindicator}
++      Ayatana AppIndicator (preferred)   ${have_appindicator_ayatana}
++      Ubuntu AppIndicator (legacy)       ${have_appindicator_ubuntu}
++
+         Maintainer mode:            ${USE_MAINTAINER_MODE}
+ "
+diff --git a/src/Makefile.am b/src/Makefile.am
+index a534d1e..5f7ead8 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -35,7 +35,8 @@ polkit_mate_authentication_agent_1_CFLAGS =          \
+       $(GLIB_CFLAGS)                                  \
+       $(POLKIT_AGENT_CFLAGS)                          \
+       $(POLKIT_GOBJECT_CFLAGS)                        \
+-      $(APPINDICATOR_CFLAGS)                          \
++      $(AYATANA_APPINDICATOR_CFLAGS)                  \
++      $(UBUNTU_APPINDICATOR_CFLAGS)                   \
+       $(WARN_CFLAGS)                                  \
+       $(AM_CFLAGS)
+ 
+@@ -47,7 +48,8 @@ polkit_mate_authentication_agent_1_LDADD =           \
+       $(GLIB_LIBS)                                    \
+       $(POLKIT_AGENT_LIBS)                            \
+       $(POLKIT_GOBJECT_LIBS)                          \
+-      $(APPINDICATOR_LIBS)
++      $(AYATANA_APPINDICATOR_LIBS)                    \
++      $(UBUNTU_APPINDICATOR_LIBS)                     
+ 
+ EXTRA_DIST = \
+       polkit-mate-authentication-agent-1.desktop.in \
+diff --git a/src/main.c b/src/main.c
+index 8c5f437..d60cd8f 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -1,6 +1,5 @@
+ /*
+  * Copyright (C) 2009 Red Hat, Inc.
+- * Copyright (C) 2012-2021 MATE Developers
+  *
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+@@ -30,8 +29,10 @@
+ #include <glib/gi18n.h>
+ #include <polkitagent/polkitagent.h>
+ 
+-#ifdef HAVE_APPINDICATOR
+-#include <libappindicator/app-indicator.h>
++#if defined(HAVE_AYATANA_APPINDICATOR)
++# include <libayatana-appindicator/app-indicator.h>
++#elif defined(HAVE_UBUNTU_APPINDICATOR)
++# include <libappindicator/app-indicator.h>
+ #endif
+ 
+ #include "polkitmatelistener.h"
+@@ -51,7 +52,7 @@ static PolkitSubject *session = NULL;
+ /* the current set of temporary authorizations */
+ static GList *current_temporary_authorizations = NULL;
+ 
+-#ifdef HAVE_APPINDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ static AppIndicator *app_indicator = NULL;
+ #else
+ static GtkStatusIcon *status_icon = NULL;
+@@ -90,7 +91,7 @@ revoke_tmp_authz (void)
+                                                     NULL);
+ }
+ 
+-#ifdef HAVE_APPINDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ static void
+ on_menu_item_activate (GtkMenuItem *menu_item,
+                        gpointer     user_data)
+@@ -151,7 +152,7 @@ update_temporary_authorization_icon_real (void)
+   if (current_temporary_authorizations != NULL)
+     {
+       /* show icon */
+-#ifdef HAVE_APPINDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+       if (app_indicator == NULL)
+         {
+           GtkWidget *item, *menu;
+@@ -199,7 +200,7 @@ update_temporary_authorization_icon_real (void)
+   else
+     {
+       /* hide icon */
+-#ifdef HAVE_APPINDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+       if (app_indicator != NULL)
+         {
+           /* keep the app_indicator, hide the icon or it won't come back*/

diff --git a/mate-extra/mate-polkit/mate-polkit-1.26.0-r1.ebuild 
b/mate-extra/mate-polkit/mate-polkit-1.26.0-r1.ebuild
new file mode 100644
index 000000000000..720be36f5713
--- /dev/null
+++ b/mate-extra/mate-polkit/mate-polkit-1.26.0-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit mate
+
+if [[ ${PV} != 9999 ]]; then
+       KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+fi
+
+DESCRIPTION="A MATE specific DBUS service that is used to bring up 
authentication dialogs"
+LICENSE="LGPL-2"
+SLOT="0"
+
+IUSE="accountsservice appindicator"
+
+COMMON_DEPEND="x11-libs/gdk-pixbuf:2
+       virtual/libintl:0
+       >=x11-libs/gtk+-3.22.0:3
+       appindicator? ( dev-libs/libayatana-appindicator )"
+
+RDEPEND="${COMMON_DEPEND}
+       >=dev-libs/glib-2.50:2
+       >=sys-auth/polkit-0.102
+       accountsservice? ( sys-apps/accountsservice )"
+
+BDEPEND="${COMMON_DEPEND}
+       dev-util/gtk-doc
+       dev-util/gtk-doc-am
+       >=dev-util/intltool-0.35
+       sys-devel/gettext
+       >=sys-devel/libtool-2.2.6
+       virtual/pkgconfig"
+
+PATCHES=(
+       # 
https://github.com/mate-desktop/mate-polkit/commit/65a6c367e28e338dc74931dece1af9e53338276f
+       "${FILESDIR}/${P}-ayatana.patch"
+)
+
+src_configure() {
+       mate_src_configure \
+               --disable-static \
+               $(use_enable accountsservice) \
+               $(use_enable appindicator)
+}

Reply via email to