Skip to content

Commit

Permalink
x11-toolkits/gtk30: Update to 3.24.38
Browse files Browse the repository at this point in the history
- Switch to DISTVERSION
- Switch to meson build
- Fix ATK_BRIGDE option (deps run detection: #PR269963)
- Group backends into multi option (at least one backend needed to build)
- Pet portlint, portclippy and portfmt

ChangeLog:	https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/NEWS
PR:		269963, 275567
Exp-run by:	antoine
  • Loading branch information
nunotexbsd committed Dec 23, 2023
1 parent 3693c21 commit 0a1dd69
Show file tree
Hide file tree
Showing 11 changed files with 820 additions and 907 deletions.
107 changes: 48 additions & 59 deletions x11-toolkits/gtk30/Makefile
@@ -1,11 +1,7 @@
# Please keep gtk30 in sync with the following x11-themes ports:
# adwaita-icon-theme, gnome-themes-standard and mate-themes

PORTNAME= gtk
PORTVERSION= 3.24.34
PORTREVISION= 1
DISTVERSION= 3.24.38 # sync with x11-themes: adwaita-icon-theme, gnome-themes-standard and mate-themes
CATEGORIES= x11-toolkits
MASTER_SITES= GNOME/sources/gtk+/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}
MASTER_SITES= GNOME/sources/gtk+/${DISTVERSION:R}
PKGNAMESUFFIX= 3
DISTNAME= gtk+-${PORTVERSION}
DIST_SUBDIR= gnome
Expand All @@ -16,82 +12,73 @@ WWW= https://www.gtk.org/

LICENSE= LGPL20

PORTSCOUT= limit:1,even

LIB_DEPENDS= libepoxy.so:graphics/libepoxy \
libfribidi.so:converters/fribidi \
libfontconfig.so:x11-fonts/fontconfig \
libfreetype.so:print/freetype2 \
libfribidi.so:converters/fribidi \
libharfbuzz.so:print/harfbuzz
RUN_DEPENDS+= hicolor-icon-theme>=0:misc/hicolor-icon-theme \
adwaita-icon-theme>=0:x11-themes/adwaita-icon-theme
RUN_DEPENDS= adwaita-icon-theme>=0:x11-themes/adwaita-icon-theme \
hicolor-icon-theme>=0:misc/hicolor-icon-theme

USE_PERL5= build
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
USE_GNOME= atk cairo gdkpixbuf2 introspection:build pango \
librsvg2:run gtk-update-icon-cache
USES= compiler:c11 cpe gettext gmake gnome libtool localbase \
pathfix perl5 pkgconfig tar:xz
USES= compiler:c11 cpe gettext gnome localbase meson ninja pathfix \
perl5 pkgconfig python shebangfix tar:xz
CPE_VENDOR= gnome
CONFIGURE_ARGS= --enable-introspection
CPPFLAGS+= -fno-omit-frame-pointer
INSTALL_TARGET= install-strip

LIBVERSION= 0.2404.30
PLIST_SUB+= LIBVERSION=${LIBVERSION}

USE_GNOME= atk cairo gdkpixbuf2 gtk-update-icon-cache pango \
introspection:build librsvg2:run
GLIB_SCHEMAS= org.gtk.Demo.gschema.xml \
org.gtk.Settings.ColorChooser.gschema.xml \
org.gtk.Settings.Debug.gschema.xml \
org.gtk.Settings.EmojiChooser.gschema.xml \
org.gtk.Settings.FileChooser.gschema.xml
USE_LDCONFIG= yes
USE_PERL5= build
SHEBANG_GLOB= *.py

MESON_ARGS= -Dtests=false

OPTIONS_DEFINE= ATK_BRIDGE CUPS COLORD DEBUG BROADWAY WAYLAND X11
OPTIONS_DEFAULT=ATK_BRIDGE CUPS COLORD BROADWAY WAYLAND X11
OPTIONS_SUB= yes
PORTSCOUT= limit:1,even

LIBVERSION= 0.2406.32
PLIST_SUB+= LIBVERSION=${LIBVERSION}

OPTIONS_DEFINE= ATK_BRIDGE COLORD CUPS DEBUG DOCS
OPTIONS_DEFAULT= ATK_BRIDGE BROADWAY COLORD CUPS WAYLAND X11
OPTIONS_MULTI= BACKENDS
OPTIONS_MULTI_BACKENDS= BROADWAY WAYLAND X11
OPTIONS_SUB= yes

ATK_BRIDGE_DESC= AT-SPI ATK bridge support
BROADWAY_DESC= Enable GDK Broadway backend for showing GTK in the webbrowser using HTML5 and web sockets.
COLORD_DESC= Color profile support
WAYLAND_DESC= GDK Wayland backend
X11_DESC= GDK X11 backend

ATK_BRIDGE_DESC=AT-SPI ATK bridge support
ATK_BRIDGE_CONFIGURE_WITH= atk-bridge
ATK_BRIDGE_IMPLIES= X11
ATK_BRIDGE_LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core
ATK_BRIDGE_MESON_TRUE= atk_bridge

BROADWAY_DESC= Enable GDK Broadway backend for showing GTK in the webbrowser using HTML5 and web sockets.
BROADWAY_CONFIGURE_ENABLE= broadway-backend
BROADWAY_MESON_TRUE= broadway_backend

COLORD_DESC= Color profile support
COLORD_LIB_DEPENDS= libcolord.so:graphics/colord
COLORD_CONFIGURE_ENABLE=colord
COLORD_MESON_YES= colord

CUPS_LIB_DEPENDS= libcups.so:print/cups
CUPS_CONFIGURE_ENABLE= cups
CUPS_MESON_ON= -Dprint_backends=cups,file,lpr
CUPS_MESON_OFF= -Dprint_backends=file,lpr

# don't explicitly disable debug, this causes segfaults. See ports r437293
DEBUG_CONFIGURE_ON= --enable-debug=yes
DEBUG_MESON_ON= --buildtype=debug

DOCS_BUILD_DEPENDS= gtk-doc>0:textproc/gtk-doc
DOCS_MESON_TRUE= gtk_doc man

WAYLAND_DESC= GDK Wayland backend
WAYLAND_CONFIGURE_ENABLE= wayland-backend
WAYLAND_BUILD_DEPENDS= wayland-protocols>=0:graphics/wayland-protocols
WAYLAND_LIB_DEPENDS= libwayland-egl.so:graphics/wayland \
libxkbcommon.so:x11/libxkbcommon
WAYLAND_RUN_DEPENDS= gsettings-desktop-schemas>=0:devel/gsettings-desktop-schemas
WAYLAND_USES= gl
WAYLAND_USE= GL=egl

X11_DESC= GDK X11 backend
X11_CONFIGURE_ENABLE= x11-backend
X11_USES= xorg
X11_USE= XORG=x11,xcomposite,xcursor,xdamage,xext,xfixes,xi,xinerama,xrandr,xrender

post-patch:
@${REINPLACE_CMD} -e 's|[{]libdir[}]/locale|{datadir}/locale|g' \
${WRKSRC}/configure
WAYLAND_MESON_TRUE= wayland_backend

pre-configure-X11-on:
# .if !exists() evaluates too early before cairo has a chance to be installed
@if ! pkg-config --exists cairo-xlib; then \
${ECHO_MSG} "${PKGNAME}: Needs cairo with X11 support enabled."; \
${FALSE}; \
fi
X11_USES= xorg
X11_USE= XORG=x11,xcomposite,xcursor,xdamage,xext,xfixes,xi,xinerama,xrandr,xrender
X11_MESON_TRUE= x11_backend

pre-build:
@${RM} -r ${WRKSRC}/docs/gtk.info*
Expand All @@ -100,7 +87,9 @@ post-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/gtk-3.0/modules
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/gtk-3.0/${GTK3_VERSION}/engines
@${MKDIR} ${STAGEDIR}${PREFIX}/lib/gtk-3.0/${GTK3_VERSION}/loaders
${INSTALL_MAN} ${WRKSRC}/docs/reference/gtk/gtk-query-immodules-3.0.1 \
${STAGEDIR}${PREFIX}/man/man1

pre-test:
${RM} ${CONFIGURE_COOKIE} ${BUILD_COOKIE}
${MAKE} -C${.CURDIR} build MESON_ARGS="${MESON_ARGS} --reconfigure -Dtests=true"

.include <bsd.port.mk>
6 changes: 3 additions & 3 deletions x11-toolkits/gtk30/distinfo
@@ -1,3 +1,3 @@
TIMESTAMP = 1657915097
SHA256 (gnome/gtk+-3.24.34.tar.xz) = dbc69f90ddc821b8d1441f00374dc1da4323a2eafa9078e61edbe5eeefa852ec
SIZE (gnome/gtk+-3.24.34.tar.xz) = 21587592
TIMESTAMP = 1702200536
SHA256 (gnome/gtk+-3.24.38.tar.xz) = ce11decf018b25bdd8505544a4f87242854ec88be054d9ade5f3a20444dd8ee7
SIZE (gnome/gtk+-3.24.38.tar.xz) = 12398104
11 changes: 0 additions & 11 deletions x11-toolkits/gtk30/files/patch-Makefile.in

This file was deleted.

124 changes: 36 additions & 88 deletions x11-toolkits/gtk30/files/patch-atk-bridge-option
@@ -1,120 +1,68 @@
Revert https://gitlab.gnome.org/GNOME/gtk/-/commit/ed8203e700aa
NetBSD pkgsrc patch

--- config.h.in.orig 2019-07-03 20:26:06 UTC
+++ config.h.in
@@ -10,6 +10,9 @@
/* Disable deprecation warnings from glib */
#undef GLIB_DISABLE_DEPRECATION_WARNINGS

+/* Define to use atk-bridge-2.0 */
+#undef HAVE_ATK_BRIDGE
+
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#undef HAVE_BIND_TEXTDOMAIN_CODESET

--- config.h.meson.orig 2019-06-17 17:04:21 UTC
+++ config.h.meson
@@ -11,6 +11,9 @@
/* Disable deprecation warnings from glib */
#mesondefine GLIB_DISABLE_DEPRECATION_WARNINGS

+/* Define to use atk-bridge-2.0 */
+#mesondefine HAVE_ATK_BRIDGE
+
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#mesondefine HAVE_BIND_TEXTDOMAIN_CODESET

--- configure.orig 2019-07-03 20:26:06 UTC
+++ configure
@@ -1061,6 +1061,7 @@ enable_glibtest
enable_modules
with_included_immodules
with_x
+with_atk_bridge
enable_win32_gles
enable_cups
enable_papi
@@ -1838,6 +1839,7 @@ Optional Packages:
--with-included-immodules=MODULE1,MODULE2,...
build the specified input methods into gtk
--with-x use the X Window System
+ --without-atk-bridge Do not use AT-SPI ATK bridge
--with-html-dir=PATH path to installed docs
--with-xml-catalog=CATALOG
path to xml catalog to use
@@ -27103,8 +27105,20 @@ fi
# Check for Accessibility Toolkit flags
########################################

-if test x$enable_x11_backend = xyes; then
+
+# Check whether --with-atk-bridge was given.
+if test "${with_atk_bridge+set}" = set; then :
+ withval=$with_atk_bridge; :
+else
+ with_atk_bridge=$enable_x11_backend
+fi
+
+
+if test x$with_atk_bridge != xno; then
ATK_PACKAGES="atk atk-bridge-2.0"
+
+$as_echo "#define HAVE_ATK_BRIDGE 1" >>confdefs.h
+
else
ATK_PACKAGES="atk"
fi
--- gtk/a11y/gtkaccessibility.c.orig 2019-01-03 00:44:12 UTC
--- gtk/a11y/gtkaccessibility.c.orig 2023-05-22 02:22:08 UTC
+++ gtk/a11y/gtkaccessibility.c
@@ -37,7 +37,7 @@
#include <gtk/gtktogglebutton.h>
@@ -38,8 +38,10 @@
#include <gtk/gtkaccessible.h>

-#ifdef GDK_WINDOWING_X11
#ifdef GDK_WINDOWING_X11
+#ifdef HAVE_ATK_BRIDGE
#include <atk-bridge.h>
#endif
+#endif

@@ -988,7 +988,7 @@ _gtk_accessibility_init (void)
_gtk_accessibility_override_atk_util ();
static gboolean gail_focus_watcher (GSignalInvocationHint *ihint,
guint n_param_values,
@@ -989,7 +991,9 @@ _gtk_accessibility_init (void)
do_window_event_initialization ();

-#ifdef GDK_WINDOWING_X11
#ifdef GDK_WINDOWING_X11
+#ifdef HAVE_ATK_BRIDGE
atk_bridge_adaptor_init (NULL, NULL);
+#endif
#endif

--- meson.build.orig 2020-12-06 00:49:26 UTC
atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL);
--- meson.build.orig 2023-05-22 02:22:08 UTC
+++ meson.build
@@ -576,7 +576,7 @@ if x11_enabled
@@ -137,6 +137,7 @@ win32_enabled = get_option('win32_backend')
broadway_enabled = get_option('broadway_backend')
quartz_enabled = get_option('quartz_backend')
win32_enabled = get_option('win32_backend')
+atkbridge_enabled = get_option('atk_bridge')

os_unix = false
os_linux = false
@@ -564,7 +565,10 @@ if x11_enabled
xfixes_dep = dependency('xfixes', required: false)
xcomposite_dep = dependency('xcomposite', required: false)
fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep'])
- atkbridge_dep = dependency('atk-bridge-2.0', version: at_spi2_atk_req)
+ atkbridge_dep = dependency('atk-bridge-2.0', version: at_spi2_atk_req, required: get_option('atk-bridge'))
+ if atkbridge_enabled
atkbridge_dep = dependency('atk-bridge-2.0', version: at_spi2_atk_req)
+ cdata.set('HAVE_ATK_BRIDGE', 1)
+ endif

x11_pkgs = ['fontconfig', 'x11', 'xext', 'xi', 'xrandr']
backend_immodules += ['xim']

@@ -593,7 +593,10 @@ if x11_enabled
@@ -583,7 +587,9 @@ if x11_enabled
x11_pkgs += ['xdamage']
endif

- atk_pkgs += ['atk-bridge-2.0']
+ if atkbridge_dep.found()
+ atk_pkgs += ['atk-bridge-2.0']
+ cdata.set('HAVE_ATK_BRIDGE', 1)
+ if atkbridge_enabled
atk_pkgs += ['atk-bridge-2.0']
+ endif

cdata.set('HAVE_XDAMAGE', xdamage_dep.found() ? 1 : false)
cdata.set('HAVE_XCURSOR', xcursor_dep.found() ? 1 : false)
--- meson_options.txt.orig 2019-06-17 18:03:27 UTC
--- meson_options.txt.orig 2023-05-22 02:22:08 UTC
+++ meson_options.txt
@@ -13,6 +13,8 @@ option('mir_backend', type: 'boolean', value: false,
description : 'Enable the Mir gdk backend')
@@ -9,6 +9,8 @@ option('quartz_backend', type: 'boolean', value: true,
description : 'Enable the Windows gdk backend (only when building on Windows)')
option('quartz_backend', type: 'boolean', value: true,
description : 'Enable the macOS gdk backend (only when building on macOS)')
+option('atk_bridge', type: 'boolean', value: true,
+ description : 'Enable Atk bridge')

# Optional dependencies
+option('atk-bridge', type: 'boolean', value: 'true',
+ description : 'Enable AT-SPI ATK bridge support')
option('xinerama', type: 'combo', choices : ['yes', 'no', 'auto'], value : 'auto',
description : 'Enable support for the Xinerama extension')
option('cloudproviders', type: 'boolean', value: false,
28 changes: 0 additions & 28 deletions x11-toolkits/gtk30/files/patch-configure

This file was deleted.

20 changes: 0 additions & 20 deletions x11-toolkits/gtk30/files/patch-docs_Makefile.in

This file was deleted.

10 changes: 0 additions & 10 deletions x11-toolkits/gtk30/files/patch-docs_reference_gtk_Makefile.in

This file was deleted.

10 changes: 10 additions & 0 deletions x11-toolkits/gtk30/files/patch-docs_reference_gtk_meson.build
@@ -0,0 +1,10 @@
--- docs/reference/gtk/meson.build.orig 2023-12-11 10:53:44 UTC
+++ docs/reference/gtk/meson.build
@@ -500,7 +500,6 @@ if get_option('man') and xsltproc.found()

man_files = [
[ 'gtk-query-immodules-3.0', '1', ],
- [ 'gtk-update-icon-cache', '1', ],
[ 'gtk-encode-symbolic-svg', '1', ],
[ 'gtk-launch', '1', ],
[ 'gtk-builder-tool', '1', ],

0 comments on commit 0a1dd69

Please sign in to comment.