Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Apr 2021 09:57:08 GMT
From:      Alexey Dokuchaev <danfe@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 4f62babfc4da - main - Allow to optionally build `x11/gxkb' against GTKv3 instead of v2 and tell PORTSCOUT to skip version 0.9.0 as it carries no other changes.
Message-ID:  <202104120957.13C9v8iM035894@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by danfe:

URL: https://cgit.FreeBSD.org/ports/commit/?id=4f62babfc4daa0523f08a23f6ef0a9e239e7b0c8

commit 4f62babfc4daa0523f08a23f6ef0a9e239e7b0c8
Author:     Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2021-04-12 09:56:26 +0000
Commit:     Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2021-04-12 09:55:28 +0000

    Allow to optionally build `x11/gxkb' against GTKv3 instead of v2 and
    tell PORTSCOUT to skip version 0.9.0 as it carries no other changes.
    
    PR:     251899
---
 x11/gxkb/Makefile               |  19 +++++--
 x11/gxkb/files/extra-patch-gtk3 | 108 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 122 insertions(+), 5 deletions(-)

diff --git a/x11/gxkb/Makefile b/x11/gxkb/Makefile
index 5e637b27492a..047fdf5cf87e 100644
--- a/x11/gxkb/Makefile
+++ b/x11/gxkb/Makefile
@@ -10,20 +10,29 @@ COMMENT=	X11 keyboard layout indicator and switcher
 
 LICENSE=	GPLv2
 
-LIB_DEPENDS=	libxklavier.so:x11/libxklavier \
-		libwnck-1.so:x11-toolkits/libwnck
+LIB_DEPENDS=	libxklavier.so:x11/libxklavier
 
 USES=		gnome pkgconfig
 GNU_CONFIGURE=	yes
-USE_GNOME=	gdkpixbuf2 glib20 gtk20
+USE_GNOME=	gdkpixbuf2 glib20
+
+PORTSCOUT=	skipv:0.9.0	# same as 0.8.2, but GTK3 is the default
 
 PORTDOCS=	AUTHORS NEWS
 
-OPTIONS_DEFINE=	DOCS
+OPTIONS_DEFINE=	DOCS GTK3
+GTK3_DESC=	Build against GTK version 3, not 2
+
+GTK3_EXTRA_PATCHES=	${FILESDIR}/extra-patch-gtk3
+GTK3_LIB_DEPENDS=	libwnck-3.so:x11-toolkits/libwnck3
+GTK3_LIB_DEPENDS_OFF=	libwnck-1.so:x11-toolkits/libwnck
+GTK3_USES=		autoreconf
+GTK3_USE=		GNOME=gtk30
+GTK3_USE_OFF=		GNOME=gtk20
 
 post-patch-DOCS-on:
 	@${REINPLACE_CMD} -e '/^doc_DATA/s, C[^ ]*,,g' \
-		${WRKSRC}/doc/Makefile.in
+		${WRKSRC}/doc/Makefile.[ai][mn]
 
 post-patch-DOCS-off:
 	@${REINPLACE_CMD} -e '/^SUBDIRS/s, doc,,' ${WRKSRC}/Makefile.in
diff --git a/x11/gxkb/files/extra-patch-gtk3 b/x11/gxkb/files/extra-patch-gtk3
new file mode 100644
index 000000000000..8812050e57aa
--- /dev/null
+++ b/x11/gxkb/files/extra-patch-gtk3
@@ -0,0 +1,108 @@
+GTK3 support, courtesy of Mateusz Łukasik <mati75@linuxmint.pl>
+
+--- configure.ac.orig	2020-07-07 08:50:37 UTC
++++ configure.ac
+@@ -7,10 +7,10 @@ AC_PROG_RANLIB
+ AM_PROG_CC_C_O
+ AC_HEADER_STDC
+ PKG_PROG_PKG_CONFIG([0.20])
+-PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.12.0])
++PKG_CHECK_MODULES(GTK, [gtk+-3.0])
+ PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.16.0])
+ PKG_CHECK_MODULES(LIBXKLAVIER, [libxklavier >= 3.0])
+-PKG_CHECK_MODULES(LIBWNCK, [libwnck-1.0 >= 2.22.0])
++PKG_CHECK_MODULES(LIBWNCK, [libwnck-3.0])
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+ AC_SUBST(GLIB_CFLAGS)
+--- src/statusicon.c.orig	2020-07-07 08:50:37 UTC
++++ src/statusicon.c
+@@ -74,9 +74,7 @@ gtk_status_icon_clicked( GtkStatusIcon *status_icon, g
+ 
+     if( xkb_config_get_group_count() > 2 )
+     {
+-        gtk_menu_popup( GTK_MENU( lb_mouse_popup ), NULL, NULL,
+-                        gtk_status_icon_position_menu, status_icon,
+-                        0, gtk_get_current_event_time() );
++        gtk_menu_popup_at_pointer( GTK_MENU( lb_mouse_popup ), NULL );
+     }
+     else
+     {
+@@ -116,9 +114,7 @@ gtk_status_icon_popup_menu( GtkStatusIcon *status_icon
+     if( status_icon == NULL )
+         return;
+ 
+-    gtk_menu_popup( GTK_MENU( rb_mouse_popup ),
+-                    NULL, NULL, gtk_status_icon_position_menu, status_icon, button,
+-                    activate_time );
++    gtk_menu_popup_at_pointer( GTK_MENU( rb_mouse_popup ), NULL );
+ }
+ 
+ void
+@@ -153,7 +149,7 @@ statusicon_update_current_image( void )
+         }
+ 
+         gtk_status_icon_set_from_pixbuf( trayicon, pixmap );
+-        gtk_status_icon_set_tooltip( trayicon, g_ascii_strup( group_name, -1 ) );
++        gtk_status_icon_set_tooltip_text( trayicon, g_ascii_strup( group_name, -1 ) );
+     }
+     else if( icon_type == APPINDICATOR )
+     {
+@@ -220,7 +216,7 @@ statusicon_update_menu( void )
+     if( icon_type == APPINDICATOR )
+     {
+         // Separator
+-        mi = gtk_menu_item_new();
++        mi = gtk_separator_menu_item_new();
+         gtk_widget_show( mi );
+         gtk_menu_shell_append( GTK_MENU_SHELL( lb_mouse_popup ), mi );
+         gtk_widget_set_sensitive( mi, FALSE );
+@@ -231,20 +227,21 @@ statusicon_update_menu( void )
+         rb_mouse_popup = gtk_menu_new();
+     }
+ 
+-    mi = gtk_image_menu_item_new_from_stock( GTK_STOCK_ABOUT, NULL );
++    mi = gtk_image_menu_item_new_from_stock( "gtk-about", NULL );
+     g_signal_connect( G_OBJECT( mi ), "activate", (GCallback)xkb_about, NULL );
+     gtk_menu_shell_append( GTK_MENU_SHELL( rb_mouse_popup ), mi );
+     gtk_widget_show( mi );
+ 
+     if( icon_type == SYSTRAY )
+     {
+-        mi = gtk_menu_item_new();
++        // Separator
++        mi = gtk_separator_menu_item_new();
+         gtk_widget_show( mi );
+         gtk_menu_shell_append( GTK_MENU_SHELL( rb_mouse_popup ), mi );
+         gtk_widget_set_sensitive( mi, FALSE );
+     }
+ 
+-    mi = gtk_image_menu_item_new_from_stock( GTK_STOCK_QUIT, NULL );
++    mi = gtk_image_menu_item_new_from_stock( "gtk-quit", NULL );
+     g_signal_connect( G_OBJECT( mi ), "activate", (GCallback)xkb_main_quit, NULL );
+     gtk_menu_shell_append( GTK_MENU_SHELL( rb_mouse_popup ), mi );
+     gtk_widget_show( mi );
+--- src/xkb-callbacks.c.orig	2019-08-09 18:09:51 UTC
++++ src/xkb-callbacks.c
+@@ -74,12 +74,18 @@ xkb_about( void )
+         GtkWidget* about_dialog = gtk_about_dialog_new();
+         gtk_window_set_icon(
+             (GtkWindow*)about_dialog,
+-            gtk_widget_render_icon(about_dialog, GTK_STOCK_ABOUT, GTK_ICON_SIZE_DIALOG, NULL)
++            gtk_icon_theme_load_icon(
++                gtk_icon_theme_get_default(),
++                "gtk-about",
++                GTK_ICON_SIZE_DIALOG,
++                0,
++                NULL
++            )
+         );
+ 
+-        const gchar* authors[] = { AUTHORS, NULL };
++        const gchar** authors = (const gchar**) g_strsplit( AUTHORS, "\n", -1 );
+         gtk_about_dialog_set_authors( (GtkAboutDialog*)about_dialog, authors );
+-        gtk_about_dialog_set_name( (GtkAboutDialog*)about_dialog, PACKAGE );
++        gtk_about_dialog_set_program_name( (GtkAboutDialog*)about_dialog, PACKAGE );
+         gtk_about_dialog_set_version( (GtkAboutDialog*)about_dialog, VERSION );
+         gtk_about_dialog_set_comments( (GtkAboutDialog*)about_dialog, DESCRIPTION );
+         gtk_about_dialog_set_website( (GtkAboutDialog*)about_dialog, PACKAGE_URL );



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104120957.13C9v8iM035894>