gtk3: bump version

* wayland backend
* switch to meson build
* recipe cleanup
This commit is contained in:
Gerasim Troeglazov
2022-11-18 20:13:58 +10:00
parent f2c1726768
commit 2d76af2bbc
6 changed files with 1322 additions and 1257 deletions

View File

@@ -0,0 +1,8 @@
#!/bin/sh
SYSTEM_DATA_DIR="`finddir B_SYSTEM_DATA_DIRECTORY`"
NONPACKAGED_DATA_DIR="`finddir B_SYSTEM_NONPACKAGED_DATA_DIRECTORY`"
mkdir -p $NONPACKAGED_DATA_DIR/glib-2.0/schemas
cp -nrf $SYSTEM_DATA_DIR/glib-2.0/schemas/* $NONPACKAGED_DATA_DIR/glib-2.0/schemas
glib-compile-schemas $NONPACKAGED_DATA_DIR/glib-2.0/schemas

View File

@@ -1,126 +0,0 @@
SUMMARY="A multi-platform toolkit for creating graphical user interfaces"
DESCRIPTION="GTK is a multi-platform toolkit for creating graphical user \
interfaces. Offering a complete set of widgets, GTK is suitable for projects \
ranging from small one-off projects to complete application suites."
HOMEPAGE="https://www.gtk.org"
COPYRIGHT="GNOME Desktop"
LICENSE="GNU LGPL v2"
REVISION="6"
SOURCE_URI="https://ftp.gnome.org/pub/gnome/sources/gtk+/3.24/gtk+-$portVersion.tar.xz"
CHECKSUM_SHA256="ba75bfff320ad1f4cfbee92ba813ec336322cc3c660d406aad014b07087a3ba9"
SOURCE_DIR="gtk+-$portVersion"
PATCHES="gtk3-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
gtk3$secondaryArchSuffix = $portVersion compat >= 3
cmd:gtk_builder_tool$secondaryArchSuffix
cmd:gtk_encode_symbolic_svg$secondaryArchSuffix
cmd:gtk_launch$secondaryArchSuffix
cmd:gtk_query_immodules_3.0$secondaryArchSuffix
cmd:gtk_query_settings$secondaryArchSuffix
cmd:gtk_update_icon_cache$secondaryArchSuffix
cmd:gtk3_demo_application$secondaryArchSuffix
cmd:gtk3_demo$secondaryArchSuffix
cmd:gtk3_icon_browser$secondaryArchSuffix
cmd:gtk3_widget_factory$secondaryArchSuffix
lib:libgailutil_3$secondaryArchSuffix
lib:libgdk_3$secondaryArchSuffix = 3.2400.10 compat >= 1
lib:libgtk_3$secondaryArchSuffix = 3.2400.10 compat >= 1
"
REQUIRES="
haiku$secondaryArchSuffix
haiku_svg_icon_theme
shared_mime_info$secondaryArchSuffix
libepoxy${secondaryArchSuffix}
pango$secondaryArchSuffix
atk$secondaryArchSuffix
gdk_pixbuf$secondaryArchSuffix
xcairo$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libfribidi$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libharfbuzz$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libX11$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
PROVIDES_devel="
gtk3${secondaryArchSuffix}_devel
devel:libgtk_3$secondaryArchSuffix = 3.2400.10 compat >= 2
devel:libgdk_3$secondaryArchSuffix = 3.2400.10 compat >= 2
"
REQUIRES_devel="
gtk3$secondaryArchSuffix == $portVersion base
pango${secondaryArchSuffix}_devel
atk${secondaryArchSuffix}_devel
gdk_pixbuf${secondaryArchSuffix}_devel
xcairo${secondaryArchSuffix}_devel
devel:libglib_2.0$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libepoxy$secondaryArchSuffix
devel:libX11$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
pango${secondaryArchSuffix}_devel
atk${secondaryArchSuffix}_devel
gdk_pixbuf${secondaryArchSuffix}_devel
xcairo${secondaryArchSuffix}_devel
devel:libGL$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libepoxy$secondaryArchSuffix
devel:libX11$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoconf
cmd:automake
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:libtoolize
cmd:make
cmd:pkg_config$secondaryArchSuffix
cmd:which
"
BUILD()
{
runConfigure ./configure \
--disable-gtk-doc --with-included-immodules=xim
# build once, this will fail
make -C testsuite clean
make $jobArgs || true
# patch disable some things in typefuncs.inc
sed -i '/gdk_x11_device_manager_xi2_get_type/s@^@//@' gtk/gtktypefuncs.inc
sed -i '/gdk_x11_device_xi2_get_type/s@^@//@' gtk/gtktypefuncs.inc
sed -i '/gdk_x11_gl_context_get_type/s@^@//@' gtk/gtktypefuncs.inc
# now build with the patched files
make $jobArgs
}
INSTALL()
{
make install
rm $libDir/*.la
fixPkgconfig
prepareInstalledDevelLibs \
libgdk-3 \
libgtk-3
packageEntries devel \
$developDir
}

View File

@@ -0,0 +1,181 @@
SUMMARY="A multi-platform toolkit for creating graphical user interfaces"
DESCRIPTION="GTK is a multi-platform toolkit for creating graphical user \
interfaces. Offering a complete set of widgets, GTK is suitable for projects \
ranging from small one-off projects to complete application suites."
HOMEPAGE="https://www.gtk.org"
COPYRIGHT="GNOME Desktop"
LICENSE="GNU LGPL v2"
REVISION="4"
SOURCE_URI="https://ftp.gnome.org/pub/gnome/sources/gtk+/3.24/gtk+-$portVersion.tar.xz"
CHECKSUM_SHA256="dbc69f90ddc821b8d1441f00374dc1da4323a2eafa9078e61edbe5eeefa852ec"
SOURCE_DIR="gtk+-$portVersion"
SOURCE_URI_2="https://github.com/lah7/gtk3-classic/archive/refs/tags/$portVersion.tar.gz"
CHECKSUM_SHA256_2="c454399ee763e083d3799b1a3d7c4078b00c852649d8fee97d0568750baf09d7"
SOURCE_DIR_2="gtk3-classic-$portVersion"
PATCHES="gtk3-$portVersion.patchset"
PATCHES_2="gtk3-classic-$portVersion.patchset"
ADDITIONAL_FILES="compile-schemas.sh"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
GLOBAL_WRITABLE_FILES="
settings/gtk-3.0/im-multipress.conf keep-old
"
POST_INSTALL_SCRIPTS="
$relativePostInstallDir/compile-schemas.sh
"
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
commandSuffix=
commandBinDir=$prefix/bin
fi
PROVIDES="
gtk3$secondaryArchSuffix = $portVersion compat >= 3
cmd:gtk_builder_tool$commandSuffix
cmd:gtk_encode_symbolic_svg$commandSuffix
cmd:gtk_launch$commandSuffix
cmd:gtk_query_immodules_3.0$commandSuffix
cmd:gtk_query_settings$commandSuffix
cmd:gtk_update_icon_cache$commandSuffix
cmd:gtk3_demo_application$commandSuffix
cmd:gtk3_demo$commandSuffix
cmd:gtk3_icon_browser$commandSuffix
cmd:gtk3_widget_factory$commandSuffix
lib:libgailutil_3$secondaryArchSuffix = 0.0.0 compat >= 0
lib:libgdk_3$secondaryArchSuffix = 3.2404.30 compat >= 3
lib:libgtk_3$secondaryArchSuffix = 3.2404.30 compat >= 3
"
REQUIRES="
haiku$secondaryArchSuffix
adwaita_icon_theme
haiku_svg_icon_theme
iso_codes
gsettings_desktop_schemas$secondaryArchSuffix
shared_mime_info$secondaryArchSuffix
lib:libatk_1.0$secondaryArchSuffix
lib:libcairo$secondaryArchSuffix
lib:libcairo_gobject$secondaryArchSuffix
lib:libepoxy$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libfribidi$secondaryArchSuffix
lib:libgdk_pixbuf_2.0$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libharfbuzz$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libpango_1.0$secondaryArchSuffix
lib:libpangocairo_1.0$secondaryArchSuffix
lib:libpangoft2_1.0$secondaryArchSuffix
lib:librsvg_2$secondaryArchSuffix
lib:libwayland_client$secondaryArchSuffix
lib:libwayland_server$secondaryArchSuffix
lib:libxkbcommon$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:wayland_server_inproc$secondaryArchSuffix
"
PROVIDES_devel="
gtk3${secondaryArchSuffix}_devel
devel:libgailutil_3$secondaryArchSuffix = 0.0.0 compat >= 0
devel:libgtk_3$secondaryArchSuffix = 3.2404.30 compat >= 3
devel:libgdk_3$secondaryArchSuffix = 3.2404.30 compat >= 3
"
REQUIRES_devel="
gtk3$secondaryArchSuffix == $portVersion base
devel:libatk_1.0$secondaryArchSuffix
devel:libcairo$secondaryArchSuffix
devel:libgdk_pixbuf_2.0$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libepoxy$secondaryArchSuffix
devel:libpango_1.0$secondaryArchSuffix
devel:libwayland_client$secondaryArchSuffix
devel:libwayland_server$secondaryArchSuffix
devel:libxkbcommon$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
iso_codes
wayland_protocols$secondaryArchSuffix
devel:libatk_1.0$secondaryArchSuffix
devel:libcairo$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libgdk_pixbuf_2.0$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libepoxy$secondaryArchSuffix
devel:libpango_1.0$secondaryArchSuffix
devel:libwayland_client$secondaryArchSuffix
devel:libwayland_server$secondaryArchSuffix
devel:libxkbcommon$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:gcc$secondaryArchSuffix
cmd:glib_compile_schemas
cmd:ld$secondaryArchSuffix
cmd:meson
cmd:ninja
cmd:patch
cmd:pkg_config$secondaryArchSuffix
cmd:wayland_scanner
cmd:which
cmd:update_mime_database$secondaryArchSuffix
"
PATCH()
{
cd $sourceDir
for file in $sourceDir2/*.patch; do patch -p1 < $file; done
}
BUILD()
{
CFLAGS="-D_BSD_SOURCE" \
LDFLAGS="-lbsd -lgnu -lnetwork" \
meson Build \
--buildtype=release \
--prefix="$prefix" \
--libdir="$libDir" \
--includedir="$includeDir" \
--bindir="$commandBinDir" \
--libexecdir="$commandBinDir" \
--datadir="$dataDir" \
--localedir="$dataDir/locale" \
--sysconfdir="$settingsDir" \
-Dx11_backend=false \
-Dwayland_backend=true \
-Dbroadway_backend=false \
-Dintrospection=false
ninja -C Build
}
INSTALL()
{
ninja install -C Build
rm -rf $dataDir/glib-2.0/schemas/gschemas.compiled
rm -rf $dataDir/icons/hicolor/icon-theme.cache
mkdir -p $postInstallDir
cp -f $portDir/additional-files/compile-schemas.sh $postInstallDir
chmod -v a+rx $postInstallDir/compile-schemas.sh
fixPkgconfig
prepareInstalledDevelLibs \
libgdk-3 \
libgtk-3 \
libgailutil-3
packageEntries devel \
$developDir
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,36 @@
From 6e3baebfa6f1596c2468e082794bd2ee6aadf4b0 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Fri, 18 Nov 2022 12:54:12 +1000
Subject: Check GTK_CSD variable for wayland also
diff --git a/csd__disabled-by-default.patch b/csd__disabled-by-default.patch
index fc6b852..a62263b 100644
--- a/csd__disabled-by-default.patch
+++ b/csd__disabled-by-default.patch
@@ -2,18 +2,18 @@ Index: b/gtk/gtkwindow.c
===================================================================
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
-@@ -4164,6 +4164,14 @@ gtk_window_enable_csd (GtkWindow *window
+@@ -4165,6 +4165,13 @@ gtk_window_enable_csd (GtkWindow *window)
}
priv->client_decorated = TRUE;
-+#ifdef GDK_WINDOWING_X11
-+ if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (widget)) && g_getenv("GTK_CSD") == FALSE)
++
++ if (g_getenv("GTK_CSD") == FALSE)
+ {
+ gtk_style_context_remove_class (gtk_widget_get_style_context (widget), GTK_STYLE_CLASS_CSD);
+ gtk_style_context_remove_class (gtk_widget_get_style_context (widget), "solid-csd");
+ priv->client_decorated = FALSE;
+ }
-+#endif
}
static void
+
--
2.37.3