Darktable on ubuntu 18.04 / exiv2 is obsolete - Any PPA/snap solving this?

There is also a snap package of darktable, so long as you’re perusing packages. I have no idea what exiv2 it is built against nor do I know if GPU acceleration will work, but maybe it’ll work for you.

I did try the snap. It has the same issue - it seems to be based off of a prior version of Pascal’s packages. Incidentally I also noticed some strange issues with the theme, some colors where off. Looks like flatpak is in better shape than snap these days, even in ubuntu.

Still puzzled on why my local build also has the problem. Looking at the working flatpak build file, there are no customizations, just the darktable source tarball from github and four other small updated packages. I built darktable but got the packages from debian experimental. Maybe I’ll try building all 4 and see if I can bring my entire workstation down :slight_smile:

Darktable has way more dependencies than the 4 listed in the flatpak manifest, but they’re handled by the shared gnome flatpak, which is listed in the first few lines of the darktable flatpak manifest.

No solution yet of this problem? I could swear that my EF-M 15-45 was working in darktable last month. I have been in Japan during September. When I started my computer yesterday I just get lens (4153). I wrote a bug report here Bug #1368: Canon EF-M 15-45 broken LensType - Exiv2 because I thought the issue was exiv2. Robin Mills there answered

“If you’re using Exiv2 v0.26 (in libexiv2.26.dylib), you can modify the lens identification in the ~/.exiv2 file”

But I still use 0.25 so I suppose I have to wait to get it updated by Pascal?

@paperdigits @houz

Should I start working on a Darktable AppImage? I think it should be possible to build it in a way that OpenCL is supported as well…

No solution yet. I heard back from one of the ubuntu maintainers, the reasons they dont ship 0.26 is a) debian still had 0.26 under experimental (at the time I asked), b) the change is disruptive to other apps that use and depend on the 0.25 version, so they are waiting for debian to do the work, c) there were a few security vulnerabilities on 0.26 that needed patching (at the time). I guess that b) is why the official ppa is not including the updated exiv2.

At this time the only solution that worked for me is the official flatpak, at the expense of breaking opencl, so not usable in the end.

Unfortunately the next ubuntu release seems to be going with 0.25

cosmic (graphics): EXIF/IPTC/XMP metadata manipulation tool [universe]
0.25-4: amd64 arm64 armhf i386 ppc64el s390x

An Appimage would be nice if it is able to pickup the system opencl libraries
FWIW fedora ships 0.26

I’m already using the darktable flatpak and there is a snap of darktable already as well, so I’d rank having an AppImage relatively low, but that’s just me.

I can wait and just add lens correction manually meanwhile.

I think you can backport exiv2 0.26 from either Cosmic or Debian Testing repos

Cosmic is using 0.25 as well.

I did try to build 0.26 from debian sources (and then built DT as well) but for some reason it didn’t work, guessing it’s due to ABI/API changes. I can also guess that’s why the DT ppa and ubuntu 18.10 don’t include the updated exiv2 package, it seems backporting it’s not so simple.
Only the flatpak worked in my case, but I can’t use it as I lose OpenCL - in my case that’s a deal breaker

I think exiv2 does not many dependensies so it should be fairly easy to compile it from sources. Have you tried?

You can also try installing exiv2 0.26 rpm using in your system alien command. OpenSUSE, CentOS, etc have that rpm in their repos

The best way for Ubuntu is:

$ sudo snap install darktable

I tested the snap, for some reason the darktable snap did not have the latest lenses, same issue as the PPA; however the flatpak version did have the latest lenses and also I could confirm in their github repo that they had included exiv2 0.26

Also, the snap version looks really horrible under a dark-themed ubuntu, it only looks OK with ubuntu’s default theme, at least in my test. The flatpak on the other hand picks up whatever system theme you have.

As mentioned before in this thread, both snap and flatpak are unable to support openCL, a red flag if you have a discrete GPU and intend to benefit darktable from it

Are you sure that the issue is exiv2 version? Have you run lensfun-update-data to update the lens library?

If so, and you need opencl acceleration, it seems like your best options are either to build it all from source or switch distros to something that has more up to-date-software.

Yes I am sure it’s the exiv2 version. 0.25 is not able to decode properly and get the lens ID, so the updated DB (as downloaded by lensfun-update-data) is useless for that 2-3 year-old exiv2 release. 0.26 is able to pick up the newer lenses prensent in the DB with no issues.
And yes distros other than ubuntu/debian don’t have this problem, including Fedora 28 which comes with 0.26.
I was using Fedora (for many years) but recently had to switch to ubuntu -that’s how I ran into this.

Not complaining, manual lens selection does the job for now, and it’s not that bad. I could incorporate the lens selection in a Style if needed.

I started asking here and there why the PPA was using such an old version of the library. Now I can see it’s not so trivial to upgrade exiv2, there is a reason they are using the old release. Eventually Debian will pick up the new version and this problem will go away. It may take a year or two.

1 Like

I think exiv2 0.26 is already two years old though :hushed: You might want to try openSUSE Leap instead. It is as stable as debian(based) but it has recent packages in their graphics repo.

I had none of the problems you mentioned. I’d still recommend “sudo snap install darktable”.

I just compiled exiv2 0.27.0.1 on ubuntu 18.04.1 following these instructions:
http://dev.exiv2.org/projects/exiv2/wiki/Building_on_Ubuntu_using_Cmake
It took me only a couple of minutes.

#2. You will likely get the error E: You must put some 'source' URIs in your sources.list", don’t forget to fix it before moving on to the #3. The solution posted here: http://askubuntu.com/a/496554/95343

#3. Change svn checkout svn://dev.exiv2.org/svn/trunk to git clone https://github.com/Exiv2/exiv2.git if you want the latest version. SVN repo got frozen at 0.26 and is depreciated now.
If you pulled the code from git your path instead of cd trunk will be cd exiv2

2 Likes

Thanks @Andrius
The latest exiv2 is indeed able to decode the lens I needed to decode -

Exif.NikonLd3.LensIDNumber Byte 1 Nikon AF-S DX Nikkor 16-80mm f/2.8-4E ED VR

Note that the previous version (0.26) also worked. The problem is that the standard darktable build used version 0.25 of the library, . It’s bundled in the ppa - same as the snap (at least the old snap I tested some months ago), so darktable doesn’t benefit from installing the 0.27 library from github.

I’m hoping that 0.27 will be officially released and picked up by debian (0.26 never was), then at some point darktable on debian/ubuntu will be built against it, and at that point the problem will be solved. Newer lens supported by lensfun will also be supported by darktable.