Closed totaam closed 3 years ago
So... the change was not included in 3.24.29 released in April, but it should be in 3.24.30 released just 2 days ago.
First thing: merged the 3.24.29 update from upstream: eb54185d85043263d8defebcd048be4ea2b77981
Then updated to 3.24.30 810de8e08bcb4c1351185f4597d6f36c4b2bcbb8, which failed to build in many places because it looked for the symbols in the dylib already installed instead of the one it just built! ie:
dyld: Symbol not found: _gtk_file_chooser_widget_accessible_get_type
Referenced from: /Volumes/OSX-10.14.x-Dev/cache-jhbuild/build/gtk+-3.24.30/tmp-introspecth6jnu6ek/Gtk-3.0
Expected in: /Users/macos/gtk/inst/lib/libgtk-3.0.dylib
in /Volumes/OSX-10.14.x-Dev/cache-jhbuild/build/gtk+-3.24.30/tmp-introspecth6jnu6ek/Gtk-3.0
Command '['/Volumes/OSX-10.14.x-Dev/cache-jhbuild/build/gtk+-3.24.30/tmp-introspecth6jnu6ek/Gtk-3.0', '--introspect-dump=/Volumes/OSX-10.14.x-Dev/cache-jhbuild/build/gtk+-3.24.30/tmp-introspecth6jnu6ek/functions.txt,/Volumes/OSX-10.14.x-Dev/cache-jhbuild/build/gtk+-3.24.30/tmp-introspecth6jnu6ek/dump.xml']' died with <Signals.SIGABRT: 6>.
[736/1288] Compiling C object demos/gtk-demo/gtk3-demo.p/paint.c.o
Solved by skipping any file that failed to build and then copying the resulting libgtk-3.0.dylib
over. Next build goes through fine.
Next hurdle: the new compatibility header file refers to a header file which does not exist!
In file included from xpra/platform/darwin/gdk3_bindings.c:758:
/Users/macos/gtk/inst/include/gtk-3.0/gdk/quartz/gdkquartz-cocoa-access.h:28:10: fatal error: 'gdk/quartz/gdkquartz.h' file not found
#include <gdk/quartz/gdkquartz.h>
^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Simply commenting out this include finally allows us to build xpra with an almost pristine newer GTK version and avoid the crash!
The better fix is to use the correct path in that header file:
#include <gdk/gdkquartz.h>
The correct fix for gdk/gdkquartz.h
is in https://github.com/Xpra-org/gtk-osx-build/blob/master/patches/gtk-3-24-36-quartz-cocoa-access-path.patch
Submitted upstream: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5648
I believe this is identical to https://github.com/Xpra-org/xpra/issues/2822.
We either need to update the patch or find another way to safely access the underlying window. Perhaps using https://gitlab.gnome.org/jralls/gtk/-/commit/242b76a7711ab6326a220f9e65e6fc282dc2f8b1 : How about moving the two function decls to a new, public header that has to be specifically included if one wants access to the AppKit shim functions