Missing dependencies?

Hi all.
I’ve been using Mint for about 6-7 years (mostly relying on the UI), but recently switched to Manjaro.
I’m trying to compile an app (darktable) from source, and am running into an issue where CMake is throwing errors like this:

CMake Error at CMakeLists.txt:418 (message):
Some external programs couldn’t be found

…which is not particularly helpful. Which ones couldn’t it find?

Scrolling back up through the CLI output, I found:
– Missing intltool-merge
– Missing jsonschema, problems in noiseprofiles.json might go unnoticed

Would someone be kind enough to explain how to install these apps/dependencies please?
Thanks in advance.

Maybe you are missing the requirements for using the AUR?

Ah … from source. Still … not sure why you need to do this instead of the AUR or using a PKGBUILD as would normally be the case. Still the above packages do cover most of what is needed to ‘build from source’.
Further requirements for anything done manually should look to the requisite documentation.
If necessary to find files provided by packages you can use something like

sudo pacman -Fyx 'some/path/or/file.so'

Darktable looks to be available from the Stable repository, without needing to build, if that’s an option for you.

There is also a snap package available;

I hope this is helpful. Cheers.



The reason for wanting to compile from source is that I produce youtube videos about using darktable.
Each stable release of dt has an even number eg 4.0, 4.2, 4.4, etc, and the development cycle in between each stable release carries the odd numbers… 4.1, 4.3, 4.5, etc
So the current 4.5 build will eventually become stable release 4.6 (due in the next 72 hours or so).
I used to have this all set up, but due to “life”, I don’t any more, and I would like to get back to running the dev version. It helps me to a) be on the front foot with new features, and b) be able to more quickly produce new video content after a stable release.
In answer to your first suggestion about installing basic git requirements, this is what I got back from the terminal:

Warning: base-devel-1-2 is up to date – skipping
Warning: git-2.43.0-1 is up to date – skipping
Nothing to do.
Transaction successfully finished.

Sadly, I don’t quite understand the second part.
I understand it’s a command
I tried googling ‘-Fyx’ but couldn’t see anything which explained what that particular command is doing.
Also, not sure what the path and .so file are (or should be) pointing to.

Thanks, but as mentioned above, I have reasons for wanting to run the dev version of darktable.

I just need to understand why CMake is throwing a hissy fit. :slight_smile:

If, for example, you were looking for some file like intltool-merge
(and you cannot find a package name matching intltool-merge)
you might look for it like :

sudo pacman -Fyx 'intltool-merge'

And find what package it is from:

extra/intltool 0.51.0-6

But … getting back to the root of the query …

So … you just want the (or a version of) darktable-git then I would think.


And even if you dont want the most current git version … I would use the PKGBUILD as a basis for slightly editing it for the version desired.

This will ensure things like dependencies are handled, and the filesystem population is recognized by the package manager.

That … or … use something like AppImage or Flatpak and cherry-pick the desired version from one of those ‘containerized’ formats … and dependencies and/or the rest of the system wont matter. No building required.

Of course those are just ideas. Do your manual compilation thing if thats what you want.

In that case I hope the above (pacman -Fyx) will help you find the dependencies you are looking for.

1 Like

If you install darktable-git via the AUR repo, then it will automatically install the required dependencies (including the intltool package, which provides intltool-merge).

Just make sure the AUR is enabled in Pamac & either install darktable-git via the GUI, or if you want to do it via the CLI, then run the command pamac build darktable-git (do not use sudo for this command).