#748401 Missing HAVE_DBUS causing type conflict

Package:
eom
Source:
eom
Description:
Eye of MATE graphics viewer program
Submitter:
Michael Tautschnig
Date:
2014-10-25 22:30:05 UTC
Severity:
important
#748401#5
Date:
2014-05-16 21:47:42 UTC
From:
To:
During a rebuild of all packages in a clean sid chroot (and cowbuilder+pbuilder)
the build failed with the following error. Please note that we use our research
compiler tool-chain (using tools from the cbmc package), which permits extended
reporting on type inconsistencies at link time.

[...]
libtool: link: gcc -I../cut-n-paste/toolbar-editor -I../cut-n-paste/totem-screensaver -pthread -I/usr/include/mate-desktop-2.0 -I/usr/include/dconf -I/usr/include/startup-notification-1.0 -I/usr/include/gtk-2.0 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -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/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libexif -I/usr/include/exempi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -DEOM_DATA_DIR=\"/usr/share/eom\" -DEOM_LOCALE_DIR=\"/usr/share/locale\" -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -Wl,-z -Wl,relro -o eom eom-main.o -Wl,--export-dynamic -pthread -pthread -Wl,--export-dynamic  ./.libs/libeom.a -L/usr/lib/python2.7/config -lpython2.7 -lgmodule-2.0 -lgthread-2.0 -lmate-desktop-2 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 /usr/lib/x86_64-linux-gnu/libcairo.so -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lfontconfig /usr/lib/x86_64-linux-gnu/libfreetype.so -lexif -lexempi -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0 /usr/lib/x86_64-linux-gnu/libjpeg.so ../cut-n-paste/toolbar-editor/.libs/libtoolbareditor.a -lxml2 ../cut-n-paste/totem-screensaver/.libs/libtotemscrsaver.a -lX11 ../jpegutils/.libs/libeom-jpegutils.a -lm -lz -pthread

error: conflicting function declarations "eom_application_get_instance"
old definition in module main file eom-application.h line 69
struct _EomApplication * (void)
new definition in module eom file ../../src/eom-application.h line 69
struct _EomApplication * (void)

reason for conflict in types listed below (struct/struct):
composite type component counts differ (4/3)
struct _EomApplication {
  struct _GObject base_instance;
  struct EggToolbarsModel * toolbars_model;
  char * toolbars_file;
  struct TotemScrsaver * scr_saver;
}
struct _EomApplication {
  struct _GObject base_instance;
  struct EggToolbarsModel * toolbars_model;
  char * toolbars_file;
}
make[4]: *** [eom] Error 64
make[4]: Leaving directory `/srv/jenkins-slave/workspace/sid-goto-cc-eom/eom-1.8.0+dfsg1/src'
make[3]: *** [all] Error 2

Reviewing the---almost---shared declaration:

http://sources.debian.net/src/eom/1.8.0%2Bdfsg1-2/src/eom-application.h?hl=58,59,60#L53

it seems that a #define HAVE_DBUS must be missing from the file that was
compiled as eom, which likely is

http://sources.debian.net/src/eom/1.8.0%2Bdfsg1-2/bindings/python/eom.override

That file might just be in need of #include "config.h" to ensure consistency.

Best,
Michael

#748401#10
Date:
2014-05-18 19:44:42 UTC
From:
To:
Hi Michael,

thanks for providing this extra info and thanks for doing those
package rebuilds for constant QA integrity.

Can you please point me to a howto that explains how to reproduce
those build failures here locally?

It would be good to do a reference build here before re-uploading a
package that still has the same flaw.

Greets,
Mike

#748401#15
Date:
2014-05-18 19:46:07 UTC
From:
To:
Hi Stefano,

Can you give feedback on this with your upstream hat on?

Thanks,
Mike

#748401#20
Date:
2014-05-18 19:44:42 UTC
From:
To:
Hi Michael,

thanks for providing this extra info and thanks for doing those
package rebuilds for constant QA integrity.

Can you please point me to a howto that explains how to reproduce
those build failures here locally?

It would be good to do a reference build here before re-uploading a
package that still has the same flaw.

Greets,
Mike

#748401#25
Date:
2014-05-18 19:46:07 UTC
From:
To:
Hi Stefano,

Can you give feedback on this with your upstream hat on?

Thanks,
Mike

#748401#30
Date:
2014-05-19 09:47:05 UTC
From:
To:
Hi Mike

[...]
[...]

I'm afraid I can't quite provide a decent how-to at this stage, but rather a
script doing (almost) all the work for you. The script lives at

https://github.com/tautschnig/cprover-debian/blob/master/scripts/setting-up-buildd.sh

and sets up a chroot (using cowbuilder) with a bit of hacking of some of the
contents of the chroot. The only present issue with this script is that I'm
concurrently improving the tools, and not all patches have been merged upstream.
Hence you will need to replace *inside the chroot*

/usr/bin/goto-cc
/usr/bin/goto-ld

with the binary from

https://github.com/tautschnig/cprover-debian/blob/binaries-amd64/goto-cc

(both goto-cc and goto-ld are to be replaced with this same binary).

Yet please do feel free to just send me a patch to test in my set up rather than
reviewing and running a shell script that might install packages you don't want
on your system.

Best,
Michael

#748401#35
Date:
2014-05-30 11:50:02 UTC
From:
To:
Hi Michael,
packages FTBFSs (see below) in my sbuild chroot.

Can you provide a proper patch to fix this issue with Debian sid rebuilds?

Thanks,
Mike



"""
[...]
make[5]: Entering directory '/«BUILDDIR»/eom-1.8.0+dfsg1/bindings/python'
/bin/bash ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H
-I. -I../..   -D_FORTIFY_SOURCE=2 -I../.. -I../.. -I../../src  
-I../../src -I../../cut-n-paste/toolbar-editor -pthread  
-I/usr/include/mate-desktop-2.0 -I/usr/include/dconf  
-I/usr/include/gtk-2.0 -I/usr/include/startup-notification-1.0  
-I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0  
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include  
-I/usr/include/gio-unix-2.0/ -I/usr/include/cairo  
-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/libpng12  
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12  
-I/usr/include/pango-1.0 -I/usr/include/harfbuzz  
-I/usr/include/pango-1.0 -I/usr/include/freetype2  
-I/usr/include/libexif -I/usr/include/exempi-2.0  
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include  
-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   
-fno-strict-aliasing -pthread -I/usr/include/gtk-2.0  
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include  
-I/usr/include/gio-unix-2.0/ -I/usr/include/cairo  
-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/libpng12  
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12  
-I/usr/include/pango-1.0 -I/usr/include/harfbuzz  
-I/usr/include/pango-1.0 -I/usr/include/glib-2.0  
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2  
-I/usr/include/pygtk-2.0  -I/usr/include/python2.7  -g -O2  
-fstack-protector --param=ssp-buffer-size=4 -Wformat  
-Werror=format-security -Wall -c -o eom_la-eom.lo `test -f 'eom.c' ||  
echo './'`eom.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -D_FORTIFY_SOURCE=2
-I../.. -I../.. -I../../src -I../../src  
-I../../cut-n-paste/toolbar-editor -pthread  
-I/usr/include/mate-desktop-2.0 -I/usr/include/dconf  
-I/usr/include/gtk-2.0 -I/usr/include/startup-notification-1.0  
-I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0  
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include  
-I/usr/include/gio-unix-2.0/ -I/usr/include/cairo  
-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/libpng12  
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12  
-I/usr/include/pango-1.0 -I/usr/include/harfbuzz  
-I/usr/include/pango-1.0 -I/usr/include/freetype2  
-I/usr/include/libexif -I/usr/include/exempi-2.0  
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include  
-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  
-fno-strict-aliasing -pthread -I/usr/include/gtk-2.0  
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include  
-I/usr/include/gio-unix-2.0/ -I/usr/include/cairo  
-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/libpng12  
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12  
-I/usr/include/pango-1.0 -I/usr/include/harfbuzz  
-I/usr/include/pango-1.0 -I/usr/include/glib-2.0  
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2  
-I/usr/include/pygtk-2.0 -I/usr/include/python2.7 -g -O2  
-fstack-protector --param=ssp-buffer-size=4 -Wformat  
-Werror=format-security -Wall -c eom.c  -fPIC -DPIC -o  
.libs/eom_la-eom.o
In file included from eom.override:9:0:
../../src/eom-application.h:32:28: fatal error: totem-scrsaver.h: No
such file or directory
  #include "totem-scrsaver.h"
                             ^
compilation terminated.
make[5]: *** [eom_la-eom.lo] Error 1
Makefile:527: recipe for target 'eom_la-eom.lo' failed
make[5]: Leaving directory '/«BUILDDIR»/eom-1.8.0+dfsg1/bindings/python'
make[4]: *** [all] Error 2
Makefile:444: recipe for target 'all' failed
make[4]: Leaving directory '/«BUILDDIR»/eom-1.8.0+dfsg1/bindings/python'
make[3]: *** [all-recursive] Error 1
Makefile:443: recipe for target 'all-recursive' failed
make[3]: Leaving directory '/«BUILDDIR»/eom-1.8.0+dfsg1/bindings'
make[2]: *** [all-recursive] Error 1
Makefile:528: recipe for target 'all-recursive' failed
make[2]: Leaving directory '/«BUILDDIR»/eom-1.8.0+dfsg1'
make[1]: *** [all] Error 2
Makefile:459: recipe for target 'all' failed
make[1]: Leaving directory '/«BUILDDIR»/eom-1.8.0+dfsg1'
make: *** [debian/stamp-makefile-build] Error 2
/usr/share/cdbs/1/class/makefile.mk:47: recipe for target
'debian/stamp-makefile-build' failed
dpkg-buildpackage: error: debian/rules build gave error exit status 2
────────────────────────────────────────────────────────────────────────────────
Build finished at 20140530-1339

Finished
────────

E: Build failure (dpkg-buildpackage died)
"""

#748401#40
Date:
2014-05-30 11:50:02 UTC
From:
To:
Hi Michael,
packages FTBFSs (see below) in my sbuild chroot.

Can you provide a proper patch to fix this issue with Debian sid rebuilds?

Thanks,
Mike



"""
[...]
make[5]: Entering directory '/«BUILDDIR»/eom-1.8.0+dfsg1/bindings/python'
/bin/bash ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H
-I. -I../..   -D_FORTIFY_SOURCE=2 -I../.. -I../.. -I../../src  
-I../../src -I../../cut-n-paste/toolbar-editor -pthread  
-I/usr/include/mate-desktop-2.0 -I/usr/include/dconf  
-I/usr/include/gtk-2.0 -I/usr/include/startup-notification-1.0  
-I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0  
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include  
-I/usr/include/gio-unix-2.0/ -I/usr/include/cairo  
-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/libpng12  
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12  
-I/usr/include/pango-1.0 -I/usr/include/harfbuzz  
-I/usr/include/pango-1.0 -I/usr/include/freetype2  
-I/usr/include/libexif -I/usr/include/exempi-2.0  
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include  
-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   
-fno-strict-aliasing -pthread -I/usr/include/gtk-2.0  
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include  
-I/usr/include/gio-unix-2.0/ -I/usr/include/cairo  
-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/libpng12  
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12  
-I/usr/include/pango-1.0 -I/usr/include/harfbuzz  
-I/usr/include/pango-1.0 -I/usr/include/glib-2.0  
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2  
-I/usr/include/pygtk-2.0  -I/usr/include/python2.7  -g -O2  
-fstack-protector --param=ssp-buffer-size=4 -Wformat  
-Werror=format-security -Wall -c -o eom_la-eom.lo `test -f 'eom.c' ||  
echo './'`eom.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -D_FORTIFY_SOURCE=2
-I../.. -I../.. -I../../src -I../../src  
-I../../cut-n-paste/toolbar-editor -pthread  
-I/usr/include/mate-desktop-2.0 -I/usr/include/dconf  
-I/usr/include/gtk-2.0 -I/usr/include/startup-notification-1.0  
-I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0  
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include  
-I/usr/include/gio-unix-2.0/ -I/usr/include/cairo  
-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/libpng12  
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12  
-I/usr/include/pango-1.0 -I/usr/include/harfbuzz  
-I/usr/include/pango-1.0 -I/usr/include/freetype2  
-I/usr/include/libexif -I/usr/include/exempi-2.0  
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include  
-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  
-fno-strict-aliasing -pthread -I/usr/include/gtk-2.0  
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include  
-I/usr/include/gio-unix-2.0/ -I/usr/include/cairo  
-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/libpng12  
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12  
-I/usr/include/pango-1.0 -I/usr/include/harfbuzz  
-I/usr/include/pango-1.0 -I/usr/include/glib-2.0  
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2  
-I/usr/include/pygtk-2.0 -I/usr/include/python2.7 -g -O2  
-fstack-protector --param=ssp-buffer-size=4 -Wformat  
-Werror=format-security -Wall -c eom.c  -fPIC -DPIC -o  
.libs/eom_la-eom.o
In file included from eom.override:9:0:
../../src/eom-application.h:32:28: fatal error: totem-scrsaver.h: No
such file or directory
  #include "totem-scrsaver.h"
                             ^
compilation terminated.
make[5]: *** [eom_la-eom.lo] Error 1
Makefile:527: recipe for target 'eom_la-eom.lo' failed
make[5]: Leaving directory '/«BUILDDIR»/eom-1.8.0+dfsg1/bindings/python'
make[4]: *** [all] Error 2
Makefile:444: recipe for target 'all' failed
make[4]: Leaving directory '/«BUILDDIR»/eom-1.8.0+dfsg1/bindings/python'
make[3]: *** [all-recursive] Error 1
Makefile:443: recipe for target 'all-recursive' failed
make[3]: Leaving directory '/«BUILDDIR»/eom-1.8.0+dfsg1/bindings'
make[2]: *** [all-recursive] Error 1
Makefile:528: recipe for target 'all-recursive' failed
make[2]: Leaving directory '/«BUILDDIR»/eom-1.8.0+dfsg1'
make[1]: *** [all] Error 2
Makefile:459: recipe for target 'all' failed
make[1]: Leaving directory '/«BUILDDIR»/eom-1.8.0+dfsg1'
make: *** [debian/stamp-makefile-build] Error 2
/usr/share/cdbs/1/class/makefile.mk:47: recipe for target
'debian/stamp-makefile-build' failed
dpkg-buildpackage: error: debian/rules build gave error exit status 2
────────────────────────────────────────────────────────────────────────────────
Build finished at 20140530-1339

Finished
────────

E: Build failure (dpkg-buildpackage died)
"""

#748401#45
Date:
2014-10-25 22:26:38 UTC
From:
To:
I guess, it would be good not to break Debian sid rebuilds. Thus,
raising severity.

This issue is not release critical, as there normally are no rebuilds
in testing or stable, but still.

Mike