GNOME Bugzilla – Bug 613199
EDS_CHECK_VERSION macro does not work in 2.28.3.1
Last modified: 2010-03-31 17:20:01 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
*** Bug 613650 has been marked as a duplicate of this bug. ***
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
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.