diff options
author | Pacho Ramos <pacho@gentoo.org> | 2023-05-08 10:54:52 +0200 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2023-05-08 11:11:20 +0200 |
commit | 13f01b0847c7b169fbb664213a2854888f14acd9 (patch) | |
tree | f323788486f432358078d176d320938bab35d606 | |
parent | gnome-extra/gnome-shell-extension-appindicator: drop 46, 50, 53 (diff) | |
download | gentoo-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.patch | 435 | ||||
-rw-r--r-- | mate-base/mate-control-center/mate-control-center-1.26.0-r2.ebuild | 75 |
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) +} |