[KPhotoAlbum] Marble versioning

Tobias Leupold tl at l3u.de
Mon Jul 26 13:15:58 BST 2021


Hi Johannes,

this is too much text for IRC, so let's use the mailing list ;-)

We currently do no version check or minimal version definition regarding our 
Marble dependency. Most probably because Marble versioning (the internal 
version reported by cmake) is/was a mess.

All recent Marble version reported "0.28.0". Apparently, they fixed their 
versioning with the latest release, as -- I haven't checked this yet, but got 
a bug report for KGeoTag not being able to build on neon unstable -- the 
currently reported version seems to be "21.4.0".

I had a dependency to Marble 0.28.0 in the KGeoTag CMakeLists.txt:

    ...
    set(Marble_MIN_VERSION "0.28.0")
    ...
    find_package(Marble ${Marble_MIN_VERSION} REQUIRED)
    ...

which caused the following error:

    CMake Error at CMakeLists.txt:43 (find_package):
    Could not find a configuration file for package "Marble" that is
        compatible with requested version "0.28.0".

    The following configuration files were considered but not accepted:

    /usr/lib/x86_64-linux-gnu/cmake/Marble/MarbleConfig.cmake, version:
    21.4.0
    /lib/x86_64-linux-gnu/cmake/Marble/MarbleConfig.cmake, version:
    21.4.0

With KPA, we face the very same problem if we want to define a dependency.

So what do we do with this? If we start to depend on 21.4.0 (which we don't 
really have to, as KPA builds against older versions as well), we'll break all 
non-bleeding-edge distros. Probably, it will take decades until this release 
hits Debian Buster ;-)

Do we simply continue to define no version at all? Or can we somehow define a 
dependency to 0.28.0 OR 21.4.0 OR later? Which we can drop as soon as most 
distros include a Marble version >= 21.4.0?

Alas, I have no idea how to handle this correctly ... maybe you have?!

Cheers, Tobias




More information about the Kphotoalbum mailing list