GNOME Bugzilla – Bug 774766
Cage Transform tool freezes Gimp
Last modified: 2017-07-15 19:15:40 UTC
Created attachment 340382 [details] lspci and some other system info Issue: When defining a cage everything proceeds well until closing the cage by clicking on the start point and completing the loop. The round throbber starts and seems to work until the circle is almost closed, and then Gimp freezes. I can still move the Cage Transform cursor around but can't click on anything and the keyboard has no affect on the Gimp application either. It does all this with absolutely no error message until I get the standard question that lets me kill Gimp or wait longer for it to become responsive again. It never becomes active again even after waiting half an hour. System: I have a two year old computer with a four core i5-4690K CPU @ 3.50GHz processor and 8GB RAM. I'm running Gimp 2.8.18 on PCLinux OS FullMonty. My graphic card is an EVGA GeForce GTX 750 Ti with a NVIDIA 367.57 driver. Attempted fixes: I first had a failure of the Cage Transform tool when editing a 1280x960 photo of some old buildings. The image had two layers, one of which I had used the Perspective Tool on, and still needing some additional tweaking I tried the Cage Transformation tool. I tried some other larger and smaller resolution images with one and two layers, but none worked with the freeze up happening on all attempts to use the tool. Bugzilla: I looked at all of the similar bugs reported, but none of the ones that seemed to match my problem had fixes that would work for me, even the ones marked as resolved. The closest match was probably 678085, which is also marked as resolved/fixed, but was of no help to me or to at least some of the others with the same problem. After finding no solution I'm reporting it as a new bug. Is there an older or newer beta version of Gimp that doesn't have this problem. I'll send more info if requested. Any fix or workaround will be much appreciated.
Can you tell what version of gegl the GIMP 2.8.18 package of your distro depends on? If it is gegl-0.3, then this is the same as bug 770848, also known as https://bugs.launchpad.net/ubuntu/+source/gimp/+bug/1576977 (if PCLinux OS uses Ubuntu packages without further modifications, then it is that one).
I can confirm the issue on these two systems: Ubuntu Wily (i386), Gimp 2.8.14, Gegl version 0.3.0, Debian Testing (i386), Gimp 2.8.18-1, Gegl version 0.3.8-3 Creating a blank 640 x 400; selecting 'cage transform'; creating some points; clicking on the first point (to finish the selection); gimp becomes unresponsive shoving a green loading-pie with the text 'cage transform'.
I can confirm the bug still exists in gimp 2.8.16, gegl version 0.3.0. Are there any plans to add a fix or workaround in gimp 2.8.x, or do Ubuntu users have to use the development 2.9 series?
An approach for Ubuntu users would be to get Ubuntu to build GIMP 2.8 against gegl-0.2, just like the original source without this Ubuntu-specific modification: https://git.gnome.org/browse/gimp/tree/configure.ac?h=gimp-2-8#n527
Another option would be to use an "if" statement. From the bug fix to bug #678085, we could add an "if" statement that detects GEGL_MINOR_VERSION and acts accordingly. See the workaround at: https://github.com/GNOME/gimp/commit/b5546ac0ac4a30bfd31ccc75c22f722a1c38dee1 Corresponding code with the "if" would be something like this: if(GEGL_MINOR_VERSION<3) { /* workaround for ubuntu bug */ cage_transform_signals[PROGRESS] = g_signal_new ("progress", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, gimp_marshal_VOID__DOUBLE, G_TYPE_NONE, 0); } else { /* for distributions with the correct version of gegl */ cage_transform_signals[PROGRESS] = g_signal_new ("progress", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, gimp_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); }
Sorry, that should have said GEGL_MINOR_VERSION>=3 Obviously, I haven't tested it yet. I'm just asking for thoughts on whether this is an acceptable approach to a solution.
The point I'm trying to make is this. People have submitted fixes for this bug (two now, I think) and as far as I can tell, neither fix has any disadvantages. The fixes are not in gimp 2.8.x. A lot of users, like me, are stuck with a specific distribution for one reason or another and have to use a version of gimp that was compiled with the wrong gegl. You just have to accept a few lines of changes (see related bugs for the patches) and we'll be able to use the cage transform again. Near as I can tell, one of two things are happening in the gimp development world: 1. There is some problem with the patches that I'm not seeing. If so, you can use a "#if" or "if" to enable the patch only for gegl 0.3.0, as suggested two messages ago. (Though, obviously it would need to be tested first.) 2. OR: developers are refusing to fix this because they blame the distribution maintainers for the problem (due to using gegl 3.0). In that case, I ask you to show your benevolence and put in a workaround for the benefit of innocent users that are stuck with buggy, ill-maintained, distributions. With hope for benevolence, Sam Trahan
We have one patch, which is applied to the gimp master development branch - and the author thinks this does not apply to gimp-2-8, see https://bugzilla.gnome.org/show_bug.cgi?id=770848#c2 There's one patch in Launchpad, based on the previously mentioned one. Its author admits it has some issues (but chose to not care about them): https://bugs.launchpad.net/ubuntu/+source/gimp/+bug/1614593/comments/4 As far as I can tell, we do not have a patch that works fully. I'd love to be proven wrong about this.
We don't need several bugs about this mis-packaging, resolving as duplicate. *** This bug has been marked as a duplicate of bug 770848 ***