Compiling digikam
Date: 01 Jan, 2022
Posted by: admin
In: linux, open source & software
Installing digikam from source. It seems harder than it should be. Perhaps my old skills need polishing. This is a stub post just to put the info I have so far out there and to provide documentation for myself for what I’ve done so far.
Dependency hell heck
Briefly, have some deps installed
sudo apt install extra-cmake-modules libqt5xmlpatterns5-dev libkf5filemetadata-dev libkf5threadweaver-dev libkf5notifyconfig-dev libkf5akonadicontact-dev libkf5contacts-dev libkf5sane-dev libkf5calendarcore-dev libpostproc-dev libexiv2-dev libtiff-dev libtiffxx5 libgraphicsmagick++1-dev libmagickwand-6.q16-dev libmagick++-6-headers libmagickcore-6.q16-dev libxslt1-dev bison libx265-dev libxslt1-dev libavcodec-dev libavutil-dev libswscale-dev liblensfun-dev libgphoto2-dev doxygen libqtav-dev ccache liblcms2-dev qtav libopencv-dev libopencv-core-dev libopencv-apps-dev flex
Finding this list was much harder than it should have been.
If there was a digikam source file in the apt repos then `sudo apt build-dep digikam` would get the necessary files, but sadly that just returns “E: Unable to find a source package for digikam”.
So, I was left taking the reports from the bootstrap.log file and interpreting lines like “Could NOT find FFmpeg (missing: AVCODEC_LIBRARIES AVCODEC_INCLUDE_DIRS AVDEVICE_LIBRARIES AVDEVICE_INCLUDE_DIRS AVFILTER_LIBRARIES AVFILTER_INCLUDE_DIRS AVFORMAT_LIBRARIES AVFORMAT_INCLUDE_DIRS SWSCALE_LIBRARIES SWSCALE_INCLUDE_DIRS)” to work out which packages needed installing. Then using apt-file search
and apt search
to find package names to add to my sudo apt install
line.
Errors and issues
These all gave problems or were notable:
extra-cmake-modules # this is called ECM by the install scripts
libmarble-dev # libmarble-dev causes libastro-dev to be installed
liblqr-1-0-dev # wasn't found by digikam's script
jasper # couldn't find a package, see my other blog post
I made a whole other post about compiling jasper.
Then you can download from digikam in order to get the latest release. For me that was 7.4.0, and I went to the mirrorlist and chose a new download that came from a https server, amazed that any of their mirrors were from http.
The liblqr issue appears to be because digikam is looking for liblqr-0, so I may have to install that manually too. Checking on packages.ubuntu.com I see that going back to Bionic (18.04) Ubuntu has been using liblqr-1.
Check signature files to verify download
In order to check the signature file I had to download that too, then do this with gpg:
gpg –keyid-format long –verify digiKam-7.4.0.tar.xz.sig digiKam-7.4.0.tar.xz
That tells you that there’s no key to verify, or somesuch, and so you take the key it gives, after the 0x in the next command, and download:
gpg –keyid-format long –keyserver hkp://keyserver.ubuntu.com –recv-keys 0xD1CF2444A7858C5F2FB095B74A77747
BC2386E50 # import key for digikam
Repeating the above gpg then will tell you the signature is “GOOD” but also makes a big warning, which I understand means that you haven’t co-signed the file, so I ignored that and pressed on.
Check checksums
Check shasum, sha256sum as given on the mirrorlist download page, eg with shasum ./*.xv
in the download directory:
SHA1 | a9069322b7e32151597acde47bd2207234145527 |
SHA256 | d08ab66da732bb449bc10106ec11dd9defa5b3562ded3741b041dbbaa715504a |