GNOME Bugzilla – Bug 650192
GIMP-2.6.11 does NOT compile with libpng-1.5
Last modified: 2011-05-15 04:08:43 UTC
Created attachment 187819 [details] config.log The make error: ... gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -pthread -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng15 -I/usr/include/libdrm -I/usr/include -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -g -O2 -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT file-mng.o -MD -MP -MF .deps/file-mng.Tpo -c -o file-mng.o file-mng.c file-mng.c: In function 'mng_save_image': file-mng.c:972: error: dereferencing pointer to incomplete type file-mng.c:984: error: dereferencing pointer to incomplete type ---------------- <snip 24 similar error lines> --------------- file-mng.c:1068: error: dereferencing pointer to incomplete type file-mng.c:1080: error: dereferencing pointer to incomplete type make[3]: *** [file-mng.o] Error 1 make[3]: Leaving directory `/usr/src/gimp-2.6.11/plug-ins/common' <snip the few remaining lines (with depressing compile conclusion)> FWIW, please find attached config.status config.log config.txt (the screen output) SYSTEM (B)LFS i686-pc-linux-gnu, 2.6.38.6 libpng-1.5.2 cairo-1.10.2 glib-2.28.6 gtk+-2.24.3 Xorg-7.6 REASON for FAILURE Some of GIMP-2.6.11 components (file-mng in particular) have still not heeded the libPNG-1.5 requirement: "Portability Note The libpng 1.5.x series continues the evolution of the libpng API, finally hiding the contents of the venerable and hoary png_struct and png_info data structures inside private (i.e., non-installed) header files. ..." The warning is in a big red box - to catch the eye of any cyber citizen passing by) at www.libpng.org/pub/png/libpng.html Notes: 1. Some GIMP components (in particular ico-load/ico-save) have followed the libPNG-1.5 requirement and consequently, didn't fail on compile. It's as if the libpng courier carrying the "1.5.x" message managed to reach the "file-ico" group but then suffered an untoward fate on his way to the "common" compound. Release dates: gimp-2.6.11 = 2010-10-03 (for reference) libpng-1.5.0 = 2011-01-09 libpng-1.5.2 = 2011-03-31 Relatively plenty of time for a courier to reach both gimp compounds (under normal circumstances) and for _all_ groups to get with the program. 2. Out of curiosity (and in fun) I made a few required "mechanical" changes (in the process, maybe missing the intent of authors here and there) diff file-mng.c-FIXED file-mng.c 972c972 < if (setjmp (png_jmpbuf (png_ptr))) --- > if (setjmp (png_ptr->jmpbuf) != 0) 984,989c984,987 < png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); < png_info_ptr = png_create_info_struct (png_ptr); < < png_set_IHDR(png_ptr, png_info_ptr, layer_cols, layer_rows, 8 , < PNG_COLOR_TYPE_RGB, (mng_data.interlaced == 0 ? 0 : 1), < PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); --- > png_info_ptr->width = layer_cols; > png_info_ptr->height = layer_rows; > png_info_ptr->interlace_type = (mng_data.interlaced == 0 ? 0 : 1); > png_info_ptr->bit_depth = 8; With the few changes above, I've already cut the original 25 error lines ("error: dereferencing pointer to incomplete type") to 20! It took me about one hour starting from zero (i.e. not knowing the libpng API nor the "common" stuff from a hole in the ground). If the man-in-the-street can do that, a dedicated, truly _professional_ programmer should need a few minutes to make all the changes necessary in all the GIMP files to account for the now months-long transition to libpng-1.5. Thank you, -- Alex
Created attachment 187820 [details] config.status
Created attachment 187821 [details] configuration screen display
(In reply to comment #0) > It's as if the libpng courier carrying the "1.5.x" message managed > to reach the "file-ico" group but then suffered an untoward fate > on his way to the "common" compound. > Release dates: > gimp-2.6.11 = 2010-10-03 (for reference) > libpng-1.5.0 = 2011-01-09 > libpng-1.5.2 = 2011-03-31 > Relatively plenty of time for a courier to reach both gimp compounds > (under normal circumstances) and for _all_ groups to get with the program. how is negative 3 months relatively plenty of time? i am fairly sure the file-png plugin is updated in git master fwiw.
There are no plans to release any more 2.6.x versions. Please check if this problem happens in git master, too.
Mikael (#3): I assume (as you _assume_ something when you say, "i am fairly sure") that libpng-1.5.0 = 2011-01-09 was the cut-off time when the libpng folks said, "enough is enough" (i assume:). (2011-01-09) - (2010-10-03) = 3 Months (2011-05-14) - (2011-01-09) = 4 Months, time in which GIMP should have issued either - 2.6.12 [but see comment #4 :( ], and/or - a big fat patch (_including_ file-mng - the _subject_ of this bug report, BTW - and who knows what else) published officially for all to know. If we're at the "assuming" subject, I believe it should be fairly easy for you to assume that 1. I don't know where "git master" is and what to look for/download from there so that I can certify that your assumption ("i am fairly sure") is air-tight. 2. I didn't know one has to go to a "master git" when their official, public release fails. 3. Since, as I said, the "ico" files do abide by the libpng1.5 rules, it is fair to assume that the libpng courier got to them in time (within -3 Months :), or in plain english, GIMP has a problem with project _management_, as reflected in 2.6.11 release. 4. If you really want to help (and not just repeat the party line): 4.1 Simply give me the URL of the famous "master git". 4.2 If there's no full source package, like "gimp-2.6.11.source.latest_git.tar.bz2" what exactly files I should replace in my directory of sources and try again? Or, should I do a whole "update" (clone/pull) like with other gits? Michael (#4): Please refer to my comments to Mikael above; for me just to re-emphasize the appalling conclusion that if an official release of a package fails (despite user's meeting all prerequisites), the users are on their own. I.e., it is NOT the "vendor"'s responsibility to fix the (obvious) problems.
Time needed to read your comments = 1 Month
Michael Natterer: By that time we'll be at 2.8.11 and all will be forgotten. BTW, wasn't my original submission clear and crisp? It'd have been more interesting if you had commented on _that_ (especially in an intelligent manner). ------------------------------------------------------------- To all: I replaced the "old" (2.6.11 release), buggy file 'file-mng.c' (55692 bytes) with the latest "master git" file (56014 bytes) file and did a configure/make from scratch on the original (2010-10-03) _2.6.11_ gimp release. Different failure now (not really a surprise): gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -pthread -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng15 -I/usr/include/libdrm -I/usr/include -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -g -O2 -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT file-mng.o -MD -MP -MF .deps/file-mng.Tpo -c -o file-mng.o file-mng.c file-mng.c: In function 'mng_save_image': file-mng.c:686: warning: implicit declaration of function 'gimp_item_get_name' file-mng.c:686: warning: passing argument 1 of 'parse_ms_tag_from_layer_name' makes pointer from integer without a cast file-mng.c:699: warning: passing argument 1 of 'parse_ms_tag_from_layer_name' makes pointer from integer without a cast file-mng.c:848: warning: assignment makes pointer from integer without a cast file-mng.c: In function 'mng_save_dialog': file-mng.c:1335: warning: implicit declaration of function 'gimp_export_dialog_new' file-mng.c:1335: warning: assignment makes pointer from integer without a cast file-mng.c:1339: warning: implicit declaration of function 'gimp_export_dialog_get_content_area' mv -f .deps/file-mng.Tpo .deps/file-mng.Po /bin/sh ../../libtool --tag=CC --mode=link gcc -g -O2 -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -o file-mng file-mng.o ../../libgimp/libgimpui-2.0.la ../../libgimpwidgets/libgimpwidgets-2.0.la ../../libgimpmodule/libgimpmodule-2.0.la ../../libgimp/libgimp-2.0.la ../../libgimpmath/libgimpmath-2.0.la ../../libgimpconfig/libgimpconfig-2.0.la ../../libgimpcolor/libgimpcolor-2.0.la ../../libgimpbase/libgimpbase-2.0.la -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng15 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lmng -ljpeg -lpng15 libtool: link: gcc -g -O2 -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -o .libs/file-mng file-mng.o -pthread ../../libgimp/.libs/libgimpui-2.0.so ../../libgimpwidgets/.libs/libgimpwidgets-2.0.so ../../libgimpmodule/.libs/libgimpmodule-2.0.so ../../libgimp/.libs/libgimp-2.0.so ../../libgimpmath/.libs/libgimpmath-2.0.so ../../libgimpconfig/.libs/libgimpconfig-2.0.so ../../libgimpcolor/.libs/libgimpcolor-2.0.so ../../libgimpbase/.libs/libgimpbase-2.0.so /usr/lib/libgtk-x11-2.0.so /usr/lib/libgdk-x11-2.0.so /usr/lib/libatk-1.0.so /usr/lib/libgio-2.0.so /usr/lib/libpangoft2-1.0.so /usr/lib/libpangocairo-1.0.so /usr/lib/libgdk_pixbuf-2.0.so -lm /usr/lib/libcairo.so /usr/lib/libpango-1.0.so /usr/lib/libfreetype.so /usr/lib/libfontconfig.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so /usr/lib/libgthread-2.0.so -lrt /usr/lib/libglib-2.0.so -lmng /usr/lib/libjpeg.so /usr/lib/libpng15.so -pthread /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../i686-pc-linux-gnu/bin/ld: warning: libjpeg.so.7, needed by /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../libmng.so, may conflict with libjpeg.so.8 file-mng.o: In function `mng_save_image': /usr/src/gimp-2.6.11/plug-ins/common/file-mng.c:699: undefined reference to `gimp_item_get_name' /usr/src/gimp-2.6.11/plug-ins/common/file-mng.c:848: undefined reference to `gimp_item_get_name' /usr/src/gimp-2.6.11/plug-ins/common/file-mng.c:686: undefined reference to `gimp_item_get_name' file-mng.o: In function `mng_save_dialog': /usr/src/gimp-2.6.11/plug-ins/common/file-mng.c:1335: undefined reference to `gimp_export_dialog_new' /usr/src/gimp-2.6.11/plug-ins/common/file-mng.c:1339: undefined reference to `gimp_export_dialog_get_content_area' collect2: ld returned 1 exit status make[3]: *** [file-mng] Error 1 ---------------------------------------------------------------- Mikael & Michael: Please try to follow me here: 1. The latest "master git" GIMP software most likely (we all assume) compiles AOK+. 2. Now comes the part that's going to be hard for you to understand. Hope against hope, I continue. 2.1. The "master git" GIMP _must_ work OK (libpng15-wise) because it _is_ version 2.7.x.y.z, as of _2011-05-14_, maybe days before the the Big, Red-Letter Announcement, gimp 2.8.0. All trials and tribulations will be soon forgotten. 2.2. What you're doing here is just stalling, playing for time and participate in the usual cover-up: 2.6.11 stinks as of _2011-05-14_ (and probably as early as 2011-01-09). It _was_ good on 2010-10-03 for various reasons, including, as I showed in the time-line, libpng was at 1.4.x. 2.3. I'm saying the cover-up, because Linux in general has gotten out of hand and largely irrelevant (think iPad2 and _all_ the rest). The main reason is as you're witnessing it here. The inherent lack of co-ordination: one of the supporting software just changes on their own and breaks the main software. At the 2.8.0 release, all these ugly details reported by me will have been long forgotten and for a fleeting moment all will be again perfect (gimp-wise) in Linux land. 2.4. If you're interested in another cover-up case, take a look at Bug 646150 (bugzilla.mozilla). The Firefox-4.0 stank heavily. Crashing continuously and reproducibly. Then the "little" upgrade, Firefox-4.0.1 came along. Perfect. _Under EXACTLY the same conditions (software, hardware)_, all of a sudden, the new package I built no longer crashed on accessing sites. Ain't that magic? All the "commentators" had to do was planting false leads, suspicions, running me through hoops, etc. until the "developers" working behind the scenes could fix the problem. The Bug report has not been "officially" handled to this day, and one day, who knows when, it will fade into the sunset (it's long been irrelevant now). That was all despite clean crash dumps and backtraces proving without any doubt the claim/situation. You will see how this bug report will meet a similar fate: UNCONFIRMED and dead on arrival. Never "assigned" officially. Just silly comments and sending the submitter on a wild goose chase. There will never be a CONFIRMED bug in either case. People will never know that at one time the package just didn't work. Life goes on. Thanks youse guys anyway for your effort, -- Alex
(In reply to comment #7) > To all: > > I replaced the "old" (2.6.11 release), buggy file > 'file-mng.c' (55692 bytes) with the latest "master git" file > (56014 bytes) file and did a configure/make from scratch > on the original (2010-10-03) _2.6.11_ gimp release. > > Different failure now (not really a surprise): Yes it's not a surprise, considering you are placing a file from the master tree into the 2.6 tree and expecting it to build. > Please try to follow me here: > > 1. The latest "master git" GIMP software most likely (we all assume) > compiles AOK+. It's not an assumption. The PNG and MNG plug-ins in master compile and work properly. > 2. Now comes the part that's going to be hard for you to understand. > Hope against hope, I continue. > > 2.1. The "master git" GIMP _must_ work OK (libpng15-wise) because > it _is_ version 2.7.x.y.z, as of _2011-05-14_, maybe days before the > the Big, Red-Letter Announcement, gimp 2.8.0. > All trials and tribulations will be soon forgotten. master "works OK." > 2.2. What you're doing here is just stalling, playing for time and > participate in the usual cover-up: 2.6.11 stinks as of _2011-05-14_ > (and probably as early as 2011-01-09). > It _was_ good on 2010-10-03 for various reasons, including, as I showed > in the time-line, libpng was at 1.4.x. Nobody is stalling or playing for time. You are talking nonsense. We are understaffed as a team and do as much as we can. Your accusations are not helpful. [Snipped a whole section of unrelated gibberish. Please stick to the bug topic.] This is not the first bug report about the libpng issues. They have been fixed in master. If we decide to do another 2.6.x release, we will ship a fixed plug-in, but there is no intention to do that currently. Stick to your distro supplied GIMP if you want to use 2.6.x, as you don't seem to know what you're doing (compiling GIMP master code as-is in a 2.6 tree and expecting it to work). *** This bug has been marked as a duplicate of bug 640409 ***