Slackware64 and Digikam
by BenV on Feb.22, 2012, under Software
Last week we bought a new toy — a Canon EOS 600D (including a lens with about the same pricetag). So far I’m happy with it, it’s nice to play with a ‘real’ camera for a change. (our previous one is a simple Samsung TL205. Apples and oranges.)
After making a few million pictures and a few movies with the new toy I decided it was time to see how to transfer them.
In my first attempt I simply put the memory card from the camera into an ancient USB card reader. This worked underboth operating systems, but was terribly slow.
Next I tried the USB connection to the camera.
Under windows this is simple: connect the device, click away a few annoying dialogs and simply drag/drop etc. It was fast too.
Under linux however I had no idea how this would turn out. Apparently the camera handles tranfers over USB through some kind of dedicated transfer protocol. Linux has libgphoto for that, but the commandline tools are annoying. I guess a fuse based filesystem driver would be a lot better, but I haven’t seen it yet. (not searched for it ;))
Anyway, after searching for a while I found Digikam. Looks promising if you judge it from their website.
Then you download it and try to compile it. And find out it uses CMake. And it doesn’t properly detect a bunch of libraries that I certainly have installed (because it uses CMake, obviously). And it doesn’t compile.
After trying out cmake-gui (which made configuring CMake somewhat possible) and compiling a bunch of dependencies like libexiv and liblcms2 (which I already had but it didn’t detect, piece of junk) I managed to get it through the CMake process at some point.
Compilation failed a little later though:
[ 9%] Building CXX object extra/libkgeomap/libkgeomap/CMakeFiles/kgeomap.dir/tilegrouper.cpp.o
[ 9%] Building CXX object extra/libkgeomap/libkgeomap/CMakeFiles/kgeomap.dir/tileindex.cpp.o
[ 9%] Building CXX object extra/libkgeomap/libkgeomap/CMakeFiles/kgeomap.dir/backend_map_marble.cpp.o
/usr/src/digikam-2.6.0-beta1/extra/libkgeomap/libkgeomap/backend_map_marble.cpp: In member function ‘virtual KGeoMap::GeoCoordinates::PairList KGeoMap::BackendMarble::getNormalizedBounds()’:
/usr/src/digikam-2.6.0-beta1/extra/libkgeomap/libkgeomap/backend_map_marble.cpp:1032:90: error: invalid use of incomplete type ‘struct Marble::ViewParams’
/usr/include/marble/MarbleMap.h:53:7: error: forward declaration of ‘struct Marble::ViewParams’
make[2]: *** [extra/libkgeomap/libkgeomap/CMakeFiles/kgeomap.dir/backend_map_marble.cpp.o] Error 1
make[1]: *** [extra/libkgeomap/libkgeomap/CMakeFiles/kgeomap.dir/all] Error 2
make: *** [all] Error 2
A search for this error turned up a discussion about an older version (2.1.1) that ended in “It’s not compatible with KDE 4.5.5”.
I checked, and yes sir, that’s what Slackware current still has at this moment.
Since I don’t care about KDE at all (I run Fluxbox again after getting fed up with Awesome due to fullscreen wine issues, and they both suck with multiple monitors), I figured I might as well try upgrading it to a newer version.
Fortunately Mr. Alien saved me a ton of work by making some nice packages with the newer KDE versions.
You can find installation instructions HERE for version 4.8.0.
Thanks Mr Alien! 🙂
(to be continued)