Darktable + CR3

As follow up…I see how this could come across that I was implying it was easy or something…I had only meant that this seemed like a clear set of instructions that might help…I only noticed this looking back now after you replied…I am no wise guy so I am glad you took it as I intended and not as I tersely wrote it…best of luck…

I never had that thought honestly! Plus I kind of “know” you from all the posts her and I’ve never heard (or read) anything less than kind/helpful/collaborative from you.

1 Like

I would never want to be otherwise…I hope you get up and running with your Canon files soon…

1 Like

Thank you ,Todd! I was able to get support for CR3 files. I wish I had your instructions earlier! I actually ended up doing just as you have. You have provided a great resource for other canon CR3 users. Maybe there will be support for cr3 with DT 3.8 soon and others wont have to build it manually.

Hi guys and girls (m/f/d),

I also try to get Darktable running with CR3 support.
I’m running Fedora 34

What have I done so far:
#Installed Exiv2 with BMFF enabled:
git clone --recurse-submodules GitHub - Exiv2/exiv2: Image metadata library and tools
cd exiv2/
mkdir build
vi CMakeLists.txt # made sure BMFF support is enabled
cd build
cmake -DCMAKE_BUILD_TYPE=Release …
cmake --build .
ctest --verbose
sudo cmake --install .

#Correct the link to the new lib
cd /lib64
ls -l exiv
sudo rm libexiv2.so.27
sudo ln -s /usr/local/lib64/libexiv2.so.27
ls -l exiv

#Installing Darktable as described on the github page along with the description of Darktable Ubuntu CR3 support
git clone --recurse-submodules --depth 1 GitHub - darktable-org/darktable: darktable is an open source photography workflow application and raw developer
cd darktable
git fetch --tags
git checkout tags/release-3.8.1
vi .gitmodules # and changed the rawspeed submodule to cytronix, branch canon_cr3

git submodule init
git submodule update --init

cd src/external
rm -rf rawspeed
git clone GitHub - cytrinox/rawspeed: fast raw decoding library
cd rawspeed
git switch canon_cr3
cd …/…/… # back to the darktable directory

./build.sh --prefix /opt/darktable-3.8.1 --build-type Release --install --sudo

it even states, that BMFF support is enabled:
– Found Exiv2: /usr/local/lib64/libexiv2.so (Required is at least version “0.24”)
– Looking for EXV_ENABLE_BMFF
– Looking for EXV_ENABLE_BMFF - found
– Exiv2 >= 0.27.4 found with ISOBMFF support (CR3, AVIF, HEIF)
[ 42%] Building C object bin/CMakeFiles/lib_darktable.dir/common/iop_group.c.o
In Datei, eingebunden von /usr/local/include/exiv2/exiv2.hpp:8,
von /home/matze/Downloads/darktable/src/common/exif.cc:46:
/usr/local/include/exiv2/basicio.hpp:698:25: Fehler: »string_view« in Namensbereich »std« bezeichnet keinen Typ
698 | static constexpr std::string_view TEMP_FILE_EXT = “.exiv2_temp”;
| ^~~~~~~~~~~
Kompilierung wegen »-Wfatal-errors« beendet.
gmake[2]: *** [bin/CMakeFiles/lib_darktable.dir/build.make:418: bin/CMakeFiles/lib_darktable.dir/common/exif.cc.o] Fehler 1
gmake[2]: *** Es wird auf noch nicht beendete Prozesse gewartet…
gmake[1]: *** [CMakeFiles/Makefile2:1749: bin/CMakeFiles/lib_darktable.dir/all] Fehler 2
gmake: *** [Makefile:156: all] Fehler 2

The last files are unfortunately in German. So I’ll try to translate them:
[ 42%] Building C object bin/CMakeFiles/lib_darktable.dir/common/iop_group.c.o
In File, imported of /usr/local/include/exiv2/exiv2.hpp:8,
of /home/matze/Downloads/darktable/src/common/exif.cc:46:
/usr/local/include/exiv2/basicio.hpp:698:25: Error: »string_view« in namespace »std« bezeichnet (that’s difficult, could be either naming|calling|refering|indicating) no Type
698 | static constexpr std::string_view TEMP_FILE_EXT = “.exiv2_temp”;
| ^~~~~~~~~~~
Compiling stopped due to »-Wfatal-errors«.
gmake[2]: *** [bin/CMakeFiles/lib_darktable.dir/build.make:418: bin/CMakeFiles/lib_darktable.dir/common/exif.cc.o] Error 1
gmake[2]: *** Waiting for processes, which are not finished yet
gmake[1]: *** [CMakeFiles/Makefile2:1749: bin/CMakeFiles/lib_darktable.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2

So googling with German error messages is bullshit.

So that’s why I’m asking you. What’s wrong? I’ve been using exiv2 with libexiv2.so.0.27.5

Thanks and best regards

You don’t need @cytrinox’s rawspeed branch for darktable 3.8.1, instead it uses an intree copy of libraw to handle cr3 support.

Also not sure about copying the exiv2.so,maybe that works, maybe it doesn’t.

1 Like

You definitely don’t want the development 1.x branch of exiv2, stick with 0.27-maintenance which keeps ABI compatibility.

1 Like

Thank you Milos and Mica,

@paperdigits: I tried it with “standard” rawspeed → same error
It was the exiv2, where I’ve loaded the bleeding edge …

Using the exiv2-maintenance fixed the issue I can now open CR3 files in DT :slight_smile:
Thank you very much :slight_smile: