summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2023-05-08 10:54:52 +0200
committerPacho Ramos <pacho@gentoo.org>2023-05-08 11:11:20 +0200
commit13f01b0847c7b169fbb664213a2854888f14acd9 (patch)
treef323788486f432358078d176d320938bab35d606
parentgnome-extra/gnome-shell-extension-appindicator: drop 46, 50, 53 (diff)
downloadgentoo-13f01b0847c7b169fbb664213a2854888f14acd9.tar.gz
gentoo-13f01b0847c7b169fbb664213a2854888f14acd9.tar.bz2
gentoo-13f01b0847c7b169fbb664213a2854888f14acd9.zip
mate-base/mate-control-center: Migrate to ayatana
Closes: https://bugs.gentoo.org/905176 Signed-off-by: Pacho Ramos <pacho@gentoo.org>
-rw-r--r--mate-base/mate-control-center/files/mate-control-center-1.26.0-ayatana-detection.patch435
-rw-r--r--mate-base/mate-control-center/mate-control-center-1.26.0-r2.ebuild75
2 files changed, 510 insertions, 0 deletions
diff --git a/mate-base/mate-control-center/files/mate-control-center-1.26.0-ayatana-detection.patch b/mate-base/mate-control-center/files/mate-control-center-1.26.0-ayatana-detection.patch
new file mode 100644
index 000000000000..c8253b7fbf7f
--- /dev/null
+++ b/mate-base/mate-control-center/files/mate-control-center-1.26.0-ayatana-detection.patch
@@ -0,0 +1,435 @@
+--- mate-control-center-1.26.0.old/configure.ac 2023-04-28 16:12:05.281295458 +0200
++++ mate-control-center-1.26.0/configure.ac 2023-04-28 16:48:44.374329792 +0200
+@@ -84,30 +84,50 @@
+
+ AM_CONDITIONAL(HAVE_TYPING_BREAK, test "x$TYPING_BREAK" = xtyping-break)
+
+-dnl app indicator
+-APPINDICATOR_PKG=appindicator3-0.1
++dnl app 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 ]),
+ [enable_appindicator=$enableval],
+ [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_EXISTS([$APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED],,
+- AC_MSG_ERROR([appindicator-0.1 is not installed]))
+- PKG_CHECK_MODULES(APP_INDICATOR,
+- $APPINDICATOR_PKG >= $APPINDICATOR_REQUIRED)
+- AC_SUBST(APP_INDICATOR_CFLAGS)
+- AC_SUBST(APP_INDICATOR_LIBS)
+- AC_DEFINE(HAVE_APP_INDICATOR, 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_APP_INDICATOR, test x"$enable_appindicator" = xyes)
++AM_CONDITIONAL(HAVE_AYATANA_APPINDICATOR, test x"$have_appindicator_ayatana" = xyes)
++AM_CONDITIONAL(HAVE_UBUNTU_APPINDICATOR, test x"$have_appindicator_ubuntu" = xyes)
+
+ dnl keyboard-properties-capplet
+ savecppflags=$CPPFLAGS
+@@ -322,7 +342,10 @@
+ Warning flags: ${WARN_CFLAGS}
+ Linker flags: ${LDFLAGS}
+
+- Appindicator: ${enable_appindicator}
++ AppIndicator enabled: ${enable_appindicator}
++ Ayatana AppIndicator (preferred) ${have_appindicator_ayatana}
++ Ubuntu AppIndicator (legacy) ${have_appindicator_ubuntu}
++
+ Libmate-slab: ${have_libmateslab}
+ Accountsservice: ${have_accountsservice}
+ Native Language support: ${USE_NLS}
+--- mate-control-center-1.26.0.old/typing-break/drwright.c 2023-04-28 16:12:05.282295452 +0200
++++ mate-control-center-1.26.0/typing-break/drwright.c 2023-04-28 16:27:03.082651572 +0200
+@@ -30,9 +30,11 @@
+ #include <gtk/gtk.h>
+ #include <gio/gio.h>
+
+-#ifdef HAVE_APP_INDICATOR
+-#include <libappindicator/app-indicator.h>
+-#endif /* HAVE_APP_INDICATOR */
++#if defined(HAVE_AYATANA_APPINDICATOR)
++# include <libayatana-appindicator/app-indicator.h>
++#elif defined(HAVE_UBUNTU_APPINDICATOR)
++# include <libappindicator/app-indicator.h>
++#endif
+
+ #define MATE_DESKTOP_USE_UNSTABLE_API
+ #include <libmate-desktop/mate-desktop-utils.h>
+@@ -43,11 +45,11 @@
+ #include "drw-utils.h"
+ #include "drw-timer.h"
+
+-#ifndef HAVE_APP_INDICATOR
++#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR)
+ #define BLINK_TIMEOUT 200
+ #define BLINK_TIMEOUT_MIN 120
+ #define BLINK_TIMEOUT_FACTOR 100
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ typedef enum {
+ STATE_START,
+@@ -59,10 +61,10 @@
+ STATE_BREAK_DONE
+ } DrwState;
+
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ #define TYPING_MONITOR_ACTIVE_ICON "bar-green"
+ #define TYPING_MONITOR_ATTENTION_ICON "bar-red"
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ struct _DrWright {
+ /* Widgets. */
+@@ -88,7 +90,7 @@
+ gboolean enabled;
+
+ guint clock_timeout_id;
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ AppIndicator *indicator;
+ #else
+ guint blink_timeout_id;
+@@ -102,7 +104,7 @@
+ cairo_surface_t *green_bar;
+ cairo_surface_t *disabled_bar;
+ GdkPixbuf *composite_bar;
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ GtkWidget *warn_dialog;
+ };
+@@ -124,11 +126,11 @@
+ DrWright *dr);
+ static void popup_about_cb (GtkAction *action,
+ DrWright *dr);
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ static void init_app_indicator (DrWright *dr);
+ #else
+ static void init_tray_icon (DrWright *dr);
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+ static GList * create_secondary_break_windows (void);
+
+ static const GtkActionEntry actions[] = {
+@@ -147,7 +149,7 @@
+ dr->break_time = 10;
+ }
+
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ static void
+ update_app_indicator (DrWright *dr)
+ {
+@@ -304,32 +306,32 @@
+
+ return FALSE;
+ }
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ static void
+ start_blinking (DrWright *dr)
+ {
+-#ifndef HAVE_APP_INDICATOR
++#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR)
+ if (!dr->blink_timeout_id) {
+ dr->blink_on = TRUE;
+ blink_timeout_cb (dr);
+ }
+
+ /*gtk_widget_show (GTK_WIDGET (dr->icon));*/
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+ }
+
+ static void
+ stop_blinking (DrWright *dr)
+ {
+-#ifndef HAVE_APP_INDICATOR
++#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR)
+ if (dr->blink_timeout_id) {
+ g_source_remove (dr->blink_timeout_id);
+ dr->blink_timeout_id = 0;
+ }
+
+ /*gtk_widget_hide (GTK_WIDGET (dr->icon));*/
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+ }
+
+ static gboolean
+@@ -397,9 +399,9 @@
+ dr->break_window = NULL;
+ }
+
+-#ifndef HAVE_APP_INDICATOR
++#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR)
+ set_status_icon (dr->icon, dr->neutral_bar);
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ dr->save_last_time = 0;
+
+@@ -437,9 +439,9 @@
+ }
+
+ stop_blinking (dr);
+-#ifndef HAVE_APP_INDICATOR
++#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR)
+ set_status_icon (dr->icon, dr->red_bar);
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ drw_timer_start (dr->timer);
+
+@@ -480,9 +482,9 @@
+
+ case STATE_BREAK_DONE_SETUP:
+ stop_blinking (dr);
+-#ifndef HAVE_APP_INDICATOR
++#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR)
+ set_status_icon (dr->icon, dr->green_bar);
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ dr->state = STATE_BREAK_DONE;
+ break;
+@@ -498,11 +500,11 @@
+
+ dr->last_elapsed_time = elapsed_time;
+
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ update_app_indicator (dr);
+ #else
+ update_icon (dr);
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ return TRUE;
+ }
+@@ -512,45 +514,45 @@
+ {
+ gint min;
+ gchar *str;
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ GtkWidget *item;
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ if (!dr->enabled) {
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ app_indicator_set_status (dr->indicator,
+ APP_INDICATOR_STATUS_PASSIVE);
+ #else
+ gtk_status_icon_set_tooltip_text (dr->icon,
+ _("Disabled"));
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+ return TRUE;
+ }
+
+ min = get_time_left (dr);
+
+ if (min >= 1) {
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ str = g_strdup_printf (_("Take a break now (next in %dm)"), min);
+ #else
+ str = g_strdup_printf (ngettext("%d minute until the next break",
+ "%d minutes until the next break",
+ min), min);
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+ } else {
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ str = g_strdup_printf (_("Take a break now (next in less than one minute)"));
+ #else
+ str = g_strdup_printf (_("Less than one minute until the next break"));
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+ }
+
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ item = gtk_ui_manager_get_widget (dr->ui_manager, "/Pop/TakeABreak");
+ gtk_menu_item_set_label (GTK_MENU_ITEM (item), str);
+ #else
+ gtk_status_icon_set_tooltip_text (dr->icon, str);
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ g_free (str);
+
+@@ -665,7 +667,7 @@
+ NULL);
+ }
+
+-#ifndef HAVE_APP_INDICATOR
++#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR)
+ static void
+ popup_menu_cb (GtkWidget *widget,
+ guint button,
+@@ -684,7 +686,7 @@
+ 0,
+ gtk_get_current_event_time ());
+ }
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ static void
+ break_window_done_cb (GtkWidget *window,
+@@ -724,11 +726,11 @@
+ drw_timer_start (dr->timer);
+ maybe_change_state (dr);
+ update_status (dr);
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ update_app_indicator (dr);
+ #else
+ update_icon (dr);
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+ }
+
+ static void
+@@ -745,7 +747,7 @@
+ dr->secondary_break_windows = NULL;
+ }
+
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ static void
+ init_app_indicator (DrWright *dr)
+ {
+@@ -792,7 +794,7 @@
+ G_CALLBACK (popup_menu_cb),
+ dr);
+ }
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ static GList *
+ create_secondary_break_windows (void)
+@@ -891,7 +893,7 @@
+ G_CALLBACK (activity_detected_cb),
+ dr);
+
+-#ifdef HAVE_APP_INDICATOR
++#if defined(HAVE_AYATANA_APPINDICATOR) || defined(HAVE_UBUNTU_APPINDICATOR)
+ init_app_indicator (dr);
+ #else
+ dr->neutral_bar = cairo_image_surface_create_from_png (IMAGEDIR "/bar.png");
+@@ -900,7 +902,7 @@
+ dr->disabled_bar = cairo_image_surface_create_from_png (IMAGEDIR "/bar-disabled.png");
+
+ init_tray_icon (dr);
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ g_timeout_add_seconds (12,
+ (GSourceFunc) update_status,
+--- mate-control-center-1.26.0.old/typing-break/Makefile.am 2023-04-28 16:12:05.283295447 +0200
++++ mate-control-center-1.26.0/typing-break/Makefile.am 2023-04-28 16:30:45.343491923 +0200
+@@ -32,9 +32,14 @@
+ mate_typing_monitor_LDADD += @LIBCANBERRA_GTK_LIBS@
+ endif
+
+-if HAVE_APP_INDICATOR
+- mate_typing_monitor_CFLAGS += -DHAVE_APP_INDICATOR @APP_INDICATOR_CFLAGS@
+- mate_typing_monitor_LDADD += @APP_INDICATOR_LIBS@
++if HAVE_AYATANA_APPINDICATOR
++ mate_typing_monitor_CFLAGS += -DHAVE_AYATANA_APPINDICATOR @AYATANA_APPINDICATOR_CFLAGS@
++ mate_typing_monitor_LDADD += @AYATANA_APPINDICATOR_LIBS@
++endif
++
++if HAVE_UBUNTU_APPINDICATOR
++ mate_typing_monitor_CFLAGS += -DHAVE_UBUNTU_APPINDICATOR @UBUNTU_APPINDICATOR_CFLAGS@
++ mate_typing_monitor_LDADD += @UBUNTU_APPINDICATOR_LIBS@
+ endif
+
+ imagedir = $(pkgdatadir)/pixmaps
+--- mate-control-center-1.26.0.old/typing-break/main.c 2023-04-28 16:12:05.282295452 +0200
++++ mate-control-center-1.26.0/typing-break/main.c 2023-04-28 16:32:09.781067404 +0200
+@@ -31,7 +31,7 @@
+
+ gboolean debug = FALSE;
+
+-#ifndef HAVE_APP_INDICATOR
++#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR)
+ static gboolean
+ have_tray (void)
+ {
+@@ -50,7 +50,7 @@
+ return FALSE;
+ }
+ }
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ int
+ main (int argc, char *argv[])
+@@ -98,7 +98,7 @@
+ return 0;
+ }
+
+-#ifndef HAVE_APP_INDICATOR
++#if !defined(HAVE_AYATANA_APPINDICATOR) && !defined(HAVE_UBUNTU_APPINDICATOR)
+ if (!no_check && !have_tray ()) {
+ GtkWidget *dialog;
+
+@@ -116,7 +116,7 @@
+
+ gtk_widget_destroy (dialog);
+ }
+-#endif /* HAVE_APP_INDICATOR */
++#endif
+
+ drwright_new ();
+
diff --git a/mate-base/mate-control-center/mate-control-center-1.26.0-r2.ebuild b/mate-base/mate-control-center/mate-control-center-1.26.0-r2.ebuild
new file mode 100644
index 000000000000..cdda1c51478d
--- /dev/null
+++ b/mate-base/mate-control-center/mate-control-center-1.26.0-r2.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MATE_LA_PUNT="yes"
+
+inherit mate
+
+if [[ ${PV} != 9999 ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86"
+fi
+
+DESCRIPTION="The MATE Desktop configuration tool"
+LICENSE="FDL-1.1+ GPL-2+ LGPL-2+ LGPL-2.1+ HPND"
+SLOT="0"
+
+IUSE="accountsservice appindicator debug nls"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ >=dev-libs/glib-2.50:2
+ dev-libs/libxml2:2
+ >=gnome-base/dconf-0.13.4
+ >=gnome-base/librsvg-2.0:2
+ >=mate-base/libmatekbd-1.17.0
+ >=mate-base/mate-desktop-1.25.0
+ >=mate-base/caja-1.20.0
+ >=mate-base/mate-menus-1.21.0
+ >=media-libs/fontconfig-1:1.0
+ media-libs/freetype:2
+ media-libs/libcanberra:0[gtk3]
+ sys-auth/polkit[introspection]
+ x11-apps/xmodmap
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-3.22:3
+ x11-libs/libX11
+ x11-libs/libXScrnSaver
+ x11-libs/libXcursor
+ x11-libs/libXext
+ >=x11-libs/libXi-1.5
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ >=x11-libs/libxklavier-4
+ x11-libs/pango
+ >=x11-wm/marco-1.17.0:=
+ accountsservice? ( sys-apps/accountsservice )
+ appindicator? ( dev-libs/libayatana-appindicator )
+"
+
+RDEPEND="${COMMON_DEPEND}"
+
+BDEPEND="${COMMON_DEPEND}
+ app-text/yelp-tools
+ dev-libs/libxml2
+ dev-util/desktop-file-utils
+ dev-util/glib-utils
+ >=sys-devel/gettext-0.19.8
+ x11-base/xorg-proto
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ # https://github.com/mate-desktop/mate-control-center/issues/701
+ "${FILESDIR}"/${PN}-1.26.0-ayatana-detection.patch
+)
+
+src_configure() {
+ mate_src_configure \
+ --disable-update-mimedb \
+ $(use_enable appindicator) \
+ $(use_enable nls) \
+ $(use_enable debug)
+}