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 

Reply via email to