Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 515508 - >=x11-libs/gtk+-2.24.23-r2:2 USE=cups - .../work/gtk+-2.24.23/modules/printbackends/cups/gtkprintbackendcups.c:3071:20: error: dereferencing pointer to incomplete type
Summary: >=x11-libs/gtk+-2.24.23-r2:2 USE=cups - .../work/gtk+-2.24.23/modules/printba...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-06-27 12:40 UTC by ma.jer
Modified: 2014-07-14 09:57 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info '=x11-libs/gtk+-2.24.23-r2::gentoo' (emerge-info.txt,5.84 KB, text/plain)
2014-06-27 12:40 UTC, ma.jer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ma.jer 2014-06-27 12:40:43 UTC
Created attachment 379782 [details]
emerge --info '=x11-libs/gtk+-2.24.23-r2::gentoo'

Excerpt from build.log:

make[4]: Entering directory `/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23-abi_x86_32.x86/modules/printbackends/cups'
/bin/sh ../../../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -m32 -DHAVE_CONFIG_H -I. -I/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/modules/printbackends/cups -I../../.. -I/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23 -I/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/gtk -I../../../gtk -I/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/gdk -I../../../gdk  -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED -pthread -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/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib32/glib-2.0/include -I/usr/include/freetype2    -DG_DISABLE_CAST_CHECKS  -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES   -O2 -pipe -march=native -Wall -c -o gtkprintbackendcups.lo /mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/modules/printbackends/cups/gtkprintbackendcups.c
libtool: compile:  x86_64-pc-linux-gnu-gcc -m32 -DHAVE_CONFIG_H -I. -I/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/modules/printbackends/cups -I../../.. -I/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23 -I/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/gtk -I../../../gtk -I/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/gdk -I../../../gdk -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED -pthread -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/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib32/glib-2.0/include -I/usr/include/freetype2 -DG_DISABLE_CAST_CHECKS -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES -O2 -pipe -march=native -Wall -c /mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/modules/printbackends/cups/gtkprintbackendcups.c  -fPIC -DPIC -o .libs/gtkprintbackendcups.o
[...]
/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/modules/printbackends/cups/gtkprintbackendcups.c:3071:20: error: dereferencing pointer to incomplete type
         attr = attr->next;
                    ^
/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/modules/printbackends/cups/gtkprintbackendcups.c:282:34: error: dereferencing pointer to incomplete type
 #define ippGetGroupTag(attr) attr->group_tag
                                  ^
/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/modules/printbackends/cups/gtkprintbackendcups.c:3075:30: note: in expansion of macro 'ippGetGroupTag'
       while (attr != NULL && ippGetGroupTag (attr) == IPP_TAG_PRINTER)
                              ^
[...]
make[4]: *** [gtkprintbackendcups.lo] Error 1
make[4]: Leaving directory `/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23-abi_x86_32.x86/modules/printbackends/cups'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23-abi_x86_32.x86/modules/printbackends'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23-abi_x86_32.x86/modules'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23-abi_x86_32.x86'
make: *** [all] Error 2
 * ERROR: x11-libs/gtk+-2.24.23-r2::gentoo failed (compile phase):
 *   emake failed
[...]

CUPS version: ~net-print/cups-1.7.1-r2 (X acl dbus gnutls pam python ssl threads usb xinetd -debug -java -kerberos -lprng-compat -selinux -static-libs -systemd -zeroconf ABI_MIPS="-n32 -n64 -o32" ABI_X86="32 64 -x32" ELIBC="-FreeBSD" LINGUAS="-ca -es -fr -it -ja -ru" PYTHON_SINGLE_TARGET="python2_7 -python2_6" PYTHON_TARGETS="python2_7 -python2_6") (installed 2014-06-01 23:16:24)
Comment 1 ma.jer 2014-06-27 12:44:17 UTC
From modules/printbackends/cups/gtkprintbackendcups.c:

/* CUPS 1.6 Getter/Setter Functions CUPS 1.6 makes private most of the
 * IPP structures and enforces access via new getter functions, which
 * are unfortunately not available in earlier versions. We define
 * below those getter functions as macros for use when building
 * against earlier CUPS versions.
 */
#ifndef HAVE_CUPS_API_1_6
...
#define ippGetValueTag(attr) attr->value_tag
#define ippGetGroupTag(attr) attr->group_tag
...
#endif


It thus seems that HAVE_CUPS_API_1_6 is not defined (it should), indicating a configure problem.

Configure output from build-abi_x86_32.x86.log:

/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib32 --disable-silent-rules --disable-dependency-tracking --docdir=/usr/share/doc/gtk+-2.24.23-r2 --disable-maintainer-mode --disable-gtk-doc --with-gdktarget=x11 --with-xinput --enable-cups=auto --disable-introspection --enable-xinerama --disable-papi CUPS_CONFIG=/usr/bin/i686-pc-linux-gnu-cups-config
[...]
checking for cups-config... /usr/bin/i686-pc-linux-gnu-cups-config
/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/configure: line 24111: /usr/bin/i686-pc-linux-gnu-cups-config: No such file or directory
/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/configure: line 24112: /usr/bin/i686-pc-linux-gnu-cups-config: No such file or directory
/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/configure: line 24114: /usr/bin/i686-pc-linux-gnu-cups-config: No such file or directory
/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/configure: line 24118: test: too many arguments
/mnt/nobackup/portage/portage/x11-libs/gtk+-2.24.23-r2/work/gtk+-2.24.23/configure: line 24124: test: too many arguments
checking cups/cups.h usability... yes
checking cups/cups.h presence... yes
checking for cups/cups.h... yes
[...]


So configure fails to get CUPS version from cups-config, does not set HAVE_CUPS_API_1_6 and hence the build fails.
I have checked and I have only '/usr/bin/cups-config'; no 'i686-pc-linux-gnu-cups-config' or 'x86_64-pc-linux-gnu-cups-config'.
The offending file comes from configure command-line options (CUPS_CONFIG=/usr/bin/i686-pc-linux-gnu-cups-config),
which is set in ebuild (CUPS_CONFIG="${EPREFIX}/usr/bin/${CHOST}-cups-config").

Ebuilds gtk+-2.24.23-r2.ebuild, gtk+-2.24.24.ebuild have the line and thus fails, gtk+-2.24.23.ebuild is OK.

Commenting the line out fixes the problem in my case.


Proposed solutions:
1) Do not set CUPS_CONFIG in ebuild (though I think it was added for a reason)
2) Set CUPS_CONFIG to an existing cups-config (${EPREFIX}/usr/bin/cups-config)
3) Change net-print/cups to install /usr/bin/${CHOST}-cups-config
Comment 2 Andreas Sturmlechner gentoo-dev 2014-07-11 20:31:18 UTC
two weeks... or is USE="cups" now considered unsupported?
Comment 3 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2014-07-11 21:13:47 UTC
I suggest that you rebuild cups. Prefixed cups-config was added a while ago.
Comment 4 Andreas Sturmlechner gentoo-dev 2014-07-12 11:48:37 UTC
cups-1.7.1-r2 was built indeed quite some time ago, I'm going to try as suggested, thx :)
Comment 5 Andreas Sturmlechner gentoo-dev 2014-07-12 15:34:34 UTC
indeed, fixed now!