Darktable + CR3

I know this topic has come up alot. BUT. I’ve only heard of a couple success and little explanation.

I’ve tried building 3.6.1 and 3.7.0 with src/external/rawspeed replaced with cytinox/rawspeed cloned repo and edited the .gitmodules to point to the cytinox/rawspeed and canon_cr3 branch. note** im running fedora 34

I’ve installed exiv2 with bmff enabled.

I’ve successfully installed but DT wouldnt open. After uninstalling and making sure /opt didnt still have DT, now im stuck with this error.

home/swaine/darktable/src/common/imageio_rawspeed.cc:133:24: error: no matching function for call to ‘rawspeed::RawParser::RawParser(std::unique_ptr<const rawspeed::Buffer>::pointer)’

133 | RawParser t(m.get());
| ^
compilation terminated due to -Wfatal-errors.
make[2]: *** [bin/CMakeFiles/lib_darktable.dir/build.make:726: bin/CMakeFiles/lib_darktable.dir/common/imageio_rawspeed.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2307: bin/CMakeFiles/lib_darktable.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

is the header file missing?

I am still not able to get this sucker running. Are there any success stories out there that would like to share their process?

Maybe try building from here…Martin has some OSX and Windows builds from this … https://github.com/MStraeten/darktable

Thanks or the reply. Still no dice.

opt/darktable/bin/darktable: symbol lookup error: /opt/darktable/bin/…/lib64/darktable/libdarktable.so: undefined symbol: _ZN5Exiv210enableBMFFEb

Im starting to think its Fedora.

Can you start it with GDB?

Are you rebuilding exiv2 as well? BMFF is not enabled for Fedora’s system exiv2 package…

Or you’re not loading/linking to your custom exiv2 first.

since idobmff detection is broken on osx (
https://github.com/darktable-org/darktable/issues/9024) i changed src/CMakeLists.txt to force using isobmff support.
So https://github.com/MStraeten/darktable isn‘t a solution to use in any cases. It’s just proofed for osx and win10 having isobmff support compiled into exiv2

Can you try ldd path_to_your_darktable_executable ?

You then get a list of all the shared libraries the executable is loading. You should see something from exiv2 in the list… Is it pointing to your build with bmff enabled , or is it pointing to your system exiv2 (which probably doesn’t have bmff ).

Thanks for the responses. ill give some of those suggestion a try. might take some.no time on the weekends with a kid.

For the first time since I switched to Linux many years ago, I feel a bit of envy for Mac and win users that have unofficial builds of darktable with cr3 support… Every time I get to the week end I plan on getting on with the advice given here elsewhere and try to make my own build with cr3 support thinking “couple of hours and I’ll have it done” but then time passes and I read this kind of experience and all my enthusiasm implodes. I guess I will continue to convert to dng with dnglab and just not think about native support.

(But if someone would do unofficial Linux builds like for osx and win I will surely appreciate the effort!)

I just downloaded from the exiv2 repository and built with bmff enabled. Do you think I need to link to that exiv2?

So I have made some progress. I was able to install darktable with exiv2 working and was able to read the metadata from a CR3 file and see the image preview. I was still not able to open the image in darkroom.

I did update the submodules after replaceing the rawspeed file with the cytrinox/rawspeed. So after installing i notice that there was no CR3 decoder.

I uninstalled, rm’d src/external/rawspeed and git cloned cytrinox/rawspeed then ./build.sh.

The CR3 decoder is in there but I keep getting this error:

darktable/src/common/imageio_rawspeed.cc:133:24: error: no matching function for call to ‘rawspeed::RawParser::RawParser(std::unique_ptr::pointer)’
133 | RawParser t(m.get());
| ^
compilation terminated due to -Wfatal-errors.
gmake[2]: *** [bin/CMakeFiles/lib_darktable.dir/build.make:726: bin/CMakeFiles/lib_darktable.dir/common/imageio_rawspeed.cc.o] Error 1
gmake[2]: *** Waiting for unfinished jobs…
gmake[1]: *** [CMakeFiles/Makefile2:2307: bin/CMakeFiles/lib_darktable.dir/all] Error 2

Anyone got any ideas?

What if i just copied the CR3 decoder header and c++ file to darktables rawspeed?

SUCCESS! I now have CR3 support in Darktable. However photos seem off when I go to develop. Way underexposed. If anyone might have an idea on why id love to know. And if im not talking to myself here Id be glad to discuss how I did it.


Have you used DT in the past?? My apologies if you have but likely if not what you see is the fact that DT does almost nothing to your image by default and in scene-referred you will be routinely adding 1-2.5 ev to start your edits… Rapidfire Fix #3 - Demystifying Darktable Import and Preview - YouTube

The question is asked so often and as DT initially shows the jpg preview and then moves to the raw when you initiate and edit …images get instantly darker and this really throws people…

I could be wrong but this might be what you are seeing…if you are aware of all this then ignore me

1 Like

I was not aware. I am still new to DT. I will look into this more. Thank you for responding.

With DT you add exposure to correctly expose your midtones…even if the highlights appear to blow out then you use filmic to map Dynamic range to tonally map your shadows and highlights…there is some desaturation in the process so you work to add that back…There are a ton of videos out there…The last 10 or so from Boris Hajdukovic’s YT channel are some of the best and most recent and are an excellent demonstration of DT and SR editing…Google Editing moments Darktable…



Now that I’ve got DT where I want it I can start to really understand the software. Ill definitely take a look a look at these videos, thanks!

I’d be glad to try on Ubuntu/pop!os if you want to post steps. I don’t see version numbers but have both a flatpack and a deb version installable if libs can do it, or point to which code to get.

Seems like clear instructions…

Cheers Todd you’re right this was posted just after my mini-rant – brilliant timing!