Bug 345318 - Cmake error when configuring 2.9.1 from Git (Marble related)
Summary: Cmake error when configuring 2.9.1 from Git (Marble related)
Status: CLOSED FIXED
Alias: None
Product: calligracommon
Classification: Applications
Component: koreport (show other bugs)
Version: 2.9.0
Platform: Debian stable Linux
: NOR major
Target Milestone: ---
Assignee: Jarosław Staniek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-18 22:23 UTC by heminder
Modified: 2015-03-27 00:21 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
CmakeCache.txt (63.63 KB, text/plain)
2015-03-19 22:07 UTC, heminder
Details
move handling of minimum version check to FindCalligraMarble.cmake, make marble not found if minimum version constraint not met; cache variables detected for marble (4.65 KB, patch)
2015-03-19 23:03 UTC, Jarosław Staniek
Details

Note You need to log in before you can comment on or make changes to this bug.
Description heminder 2015-03-18 22:23:09 UTC
I compiled and ran 2.9 when it was in alpha/beta on my system with no problems from the Git repository. 

Since 2.9 came out I've been having this issue when I try to configure the latest version. It throws up a version error and stops configuration. This issue did not exist before 2.9 release, and I'm pretty sure I have GNU Scientific Library installed already. 

Here's the full log:-


$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/kde4/inst $HOME/kde4/src/calligra -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPRODUCTSET=KRITA
-- Calligra version: 2.9.1
-- Release build: TRUE
-- -------------------------------------------------------------------
-- Configured with product set "KRITA"
-- -------------------------------------------------------------------
-- Found Qt-Version 4.8.6 (using /usr/bin/qmake-qt4)
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Adding /home/heminder/kde4/inst/share/apps/cmake/modules to CMAKE_MODULE_PATH
-- Found KDE 4.8 include dir: /usr/include
-- Found KDE 4.8 library dir: /usr/lib
-- Found the KDE4 kconfig_compiler preprocessor: /usr/bin/kconfig_compiler
-- Found automoc4: /usr/bin/automoc4
-- Found Qt-Version 4.8.6 (using /usr/bin/qmake-qt4)
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Found Qt-Version 4.8.6 (using /usr/bin/qmake-qt4)
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Boost version: 1.49.0
-- Found the following Boost libraries:
--   system
-- NOTE: Recommended SQLite version is 3.8.7
-- Found ICU header files in /usr/include
-- Found ICU libraries: /usr/lib/x86_64-linux-gnu/libicuuc.so
-- Found OPENEXR: /usr/lib/libImath.so;/usr/lib/libIlmImf.so;/usr/lib/libIex.so;/usr/lib/libHalf.so;/usr/lib/libIlmThread.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGLU.so;/usr/lib/x86_64-linux-gnu/libGL.so;/usr/lib/x86_64-linux-gnu/libSM.so;/usr/lib/x86_64-linux-gnu/libICE.so;/usr/lib/x86_64-linux-gnu/libSM.so;/usr/lib/x86_64-linux-gnu/libICE.so;/usr/lib/x86_64-linux-gnu/libSM.so;/usr/lib/x86_64-linux-gnu/libICE.so;/usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so;/usr/lib/x86_64-linux-gnu/libXft.so;/usr/lib/x86_64-linux-gnu/libXau.so;/usr/lib/x86_64-linux-gnu/libXdmcp.so
-- Found Qt OpenGL support
-- Found GNU Scientific Library 1.15: /usr/include/gsl /usr/lib/libgsl.so;/usr/lib/libgslcblas.so
CMake Error at CMakeLists.txt:345 (if):
  if given arguments:

    "VERSION_LESS" "0.19.2"

  Unknown arguments specified


-- Configuring incomplete, errors occurred!


Reproducible: Always




calligra/2.9
e30ef09c09957fe9b326bc47511c3961c4e8444a
Comment 1 Halla Rempt 2015-03-19 12:03:11 UTC
It hasn't got anything to do with gsl, it's to do with marble, which is a kexi dependency. Line 345 is 

 if(${MARBLE_VERSION} VERSION_LESS ${MARBLE_MIN_VERSION} )

If you remove the marble dev packages, you'll be able to run cmake without trouble, and I'll hand this bug over to the kexi guys in the meantime.
Comment 2 Jarosław Staniek 2015-03-19 13:14:21 UTC
@Boud thanks for the redirect.

To be strict, marble is used in the koreport reporting framework used by Plan and Kexi.
Marble (but not in so strict version maybe?) is also used in plugins/semanticitems/location.
Comment 3 heminder 2015-03-19 21:34:14 UTC
I've purged all packages with "marble" in their name, but still get the same error upon configuring.

I thought Marble was a build dependency for Krita, since 
$ sudo apt-get build-dep krita
returns the three marble packages libmarble-dev libmarblewidget13 marble-data
Comment 4 Jarosław Staniek 2015-03-19 21:41:12 UTC
@heminder.ah@gmail.com

'plugins/semanticitems/location' plugin was dependent. Maybe this introduced the dependency. 
It does not matter, Calligra will get more modular in 3.x.

I am investigating the bug, if you can, having CMakeCache.txt could be useful.
Comment 5 heminder 2015-03-19 22:07:47 UTC
Created attachment 91644 [details]
CmakeCache.txt

Thanks for looking into it. 

I've attached a copy of CmakeCache.txt found in the build directory. Hope it's useful.
Comment 6 Jarosław Staniek 2015-03-19 22:12:17 UTC
It helped! MARBLE_GLOBAL_HEADER isn't set (by us, not you).
It could be useful if you share info what's your marble version is (from package's info for example)

(I have to tell you that marble's components (not the app) is insufficiently versioned for our needs and until recent lacks one important header)
Comment 7 heminder 2015-03-19 22:23:19 UTC
Marble versions from the package manager:-

$ aptitude show marble
Package: marble                          
New: yes
State: not installed
Version: 4:4.8.4-3
Priority: optional
Section: misc
Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Architecture: amd64
Uncompressed Size: 1,207 k
Depends: kde-runtime, libc6 (>= 2.2.5), libkdecore5 (>= 4:4.7), libkdeui5 (>=
         4:4.7), libkio5 (>= 4:4.7), libknewstuff3-4 (>= 4:4.7), libkparts4 (>=
         4:4.7), libmarblewidget13 (= 4:4.8.4-3), libplasma3 (>= 4:4.7),
         libqt4-network (>= 4:4.5.3), libqtcore4 (>= 4:4.8.0), libqtgui4 (>=
         4:4.5.3), libstdc++6 (>= 4.1.1), marble-data (>= 4:4.8.4-3),
         marble-plugins (= 4:4.8.4-3)
Suggests: libqt4-sql-sqlite, gosmore, monav-routing-daemon, routino
Conflicts: marble
Description: globe and map widget


$ aptitude show libmarble-dev 
Package: libmarble-dev                   
State: not installed
Version: 4:4.8.4-3
Priority: optional
Section: libdevel
Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Architecture: amd64
Uncompressed Size: 949 k
Depends: libc6 (>= 2.2.5), libmarblewidget13 (= 4:4.8.4-3), libqtcore4 (>=
         4:4.5.3), libqtgui4 (>= 4:4.5.3), libstdc++6 (>= 4.1.1), libqt4-dev (>=
         4:4.8.0)
Conflicts: libmarble-dev
Description: development files for the Marble globe widget library
Comment 8 Jarosław Staniek 2015-03-19 23:01:04 UTC
@heminder.ah@gmail.com are you able to this the patch I publish in one minute?
Comment 9 Jarosław Staniek 2015-03-19 23:03:38 UTC
Created attachment 91646 [details]
move handling of minimum version check to FindCalligraMarble.cmake,  make marble not found if minimum version constraint not met; cache variables detected for marble
Comment 10 heminder 2015-03-20 04:16:05 UTC
Hi.
I'm not sure what to do with the file to apply the patch. There are 609 CMakeLists.txt files within the /src directory. Do I replace one of them with your version? There isn't one present in the Marble folder.
Comment 11 Halla Rempt 2015-03-20 07:18:35 UTC
Debian-based distributions have the most amazing set of dependencies for Krita... We really don't need marble for Krita!
Comment 12 Jarosław Staniek 2015-03-20 08:32:55 UTC
@heminder
Please just type these commands:

cd calligra/
patch -p1 < {patchfilename}
Comment 13 heminder 2015-03-20 22:24:08 UTC
OK.

Krita configured, built, and installed successfully. However, upon launching a new error pops up in a gui window reading :-
"The Calligra LittleCMS color management plugin is not installed. Krita will quit now."

The configuring log listed as LittleCMS as being present and set to be installed :-
-- checking for module 'lcms2'
--   found lcms2, version 2.2
-- Found lcms version 2.02, /usr/lib/x86_64-linux-gnu/liblcms2.so


For reference following lcms packages are installed on my system: liblcms1, liblcms2-2, liblcms2-dev, liblcms2-utils.
Comment 14 Halla Rempt 2015-03-21 08:35:31 UTC
That version of lcms is way too old! You need at least 2.4. CMake should have warned you about that.
Comment 15 heminder 2015-03-21 21:33:39 UTC
Ah. Was it get upgraded between the beta and the final release? This wasn't an issue when 2.9 was in pre-release. 

I didn't get any warnings from CMake relating to LCMS, and it just said the LittleCMS features will be included. 

Debian Wheezy only has libcms 2.2 in its main repository, and the backports repo has 2.2+git20110628-2.2+deb7u1
Comment 16 Jarosław Staniek 2015-03-27 00:18:56 UTC
Git commit bdc9f5be404ae6911b17915d6107867751da441d by Jaroslaw Staniek.
Committed on 25/03/2015 at 22:20.
Pushed by staniek into branch 'calligra/2.9'.

Fix cmake error when configuring Calligra - Marble related

- Move handling of minimum version check to FindCalligraMarble.cmake
- Make marble not found if 'minimum version' constraint isn't met
- Cache variables detected for marble

M  +13   -19   CMakeLists.txt
M  +22   -17   cmake/modules/FindCalligraMarble.cmake

http://commits.kde.org/calligra/bdc9f5be404ae6911b17915d6107867751da441d