Hi all,
I’m back, having now decided to try a different distro (MX linux), in the hopes that this will be a little more stable.
I got to running the build script, and encountered errors, but am unsure how to proceed from here.
Output as follows:
bruce@audio2u:~/Downloads/darktable/darktable
$ ./build.sh --prefix /opt/darktable/4.6 -- -DUSE_XMLLINT=OFF
darktable build script
Building directory: /home/bruce/Downloads/darktable/darktable/build
Installation prefix: /opt/darktable/4.6
Build type: RelWithDebInfo
Build generator: Unix Makefiles
Build tasks: 16
-- Found OpenMP_C: -fopenmp (found suitable version "4.5", minimum required is "4.5")
-- Found OpenMP_CXX: -fopenmp (found suitable version "4.5", minimum required is "4.5")
-- Building SSE2-optimized codepaths: ON
-- Performing Test C_COMPILER_UNDERSTANDS_-Wno-error=varargs
-- Performing Test C_COMPILER_UNDERSTANDS_-Wno-error=varargs - Success
-- Performing Test CXX_COMPILER_UNDERSTANDS_-Wno-error=varargs
-- Performing Test CXX_COMPILER_UNDERSTANDS_-Wno-error=varargs - Success
-- Performing Test C_COMPILER_UNDERSTANDS_-Wno-error=address-of-packed-member
-- Performing Test C_COMPILER_UNDERSTANDS_-Wno-error=address-of-packed-member - Success
-- Performing Test CXX_COMPILER_UNDERSTANDS_-Wno-error=address-of-packed-member
-- Performing Test CXX_COMPILER_UNDERSTANDS_-Wno-error=address-of-packed-member - Success
-- Looking for external programs
-- Found perl
-- Found intltool-merge
-- Found desktop-file-validate
-- Could NOT find LLVM (missing: LLVM_DIR)
CMake Warning at CMakeLists.txt:359 (message):
Could not find LLVM 7 or above
CMake Warning at CMakeLists.txt:360 (message):
Test-compilation of OpenCL programs can not be done.
-- Test-compilation of OpenCL programs is disabled.
-- Missing jsonschema, problems in noiseprofiles.json might go unnoticed
-- Found xsltproc
-- Found exiftool
-- All external programs found
-- Found msgfmt to convert .po file. Translation enabled
-- The following OPTIONAL packages have been found:
* Gettext
-- The following REQUIRED packages have been found:
* OpenMP (required version >= 4.5)
* Threads
* ZLIB
-- The following OPTIONAL packages have not been found:
* LLVM
-- Checking for -march=native support
-- Checking for -march=native support - works
-- Looking for OpenMP
-- Found OpenMP_C: -fopenmp (found suitable version "4.5", minimum required is "4.5")
-- Found OpenMP_CXX: -fopenmp (found suitable version "4.5", minimum required is "4.5")
-- Looking for OpenMP - found (system)
-- Looking for pugixml
-- Found Pugixml 1.14
-- Looking for pugixml - found (system)
-- Looking for JPEG
-- Looking for JPEG - found
-- Looking for ZLIB
-- Found ZLIB: /usr/lib/libz.so (found suitable version "1.2.13", minimum required is "1.2.11")
-- Looking for ZLIB - found (system)
-- Trying to query CPU L1d cache line size
-- Deciding that the CPU L1d cache line size is 64 bytes
-- Trying to query CPU page size
-- Deciding that the CPU page size is 4096 bytes
-- Trying to query CPU large page size
-- Deciding that the CPU large page size is 2097152 bytes
-- The following features have been enabled:
* OpenMP-based threading, used for parallelization of the library
* XML reading, used for loading of data/cameras.xml
* Lossy JPEG decoding, used for DNG Lossy JPEG compression decoding
* ZLIB decoding, used for DNG Deflate compression decoding
-- The following OPTIONAL packages have been found:
* Gettext
-- The following RECOMMENDED packages have been found:
* JPEG, free library for handling the JPEG image data format, implements a JPEG codec
Used for decoding DNG Lossy JPEG compression
-- The following REQUIRED packages have been found:
* Threads
* OpenMP (required version >= 4.5), Open Multi-Processing, <https://www.openmp.org/>
Used for parallelization of the library
* Pugixml (required version >= 1.8), Light-weight, simple and fast XML parser, <http://pugixml.org/>
Used for loading of data/cameras.xml
* ZLIB (required version >= 1.2.11), software library used for data compression
Used for decoding DNG Deflate compression
-- The following OPTIONAL packages have not been found:
* LLVM
-- Found Glib 2.78.3
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Found LibXml2: /usr/lib/libxml2.so (Required is at least version "2.6")
-- Could NOT find Imath (missing: Imath_DIR)
-- Could NOT find OpenEXR (missing: OpenEXR_DIR)
-- Could NOT find OpenEXR (missing: OpenEXR_LIBRARY)
-- Could NOT find libavif (missing: libavif_DIR)
-- Could NOT find libheif (missing: libheif_DIR)
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Could NOT find libheif (missing: libheif_LIBRARY libheif_INCLUDE_DIR) (Required is at least version "1.13.0")
-- Building LibRaw from intree copy
-- Found Sqlite3 3.44.2
-- Sqlite3 version 3.24 or newer
-- Found GIO
-- Found LibXml2: /usr/lib/libxml2.so
-- Found CURL: /usr/lib/libcurl.so
-- Found ZLIB: /usr/lib/libz.so (found version "1.2.13")
-- Found JsonGlib
-- Exiv2 >= 0.27.4 found with ISOBMFF support (CR3, AVIF, HEIF)
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Could NOT find PortMidi (missing: PortMidi_LIBRARY PortMidi_INCLUDE_DIR)
-- Found OpenJPEG
-- Could NOT find Libsecret (missing: Libsecret_LIBRARIES)
-- Found GraphicsMagick 1.3.42
-- Found GMIC
-- Found the following ICU libraries:
-- i18n (required): /usr/lib/libicui18n.so
-- data (required): /usr/lib/libicudata.so
-- uc (required): /usr/lib/libicuuc.so
-- Does the compiler support __builtin_cpu_supports(): 1
-- Checking for -march=native support
-- Lua support: Enabled
-- Found Pugixml 1.14
-- Map mode: enabled
-- Print mode: enabled
-- Game: the good knight
-- Signal debug: print-trace possible
CMake Warning at src/libs/CMakeLists.txt:81 (find_package):
By not providing "FindSDL2.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "SDL2", but
CMake did not find one.
Could not find a package configuration file provided by "SDL2" with any of
the following names:
SDL2Config.cmake
sdl2-config.cmake
Add the installation prefix of "SDL2" to CMAKE_PREFIX_PATH or set
"SDL2_DIR" to a directory containing one of the above files. If "SDL2"
provides a separate development package or SDK, be sure it has been
installed.
-- Found CURL: /usr/lib/libcurl.so (Required is at least version "7.56")
-- Found recent CURL version to build piwigo.
-- building darktable-cmstest with colord support. nice.
-- LibRaw string version: 0.21.2
-- LibRaw ID version: 0x0212
-- LibRaw SO version: 23.0.0
CMake Error at src/external/LibRaw-cmake/CMakeLists.txt:179 (if):
if given arguments:
"LESS" "80"
Unknown arguments specified
-- Configuring incomplete, errors occurred!
See also "/home/bruce/Downloads/darktable/darktable/build/CMakeFiles/CMakeOutput.log".
Any help that can be offered will be gladly accepted!
Does MX Linux have Synaptic as its package manager? If so, you can search for ‘llvm’ ‘libllvm’ and ‘libsdl’ there and install the latest versions. If that still doesn’t work, you may need to install the version of those packages with the -dev suffix.
On my system I have libllvm15, llvm14, and llvm14-dev. I don’t know which of those three provides the special sauce, but it works. Is there a llvm16-dev you can try?
bruce@audio2u:~/Downloads/darktable/darktable
$ sudo apt-get build-dep darktable
[sudo] password for bruce:
Reading package lists... Done
E: You must put some 'deb-src' URIs in your sources.list
Bruce, with all due respect but reading through your various messages tells me that maybe you should just give the packagers a bit of time to have the “official” version update included in the regular distro repositories.
By jumping the gun you may indeed come across distro-specific idiasyncracies in compilation but seeing your post history it is more likely a bit of lack of experience compiling and running software, coupled to inexperience on the linux OS as a whole. That is no shame as we all started there at one time or another though so not berating you for it.
Having said that, installing an entirely different distro just because you cannot get a single application to compile is definitely counterproductive. As you have experienced, such a switch will just throw up different issues.
Normally compilation errors on any given system will tell you exactly what is wrong and running compiled programs can be done from their build directories with the ./ prefix or by creating a desktop launcher simply using the desktop’s own right-click facility (if you are using KDE)
Mike_Bing,
I can’t argue with one thing you’ve said.
You’re right. I don’t know linux as thoroughly as I need to, if I’m going to do the things I want to do, and jumping distros DOES cause more issues to rise to the surface.
And no, I don’t have a lot of experience with compiling from source.
But I do have a very good reason for wanting to be on the dev build. It allows me to keep up to date with what new things are coming down from on high, and to be able to produce new video content for each new version as soon as it is released.
I have no doubt I’m the least-experienced user on this board.
Which is why I am always so grateful to those who have lent me a hand!
The issue with manjaro wasn’t that I couldn’t compile. I DID get that far. The issue was that every time I installed updates to the OS, it broke darktable, and I would have to recompile and reinstall.
Totally understand. But that is exactly why distro repos take some time to synchronize. The nature of things in Linux is that if you build against existing libraries and those change, whatever you build may fail to run as it expects things to be up to date. That is not just a DT issue, that is the way a distro works when using software which heavily depends on external libraries.
Manjaro being Manjaro, there usually is a small lag between software being release by its developer team and that version appearing in the main repos. This lag gives the repo maintainers time to - amongst other things - resolve exactly those issues you came across.
But I get your points, there certainly ARE benefits in running screaming edge versions of software. I have done it myself at times. If you do, it is strongly recommended you learn to build it with a prefix such that it is installed in an alternate location (such as /opt where I keep my darktable-test) and learn how to run it from there. It is not too hard - after all I eventually caught on and I’m no bright light when it comes to software development )
Mike,
Yeah, I also install into /opt.
I understand that because of manjaro’s rolling nature, those shared components were updating and that was what was breaking darktable. I get that. And that was why I made the not-insignifcant decision to move to another distro… something that was likely to remain consistent for a bit longer.
I’ve never experienced that to be an issue. Mostly, library requirements are backwards compatible TBH. The fact it is a rolling distro merely speaks to it not requiring reinstallation every time a new distro version is released. All distros have shared component updating in between major distro updates.
You installed a distro based on a recommendation from Todd, but he doesn’t use that distro. I think he mostly runs windows.
For your goal of running dt ahead of release, I suggest using the app image from the nightly builds. Every night the project builds the current code for windows, Mac and an app image. The app image is already built and good to go.
Interesting.
I had 4.6 compiled, installed, and running fine.
But if I got a notification that there were updates, I’d install them, and next thing I know, darktable would not launch again.
I grew tired of that pretty quick!
g-man,
Am I right in thinking that an appimage is kind of like running an ISO? One file which contains everything that that app needs to function?
If yes, where would I find the nightly build?
I’m guessing that’s probably the one you need then. Synaptic is good as it also lists the -dev packages. Alternately, you can install them with command line if you know their exact name.
sudo apt-get install llvm-16-dev
Should work if it exists, otherwise you can do 14-dev or 15-dev.