after upgrading to 24.04 compilation ends with the error:
[ 36%] Building C object bin/CMakeFiles/lib_darktable.dir/imageio/imageio_j2k.c.o
[ 36%] Building C object bin/CMakeFiles/lib_darktable.dir/lua/widget/entry.c.o
[ 36%] Building C object bin/CMakeFiles/lib_darktable.dir/lua/widget/label.c.o
[ 36%] Building C object bin/CMakeFiles/lib_darktable.dir/lua/widget/file_chooser.c.o
[ 36%] Building C object bin/CMakeFiles/lib_darktable.dir/lua/widget/section_label.c.o
gmake[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/libgmic.so', needed by 'bin/libdarktable.so'. Stop.
gmake[2]: *** Waiting for unfinished jobs....
[ 36%] Building C object bin/CMakeFiles/lib_darktable.dir/lua/widget/separator.c.o
[ 36%] Building C object bin/CMakeFiles/lib_darktable.dir/lua/widget/slider.c.o
[ 36%] Building C object bin/CMakeFiles/lib_darktable.dir/lua/widget/stack.c.o
[ 36%] Building C object bin/CMakeFiles/lib_darktable.dir/lua/widget/text_view.c.o
[ 36%] Building C object bin/CMakeFiles/lib_darktable.dir/lua/widget/widget.c.o
[ 37%] Building C object bin/CMakeFiles/lib_darktable.dir/common/cups_print.c.o
[ 37%] Building C object bin/CMakeFiles/lib_darktable.dir/common/printing.c.o
[ 37%] Building C object bin/CMakeFiles/lib_darktable.dir/common/printprof.c.o
/home/paolo/git/darktable/src/imageio/imageio_j2k.c:33:10: fatal error: openjpeg.h: No such file or directory
33 | #include <openjpeg.h>
| ^~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [bin/CMakeFiles/lib_darktable.dir/build.make:2252: bin/CMakeFiles/lib_darktable.dir/imageio/imageio_j2k.c.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:2094: bin/CMakeFiles/lib_darktable.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
[ 37%] Built target validate_wbpresets_json
gmake: *** [Makefile:156: all] Error 2
First thing would be to check if you actually have the file the compiler is complaining about, and where it is located…
(it should be visible under /usr/include, bu well…)
That might be it: I’m not sure whether gcc looks in subdirectories of /usr/include when hunting for #include’d files (I remember having to specify the subdirectory in a few cases)
dt’s cmake is, well. FindOpenJPEG.cmake sets OpenJPEG_INCLUDE_DIR, never sets OpenJPEG_INCLUDE_DIRS:
but then the latter is used:
No wonder the header is not picked up.
This never came up because traditionally the header was carelessly dropped into /usr/include,
and was always picked up without extra include directories.
The only problem I note is that when exiting (ALT-F4), dt doens’t terminate, something keeps running, and must be killed with killall -9 darktable in order to run dt again. If I run dt from the terminal, nothing is shown, and ctl-c doesn’t kill it.
Actually, that happens with ubuntu package’s dt, too.