darktable on OBS

I’ve been watching for the latest darktable to arrive in OBS (Install package graphics:darktable / darktable), and have noticed that the available darktable release varies by OS release. For example, for Ubuntu:


you can see that the available darktable release is different for each Ubuntu release.

What is the reason that different dt releases are offered for different releases of the same Linux distribution, and what can the user base at large do to help make the current dt release available via OBS for all OS releases?

[Edited the last sentence for clarity - sorry if that messes up your reply, Mica]

The one guy who maintains the OBS uses RPM based distros, so Fedora/SuSe and is familiar with the packaging, that’s why those are more or less up to date.

He tries on Ubuntu but if things don’t work, then they don’t work.

Learn how the OBS works, then make it work for your distro.

Or use a flatpak or snap.

Thanks for the explanation. Would I be correct in assuming that OBS changes from others would be funnelled through the one guy?

yes

1 Like

It was my understanding that there was a dependency issue/setup with the older Ubuntu versions. Per your post, 23.04 has the correct dependencies for 4.4.1.

yeah 4.4 bumped the required library versions which in turn means older versions of the distros are out.

1 Like

FWIW, i’ve messed with OBS’s graphics:darktable:master/darktable recently, re-fixing 22.04 builds.
(and enabling non-x86_64 deb-based builds)

5 Likes

As Roman pointed out 4.4.x should build just fine on 22.04 LTS (that’s what the dt CI runs on), if someone fixes the builds scripts (mainly pointing to gcc12).

1 Like

On the launchpad ppa of ubuntuhandbook.org you can get a 4.4.2. And it works.
Only for information :wink:

1 Like

a very serious question … instead of forking into a PPA … why not just help with the OBS package? As others already mentioned @asn (and formerly me) are RPM packager and he tries to keep the deb working as well as possible. so if you have the expertise to help with that, just get an account for build.opensuse.org and start submitting to the package people already know.

3 Likes

Why so serious against me? :wink: And was mentioned before my answer the work on adaption and viability under 22.04. I am a User only just wanted to help with the information that there is a way to install the latest version of Darktable. For people who wanted to use it now.
I know about the problem with OBS, but I don’t know about programming. Sorry.

I tried to get some information on why the build fails with 22.04 (I am also still on 4.2 because of this issue) and tried to build it myself. I was able to build the release-4.4.2 tag first, but found that many features were not built because of missing libraries:

  • Imath (required version >= 3.1)
  • JXL (required version >= 0.7.0)
  • libavif (required version >= 0.8.2)
  • libheif (required version >= 1.13.0)
  • PortMidi, Portable MIDI library, https://github.com/PortMidi/portmidi Used for hardware MIDI input devices
  • GMIC
  • Lua54 (required version >= 5.4)

First I installed lua, and it build with it. Then I installed the other dependencies but jxl (did not find it with this name, probably it’s named differently in ubuntu, maybe jpegxl?) and libheif (because of available version too old). Now I get an error during building which is kind of weird: OpenEXR/ImfChannelList.h, file not found. It’s weird because none of my changes of requirements were about exr. Also, disabling exr in the build script does not help.

Removing g’mic does not help, now I’ll try to remove the dependencies one by one and check for the actual issue. If somebody with more experience has some idea, I would appreciate any hint. I am not a programmer and have only limited understanding of the dependencies and how to find the actual cause.

2 Likes

Hm, bad style to reply to myself, but I just discovered that this is way over my current time limit (children are still in a very demanding age). I figured out that I was building with an old librawspeed, and I struggle to get the build script to use gcc-12. So unfortunately I have to stop here, maybe I am able to get back to it, but no promises …

2 Likes

OK, again replying to myself, I followed a quick idea and yeah, darktable builds again, with the new librawspeed and most of the dependencies.

What I did:

  1. I compared File darktable.dsc of Package darktable - openSUSE Build Service and File darktable.dsc of Package darktable - openSUSE Build Service, knowing from above that @LebedevRI was able to fix the master build.
  2. I then installed all the dependencies of the former file.
  3. I got finaly the build script to pick up the gcc/g+±12-binaries by using the alternatives system as described here How to choose the default gcc and g++ version? - Ask Ubuntu and then cleaning the build caches.

It seems darktable 4.4.2 would build with the darktable master config from obs. Is is that easy or did I miss something? And if it is that easy, who has write access to the official darktable obs to update the build config?

Disclaimer, the following libs were not found or enabled or recent enough:

  • Imath (required version >= 3.1)
  • JXL (required version >= 0.7.0)
  • libavif (required version >= 0.8.2)
  • libheif (required version >= 1.13.0)

The generated binary reports the following features:

compile options:
  bit depth is 64 bit
  normal build
  SSE2 optimized codepath enabled
  OpenMP support enabled
  OpenCL support enabled
  Lua support enabled, API version 9.1.0
  Colord support enabled
  gPhoto2 support enabled
  GraphicsMagick support enabled
  ImageMagick support disabled
  libavif support disabled
  libheif support disabled
  libjxl support disabled
  OpenJPEG support enabled
  OpenEXR support enabled
  WebP support enabled

so aviv, heif, and jpegxl will be missing, and imagemagick support is missing (not sure what it is for, maybe also some file format inputs/outputs?). Not sure if this is enough file format support for an official build …

1 Like

All of these are optional. IM is for importing things DT doesn’t understand natively.

@asn or @darix have access to the repo.

2 Likes

Hm, missing heif support is maybe a real issue these days, but I was not able to find a backport of 1.13 for 22.04.

The real issue is that it is a patent encumbered format, and you should be lobbying against it, not for it. It is supported optionally, on a best effort basis.

Being stuck w/ older libraries is the price you pay for sticking w/ an LTS system. It is what it is in terms of enabled options (unless you go snap/flatpak/appimage)…

If you want to run the latest software with all the bells and whistles, you’re on the wrong distro.

My father in law bought a new (android) smartphone earlier this year, and this week he texted me with the question, how he could convert these heif photos from the phone on his computer, as this was all accidentally heif. Therefore I am a bit biased (my answer for him was https://nomacs.org/batch-processing/). I am shooting raw even on my phone, so no issue regarding this, but people tend to get pictures from other people without control over their shooting habits.

Technically, heif may even be a better option over jpeg, if it is 10 bits and leaves me a bit more headroom to work with if I get it from other people where I cannot dictate raw.

However, I agree with you regarding the patent issues, but regarding lobbying, for some of my friends or family, I already do too much.

It is indeed a shame big corporations push such technology onto consumers without informing them about their choices and consequences. It is of course, nothing new, and not the first nor last time…

At least we try to make JPEG XL and AVIF viable alternatives.

1 Like

Alright, i’ve now also adjusted graphics:darktable/darktable (.deb builds only).

8 Likes