Hi All,

Thanks for all the answers.

I have gone with the suggestion to set minimal-toolchain=1 and use the 
use-existing-modules as needed. We'll see how this goes, I'm guessing the only 
packages where minimal-toolchain is undesired is if you have multiple 
dependencies versions compiled e.g. with & without MPI using GCC & intel/foss 
toolchains respectively. In those cases you probably want to link to the 
intel/foss version if your application is also build at that level. My guess is 
that those cases are rare, but we'll see.

@Kenneth, thanks, good to see I'm not the only one who ran into this and found 
it didn't make a lot of sense. But, is the 'use-existing-modules' then not the 
answer to your issue? Or does the EasyConfig still need to be in the robot 
path, even with the use-existing-modules enabled?

Cheers,

Caspar




----- Original Message -----
From: "Kenneth Hoste" <kenneth.ho...@ugent.be>
To: "easybuild" <easybuild@lists.ugent.be>
Sent: Monday, 11 June, 2018 10:29:54
Subject: Re: [easybuild] Dependency resolution for dependencies build with 
subtoolchains

Hi Caspar,

On 07/06/2018 12:07, Caspar van Leeuwen wrote:
> Ah, to answer my own question, I think I know where the difference comes 
> from. With eb -S I find:
> 
>   * $CFGS2/l/LibTIFF/LibTIFF-4.0.9-GCCcore-6.4.0.eb
>   * $CFGS2/l/LibTIFF/LibTIFF-4.0.9-foss-2017b.eb
> 
> but the only version for libpng is
> 
>   * $CFGS1/l/libpng/libpng-1.6.32-GCCcore-6.4.0.eb
> 
> I guess that means that EasyBuild looks at which EasyConfigs are 
> available (and not which modules are actually installed), and thén goes 
> for the 'maximal-toolchain' unless you specify --minimal-toolchain.

Indeed, and that's actually considered a bug, see 
https://github.com/easybuilders/easybuild-framework/issues/2375 .

regards,

Kenneth

> 
> I'm doubting whether I should simply set --minimal-toolchain (=True) as 
> default on the system. Any people who do that? Any reasons why I shouldn't?
> 
> Cheers,
> 
> Caspar
> 
> 
> ------------------------------------------------------------------------
> *From: *"Caspar van Leeuwen" <caspar.vanleeu...@surfsara.nl>
> *To: *"easybuild" <easybuild@lists.ugent.be>
> *Sent: *Thursday, 7 June, 2018 11:42:37
> *Subject: *[easybuild] Dependency resolution for dependencies build with 
> subtoolchains
> 
> 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