<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">So here’s a very simple reproducer:<div class=""><br class=""></div><div class=""><a href="https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/examples/hello-world.c" class="">https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/examples/hello-world.c</a></div><div class=""><br class=""></div><div class="">I’m sure you know, but you build it on 10.7, for example, like this:</div><div class=""><br class=""></div><div class="">clang -g -O0  -o test `pkg-config --cflags --libs gtk+-3.0` hello-world.c</div><div class=""><br class=""></div><div class="">then you can run it, or load it into lldb (even on 10.7, works OK) and start debugging it.</div><div class=""><br class=""></div><div class="">If you want to also add debugging to gtk3, you would rebuild gtk3 with some modifications to the portfile to make debugging better, and “keep” the source code for tracing. Something like this in the gtk3 portfile would do it:</div><div class=""><br class=""></div><div class="">======</div><div class=""><div class="">$ diff -u gnome/gtk3/Portfile `port file gtk3`</div><div class="">--- gnome/gtk3/Portfile<span class="Apple-tab-span" style="white-space:pre">     </span>2022-09-10 15:42:40.000000000 -0700</div><div class="">+++ /opt/local/var/macports/sources/<a href="http://rsync.macports.org/macports/release/tarballs/ports/gnome/gtk3/Portfile" class="">rsync.macports.org/macports/release/tarballs/ports/gnome/gtk3/Portfile</a><span class="Apple-tab-span" style="white-space:pre">        </span>2023-01-16 21:36:02.000000000 -0800</div><div class="">@@ -63,6 +63,10 @@</div><div class=""> use_autoreconf      yes</div><div class=""> autoreconf.args     -fvi</div><div class=""> </div><div class="">+</div><div class="">+configure.optflags-delete -Os -O0 -O1 -O2 -O3</div><div class="">+configure.optflags-append -g -O0</div><div class="">+</div><div class=""> # gtk3 +quartz uses instancetype which is not available</div><div class=""> # before approximately Xcode 4.6 (#49391)</div><div class=""> # if building +x11 blacklist comilers that do not support C11</div><div class="">@@ -111,6 +115,8 @@</div><div class="">                     --disable-schemas-compile \</div><div class="">                     gio_can_sniff=yes</div><div class=""> </div><div class="">+configure.args-append --enable-debug=yes</div><div class="">+</div><div class=""> build.args-append   V=1 \</div><div class="">                     CPP_FOR_BUILD="${configure.cpp}"</div><div class=""> </div></div><div class="">============</div><div class=""><br class=""></div><div class="">and then to rebuild gtk3 with all the debugging and source left behind, you would do this, perhaps:</div><div class=""><br class=""></div><div class="">sudo port -f uninstall gtk3</div><div class=""><br class=""></div><div class="">(select the quartz variant to uninstall)</div><div class=""><br class=""></div><div class="">sudo port -v -s -k install gtk3 +quartz</div><div class=""><br class=""></div><div class="">and you’d then have a heavily debug-enabled gtk3 with all the source left behind, so you could step through the code with lldb and view the frame variables and hopefully steer you in the right direction.</div><div class=""><br class=""></div><div class="">My guess is the error is occurring somewhere in the pango/cairo/harfbuzz trio , so you might want to rebuild all those ports with full debugging enabled and with the source code left behind too, so you can trace those through as well.</div><div class=""><br class=""></div><div class="">Of course, upstream would be helpful. However, to ask them for help, we’d have to first upgrade/update our gtk3 port and make sure the error still happens (likely will). Also, have to survey all the patches macports adds to gtk3/glib2/pango/cairo/harfbuzz and make sure they are all defendable to upstream.</div><div class=""><br class=""></div><div class="">It’s not easy. I did some of this tonight, and I stepped through the code to see where the out of memory errors were originating, at least. They are originating, it seems to me, in the widget redraw code of gtk3, in the part that pertains to cairo I thought. But that is as far as I got.</div><div class=""><br class=""></div><div class="">As mentioned, the x11 version works nicely still, so the error is somewhere in the quartz backend, NS* code, etc, and to be honest, that stuff is hard to debug. The gtk3 interactive debugger unfortunately won’t open when gtk3 is built with the quartz backend (on 10.7 at least), so that is unfortunate.</div><div class=""><br class=""></div><div class="">Ken</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jan 12, 2023, at 5:12 AM, Ken Cunningham <<a href="mailto:ken.cunningham.webuse@gmail.com" class="">ken.cunningham.webuse@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">My guess would be to look at harfbuzz…make sure our patches there still make sense, run the test suite. It can be touchy, different compilers can change test results, etc.<br class=""><br class="">To disable one port in an overlay with minimal fuss, rename to Portfile to something else (I use Portfile.disabled), and portindex ignores it.<br class=""><br class="">K<br class=""><br class=""><blockquote type="cite" class="">On Jan 12, 2023, at 01:42, Riccardo Mottola <<a href="mailto:riccardo.mottola@libero.it" class="">riccardo.mottola@libero.it</a>> wrote:<br class=""><br class="">Hi!<br class=""><br class="">I did further tests here.<br class="">In my local repository I pinned also a previous version of pango and pang-devel, but had difficulties "upgarding" to a previous version, how can it be done cleanly?<br class=""><br class="">Then I thought of just activating some previous versions… I had a bit mess here and there when rev-upgrade , so I also set back librsvg.<br class=""><br class="">The following ports are currently installed:<br class=""> pango @1.42.4_3+quartz+x11 (active)<br class=""> pango @1.50.7_0+quartz+x11<br class=""><br class="">The following ports are currently installed:<br class=""> harfbuzz @2.8.2_0<br class=""> harfbuzz @3.4.0_0 (active)<br class=""> harfbuzz @5.2.0_0<br class=""> harfbuzz @5.3.1_0<br class=""><br class="">The following ports are currently installed:<br class=""> librsvg @2.40.20_4+quartz (active)<br class=""> librsvg @2.54.5_0<br class=""><br class=""><br class="">I don't remember if I had to touch other stuff… how can I now? Is port installed enough?<br class=""><br class="">port list outdated<br class="">Warning: The 'list' action only shows the currently available version of each port. To see installed versions, use the 'installed' action.<br class="">emacs-app                      @28.2           editors/emacs<br class="">librsvg                        @2.54.5         graphics/librsvg<br class="">pango                          @1.50.3         x11/pango<br class="">pango                          @1.50.7         x11/pango<br class=""><br class=""><br class="">emacs-app cannot be upgraded. harfbuzz here is not shown… So I don't think it is perfect.<br class=""><br class="">Anyway… I would think that the issue is between pango, harfbuzz and librsvg! Since then recompiling current gimp… has a perfectly working gimp! yay! <br class=""><br class="">Riccardo<br class=""><br class="">PS: suppose if I have pango and harfbuzz in my local port tree. I want to test with current harfbuzz. How can I "hide" it, but keeping the rest of the local port? Rename the directory? put a command in the portfile… or move the port directory away to be in case put in back.<br class=""><br class=""><br class=""><br class="">-- <br class="">Sent with GNUMail running on MacOS 10.7<br class=""><br class=""></blockquote></div></div></blockquote></div><br class=""></div></body></html>