temp/gtk4.0: fork from alpine to fix bug in PinePhone (MR 3122)
Add hack to prevent GTK4 apps to be unusable in the PinePhone. Fixes #1510 Upstream issue https://gitlab.gnome.org/GNOME/gtk/-/issues/4763 A good solution will take a bit more time but is an on-going process https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4687 [ci:skip-build]: already built successfully in CI
This commit is contained in:
parent
e822fde276
commit
72075de4e0
5 changed files with 165 additions and 0 deletions
129
temp/gtk4.0/APKBUILD
Normal file
129
temp/gtk4.0/APKBUILD
Normal file
|
@ -0,0 +1,129 @@
|
|||
# Forked from Alpine to apply patch to fix PinePhone
|
||||
# Disabled docs and broadway backend
|
||||
pkgname=gtk4.0
|
||||
pkgver=9999
|
||||
_pkgver=4.6.3
|
||||
pkgrel=0
|
||||
pkgdesc="The GTK Toolkit (v4)"
|
||||
url="https://www.gtk.org/"
|
||||
install="$pkgname.post-install $pkgname.post-upgrade $pkgname.post-deinstall"
|
||||
arch="all !s390x !riscv64" # blocked by polkit -> colord
|
||||
options="!check" # Test suite is known to fail upstream
|
||||
license="LGPL-2.1-or-later"
|
||||
subpackages="$pkgname-demo $pkgname-dev $pkgname-lang $pkgname-dbg"
|
||||
depends="shared-mime-info gtk-update-icon-cache"
|
||||
|
||||
depends_dev="
|
||||
atk-dev
|
||||
gdk-pixbuf-dev
|
||||
glib-dev
|
||||
libepoxy-dev
|
||||
libxext-dev
|
||||
libxi-dev
|
||||
libxinerama-dev
|
||||
wayland-protocols
|
||||
wayland-libs-client
|
||||
wayland-libs-cursor
|
||||
libxkbcommon-dev
|
||||
vulkan-headers
|
||||
"
|
||||
makedepends="
|
||||
$depends_dev
|
||||
perl
|
||||
cups-dev
|
||||
expat-dev
|
||||
gettext-dev
|
||||
gnutls-dev
|
||||
gobject-introspection-dev
|
||||
libice-dev
|
||||
tiff-dev
|
||||
zlib-dev
|
||||
at-spi2-atk-dev
|
||||
cairo-dev
|
||||
fontconfig-dev
|
||||
pango-dev
|
||||
wayland-dev
|
||||
libx11-dev
|
||||
libxcomposite-dev
|
||||
libxcursor-dev
|
||||
libxdamage-dev
|
||||
libxfixes-dev
|
||||
libxrandr-dev
|
||||
meson
|
||||
iso-codes-dev
|
||||
vulkan-loader-dev
|
||||
sassc
|
||||
colord-dev
|
||||
gstreamer-dev
|
||||
gst-plugins-bad-dev
|
||||
gtk-doc>=1.33
|
||||
gi-docgen
|
||||
py3-docutils
|
||||
graphene-dev
|
||||
"
|
||||
source="https://download.gnome.org/sources/gtk/${_pkgver%.*}/gtk-$_pkgver.tar.xz
|
||||
gdk-hack-context-realize.patch
|
||||
"
|
||||
|
||||
builddir="$srcdir/gtk-$_pkgver"
|
||||
|
||||
build() {
|
||||
# We don't run tests and they currently fail to build
|
||||
abuild-meson \
|
||||
-Dgtk_doc=false \
|
||||
-Dbroadway-backend=false \
|
||||
-Dman-pages=false \
|
||||
-Dbuild-tests=false \
|
||||
. output
|
||||
meson compile ${JOBS:+-j ${JOBS}} -C output
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" meson install --no-rebuild -C output
|
||||
|
||||
# use gtk-update-icon-cache from gtk+2.0 for now. The icon cache is forward
|
||||
# compatible so this is fine.
|
||||
# do the same for gtk4-update-icon-cache
|
||||
rm -f "$pkgdir"/usr/bin/gtk-update-icon-cache
|
||||
rm -f "$pkgdir"/usr/bin/gtk4-update-icon-cache
|
||||
rm -f "$pkgdir"/usr/share/man/man1/gtk-update-icon-cache.1
|
||||
}
|
||||
|
||||
demo() {
|
||||
pkgdesc="$pkgdesc (demonstration application)"
|
||||
amove \
|
||||
usr/bin/gtk4-demo \
|
||||
usr/bin/gtk4-demo-application \
|
||||
usr/bin/gtk4-icon-browser \
|
||||
usr/bin/gtk4-print-editor \
|
||||
usr/bin/gtk4-widget-factory \
|
||||
usr/share/applications/org.gtk.Demo4.desktop \
|
||||
usr/share/applications/org.gtk.IconBrowser4.desktop \
|
||||
usr/share/applications/org.gtk.PrintEditor4.desktop \
|
||||
usr/share/applications/org.gtk.WidgetFactory4.desktop \
|
||||
usr/share/glib-2.0/schemas/org.gtk.Demo4.gschema.xml \
|
||||
usr/share/gtk-4.0/gtk4builder.rng \
|
||||
usr/share/icons
|
||||
}
|
||||
|
||||
dev() {
|
||||
default_dev
|
||||
|
||||
amove \
|
||||
usr/bin/gtk4-builder-tool \
|
||||
usr/bin/gtk4-encode-symbolic-svg \
|
||||
usr/bin/gtk4-query-settings \
|
||||
usr/share/gtk-4.0/valgrind
|
||||
}
|
||||
|
||||
lang() {
|
||||
default_lang
|
||||
|
||||
# These are some localized emoji labels.
|
||||
amove usr/share/gtk-4.0/emoji
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
0e96b39a8171ccefc24808d1af8af8e3cbcc9b403c1bdfd85778ed2e824c93e3687b7baa1237b05fa35181d300eacfd6cc9f79c7a6eef70b365991f0a2769f71 gtk-4.6.3.tar.xz
|
||||
e0ab58ad4ad1ce73ac6f038144a8de0326d41c764f91d4b91864efcfff548d7a1ba1318b9c4b276821e72d8612a0677533914fd5870a1a9f2db483a4b43bff5d gdk-hack-context-realize.patch
|
||||
"
|
27
temp/gtk4.0/gdk-hack-context-realize.patch
Normal file
27
temp/gtk4.0/gdk-hack-context-realize.patch
Normal file
|
@ -0,0 +1,27 @@
|
|||
This is a hack to solve some crashes for GTK4 apps in the pinephone
|
||||
by dirty fixing an upstream bug[1]. The real fix will take longer and
|
||||
will not be trivial to backport[2]. In the meanwhile, we force a GLES
|
||||
context if it is allowed and the shared context is also using GLES,
|
||||
to avoid the creation of a GL context with wrong version. Hopefully,
|
||||
this should not have additional side-effects for other devices.
|
||||
|
||||
[1] https://gitlab.gnome.org/GNOME/gtk/-/issues/4763
|
||||
[2] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4687
|
||||
|
||||
diff --git i/gdk/gdkglcontext.c w/gdk/gdkglcontext.c
|
||||
index 3869b14da0..57a3661492 100644
|
||||
--- i/gdk/gdkglcontext.c
|
||||
+++ w/gdk/gdkglcontext.c
|
||||
@@ -280,6 +280,11 @@ gdk_gl_context_real_realize (GdkGLContext *context,
|
||||
G_GNUC_UNUSED gint64 start_time = GDK_PROFILER_CURRENT_TIME;
|
||||
|
||||
if (share != NULL)
|
||||
- gdk_gl_context_get_required_version (share, &major, &minor);
|
||||
+ {
|
||||
+ gdk_gl_context_get_required_version (share, &major, &minor);
|
||||
+ if (gdk_gl_context_get_use_es (share) &&
|
||||
+ gdk_gl_context_is_api_allowed (context, GDK_GL_API_GLES, NULL))
|
||||
+ gdk_gl_context_set_allowed_apis (context, GDK_GL_API_GLES);
|
||||
+ }
|
||||
else
|
||||
gdk_gl_context_get_required_version (context, &major, &minor);
|
3
temp/gtk4.0/gtk4.0.post-deinstall
Normal file
3
temp/gtk4.0/gtk4.0.post-deinstall
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
rm -f etc/gtk-4.0/gdk-pixbuf.loaders
|
5
temp/gtk4.0/gtk4.0.post-install
Normal file
5
temp/gtk4.0/gtk4.0.post-install
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
mkdir -p etc/gtk-4.0
|
||||
usr/bin/gdk-pixbuf-query-loaders > etc/gtk-4.0/gdk-pixbuf.loaders
|
||||
|
1
temp/gtk4.0/gtk4.0.post-upgrade
Symbolic link
1
temp/gtk4.0/gtk4.0.post-upgrade
Symbolic link
|
@ -0,0 +1 @@
|
|||
gtk4.0.post-install
|
Loading…
Reference in a new issue