Opened 9 years ago

Closed 9 years ago

#5852 closed enhancement (fixed)

gdk-pixbuf-2.31.2 (placeholder)

Reported by: christopher Owned by: Pierre Labastie
Priority: normal Milestone: 7.7
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

Hello,

They have deprecated GdkPixdata in this version which now makes GTK+-2.24.25 fail to compile with the following error:

make gtk-update-icon-cache make[3]: Entering directory '/opt/build/gtk+-2/gtk+-2.24.25/gtk' gcc -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Gtk\" -DGTK_LIBDIR=\"/usr/lib\" -DGTK_DATADIR=\"/usr/share\" -DGTK_DATA_PREFIX=\"/usr\" -DGTK_SYSCONFDIR=\"/etc\" -DGTK_VERSION=\"2.24.25\" -DGTK_BINARY_VERSION=\"2.10.0\" -DGTK_HOST=\"i686-pc-linux-gnu\" -DGTK_COMPILATION -DGTK_PRINT_BACKENDS=\"file,lpr\" -DGTK_PRINT_PREVIEW_COMMAND=\""evince --unlink-tempfile --preview --print-settings %s %f"\" -I.. -I../gtk -I.. -I../gdk -I../gdk -DGTK_DISABLE_DEPRECATED -DGTK_FILE_SYSTEM_ENABLE_UNSUPPORTED -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DG_DISABLE_CAST_CHECKS -pthread -I/usr/local/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/local/include -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/harfbuzz -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES -I/usr/local/include -DGDK_PIXBUF_DISABLE_DEPRECATED -g -O2 -Wall -MT updateiconcache.o -MD -MP -MF .deps/updateiconcache.Tpo -c -o updateiconcache.o updateiconcache.c In file included from updateiconcache.c:56:0: gtkiconcachevalidator.c: In function ‘check_pixel_data’: gtkiconcachevalidator.c:166:7: error: unknown type name ‘GdkPixdata’

GdkPixdata data;

gtkiconcachevalidator.c:168:7: warning: implicit declaration of function ‘gdk_pixdata_deserialize’ [-Wimplicit-function-declaration]

check ("pixel data", gdk_pixdata_deserialize (&data, length,

updateiconcache.c: At top level: updateiconcache.c:168:3: error: unknown type name ‘GdkPixdata’

GdkPixdata pixdata;

updateiconcache.c: In function ‘maybe_cache_image_data’: updateiconcache.c:476:7: error: unknown type name ‘GdkPixbuf’

GdkPixbuf *pixbuf;

updateiconcache.c:515:4: warning: implicit declaration of function ‘gdk_pixbuf_new_from_file’ [-Wimplicit-function-declaration]

pixbuf = gdk_pixbuf_new_from_file (path, NULL);

updateiconcache.c:515:11: warning: assignment makes pointer from integer without a cast

pixbuf = gdk_pixbuf_new_from_file (path, NULL);

updateiconcache.c:519:8: warning: implicit declaration of function ‘gdk_pixdata_from_pixbuf’ [-Wimplicit-function-declaration]

gdk_pixdata_from_pixbuf (&idata->pixdata, pixbuf, FALSE);

updateiconcache.c:520:36: error: request for member ‘length’ in something not a structure or union

idata->size = idata->pixdata.length + 8;

updateiconcache.c: In function ‘write_image_data’: updateiconcache.c:824:3: error: unknown type name ‘GdkPixdata’

GdkPixdata *pixdata = &image_data->pixdata;

updateiconcache.c:830:3: warning: implicit declaration of function ‘gdk_pixdata_serialize’ [-Wimplicit-function-declaration]

s = gdk_pixdata_serialize (pixdata, &len);

updateiconcache.c:830:5: warning: assignment makes pointer from integer without a cast

s = gdk_pixdata_serialize (pixdata, &len);

updateiconcache.c: In function ‘write_bucket’: updateiconcache.c:1116:11: warning: variable ‘tmp’ set but not used [-Wunused-but-set-variable]

int tmp;

updateiconcache.c: In function ‘main’: updateiconcache.c:1765:3: warning: implicit declaration of function ‘g_type_init’ [-Wimplicit-function-declaration]

g_type_init ();

Makefile:2902: recipe for target 'updateiconcache.o' failed make[3]: * [updateiconcache.o] Error 1 make[3]: Leaving directory '/opt/build/gtk+-2/gtk+-2.24.25/gtk' Makefile:5703: recipe for target 'gtkbuiltincache.h' failed make[2]: * [gtkbuiltincache.h] Error 2 make[2]: Leaving directory '/opt/build/gtk+-2/gtk+-2.24.25/gtk' Makefile:719: recipe for target 'all-recursive' failed make[1]: * [all-recursive] Error 1 make[1]: Leaving directory '/opt/build/gtk+-2/gtk+-2.24.25' Makefile:610: recipe for target 'all' failed make: * [all] Error 2

As gdk-pixbuf was only updated a few hours ago, I have not been able to locate a fix for this issue. I am going to have to down-grade systemd branch again.

I am not sure what effect it will have if we add a switch to over ride this in either gdk-pixbuf itself or in gtk+-2.24.25.

Regards,

Christopher.

Change History (14)

comment:1 by bdubbs@…, 9 years ago

For gtk+2, remove the define -DGDK_PIXBUF_DISABLE_DEPRECATED from the build. That should bring back the old behavior but I have not tested it.

The package needs to be checked against:

general/graphlib/librsvg.xml
general/graphlib/gegl.xml
general/genutils/graphviz.xml
general/genutils/appstream-glib.xml
general/sysutils/obex-data-server.xml
general/genlib/libgsf.xml
multimedia/libdriv/xine-lib.xml
multimedia/libdriv/gst10-plugins-good.xml
networking/textweb/w3m.xml
x/wm/icewm.xml
x/lib/gtk+2.xml
x/lib/gtk+3.xml
x/lib/cogl.xml
xfce/core/tumbler.xml
xsoft/other/rxvt-unicode.xml

Published news:

2.31.2
======

* API changes:
- Deprecate GdkPixdata
- Add gdk_pixbuf_get_options() helper to list set options
- Annotations fixes for various functions
- Remove incorrect info about area-prepared signal

* Image format support changes
- Flag multi-page TIFF files
- Fix memory usage for GIF animations, add note about minimum frame length
- Return an error for truncated PNG files
- Add density (DPI) support for JPEG, PNG and TIFF
- Fix reading CMYK JPEG files generated by Photoshop
- Allow saving 1-bit mono TIFF files as used in faxes
- Simplify loader names
- Fix loading GIF files when the first write is short
- Add progressive loading to ICNS files
- Add support for 256x256 ICO files
- Fix reading MS AMCap2 BMP files

* Other:
- Honour requested depth in Xlib
- Special-case compositing/copying with no scaling
- Add relocation support to OSX and Linux
- Prefer gdk-pixbuf's loaders to the GDI+ ones on Windows

in reply to:  1 comment:2 by christopher, 9 years ago

Replying to bdubbs@…:

For gtk+2, remove the define -DGDK_PIXBUF_DISABLE_DEPRECATED from the build. That should bring back the old behavior but I have not tested it.

The package needs to be checked against:

general/graphlib/librsvg.xml
general/graphlib/gegl.xml
general/genutils/graphviz.xml
general/genutils/appstream-glib.xml
general/sysutils/obex-data-server.xml
general/genlib/libgsf.xml
multimedia/libdriv/xine-lib.xml
multimedia/libdriv/gst10-plugins-good.xml
networking/textweb/w3m.xml
x/wm/icewm.xml
x/lib/gtk+2.xml
x/lib/gtk+3.xml
x/lib/cogl.xml
xfce/core/tumbler.xml
xsoft/other/rxvt-unicode.xml

Published news:

2.31.2
======

* API changes:
- Deprecate GdkPixdata
- Add gdk_pixbuf_get_options() helper to list set options
- Annotations fixes for various functions
- Remove incorrect info about area-prepared signal

* Image format support changes
- Flag multi-page TIFF files
- Fix memory usage for GIF animations, add note about minimum frame length
- Return an error for truncated PNG files
- Add density (DPI) support for JPEG, PNG and TIFF
- Fix reading CMYK JPEG files generated by Photoshop
- Allow saving 1-bit mono TIFF files as used in faxes
- Simplify loader names
- Fix loading GIF files when the first write is short
- Add progressive loading to ICNS files
- Add support for 256x256 ICO files
- Fix reading MS AMCap2 BMP files

* Other:
- Honour requested depth in Xlib
- Special-case compositing/copying with no scaling
- Add relocation support to OSX and Linux
- Prefer gdk-pixbuf's loaders to the GDI+ ones on Windows

Hello,

There is apparently a fix for this in the gtk+2 git repository. I posted the bug on gnome's bugzilla and got the following reply:

https://bugzilla.gnome.org/show_bug.cgi?id=740568

gtk+ | .General | 2.24.x

Emmanuele Bassi (:ebassi) <ebassi> changed:

What |Removed |Added


Status|UNCONFIRMED |RESOLVED

CC| |ebassi@…

Resolution| |FIXED

--- Comment #3 from Emmanuele Bassi (:ebassi) <ebassi@…> 2014-11-23 11:11:38 UTC --- This problem has been fixed in the development version. The fix will be available in the next GTK+ 2.24 release.

Thank you for your bug report.

-- Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email


You reported the bug.

I guess we should perhaps try and hunt that patch down.

comment:3 by bdubbs@…, 9 years ago

Not hard.

diff --git a/configure.ac b/configure.ac
index 85f0454..9e5c4f7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -621,8 +621,6 @@ if test "x$GLIB_VERSION_MAJOR_MINOR" = "x$GLIB_REQUIRED_VERSION_MAJOR_MINOR"; th
CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
fi
-CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CFLAGS"
-
dnl
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.

It's what I said: remove -DGDK_PIXBUF_DISABLE_DEPRECATED. A sed to configure should do it.

sed -i '/GDK_PIXBUF_DISABLE_DEPRECATED/d' configure

The examples also have it:

find examples -name Makefile -exec sed -i '/GDK_PIXBUF_DISABLE_DEPRECATED/d' {} \;

Not tested.

comment:4 by christopher, 9 years ago

Thanks Bruce,

I was just feeling well enough to search their repository and had found it, but you had beaten me to it.

Regards,

Christopher.

comment:5 by bdubbs@…, 9 years ago

Milestone: 7.7hold
Summary: gdk-pixbuf-2.31.2 API changegdk-pixbuf-2.31.2 (placeholder)

Let's leave this for now and wit until something demands it or a stable 2.32 is released.

in reply to:  5 comment:6 by christopher, 9 years ago

Replying to bdubbs@…:

Let's leave this for now and wit until something demands it or a stable 2.32 is released.

Hello Bruce,

I agree on this. I am going to revert back to previous version in the systemd book. There are more packages that use gdk-pixbuf and I really do not fancy having to recompile everything that interacts with it to find if there are any other surprises. It was a redhat person who made the decision to just remove the disable DEPRECATED from gtk+2. I personally do not believe that they have actually rebuilt everything that uses gdk-pixbuf. If they had, then they would have known about gtk+2 at least not building before I opened the bug.

Regards,

Christopher.

comment:7 by Armin K, 9 years ago

The commit which deprecated function in gdk-pixbuf is from 2014-10-21

https://git.gnome.org/browse/gdk-pixbuf/commit/?id=48d76fb7f2d059013f5781b199245274998f05c9

While the commit that fixes gtk+-2.24 is from 2014-10-23

https://git.gnome.org/browse/gtk+/commit/?h=gtk-2-24&id=5bafcca63f8d065461c311f1ab768e7d0d290813

So, you can't really say "they didn't test it".

If you take into account that gdk-pixbuf-2.31 is intended to be a feature development release, then you should've been ready for breakages in stable packages.

They will release new gtk+-2.24 update before (or the same time as) gdk-pixbuf-2.32 release or the next GNOME release, whichever comes first,

in reply to:  7 ; comment:8 by christopher, 9 years ago

Replying to Krejzi:

The commit which deprecated function in gdk-pixbuf is from 2014-10-21

https://git.gnome.org/browse/gdk-pixbuf/commit/?id=48d76fb7f2d059013f5781b199245274998f05c9

While the commit that fixes gtk+-2.24 is from 2014-10-23

https://git.gnome.org/browse/gtk+/commit/?h=gtk-2-24&id=5bafcca63f8d065461c311f1ab768e7d0d290813

So, you can't really say "they didn't test it".

If you take into account that gdk-pixbuf-2.31 is intended to be a feature development release, then you should've been ready for breakages in stable packages.

They will release new gtk+-2.24 update before (or the same time as) gdk-pixbuf-2.32 release or the next GNOME release, whichever comes first,

DON'T TELL ME THAT I CAN'T SAY THAT THEY DID NOT TEST IT. They ONLY tested it AFTER I posted.

I have had a guts full of your baitng. Stay out of tickets that I create and keep your unwanted comments to yourself.

in reply to:  8 comment:9 by Armin K, 9 years ago

Replying to cjg:

DON'T TELL ME THAT I CAN'T SAY THAT THEY DID NOT TEST IT. They ONLY tested it AFTER I posted.

So lets see ... You opened this ticket on 2014-11-21. You opened GNOME bug 740521 on 2014-11-22. Then, you opened GNOME bug 740568 on 2014-11-23 because you lack patience (from the second bug, not my personal view). Still, the issue was fixed on 2014-10-21 (note the 10, it means October) in the gtk-2-24 branch, to which commit I linked above and which is a whole MONTH after your first bug report. If it was fixed, someone must've found it was broken (It was tested in other words) and fixed it. So am I being a fool here or you are just refusing to read what I wrote in my first comment on this ticket?

I have had a guts full of your baitng. Stay out of tickets that I create and keep your unwanted comments to yourself.

You told me that I don't know how to work with other people ... But it seems neither do you, at least according to your trac tickets posts and mailing list posts in the last 2 or 3 months (not my personal view either, someone else pointed it out too). And I presume that you are aware that this is a free and open source project were several people can contribute to the development, yet you stil have (using your words) the guts to tell someone to keep out of discussion because it was you who started it?

And unrelated to the tickets and replies above:

You are working with free software here, which means that people give you source code for free, where that source code can be used in almost infinite number of ways (and break just the same), yet you are being hostile about upstream work and are not even sorry about it. Not to mention that running latest BLFS and LFS "development" versions means that things can break, and knowing that, it still, I quote, "Makes you MAD" when something doesn't go right.

comment:10 by Pierre Labastie, 9 years ago

Owner: changed from blfs-book@… to Pierre Labastie
Status: newassigned

Looks like a new version of Gtk+2 entered the book not long ago. I am going to test whether this version of gdk-pixbuf works with it without workaround.

comment:11 by Pierre Labastie, 9 years ago

Milestone: hold7.7

comment:12 by Pierre Labastie, 9 years ago

The tests in the new version hang for a long time with high disk usage. I hesitate to report times, because it may be due to my disk: it is not due to my using a VM, because I tested also on bare metal with approximately the same result (5 SBU or so for 70 tests!).

comment:13 by Pierre Labastie, 9 years ago

Tested pakckages:

general/graphlib/librsvg.xmlversion 2.40.7 builds OK
general/graphlib/gegl.xmlversion 0.2.0 builds OK
general/genutils/graphviz.xmlversion 2.38.0 builds OK
general/genutils/appstream-glib.xmlversion 0.3.0 builds OK
general/sysutils/obex-data-server.xmlversion 0.4.6 builds OK
general/genlib/libgsf.xml
multimedia/libdriv/xine-lib.xmlversion 1.2.6 builds OK
multimedia/libdriv/gst10-plugins-good.xml
networking/textweb/w3m.xmlversion 0.5.3 builds OK
x/wm/icewm.xmlversion 1.3.8 builds OK
x/lib/gtk+2.xmlversion 2.24.26 builds OK
x/lib/gtk+3.xml
x/lib/cogl.xmlversion 1.18.2 builds OK
xfce/core/tumbler.xmlversion 0.1.30 builds OK
xsoft/other/rxvt-unicode.xmlversion 9.31 builds OK

I do not plan to test the other packages. It seems to me that this version of gdk-pixbuf works well, now.

comment:14 by Pierre Labastie, 9 years ago

Resolution: fixed
Status: assignedclosed

Fixed at r15530

Note: See TracTickets for help on using tickets.