Bug 348553 - Fail build. quazip(qt4) header path hardcoded in marble/src/plugins/runner/kml/KmzHandler.cpp when try build with Qt5/KF5
Summary: Fail build. quazip(qt4) header path hardcoded in marble/src/plugins/runner/km...
Status: RESOLVED FIXED
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR grave
Target Milestone: ---
Assignee: marble-bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-06-01 18:23 UTC by Gustavo Alvarez
Modified: 2015-06-01 20:03 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gustavo Alvarez 2015-06-01 18:23:18 UTC
Hi

According of this:

http://quickgit.kde.org/?p=marble.git&a=blobdiff&h=c06ac2def37fde136ead5021a865fecf8b3795e1&hp=bf982672783c576c1cac755b847bb9f9954639f0&hb=030b7dea47a29d40b497106602148d8e66a4088d&f=cmake%2Fmodules%2FFindquazip.cmake

in http://quickgit.kde.org/?p=marble.git&a=blob&h=c2fc76e8418426fa4d5069217fb5ea859479e315&hb=302efc0d343a40240c32167f1642d4992a743f66&f=src%2Fplugins%2Frunner%2Fkml%2FKmzHandler.cpp

lines #16 # and 17, the path of quazip is hardcoded. if only install a quazip builded with qt5 (headers save in /foo/include/quazip5, fail build whit missing file

Reproducible: Always

Steps to Reproduce:
1.installl/build quazip with qt5 supoort
2.download marble from git
3. build
4 wait to crash (missing quazip header file)

Actual Results:  
fail build

Expected Results:  
build ok

workground is change

#include <quazip/quazip.h>
#include <quazip/quazipfile.h>

to 

#include <quazip5/quazip.h>
#include <quazip5/quazipfile.h>

or fix by dev (sorry i'm not coder)
Comment 1 Dennis Nienhüser 2015-06-01 19:33:37 UTC
We need some way to determine whether quazip was built against Qt4 or Qt5. When using quazip/Qt4 with Marble/Qt5, you'll get a crash at runtime.

@Rex: How does Fedora package quazip? From a quick look at the sources it seems quazip itself does not use any Qt 5 special postfixes in its installation. Is that changed in Fedora? I'm wondering because of http://quickgit.kde.org/?p=marble.git&a=commit&h=030b7de
Comment 2 Rex Dieter 2015-06-01 19:42:38 UTC
Quazip upstream uses a "5" postfix, starting from:
https://sourceforge.net/p/quazip/code/254/

which is why I made the aforementioned commit to marble to follow suit.

(I guess I should have referenced that in the marble commit to make that clear, my apologies)
Comment 3 Gustavo Alvarez 2015-06-01 19:42:49 UTC
quazip, qhen build with Qt5 install:

/usr/
/usr/include/
/usr/include/quazip5/
/usr/include/quazip5/JlCompress.h
/usr/include/quazip5/crypt.h
/usr/include/quazip5/ioapi.h
/usr/include/quazip5/quaadler32.h
/usr/include/quazip5/quachecksum32.h
/usr/include/quazip5/quacrc32.h
/usr/include/quazip5/quagzipfile.h
/usr/include/quazip5/quaziodevice.h
/usr/include/quazip5/quazip.h
/usr/include/quazip5/quazip_global.h
/usr/include/quazip5/quazipdir.h
/usr/include/quazip5/quazipfile.h
/usr/include/quazip5/quazipfileinfo.h
/usr/include/quazip5/quazipnewinfo.h
/usr/include/quazip5/unzip.h
/usr/include/quazip5/zip.h
/usr/lib/
/usr/lib/libquazip.a
/usr/lib/libquazip5.so
/usr/lib/libquazip5.so.1
/usr/lib/libquazip5.so.1.0.0
/usr/share/
/usr/share/cmake-3.2/
/usr/share/cmake-3.2/Modules/
/usr/share/cmake-3.2/Modules/FindQuaZip5.cmake

and when build with qt4:

/usr/
/usr/include/
/usr/include/quazip/
/usr/include/quazip/JlCompress.h
/usr/include/quazip/crypt.h
/usr/include/quazip/ioapi.h
/usr/include/quazip/quaadler32.h
/usr/include/quazip/quachecksum32.h
/usr/include/quazip/quacrc32.h
/usr/include/quazip/quagzipfile.h
/usr/include/quazip/quaziodevice.h
/usr/include/quazip/quazip.h
/usr/include/quazip/quazip_global.h
/usr/include/quazip/quazipdir.h
/usr/include/quazip/quazipfile.h
/usr/include/quazip/quazipfileinfo.h
/usr/include/quazip/quazipnewinfo.h
/usr/include/quazip/unzip.h
/usr/include/quazip/zip.h
/usr/lib/
/usr/lib/libquazip.so
/usr/lib/libquazip.so.1
/usr/lib/libquazip.so.1.0
/usr/lib/libquazip.so.1.0.0
/usr/share/
/usr/share/cmake-3.2/
/usr/share/cmake-3.2/Modules/
/usr/share/cmake-3.2/Modules/FindQuaZip.cmake


both buid with: qmake-qt{4,5} PREFIX=/usr (both from SVN) (waiting to release for use a cmake build system)
Comment 4 Dennis Nienhüser 2015-06-01 19:55:06 UTC
Thanks for the fast replies. I was looking at quazip-0.7.1, which is the latest release but still before the introduction of the 5 postfix. I can reproduce the problem now, working on a fix.
Comment 5 Dennis Nienhüser 2015-06-01 20:03:58 UTC
Git commit e640a4bf12fdbd33ccb9c5b7820effe341898535 by Dennis Nienhüser.
Committed on 01/06/2015 at 20:02.
Pushed by nienhueser into branch 'master'.

quazip for Qt5 is installed to quazip5/ since rev 254

See http://sourceforge.net/p/quazip/code/254/

M  +2    -2    cmake/modules/Findquazip.cmake
M  +2    -2    src/plugins/runner/kml/KmzHandler.cpp

http://commits.kde.org/marble/e640a4bf12fdbd33ccb9c5b7820effe341898535