Adrian Schröter
13e926c752
- scm scripts seems to also require the typelib for gimp. move the typelib to the main package including the requires for the babl/gegl typelibs - Added 33ab56f55406cc3cbe3cc7c0627340da1c1f2d6a.patch This properly fixes that gimp doesnt crash if it doesnt find any fonts. - guard the gdb buildrequires in a bcond debug_in_build_gimp so we can easily reenable it for future issues - replace bitstream-vera-fonts with google-noto-sans-fonts The actual font it looks for is "Warsaw Gothic" but according to https://gitlab.gnome.org/GNOME/gimp/-/issues/12640#note_2312400 it should not really need it during the build - Sync spec file with master package - add libbacktrace-devel for better backtrace support - add BR for bitstream-vera-fonts so that at least some fonts are available for the splash screen. this fixes the build crash. - cleanup lua BR as the lua plugin is experimental and shouldnt be enabled. - Add gdb.patch and gdb BR to debug https://gitlab.gnome.org/GNOME/gimp/-/issues/12640 - Import some useful patches from Fedora gimp-2.99.19-cm-system-monitor-profile-by-default.patch gimp-2.99.19-external-help-browser.patch OBS-URL: https://build.opensuse.org/package/show/graphics/gimp?expand=0&rev=79
62 lines
2.3 KiB
Diff
62 lines
2.3 KiB
Diff
commit 7694b1dc04c253a8b1c14740a1ef20f13114cd34
|
|
Author: Jehan <jehan@girinstud.io>
|
|
Date: Mon Jan 6 21:09:37 2025 +0100
|
|
|
|
Issue #12640: run in-build GIMP binary through a debugger when gdb is available.
|
|
|
|
It is not in fact a fix for #12640, only an improvement to our build
|
|
script, wrapping our calls to GIMP executables and outputting a
|
|
backtrace on a crash. This way, when people report issues during one of
|
|
the relevant calls, we may be able to diagnose.
|
|
|
|
It won't be useful for other types of failures (when the process doesn't
|
|
crash, but e.g. the script is wrong or other non-fatal bugs in GIMP).
|
|
|
|
diff --git a/meson.build b/meson.build
|
|
index e1b7450805..6c155a9bf4 100644
|
|
--- a/meson.build
|
|
+++ b/meson.build
|
|
@@ -1951,7 +1951,8 @@ subdir('app-tools')
|
|
# tool.
|
|
|
|
gimp_run_env=environment()
|
|
-gimp_run_env.set('GIMP_GLOBAL_BUILD_ROOT', meson.global_build_root())
|
|
+gimp_run_env.set('GIMP_GLOBAL_BUILD_ROOT', meson.global_build_root())
|
|
+gimp_run_env.set('GIMP_GLOBAL_SOURCE_ROOT', meson.global_source_root())
|
|
|
|
if meson.can_run_host_binaries() and have_gobject_introspection
|
|
if enable_console_bin
|
|
diff --git a/tools/debug-in-build-gimp.py b/tools/debug-in-build-gimp.py
|
|
new file mode 100644
|
|
index 0000000000..7225a7c4e4
|
|
--- /dev/null
|
|
+++ b/tools/debug-in-build-gimp.py
|
|
@@ -0,0 +1,8 @@
|
|
+def my_signal_handler (event):
|
|
+ if (isinstance(event, gdb.SignalEvent)):
|
|
+ gdb.write("Eeeeeeeeeeeek: in-build GIMP crashed!\n")
|
|
+ gdb.execute('info threads')
|
|
+ gdb.execute("thread apply all backtrace full")
|
|
+
|
|
+gdb.events.stop.connect(my_signal_handler)
|
|
+gdb.execute("run")
|
|
diff --git a/tools/in-build-gimp.sh b/tools/in-build-gimp.sh
|
|
index b1254e7e98..913fd19c80 100755
|
|
--- a/tools/in-build-gimp.sh
|
|
+++ b/tools/in-build-gimp.sh
|
|
@@ -24,7 +24,13 @@ if [ -n "$GIMP_TEMP_UPDATE_RPATH" ]; then
|
|
unset IFS
|
|
fi
|
|
|
|
-cat /dev/stdin | $GIMP_SELF_IN_BUILD "$@"
|
|
+if command -v gdb; then
|
|
+ echo RUNNING: cat /dev/stdin "|" gdb --batch -x "$GIMP_GLOBAL_SOURCE_ROOT/tools/debug-in-build-gimp.py" --args $GIMP_SELF_IN_BUILD "$@"
|
|
+ cat /dev/stdin | gdb --return-child-result --batch -x "$GIMP_GLOBAL_SOURCE_ROOT/tools/debug-in-build-gimp.py" --args $GIMP_SELF_IN_BUILD "$@"
|
|
+else
|
|
+ echo RUNNING: cat /dev/stdin "|" $GIMP_SELF_IN_BUILD "$@"
|
|
+ cat /dev/stdin | $GIMP_SELF_IN_BUILD "$@"
|
|
+fi
|
|
|
|
if [ -n "$GIMP_TEMP_UPDATE_RPATH" ]; then
|
|
export IFS=":"
|