Re: [gtk-osx-users] Best way to modify a source in a jhbuild environment
- From: John Ralls <jralls ceridwen us>
- To: Gabriele Greco <gabrielegreco gmail com>
- Cc: gtk-osx-users-list gnome org
- Subject: Re: [gtk-osx-users] Best way to modify a source in a jhbuild environment
- Date: Tue, 9 Apr 2019 08:28:18 -0700
On Apr 9, 2019, at 7:27 AM, Gabriele Greco via gtk-osx-users-list <gtk-osx-users-list gnome org> wrote:
Hi guys,
I was trying to fix a bug in GTK ( https://gitlab.gnome.org/GNOME/gtk/issues/1437 ) but I have a few
problems integrating my fix with the GTK OSX build system, specifically I'd like to add it like one of the
patches in the entry in the moduleset:
[...]
<!--patch
file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/0004-Bug-571582-GtkSelection-implementation-for-quartz.patch"
strip="1"/-->
<patch
file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/0008-Implement-GtkDragSourceOwner-pasteboardChangedOwner.patch"
strip="1"/>
<patch
file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/0006-Bug-658722-Drag-and-Drop-sometimes-stops-working.patch"
strip="1"/>
[...]
... in the moduleset file, so, after generating my test patch for gtk 2.24.32 here is what I did:
modified:
.jhbuildrc-custom to point to a local moduleset:
moduleset = "/Users/gabry/projects/gtk-osx/modulesets-stable/gtk-osx.modules"
... edited the given moduleset so that in the "gtk+" module specification there is an addictional line:
<patch file="/Users/gabry/projects/patches/fix-cgcontext.patch" strip="1"/>
... fix-cgcontext.patch is a patch in git diff format.
jhbuild build gtk+
rebuilds gtk but my patch is not applied (I can check it looking at the source files during compilation)
I'm attaching my patch based on the GTK 3.x ones, my goal is to fix the 10.14 dark mode problems of gtk
2.x. (https://gitlab.gnome.org/GNOME/gtk/issues/1437)
I can build GTK using autotools (./configure --prefix /usr/local/gtk --with-gdktarget=quartz
--enable-quartz-relocation --disable-introspection) and replacing my local binaries, but I wanted to test
the patch in a jhbuild environment...
BTW the patch to gtk+ is not enough from what I see there is a problem with CGContext also inside cairo:
Assertion failed: (s->stack->next != NULL), function CGGStackRestore, file
/BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreGraphics/CoreGraphics-1249.2/CoreGraphics/Context/CGGStack.c,
line 77.
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff7014523e __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff701fbc1c pthread_kill + 285
2 libsystem_c.dylib 0x00007fff700ae1c9 abort + 127
3 libsystem_c.dylib 0x00007fff70076868 __assert_rtn + 320
4 com.apple.CoreGraphics 0x00007fff431e817e CGGStackRestore + 143
5 com.apple.CoreGraphics 0x00007fff431e80cf CGContextRestoreGState + 32
6 libcairo.2.dylib 0x00000001069cc6a7 _cairo_quartz_surface_finish + 87
7 libcairo.2.dylib 0x0000000106994eb2 _cairo_surface_finish + 50
8 libcairo.2.dylib 0x00000001069948ed cairo_surface_finish + 125
9 libgdk-quartz-2.0.0.dylib 0x00000001067c14de gdk_window_drop_cairo_surface + 46
10 libgdk-quartz-2.0.0.dylib 0x00000001067c2bd9 _gdk_window_destroy_hierarchy + 1049
11 libgdk-quartz-2.0.0.dylib 0x00000001067c2e0d gdk_window_destroy + 29
12 libgtk-quartz-2.0.0.dylib 0x000000010653d324 gtk_widget_real_unrealize + 260
13 libgtk-quartz-2.0.0.dylib 0x000000010654de6d gtk_window_unrealize + 269
14 libgtk-quartz-2.0.0.dylib 0x0000000106374a90 g_cclosure_marshal_VOID__VOID + 224
Did you delete the source gtk+-2.24.32 directory before building? Patches are applied at checkout, not build.
As for the CoreGraphics assert it seems that the auxiliary CGContext is getting corrupted somewhere. I
suggest that you set a watchpoint on it at creation and see if perhaps it's gotten freed without NULLing the
surface's reference.
Regards,
John Ralls
[
Date Prev][
Date Next] [
Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]