clawsmail ftbfs with gtk+-2.13

Bug #247909 reported by Cesare Tirabassi
6
Affects Status Importance Assigned to Milestone
Claws Mail
Invalid
Medium
GTK+
Fix Released
Low
claws-mail (Gentoo Linux)
Invalid
Medium
claws-mail (Ubuntu)
Fix Released
Undecided
Unassigned
gtk+2.0 (Ubuntu)
Invalid
Low
Unassigned

Bug Description

Binary package hint: claws-mail

claws-mail fails to build with gtk+-2.13:
 x86_64-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../src -I../../../src/common -I../../../src/common -I../../../src/gtk -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -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/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1 -Wno-deprecated-declarations -Wall -g -O2 -Wno-unused-function -Wall -MT select-keys.lo -MD -MP -MF .deps/select-keys.Tpo -c select-keys.c -fPIC -DPIC -o .libs/select-keys.o
In file included from /usr/include/gtk-2.0/gtk/gtk.h:221,
                 from /usr/include/gtk-2.0/gtk/gtksignal.h:32,
                 from /usr/include/gtk-2.0/gtk/gtkclist.h:34,
                 from select-keys.c:36:
/usr/include/gtk-2.0/gtk/gtkctree.h:110: error: expected specifier-qualifier-list before 'GtkCList'
/usr/include/gtk-2.0/gtk/gtkctree.h:127: error: expected specifier-qualifier-list before 'GtkCListClass'
/usr/include/gtk-2.0/gtk/gtkctree.h:149: error: expected specifier-qualifier-list before 'GtkCListRow'
/usr/include/gtk-2.0/gtk/gtkctree.h:342: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'gtk_ctree_node_get_cell_type'
make[6]: *** [select-keys.lo] Error 1
make[6]: Leaving directory `/tmp/buildd/claws-mail-3.5.0/src/plugins/pgpcore'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/tmp/buildd/claws-mail-3.5.0/src/plugins'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/tmp/buildd/claws-mail-3.5.0/src'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/tmp/buildd/claws-mail-3.5.0/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/buildd/claws-mail-3.5.0'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/buildd/claws-mail-3.5.0'
make: *** [build-stamp] Error 2
dpkg-buildpackage: failure: debian/rules build gave error exit status 2
pbuilder: Failed autobuilding of package

This can be solved with the simple patch attached.
Note however, that this has been also discussed upstream:

http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1634

Their conclusion is that the bug is on libgtk2.0 not in clawsmail.

Tags: ftbfs patch

Related branches

Revision history for this message
Cesare Tirabassi (norsetto) wrote :
Changed in claws-mail:
status: Unknown → Invalid
status: Unknown → Invalid
Revision history for this message
Cesare Tirabassi (norsetto) wrote :

This is also the subject of bug 238223.

Revision history for this message
Sebastien Bacher (seb128) wrote :

could you describe how that's an gtk issue?

Changed in gtk+2.0:
importance: Undecided → Low
status: New → Incomplete
Revision history for this message
Cesare Tirabassi (norsetto) wrote :

The problems is linked to applications using the gtkclist.h header file.
I don't know exactly what was changed in Gnome, but programs (like clawsmail and inkscape) that include this header file directly are now broken.
There are pointers to:

http://svn.gnome.org/viewvc/gtk+?view=revision&revision=20221

and subsequently to:

http://svn.gnome.org/viewvc/gtk+?view=revision&revision=20302

as linked to this issue.

So, the question for you is, are those applications to revert the direct usage of that header file, or is the change in GTK 2.13 which needs to be reverted?

For info, in gentoo (http://bugs.gentoo.org/show_bug.cgi?id=225735) they came to the conclusion that is gtk that is broken.

Revision history for this message
Sebastien Bacher (seb128) wrote :

the issue is still not clear, the gentoo but suggests that the recent commit should fix the issue, or the change is in the current intrepid version so the issue should be fixed there, if that's not the case then there is an another bug

Revision history for this message
Sebastien Bacher (seb128) wrote :

the issue is still not clear, the gentoo bug suggests that the recent commit should fix the issue, or the change is in the current intrepid version so the issue should be fixed there, if that's not the case then there is an another bug

Revision history for this message
Cesare Tirabassi (norsetto) wrote :

We definitively still have this problem with current gtk2.0 (2.13.3-0ubuntu2).
As you can see from the build logs (the one above which is from now and the one from one month ago from the gentoo bug), its still the same build error, therefore my guess is that it is not linked at all to those two svn commits.
I couldn't find any other commits for gtkclist.h which could justify this error.
Note that substituting gtk.h for gtkclist.h makes the build successfull, so I guess the problem is due to some changes in some other header file.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package claws-mail - 3.5.0-2ubuntu1

---------------
claws-mail (3.5.0-2ubuntu1) intrepid; urgency=low

  * Merge from debian unstable, remaining changes:
    - debian/patches/12disable_can_change_accels_by_default:
      the gtk_can_change_accels pref which allows to change keyboard shortcuts
      from Gtk+ menus default to false for consistence with the GNOME default
      and other UME apps.
    - Modify Maintainer value to match the DebianMaintainerField
      specification.
  * Add debian/patches/13fix_ftbfs_with_gtk+-2.13.x.patch:
    fix build failure with gtk+2.13.x (LP: #247909)
    http://www.colino.net/claws-mail/getpatchset.php?ver=3.5.0cvs10

claws-mail (3.5.0-2) unstable; urgency=low

  * debian/control
  - Fix libclaws-mail-dev section to match override file
  - Fix spelling-error-in-description (thanks lintian)
  - Fix -i18n description to reflect only available languages

claws-mail (3.5.0-1) unstable; urgency=low

  * New upstream release
  - Fixes pending bugs:
  - Segfault verifying a GPG signature (Closes: #481856)
  - Reply with quote doesn't include message (Closes: #486889)
  - Double free segfault denying SSL certificate (Closes: #481381)
  * patches/09use_x_www_browser.patch
  - Fixed format for dpkg-source (quilt format) (Closes: #485327)
  * debian/control
  - Updated standards version
  * patches/10*.patch, patches/series, debian/README.Debian
  - Removed patch, provided by new upstream autofaces feature

 -- Cesare Tirabassi <email address hidden> Sat, 12 Jul 2008 12:21:29 +0200

Changed in claws-mail:
status: New → Fix Released
Revision history for this message
Cesare Tirabassi (norsetto) wrote :

I've patched claws-mail so that at least it can now build correctly. I'm also setting the gtk+ task to confirmed; unless somebody can prove the contrary, the cause for this (and inkscape) issue is changes upstream in the gtk header files.
Sebastien, feel free to mark this as won't fix if nobody intends to do anything about it.

Changed in gtk+2.0:
status: Incomplete → Confirmed
Revision history for this message
Sebastien Bacher (seb128) wrote :

could you attach a testcase if that's a gtk issue?

Changed in gtk+2.0:
status: Confirmed → Incomplete
Revision history for this message
Cesare Tirabassi (norsetto) wrote :

The best test cases are these two applications that fail to build, without any change, with error messages pointing to gtk headers.
The attached test case (based on claws-mail, but obviously may or may not be representative of this problem) ftbfs with the same error as reported above in intrepid:

In file included from /usr/include/gtk-2.0/gtk/gtk.h:221,
                 from /usr/include/gtk-2.0/gtk/gtksignal.h:32,
                 from /usr/include/gtk-2.0/gtk/gtkclist.h:34,
                 from testgtk.c:13:
/usr/include/gtk-2.0/gtk/gtkctree.h:110: error: expected specifier-qualifier-list before ‘GtkCList’
/usr/include/gtk-2.0/gtk/gtkctree.h:127: error: expected specifier-qualifier-list before ‘GtkCListClass’
/usr/include/gtk-2.0/gtk/gtkctree.h:149: error: expected specifier-qualifier-list before ‘GtkCListRow’
/usr/include/gtk-2.0/gtk/gtkctree.h:342: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘gtk_ctree_node_get_cell_type’

It compiles without any problem in hardy.
In both cases compilation is done with the command:

gcc `pkg-config --cflags --libs "gtk+-2.0 glib-2.0"` -o test testgtk.c

Changed in gtk+2.0:
status: Incomplete → Confirmed
Revision history for this message
Cesare Tirabassi (norsetto) wrote :

Looks like as if the problem comes from this commit:

http://svn.gnome.org/viewvc/gtk+/trunk/gtk/gtksignal.h?r1=20191&r2=20221

With current headers, gtkclist.h includes gtksignal.h which includes gtk.h (!) which includes gtkctree.h, where it fails since GtkCList and co. are defined in gtkclist.h which has not yet been scanned.

Before that commit (which, by the way, seems ridiculous, what is the point of adding the global gtk.h header in a subheader!?), gtkclist.h includes gtksignal.h which does its own stuff and doesn't include gtkctree.c.

The author of the commit says:

"whenever possible, include only <gtk/gtk.h> instead of individual headers in these deprecated headers. They don't get included at all when GTK_DISABLE_DEPRECATED is defined, so if an app needs them anyway, it must undef GTK_DISABLE_DEPRECATED and include them individually, which should continue to work"

Obviously, this doesn't continue to work.

Revision history for this message
Sebastien Bacher (seb128) wrote :

right, confirming the issue now and setting the bug to triaged

Changed in gtk+2.0:
status: Confirmed → Triaged
Changed in gtk:
status: Unknown → New
Changed in gtk:
status: New → Confirmed
Changed in gtk+2.0:
assignee: nobody → desktop-bugs
tags: added: patch
Changed in gtk:
status: Confirmed → Invalid
Changed in gtk+2.0 (Ubuntu):
assignee: Ubuntu Desktop Bugs (desktop-bugs) → nobody
Changed in gtk:
importance: Unknown → Low
status: Invalid → Expired
Changed in claws-mail (Gentoo Linux):
importance: Unknown → Medium
Changed in claws-mail:
importance: Unknown → Medium
Revision history for this message
Phillip Susi (psusi) wrote :

Closing out gtk task. It looks like this was a bug in claws, not gtk, and was resolved long ago.

Changed in gtk+2.0 (Ubuntu):
status: Triaged → Invalid
Changed in gtk:
status: Expired → Confirmed
Changed in gtk:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.