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

Recently migrated from Fedora to Ubuntu, and immediately noticed that a) ubuntu’s darktable official package is old, and b) ubuntu’s exiv2 library is totally obsolete (1-2 years old or so) and missing a bunch of lens and cameras. This impacts darktable’s cam/lens detection.

I found Pascal’s PPA, that brought the latest and greatest darktable but unfortunately Pascal built against the same old exiv2 release so that issue remains. I can guess updating exiv2 is not trivial. I tried a quick hack with Debian’s experimental packages (that are already in 0.26: exiv2, libexiv2), command line exiv2 works and detects the new cams/lenses but darktable didn’t take notice. I guess it’s built against the old version and the old lib version is still there.

Is there another 3rd party PPA (or snap) that people use for darktable that brings a more recent exiv2?

Try the flatpak from flathub.org, exiv2 is at 0.26

1 Like

Thanks @paperdigits! that worked - lens/cam detection now sees the new gear.

There is one big issue with the flatpak though: OpenCL does not work (I use amdgpu (pro) opencl drivers, they work fine for native packages). Seems to be a known issue with flatpaks:

https://github.com/flatpak/flatpak/issues/574

I’m rather new to flatpaks and containers, looking for a workaround for this

I don’t think there is a work around for that currently, you just do not get GPU acceleration.

Did you actually try it? IIRC he backports the new cameras. I might be confusing that with lensfun though.

Explored a bit but couldn’t find the way.

I also tried building darktable, against exiv2 0.26, I could get the build to succeed, ldd confirms exiv2 0.26 was used, it runs (installed via checkinstall), but it doesn’t pick up the new cameras/lens. There is something else that needs to be changed in the source tree I guess other than the exiv2 version dependency. I took a look at how the flatpak is built (since it works fine), there is only exiv2, lensfun and a couple other extra packages and that’s it.

Somehow the flatpak work fine but the local build doesn’t.

Everything would be so much simpler if Pascal’s build in the ubuntu PPA would use the latest exiv2 :confused:

Yes I tried it. Also confirmed that Pascal’s release is using exiv2 0.25, the old one.

Lensfun’s release is up to date (and in addition to that, lensfun is able to download the latest lens database, this works with ubuntu’s native version and also with Pascal’s). The problem is exiv2. The version that Pascal included in his PPA, and also the version that comes with Ubuntu, is really old and unable to identify new gear.

I guess it’s debian’s fault in the end (ubuntu just took their package). However it can be updated, as proven by the flatpak which uses 0.26 (and by debian expermental version).

The flatpak does not rely on any system packages and is completely self contained. This is both a blessing and a curse :wink:

P.S. are you sure you aren’t talking about lensfun and not exiv2?

P.S. are you sure you aren’t talking about lensfun and not exiv2?

yes 100%. I checked the lensfun database and the cam/lens are there.
I also ran lensfun-update-data (which gave the same database as Pascal ships, so he keeps the latest one).
On the other hand, exiv2 0.25 (the one in the PPA) gives an empty string when invoked with -pt (CLI) for:
Exif.NikonLd3.LensIDNumber
Whereas exiv2 0.26 (debian experimental package) gives the full lens string for the same picture. exiv2 0.25 is nearly two years old. It has it’s own database to convert IDs etc to strings. Darktable uses these string to match against lensfun’s database, for lenses.

Understood! I’ve learned to confirm the obvious when troubleshooting, because you never know :slight_smile:

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