After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 613199 - EDS_CHECK_VERSION macro does not work in 2.28.3.1
EDS_CHECK_VERSION macro does not work in 2.28.3.1
Status: RESOLVED WONTFIX
Product: evolution-data-server
Classification: Platform
Component: general
2.28.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: Evolution Shell Maintainers Team
Evolution QA team
: 613650 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2010-03-17 22:54 UTC by Chris Coulson
Modified: 2010-03-31 17:20 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Chris Coulson 2010-03-17 22:54:42 UTC
I'm trying to build tracker here against e-d-s 2.28.3.1. It contains some conditional includes like this:

#if EDS_CHECK_VERSION (2, 29, 1)
#include <e-util/e-account-utils.h>
#endif

However, this fails to build against e-d-s 2.28.3.1 with the following error:

tracker-evolution-plugin.c:75:30: error: floating constant in preprocessor expression

-----

This is because of this define in libedataserver/eds-version.h:

#define EDS_MICRO_VERSION 3.1

The pre-processor is not capable of floating-point arithmetic, and falls over with this when doing "EDS_MICRO_VERSION >= (micro)" in EDS_CHECK_VERSION
Comment 1 Matthew Barnes 2010-03-24 09:17:53 UTC
*** Bug 613650 has been marked as a duplicate of this bug. ***
Comment 2 Matthew Barnes 2010-03-31 16:10:35 UTC
The .1 was appended to the wrong definition:
m4_define([eds_micro_version], [3.1])

It should be appended in AC_INIT like so:
AC_INIT([evolution-data-server],[eds_version].1,...)

I've added a section about this to our release instructions [1] so we avoid this in the future, but I don't know how to remedy this bug since the release is already out the door.  It's possible we may yet release a 2.28.4 since several distros are shipping 2.28 as part of their long-term-support release.  I don't think this warrants a 2.28.3.2 release.

One thing you might try as a temporary workaround is overriding EDS_MICRO_VERSION yourself, since you really only need the major and minor numbers:

   #ifdef EDS_MICRO_VERSION
   #undef EDS_MICRO_VERSION
   #define EDS_MICRO_VERSION 1
   #endif

Closing as WONTFIX for lack of a better choice.

[1] http://live.gnome.org/Evolution/ReleaseHOWTO
Comment 3 Gilles Dartiguelongue 2010-03-31 17:20:01 UTC
I'll most likely localy patch tracker to make it build under gentoo since it seems to be the only app using this macro so far.