Nightly GIMP MacOS builds - testing needed

I am setting-up an automated build system for OSX GIMP packages, very similar to the one I am already providing for the Linux AppImage packages.

The .dmg package is entirely compiled and bundled on Travis-CI, and directly uploaded back to github, so there is virtually no risk of viruses or other malware.

If you are a MacOS user and are willing to help improving the automated .dmg packages, please grab the first experimental package from here, and report any problem you might encounter.

Already known issues:

  • python plug-ins do not (yet) work
  • internationalisation is not yet tested

Thanks!

1 Like

Thanks for the build. This is significantly lighter-weight than McGimp, 100 vs 400 MB, but things are missing, GMIC, qt, X11. It would be nice for GIMP testing purposes to have the commit number available within the app about box and/or in the Info.plist version.

@HIRAM I will put the commit hash in the package name, for better reference.

My idea would be to provide compatible plug-ins as separate packages, thus also giving an example of how to package [plug-ins for OSX.

Did you already try to ru n the package?

Package works for me in macOS 10.12. I’ve also been able to duplicate a certain gegl crash I get in mcgimp.
I guess this is also limited to single cpu, and I see there is no OpenMP included.

Could you give me some instructions to reproduce it? I’ve volunteered to do some OSX-specific bug hunting…

All you have to do to crash is open this xcf and Flatten Image from the Layers window menu -or- Merge Down the top layer from the Layer menu.
[obsolete file link removed]

This is the error with Merge Down:

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGILL)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   gimp-2.10 [14430]

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fffe976427e _kernelrpc_mach_vm_deallocate_trap + 10
1   libsystem_kernel.dylib        	0x00007fffe976a8f4 mach_vm_deallocate + 64
2   libsystem_malloc.dylib        	0x00007fffe97c5290 deallocate_pages + 57
3   libsystem_malloc.dylib        	0x00007fffe97c455b free_large + 844
4   libgegl-0.4.0.dylib           	0x00000001030e79e8 gegl_free + 104
5   libgegl-0.4.0.dylib           	0x00000001030ff728 release_tile + 312
6   libgegl-0.4.0.dylib           	0x00000001030fee56 gegl_buffer_iterator_next + 742
7   libgegl-0.4.0.dylib           	0x0000000103130320 thread_process + 384
8   libgegl-0.4.0.dylib           	0x000000010312fae2 gegl_operation_point_composer3_process + 1618
9   libgegl-0.4.0.dylib           	0x000000010312ff83 gegl_operation_composer3_process + 339
10  GIMP                          	0x00000001024058eb gimp_operation_layer_mode_parent_process + 923
11  libgegl-0.4.0.dylib           	0x0000000103127c50 gegl_operation_process + 608
12  libgegl-0.4.0.dylib           	0x0000000103141302 gegl_graph_process + 642
13  libgegl-0.4.0.dylib           	0x00000001031403d3 gegl_eval_manager_apply + 627
14  libgegl-0.4.0.dylib           	0x0000000103137b79 gegl_node_blit_buffer + 169
15  GIMP                          	0x000000010231282e gimp_image_merge_layers + 3246
16  GIMP                          	0x0000000102313676 gimp_image_merge_down + 1862
17  GIMP                          	0x0000000101e82f8d layers_merge_down_cmd_callback + 125
18  libgobject-2.0.0.dylib        	0x00000001034d54d6 g_closure_invoke + 258
19  libgobject-2.0.0.dylib        	0x00000001034ea4d7 signal_emit_unlocked_R + 1735
20  libgobject-2.0.0.dylib        	0x00000001034eb1ef g_signal_emit_valist + 2039
21  libgobject-2.0.0.dylib        	0x00000001034eb8a6 g_signal_emit + 134
22  libgtk-quartz-2.0.0.dylib     	0x00000001028b852e _gtk_action_emit_activate + 68
23  libgobject-2.0.0.dylib        	0x00000001034d54d6 g_closure_invoke + 258
24  libgobject-2.0.0.dylib        	0x00000001034ea2bf signal_emit_unlocked_R + 1199
25  libgobject-2.0.0.dylib        	0x00000001034eb1ef g_signal_emit_valist + 2039
26  libgobject-2.0.0.dylib        	0x00000001034eb8a6 g_signal_emit + 134
27  libgobject-2.0.0.dylib        	0x00000001034d54d6 g_closure_invoke + 258
28  libgtkmacintegration-gtk2.2.dylib	0x0000000102893f0b idle_call_activate + 79
29  libgdk-quartz-2.0.0.dylib     	0x0000000102c5f186 gdk_threads_dispatch + 53
30  libglib-2.0.0.dylib           	0x0000000103547df5 g_main_context_dispatch + 266
31  libglib-2.0.0.dylib           	0x00000001035480e6 g_main_context_iterate + 418
32  libglib-2.0.0.dylib           	0x000000010354833c g_main_loop_run + 207
33  GIMP                          	0x0000000101e47fa9 app_run + 2169
34  GIMP                          	0x0000000101e4b72a main + 1402
35  libdyld.dylib                 	0x00007fffe963d235 start + 1

Well, SIGILL should be easier to find and fix than SIGSEGV :wink:

Could you please try with this new package? I have fixed the architecture compiler flags, now everything is built with -march=nocona -mno-sse3 -mtune=generic, which should be safe for most of the modern CPUs.

Thanks!

Im still having this error with Flatten Image.

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGILL)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   gimp-2.10 [22877]

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   GIMP                          	0x0000000102fedaeb gimp_operation_layer_mode_real_process + 1035
1   GIMP                          	0x0000000102fed6d1 gimp_operation_layer_mode_process + 113
2   libgegl-0.4.0.dylib           	0x0000000103d16469 thread_process + 713
3   libgegl-0.4.0.dylib           	0x0000000103d15ae2 gegl_operation_point_composer3_process + 1618
4   libgegl-0.4.0.dylib           	0x0000000103d15f83 gegl_operation_composer3_process + 339
5   GIMP                          	0x0000000102fed64b gimp_operation_layer_mode_parent_process + 923
6   libgegl-0.4.0.dylib           	0x0000000103d0dc50 gegl_operation_process + 608
7   libgegl-0.4.0.dylib           	0x0000000103d27302 gegl_graph_process + 642
8   libgegl-0.4.0.dylib           	0x0000000103d263d3 gegl_eval_manager_apply + 627
9   libgegl-0.4.0.dylib           	0x0000000103d1db79 gegl_node_blit_buffer + 169
10  GIMP                          	0x0000000102efa58e gimp_image_merge_layers + 3246
11  GIMP                          	0x0000000102efabf4 gimp_image_flatten + 804
12  GIMP                          	0x0000000102a64a66 image_flatten_image_cmd_callback + 118
13  libgobject-2.0.0.dylib        	0x00000001040b54d6 g_closure_invoke + 258
14  libgobject-2.0.0.dylib        	0x00000001040ca4d7 signal_emit_unlocked_R + 1735
15  libgobject-2.0.0.dylib        	0x00000001040cb1ef g_signal_emit_valist + 2039
16  libgobject-2.0.0.dylib        	0x00000001040cb8a6 g_signal_emit + 134
17  libgtk-quartz-2.0.0.dylib     	0x000000010349b52e _gtk_action_emit_activate + 68
18  libgobject-2.0.0.dylib        	0x00000001040b54d6 g_closure_invoke + 258
19  libgobject-2.0.0.dylib        	0x00000001040ca2bf signal_emit_unlocked_R + 1199
20  libgobject-2.0.0.dylib        	0x00000001040cb1ef g_signal_emit_valist + 2039
21  libgobject-2.0.0.dylib        	0x00000001040cb8a6 g_signal_emit + 134
22  libgtk-quartz-2.0.0.dylib     	0x0000000103641cd7 gtk_widget_activate + 73
23  libgtk-quartz-2.0.0.dylib     	0x00000001035571ea gtk_menu_shell_activate_item + 241
24  libgtk-quartz-2.0.0.dylib     	0x0000000103557d94 gtk_menu_shell_button_release + 576
25  libgtk-quartz-2.0.0.dylib     	0x00000001035475bf _gtk_marshal_BOOLEAN__BOXED + 95
26  libgobject-2.0.0.dylib        	0x00000001040b54d6 g_closure_invoke + 258
27  libgobject-2.0.0.dylib        	0x00000001040ca62a signal_emit_unlocked_R + 2074
28  libgobject-2.0.0.dylib        	0x00000001040cb24b g_signal_emit_valist + 2131
29  libgobject-2.0.0.dylib        	0x00000001040cb8a6 g_signal_emit + 134
30  libgtk-quartz-2.0.0.dylib     	0x0000000103641ae5 gtk_widget_event_internal + 573
31  libgtk-quartz-2.0.0.dylib     	0x00000001035453f0 gtk_propagate_event + 316
32  libgtk-quartz-2.0.0.dylib     	0x0000000103545004 gtk_main_do_event + 784
33  libgdk-quartz-2.0.0.dylib     	0x00000001038770fb gdk_event_dispatch + 84
34  libglib-2.0.0.dylib           	0x0000000104128df5 g_main_context_dispatch + 266
35  libglib-2.0.0.dylib           	0x00000001041290e6 g_main_context_iterate + 418
36  libglib-2.0.0.dylib           	0x000000010412933c g_main_loop_run + 207
37  GIMP                          	0x0000000102a2fc29 app_run + 2169
38  GIMP                          	0x0000000102a333aa main + 1402
39  libdyld.dylib                 	0x00007fffe963d235 start + 1

@HIRAM I can reproduce the crash, but it does not seem to be related to unsupported CPU instructions… Would it be OK if I post a bug report on bugzilla and I provide your XCF file for reproducibility?

No prob, go right ahead and make a bug report with it.

Iirc you can also get a SIGILL when using a legal instruction which requires aligned memory on unaligned memory. Just a thought…

The crash happens at this line, which looks like some simple C code without any special memory alignment requirement…

Well, as blend_out basically is assigned from a void*

                                        void                *out_p,
.
.
.
gfloat                 *out                     = out_p;
.
.
.
blend_out   = out;

it is possibly not aligned to float…

I’ve posted the bug report here. Meanwhile, I have prepared a new package with debugging symbols, so that we can obtain more informative backtraces: https://github.com/aferrero2707/gimp-osx/releases/download/continuous/gimp-osx-git-dbg-2.10.3-20180521.dmg

The crash report for Flatten Image is slightly different in this build:

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGILL)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   gimp-2.10 [37535]

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   gegl-fixups.so                	0x0000000102801a69 conv_rgba8_rgbaF + 41
1   libbabl-0.1.0.dylib           	0x00000001017feec9 babl_process_rows + 233
2   libgegl-0.4.0.dylib           	0x0000000101599fae gegl_buffer_iterate_read_simple + 1134
3   libgegl-0.4.0.dylib           	0x0000000101599715 gegl_buffer_iterate_read_dispatch + 997
4   libgegl-0.4.0.dylib           	0x0000000101594041 _gegl_buffer_get_unlocked + 865
5   libgegl-0.4.0.dylib           	0x0000000101593cd7 gegl_buffer_get_unlocked + 71
6   libgegl-0.4.0.dylib           	0x000000010159db88 get_indirect + 184
7   libgegl-0.4.0.dylib           	0x000000010159d469 load_rects + 89
8   libgegl-0.4.0.dylib           	0x000000010159ce84 gegl_buffer_iterator_next + 804
9   libgegl-0.4.0.dylib           	0x00000001015ce320 thread_process + 384
10  libgegl-0.4.0.dylib           	0x00000001015cdae2 gegl_operation_point_composer3_process + 1618
11  libgegl-0.4.0.dylib           	0x00000001015cdf83 gegl_operation_composer3_process + 339
12  GIMP                          	0x00000001008ac64b gimp_operation_layer_mode_parent_process + 923
13  libgegl-0.4.0.dylib           	0x00000001015c5c50 gegl_operation_process + 608
14  libgegl-0.4.0.dylib           	0x00000001015df302 gegl_graph_process + 642
15  libgegl-0.4.0.dylib           	0x00000001015de3d3 gegl_eval_manager_apply + 627
16  libgegl-0.4.0.dylib           	0x00000001015d5b79 gegl_node_blit_buffer + 169
17  GIMP                          	0x00000001007b958e gimp_image_merge_layers + 3246
18  GIMP                          	0x00000001007ba3d6 gimp_image_merge_down + 1862
19  GIMP                          	0x0000000100329c0d layers_merge_down_cmd_callback + 125
20  libgobject-2.0.0.dylib        	0x00000001019624d6 g_closure_invoke + 258
21  libgobject-2.0.0.dylib        	0x00000001019774d7 signal_emit_unlocked_R + 1735
22  libgobject-2.0.0.dylib        	0x00000001019781ef g_signal_emit_valist + 2039
23  libgobject-2.0.0.dylib        	0x00000001019788a6 g_signal_emit + 134
24  libgtk-quartz-2.0.0.dylib     	0x0000000100d5952e _gtk_action_emit_activate + 68
25  libgobject-2.0.0.dylib        	0x00000001019624d6 g_closure_invoke + 258
26  libgobject-2.0.0.dylib        	0x00000001019772bf signal_emit_unlocked_R + 1199
27  libgobject-2.0.0.dylib        	0x00000001019781ef g_signal_emit_valist + 2039
28  libgobject-2.0.0.dylib        	0x00000001019788a6 g_signal_emit + 134
29  libgobject-2.0.0.dylib        	0x00000001019624d6 g_closure_invoke + 258
30  libgtkmacintegration-gtk2.2.dylib	0x0000000100d38f0b idle_call_activate + 79
31  libgdk-quartz-2.0.0.dylib     	0x0000000101106186 gdk_threads_dispatch + 53
32  libglib-2.0.0.dylib           	0x00000001019d3df5 g_main_context_dispatch + 266
33  libglib-2.0.0.dylib           	0x00000001019d40e6 g_main_context_iterate + 418
34  libglib-2.0.0.dylib           	0x00000001019d433c g_main_loop_run + 207
35  GIMP                          	0x00000001002eec29 app_run + 2169
36  GIMP                          	0x00000001002f23aa main + 1402
37  libdyld.dylib                 	0x00007fffe963d235 start + 1

As is the report from Merge Down:

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGILL)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   gimp-2.10 [37640]

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   GIMP                          	0x0000000100f01b91 gimp_operation_layer_mode_composite_clip_to_backdrop + 33
1   GIMP                          	0x0000000100efdefa gimp_operation_layer_mode_real_process + 2074
2   GIMP                          	0x0000000100efd6d1 gimp_operation_layer_mode_process + 113
3   libgegl-0.4.0.dylib           	0x0000000101c29469 thread_process + 713
4   libgegl-0.4.0.dylib           	0x0000000101c28ae2 gegl_operation_point_composer3_process + 1618
5   libgegl-0.4.0.dylib           	0x0000000101c28f83 gegl_operation_composer3_process + 339
6   GIMP                          	0x0000000100efd64b gimp_operation_layer_mode_parent_process + 923
7   libgegl-0.4.0.dylib           	0x0000000101c20c50 gegl_operation_process + 608
8   libgegl-0.4.0.dylib           	0x0000000101c3a302 gegl_graph_process + 642
9   libgegl-0.4.0.dylib           	0x0000000101c393d3 gegl_eval_manager_apply + 627
10  libgegl-0.4.0.dylib           	0x0000000101c30b79 gegl_node_blit_buffer + 169
11  GIMP                          	0x0000000100e0a58e gimp_image_merge_layers + 3246
12  GIMP                          	0x0000000100e0b3d6 gimp_image_merge_down + 1862
13  GIMP                          	0x000000010097ac0d layers_merge_down_cmd_callback + 125
14  libgobject-2.0.0.dylib        	0x0000000101fc24d6 g_closure_invoke + 258
15  libgobject-2.0.0.dylib        	0x0000000101fd74d7 signal_emit_unlocked_R + 1735
16  libgobject-2.0.0.dylib        	0x0000000101fd81ef g_signal_emit_valist + 2039
17  libgobject-2.0.0.dylib        	0x0000000101fd88a6 g_signal_emit + 134
18  libgtk-quartz-2.0.0.dylib     	0x00000001013b052e _gtk_action_emit_activate + 68
19  libgobject-2.0.0.dylib        	0x0000000101fc24d6 g_closure_invoke + 258
20  libgobject-2.0.0.dylib        	0x0000000101fd72bf signal_emit_unlocked_R + 1199
21  libgobject-2.0.0.dylib        	0x0000000101fd81ef g_signal_emit_valist + 2039
22  libgobject-2.0.0.dylib        	0x0000000101fd88a6 g_signal_emit + 134
23  libgobject-2.0.0.dylib        	0x0000000101fc24d6 g_closure_invoke + 258
24  libgtkmacintegration-gtk2.2.dylib	0x000000010138cf0b idle_call_activate + 79
25  libgdk-quartz-2.0.0.dylib     	0x000000010175c186 gdk_threads_dispatch + 53
26  libglib-2.0.0.dylib           	0x0000000102034df5 g_main_context_dispatch + 266
27  libglib-2.0.0.dylib           	0x00000001020350e6 g_main_context_iterate + 418
28  libglib-2.0.0.dylib           	0x000000010203533c g_main_loop_run + 207
29  GIMP                          	0x000000010093fc29 app_run + 2169
30  GIMP                          	0x00000001009433aa main + 1402
31  libdyld.dylib                 	0x00007fffe963d235 start + 1
1 Like

PS, the Flatten Image crash also gives this reportage:

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGILL)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Illegal instruction: 4
Termination Reason:    Namespace SIGNAL, Code 0x4
Terminating Process:   gimp-2.10 [37640]

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   GIMP                          	0x0000000100f01b91 gimp_operation_layer_mode_composite_clip_to_backdrop + 33
1   GIMP                          	0x0000000100efdefa gimp_operation_layer_mode_real_process + 2074
2   GIMP                          	0x0000000100efd6d1 gimp_operation_layer_mode_process + 113
3   libgegl-0.4.0.dylib           	0x0000000101c29469 thread_process + 713
4   libgegl-0.4.0.dylib           	0x0000000101c28ae2 gegl_operation_point_composer3_process + 1618
5   libgegl-0.4.0.dylib           	0x0000000101c28f83 gegl_operation_composer3_process + 339
6   GIMP                          	0x0000000100efd64b gimp_operation_layer_mode_parent_process + 923
7   libgegl-0.4.0.dylib           	0x0000000101c20c50 gegl_operation_process + 608
8   libgegl-0.4.0.dylib           	0x0000000101c3a302 gegl_graph_process + 642
9   libgegl-0.4.0.dylib           	0x0000000101c393d3 gegl_eval_manager_apply + 627
10  libgegl-0.4.0.dylib           	0x0000000101c30b79 gegl_node_blit_buffer + 169
11  GIMP                          	0x0000000100e0a58e gimp_image_merge_layers + 3246
12  GIMP                          	0x0000000100e0b3d6 gimp_image_merge_down + 1862
13  GIMP                          	0x000000010097ac0d layers_merge_down_cmd_callback + 125
14  libgobject-2.0.0.dylib        	0x0000000101fc24d6 g_closure_invoke + 258
15  libgobject-2.0.0.dylib        	0x0000000101fd74d7 signal_emit_unlocked_R + 1735
16  libgobject-2.0.0.dylib        	0x0000000101fd81ef g_signal_emit_valist + 2039
17  libgobject-2.0.0.dylib        	0x0000000101fd88a6 g_signal_emit + 134
18  libgtk-quartz-2.0.0.dylib     	0x00000001013b052e _gtk_action_emit_activate + 68
19  libgobject-2.0.0.dylib        	0x0000000101fc24d6 g_closure_invoke + 258
20  libgobject-2.0.0.dylib        	0x0000000101fd72bf signal_emit_unlocked_R + 1199
21  libgobject-2.0.0.dylib        	0x0000000101fd81ef g_signal_emit_valist + 2039
22  libgobject-2.0.0.dylib        	0x0000000101fd88a6 g_signal_emit + 134
23  libgobject-2.0.0.dylib        	0x0000000101fc24d6 g_closure_invoke + 258
24  libgtkmacintegration-gtk2.2.dylib	0x000000010138cf0b idle_call_activate + 79
25  libgdk-quartz-2.0.0.dylib     	0x000000010175c186 gdk_threads_dispatch + 53
26  libglib-2.0.0.dylib           	0x0000000102034df5 g_main_context_dispatch + 266
27  libglib-2.0.0.dylib           	0x00000001020350e6 g_main_context_iterate + 418
28  libglib-2.0.0.dylib           	0x000000010203533c g_main_loop_run + 207
29  GIMP                          	0x000000010093fc29 app_run + 2169
30  GIMP                          	0x00000001009433aa main + 1402
31  libdyld.dylib                 	0x00007fffe963d235 start + 1
1 Like

This smells like some kind of memory corruption… I will see if this is reproducible under Linux, and if valgrind can shed some more light on what is going on.

Go ahead and trigger your Continuous Build, DrRaw!

Just started it, will let you know when it is ready…