I am trying to compile darktable master von Debian 11 but keep getting this error when trying to install the dependencies:
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
libexiv2-dev : Hängt ab von: libexiv2-27 (= 0.27.3-3+deb11u1) aber 0.27.5-3.1 soll installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
Looks like libexiv2-dev is broken?
Is there any solution? Is it necessary to upgrade the system to bookworm/testing/sid?
However the gcc-12 requirement is very recent. You can build darktable from git source up to commit commit e2c8b23.
I tested debian 11 standard gcc 10.2.1 on release-4.2.0 code and it built just fine:
cd /home/magnus/camera2/test2
git clone --recurse-submodules https://github.com/darktable-org/darktable.git
cd darktable
git submodule update --init
git checkout release-4.2.0
git submodule update --recursive
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/home/magnus/camera2/test2/darktable/install ..
make -j8
make install
cd /home/magnus/camera2/test2/darktable/install/bin
./darktable
The only issue with this is that debian 11 use exiv2 0.27.3-3 without ISOBMFF support, so Canon CR3 files will not be supported.
-- Exiv2 < 0.27.4 found, no support for ISOBMFF files (CR3, AVIF, HEIF)
For bleeding edge git master I have had to:
Build exiv2 0.27.5 from source with -DEXIV2_ENABLE_BMFF=On
Built gcc-12.2 from gcc source Index of /gnu/gcc/gcc-12.2.0 and install it in my darktable sandbox on debian stable
EDIT: Debian testing is on gcc 12, so that is one way, since building and bootstrapping and testing one’s own compiler is a heavy job. Sometimes Debian backports can help, but I did not find gcc-12 there. I have not tried to install a binary version of a newer exiv2 library, with ISOBMFF support (I am on Canon), since I build from source.
apt list libexiv2-dev --installed
Listing... Done
libexiv2-dev/stable,stable-security,now 0.27.3-3+deb11u1 amd64 [installed,automatic]
Debian 11 does not provide libexiv2-dev 0.27.5 as standard.
I configure darktable build to use a local set of libraries if and when I need them, like gcc-12 and libexiv2 0.27.5, but then I have to source shell scripts before build and run time.