do not understand some build dependencies for 5.4.0 - advice please

Delighted and immensely grateful, in equal measure, to see dt 5.4.0 available. It’s just so impressive, given that I have no way of appreciating how much unrewarded private time and effort, from who-knows how many people around the world, goes into making dt available to people like me. However, this means that I am going to have to endure the semi-annual pain, suffering and intense frustration of battling through 2 or 3 days of “svelte, jungle, crud and gumba” (trade-marked, Mad Magazine, ca. 1961) to build it from source.

In today’s exciting episode I got as far through the git-hub README on the subject as ‘Building’>’Dependencies’>’Ubuntu’ before it all came apart: the command ‘sed -e '/^#\sdeb-src … ‘ completed with the inscrutable notification :

“E: You must put some ‘deb-src’ URIs in your sources.list’.

This is in the classic style: a notification created by a subject matter expert for a subject matter expert who, by definition, does not need it. But for me it is unfathomable. Go on – give us a clue – how many URI’s are required, where do I get them from, how are they architected, what should they contain (aside, most probably, from having the structure of a URL but with ‘L’ part unknown).

In the meantime I proceeded with the build process as described in the README; the git clone step completed with:

"
Fetching submodule src/external/rawspeed
From GitHub - darktable-org/rawspeed: fast raw decoding library

  • [new tag] v3.6 → v3.6
    Fetching submodule src/tests/integration
    fatal: remote error: upload-pack: not our ref ca181ebbfdb0517625cb681f957798877ba01843
    fatal: remote error: upload-pack: not our ref 4d350a23ca2cbde7031b0a9be59a4addc01ae9a5
    Errors during submodule fetch:
    src/tests/integration
    src/external/rawspeed
    Note: switching to ‘tags/release-5.4.0’."

I don’t see that this my error -is it? Anyway, how do I recover?

Next, why do I end up with two copies of the source, one embedded within the other, when I use/extract the project’s tarball, as exhorted so to do, and I also follow the git clone step, as advised?

Finally, quoting from the README:
"darktable provides a shell script that automatically takes care of building on Linux and macOS for classic cases in a single command.

./build.sh --prefix /opt/darktable --build-type Release --install --sudo

This builds the software for your architecture only, with:

-O3 optimization level,
SSE/AVX support if detected,
OpenMP support (multi-threading and vectorization) if detected,
OpenCL support (GPU offloading) if detected,
Lua scripting support if detected.

The last item - ‘Lua scripting support’ - is notable: who is doing this ‘detecting’ and what exactly are they looking for? I suspect that unless I do something, which is not explicitly stated here, dt will be compiled without Lua scripting support. How do I ensure this is not so?

There is no error here.

You need one or the other, not both.

It’ll look for lua scripts.

This throws me a bit: how are those of us with limited capability - even if it’s only me - to know that it is safe to ignore this ‘fatal error’, which is not an error, never mind being fatal, notification ?

So, will the presence of folder ‘lua’, and its contents, in ~/.config/darktable be sufficient to satisfy the detector?

Not trying to be rude but: I think those of us not being able to interpret the errors of compiling from source could use the app image or flatpak?

2 Likes

No.

See this other thread here, Boris wrote about his troubles resolving dependencies:

Yes, indeed I have but sadly the AppImage does not support Lua scripting, apparently.

I’ve read through this dialogue; almost all of it is beyond my understanding and seems diametrically opposed to the claim I read in this forum that compiling darktable is very straightforward. I could completely agree with this claim with just the slightest re-alignment of emphasis: change the word ‘straightforward’ to ‘confusing’.

I also have the firm impression others have claimed that the AppImage version does not provide Lua scripting. Having now installed the 5.4.0 AppImage, I can indeed run some AI scripts and focus stacking scripts discussed by YouTuber Ayeda Okambawa without problem.

So what is the ‘official’ position on AppImage wrt Lua scripting?

1 Like

As of this am (Monday 22 December) the capabilities of the dt AppImage don’t matter much:

In some miracle, beyond my comprehension, my install of Mint 22.2 informed me of an update to dt 5.2.1 (.deb file installed from darktable.org), taking it to dt 5.4.0+… which works completely to expectations.

I have no way of knowing who has done this work, to make this update available in Mint so quickly; words like ‘thank you’ seem feeble in comparison to the work done and the benefit I get to enjoy. Further, I am mindful of the work done (so much, by so few) in maintaining the OBS for darktable.

Just superb. Well done.

1 Like