diff options
-rw-r--r-- | mate-extra/mate-polkit/files/mate-polkit-1.26.0-ayatana.patch | 176 | ||||
-rw-r--r-- | mate-extra/mate-polkit/mate-polkit-1.26.0-r1.ebuild | 46 |
2 files changed, 222 insertions, 0 deletions
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 <lukefromdc@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) +} |