synth cannot install or upgrade darktable

Hi, I'm having a very strange problem where ports-mgmt/synth is unable to install graphics/darktable. I'm using the command synth build graphics/darktable. It would build it successfully, but after rebuilding the repos the package file would disappear from the repo directory and pkg would fail. Here's what the session looks like:
Code:
root@giskard:~ [9:51:07]# synth build graphics/darktable
Scanning existing packages.
 progress: 93.92%


The task is complete.  Final tally:
Initial queue size: 1
    packages built: 1
           ignored: 0
           skipped: 0
            failed: 0

Duration: 00:01:55
The build logs can be found at: /bigdata/synth/log/synth
Would you like to rebuild the local repository (Y/N)? y
Stand by, recursively scanning 1 port serially.
Scanning existing packages.
darktable-2.6.2_3.txz failed dependency check.
Packages validated, rebuilding local repository.
Local repository successfully rebuilt
Would you like to upgrade your system with the new packages now (Y/N)? y
Updating Synth repository catalogue...
Fetching meta.txz: 100%    260 B   0.3kB/s    00:01
Fetching packagesite.txz: 100%  248 KiB 254.0kB/s    00:01
Processing entries: 100%
Synth repository update completed. 1035 packages processed.
All repositories are up to date.
pkg: No packages available to install matching 'darktable-2.6.2_3' have been found in the repositories
Unfortunately, the system upgraded failed.

The problem seems to be the dependency check failure. I have uninstalled graphics/darktable and all its dependencies, but the problem is still present.

More info: typically my upgrade routine is:
Code:
portsnap fetch
portsnap update
synth status
synth prepare-system
synth upgrade-system
 
I have deleted the dependency packages from my local synth repo and am rebuilding. If this does not work I'm going to try nuking the entire repo. That should fix it.

It would be useful it port-mgmt/synth prints out what caused the dependency check to fail.
 
Have a look on the build log (I don't remember the actual path).

[EDIT]

Build logs

Every build produces a log. By default they are located at /var/logs/synth, but this location is configurable. The log name is in the format [category]___[portname].log.
 
The build log shows no errors. Indeed, the package file is built successfully. However, after building ports-mgmt/synth does a dependency check on all packages, and this fails with the message
Code:
darktable-2.6.2_3.txz failed dependency check.
When this happens the package is deleted from the repository. The deletion is normal behaviour, but the dependency check should not fail.
 
I will try to build in here but should take some time. I report later. :)

[EDIT]

In the meaning time try to build with test to see if you get some more information.
 
Btw, have a look if that is not related with some OPTION. May be helpful to isolate the source of the problem.
 
Further info: I cleared out all the custom options for darktable using:
Code:
make -C /usr/ports/graphics/darktable rmconfig
Previously I was using the following options:
Code:
cat /var/db/ports/graphics_darktable/options

# This file is auto-generated by 'make config'.
# Options for darktable-2.2.3
_OPTIONS_READ=darktable-2.2.3
_FILE_COMPLETE_OPTIONS_LIST=COLORD DOCS FLICKR GEO GPHOTO GRAPHMAGICK LIBSECRET LUA NLS OPENEXR OPENJPEG PRINT WEBP
OPTIONS_FILE_SET+=COLORD
OPTIONS_FILE_SET+=DOCS
OPTIONS_FILE_SET+=FLICKR
OPTIONS_FILE_SET+=GEO
OPTIONS_FILE_SET+=GPHOTO
OPTIONS_FILE_UNSET+=GRAPHMAGICK
OPTIONS_FILE_UNSET+=LIBSECRET
OPTIONS_FILE_SET+=LUA
OPTIONS_FILE_SET+=NLS
OPTIONS_FILE_SET+=OPENEXR
OPTIONS_FILE_SET+=OPENJPEG
OPTIONS_FILE_SET+=PRINT
OPTIONS_FILE_SET+=WEBP
The dependency check still fails unfortunately, but both normal and test builds are successful. So I believe it's something to do with how synth is reading the dependencies.
 
Update: I believe I have found the problem.

I checked the synth build log files for anomalies and found something interesting in the darktable log which is not present in the logs for any of the other ports:
Code:
actual-package-depends: dependency on /usr/lib/libomp.so not registered (normal if it belongs to base)
It turns out that this is the problem. If I remove the OpenMP dependency in the darktable Makefile, then the above message disappears and synth is able to install the port. The port no longer fails the dependency check.

So, what can we do to fix this issue? I think with Poudriere you might not get this problem, but anyone using synth will be unable to install darktable.

Relevant lines from the Makefile which I commented out:
Code:
#.if ${ARCH} == amd64 && ${CHOSEN_COMPILER_TYPE} == clang
## Enable OpenMP support with Clang 6.0.
#LLVM_VER=      60
#BUILD_DEPENDS+=        clang${LLVM_VER}:devel/llvm${LLVM_VER}
#
#CPP=           clang-cpp${LLVM_VER}
#CC=            clang${LLVM_VER}
#CXX=           clang++${LLVM_VER}
#
#LIB_DEPENDS+=  libomp.so:devel/llvm${LLVM_VER}
#.endif
 
Hmm. Still building in here[1] but many things have problems with OpenMP but I don't remember why (have a look on bugs). Better just disable it for now then.

[1] I've not update by a week so many things are outdated.
 
Thank you for checking. I wonder if we can add an option to the Makefile to disable OpenMP properly without having to manually comment it out. For now I'll just do that.
 
Back
Top