libkmap && KDE 4.6 beta2

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

libkmap && KDE 4.6 beta2

Martin Klapetek
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@mck182-tablet build]$

Marty

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: libkmap && KDE 4.6 beta2

Michael G. Hansen
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@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")

 > 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? :-)

Michael
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: libkmap && KDE 4.6 beta2

Martin Klapetek

On Thu, Dec 9, 2010 at 23:31, Michael G. Hansen <[hidden email]> 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@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.
 

 > 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


Marty


_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: libkmap && KDE 4.6 beta2

Michael G. Hansen
On 12/09/2010 11:42 PM, Martin Klapetek wrote:

> On Thu, Dec 9, 2010 at 23:31, Michael G. Hansen<[hidden email]>  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@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
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: libkmap && KDE 4.6 beta2

Michael G. Hansen
In reply to this post by Martin Klapetek
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.

I fixed this in commit 1205859. I those of you with an earlier version
of Marble encounter problems, try the fix indicated in the code and let
me know!

Michael


SVN commit 1205859 by mghansen:

Adapt to Marble API change. Not sure the version number for the if is
correct, though.



  M  +14 -0     backend-marble.cpp


---
branches/extragear/graphics/digikam/3rdparty/libkmap/libkmap/backend-marble.cpp
#1205858:1205859
@@ -153,7 +153,14 @@
  #ifdef KMAP_MARBLE_ADD_LAYER
      d->marbleWidget = new Marble::MarbleWidget();
      d->bmLayer = new BMLayer(this);
+
+    /// @todo I am not sure this is the exact version where this was
changed. If the build fails with the version you have, use the else-part
of this.
+#if MARBLE_VERSION>=0x000b00
+    d->marbleWidget->map()->addLayer(d->bmLayer);
+#else
      d->marbleWidget->model()->addLayer(d->bmLayer);
+#endif
+
  #else
      d->marbleWidget = new BMWidget(this);
  #endif
@@ -176,7 +183,14 @@
      if (d->marbleWidget)
      {
  #ifdef KMAP_MARBLE_ADD_LAYER
+
+    /// @todo I am not sure this is the exact version where this was
changed. If the build fails with the version you have, use the else-part
of this.
+#if MARBLE_VERSION>=0x000b00
+        d->marbleWidget->map()->removeLayer(d->bmLayer);
+#else
          d->marbleWidget->model()->removeLayer(d->bmLayer);
+#endif
+
          delete d->bmLayer;
  #endif
          delete d->marbleWidget;

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel