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)’
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 ).
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!)
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
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
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…
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.