Hi all,
I keep being puzzled by the dependency resolution step in EasyBuild. I'm trying
to install GDAL-2.2.3-foss-2017b-Python-2.7.14.eb. Among many others, it has
dependencies on libpng and LibTIFF:
dependencies = [
....
('libpng', '1.6.32'),
('LibTIFF', '4.0.9'),
....
]
On the system, I have
libpng/1.6.32-GCCcore-6.4.0
LibTIFF/4.0.9-GCCcore-6.4.0
installed. EasyBuild happily finds that the libpng dependency is resolved,
since GCCcore-6.4.0 is a subtoolchain of foss-2017b. However, for LibTIFF, it
doesn't: it explicitely looks for a foss-2017b build, and fails to find one.
* [x] .../easyconfigs/l/libpng/libpng-1.6.32-GCCcore-6.4.0.eb (module:
libpng/1.6.32-GCCcore-6.4.0)
* [ ] .../easyconfigs/l/LibTIFF/LibTIFF-4.0.9-foss-2017b.eb (module:
LibTIFF/4.0.9-foss-2017b)
When passing the --minimal-toolchain option, it does find the
LibTIFF/4.0.9-GCCcore-6.4.0. However, for reproducibility, I prefer to avoid
command line options. Furthermore, I think (?) the minimal-toolchain option is
intended for when a dependency could be resolved by both the full, and a
subtoolchain (e.g. when LibTIFF/4.0.9-GCCcore-6.4.0 and
LibTIFF/4.0.9-foss-2017b would both be available) and in those cases I
generally don't want to use the minimal-toolchain.
Moreover, I would really like to understand why libpng and LibTIFF are being
resolved differently here. Could it be that one of the other dependencies of
GDAL in turn also has a dependency on libpng or LibTIFF, and that this somehow
changes the behavior? And is that difference in behavior intentional, or is
this a 'bug'?
Regards,
Caspar van Leeuwen
SURFsara