[Digikam-devel] Re: libkmap && KDE 4.6 beta2

Michael G. Hansen mike at mghansen.de
Thu Dec 9 23:12:55 GMT 2010


On 12/09/2010 11:42 PM, Martin Klapetek wrote:
> On Thu, Dec 9, 2010 at 23:31, Michael G. Hansen<mike at mghansen.de>  wrote:
>
>> On 12/09/2010 12:19 AM, Martin Klapetek wrote:
>>> Hi,
>>>
>>> I'd just like to inform you, that libkmap from kdereview/ does not
>> compile
>>> anymore with the newest KDE 4.6 beta2 (4.5.85) because of some Marble
>> stuff.
>>> Also, digiKam  won't run on 4.5.85 with the libkmap compiled against
>> Marble
>>> <= 4.5.80. Probably some changes in Marble. Here's the build log:
>>>
>>> [ 54%] Building CXX object libkmap/CMakeFiles/kmap.dir/backend-marble.o
>>>
>>>
>>> [ 59%] Building CXX object
>>> libkmap/CMakeFiles/kmap.dir/backend-marble-layer.o
>>>
>>> [ 63%] Building CXX object
>> libkmap/CMakeFiles/kmap.dir/backend-googlemaps.o
>>>
>>> /home/mck182/GSoC/trunk/libkmap/libkmap/backend-marble-layer.cpp:49:6:
>>> warning: unused parameter ‘viewport’
>>>
>>> /home/mck182/GSoC/trunk/libkmap/libkmap/backend-marble-layer.cpp:49:6:
>>> warning: unused parameter ‘layer’
>>> /home/mck182/GSoC/trunk/libkmap/libkmap/backend-marble.cpp: In
>> constructor
>>> ‘KMap::BackendMarble::BackendMarble(const
>>> QExplicitlySharedDataPointer<KMap::KMapSharedData>&, QObject*)’:
>>> /home/mck182/GSoC/trunk/libkmap/libkmap/backend-marble.cpp:156:31: error:
>>> ‘class Marble::MarbleModel’ has no member named ‘addLayer’
>>> /home/mck182/GSoC/trunk/libkmap/libkmap/backend-marble.cpp: In destructor
>>> ‘virtual KMap::BackendMarble::~BackendMarble()’:
>>> /home/mck182/GSoC/trunk/libkmap/libkmap/backend-marble.cpp:179:35: error:
>>> ‘class Marble::MarbleModel’ has no member named ‘removeLayer’
>>> make[2]: *** [libkmap/CMakeFiles/kmap.dir/backend-marble.o] Error 1
>>> make[1]: *** [libkmap/CMakeFiles/kmap.dir/all] Error 2
>>> make: *** [all] Error 2
>>> [mck182 at mck182-tablet build]$
>>
>> Thanks Marty! However, I'm not up to 4.6 beta2 yet.
>>
>> As a temporary solution, you could modify libkmap/CMakelists.txt in this
>> region to not define KMAP_MARBLE_ADD_LAYER for KDE 4.6 beta2 or later:
>>
>> IF (${KDE_VERSION} VERSION_GREATER "4.4.66")
>>      ADD_DEFINITIONS(-DKMAP_MARBLE_ADD_LAYER)
>>      SET( backend_marble_sources ${backend_marble_sources}
>> backend-marble-layer.cpp )
>> ELSE (${KDE_VERSION} VERSION_GREATER "4.4.66")
>>      SET( backend_marble_sources ${backend_marble_sources}
>> backend-marble-subwidget.cpp )
>> ENDIF (${KDE_VERSION} VERSION_GREATER "4.4.66")
>>
>
> Where exactly should I place this? I tried to put it before the lines
>
> SUBDIRS(libkmap)
> SUBDIRS(test)
> SUBDIRS(calibrator)
>
> but the build still fails, with the same error.

I'm sorry, it should be in the libkmap/libkmap/CMakelists.txt. The code 
is already there, you just have to add a case for your version, line 53:

http://websvn.kde.org/trunk/kdereview/libkmap/libkmap/CMakeLists.txt?revision=1199709&view=markup


>
>
>>
>>   >  Also, digiKam  won't run on 4.5.85 with the libkmap compiled against
>> Marble
>>   >  <= 4.5.80. Probably some changes in Marble. Here's the build log:
>>
>> "Won't run" as in "crashes"? Do you have a backtrace? :-)
>>
>
> Oh, yes, of course :) Here's the relevant part:
>
> Thread 1 (Thread 0x7f461daf6a00 (LWP 22137)):
>
> [KCrash Handler]
>
> #6 0x0000000000000000 in ?? ()
>
> #7 0x00000036ad238d62 in KMap::BackendMarble::BackendMarble (this=0x1c22720,
> sharedData=..., parent=0x1bb1f40) at
> /home/mck182/GSoC/trunk/libkmap/libkmap/backend-marble.cpp:158
>
> #8 0x00000036ad216848 in KMap::KMapWidget::KMapWidget (this=0x1bb1f40,
> parent=0x1bb1130) at
> /home/mck182/GSoC/trunk/libkmap/libkmap/kmap_widget.cpp:256
>
> #9 0x00000000006357a6 in Digikam::MapWidgetView::MapWidgetView
> (this=0x1bb1130, selectionModel=0x11152b0, imageFilterModel=0xfddbd0,
> parent=0x11fa160) at
> /home/mck182/GSoC/trunk/digikam-gsoc/digikam/mapwidgetview.cpp:107
>
> #10 0x00000000005c5c62 in Digikam::AlbumWidgetStack::AlbumWidgetStack
> (this=0x11fa160, parent=0x1117890) at
> /home/mck182/GSoC/trunk/digikam-gsoc/digikam/albumwidgetstack.cpp:110
>
> #11 0x00000000005faf21 in Digikam::DigikamView::DigikamView (this=0x11aa890,
> parent=0x107ab50, modelCollection=0x10f7630) at
> /home/mck182/GSoC/trunk/digikam-gsoc/digikam/digikamview.cpp:189
>
> #12 0x00000000005d8600 in Digikam::DigikamApp::setupView (this=0x107ab50) at
> /home/mck182/GSoC/trunk/digikam-gsoc/digikam/digikamapp.cpp:517
>
> #13 0x00000000005d7157 in Digikam::DigikamApp::DigikamApp (this=0x107ab50,
> __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at
> /home/mck182/GSoC/trunk/digikam-gsoc/digikam/digikamapp.cpp:236
>
> #14 0x00000000006a4397 in main (argc=1, argv=0x7fff955b5eb8) at
> /home/mck182/GSoC/trunk/digikam-gsoc/digikam/main.cpp:188

Sorry, I don't see a reason for a crash now... are you sure it's not a 
binary incompatibility? Did you recompile libkmap with that version of 
marble?

Michael



More information about the Digikam-devel mailing list