Summary: | Compilation error: marble assumes presence of gpsd version 2.90 without checking with cmake | ||
---|---|---|---|
Product: | [Applications] marble | Reporter: | Lukas Middendorf <kde> |
Component: | general | Assignee: | marble-bugs |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | nienhueser |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | 0.8 (KDE 4.3) | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Increment needed version of gpsd for cmake check |
Description
Lukas Middendorf
2009-12-29 02:15:33 UTC
Created attachment 39424 [details]
Increment needed version of gpsd for cmake check
The Problem with gpsd being found even when it is not installed at all went away after starting again with fresh sources.
But still 2.35 is sufficient for the check although 2.90 seems to be needed.
I attached a patch to check for libgps>=2.90 instead of >=2.35.
The problem is that the check for the api version in /kdeedu/marble/src/plugins/positionprovider/gpsd/GpsdConnection.cpp is not correct. in gps.h #define GPSD_API_MAJOR_VERSION 3 /* bump on incompatible changes */ #define GPSD_API_MINOR_VERSION 1 /* bump on compatible changes */ appears first in 2.39 and is unchanged in 2.90. So this is no proper way to distinguish 2.39 from 2.90 and build fails with 2.39. Same for marble in subversion and libgps from Kubuntu. The test in GpsdConnection.cpp should not rely on GPSD_API_MAJOR_VERSION, but check whether e.g. WATCH_ENABLE or POLICY_SET are available. SVN commit 1068583 by nienhueser: Fix compiliatin for libgps < 2.90. libgps sets GPSD_API_MAJOR_VERSION=3 for both version 2.3x and 2.90. Check whether WATCH_ENABLE and POLICY_SET are defined to distinguish both. BUG: 220489 M +2 -2 GpsdConnection.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1068583 |