Hi Erik,

On 29/06/16 16:16, Erik Smeets wrote:
Hello,

Recently, we started using EasyBuild and are now facing an issue when 
installing Paraview using the Intel toolchain.
== FAILED: Installation ended unsuccessfully (build directory: 
/tmp/easybuild/Qt/4.8.7/intel-2016.03-GCC-5.3): build failed (first 300 chars): 
libx11/1.6.3-intel-2016.03-GCC-5.3(11):ERROR:150: Module 
'libx11/1.6.3-intel-2016.03-GCC-5.3' conflicts with the currently loaded 
module(s) 'libx11/1.6.3-intel-2016.03-GCC-5.3-Python-2.7.10'
== Results of the build can be found in the log file 
/tmp/eb-FUg2ds/easybuild-Qt-4.8.7-20160629.131758.sXrej.log
ERROR: Build of /tmp/eb-FUg2ds/tweaked_easyconfigs/Qt-4.8.7-intel-2016.03-GCC-5.3.eb 
failed (err: "build failed (first 300 chars): 
libx11/1.6.3-intel-2016.03-GCC-5.3(11):ERROR:150: Module 
'libx11/1.6.3-intel-2016.03-GCC-5.3' conflicts with the currently loaded module(s) 
'libx11/1.6.3-intel-2016.03-GCC-5.3-Python-2.7.10'")

It seems to me that there are two different installations are used. One 
dependency comes from ParaView-4.4.0-intel-2015b.eb:    ('libX11', '1.6.3', 
pysuff), the other from Qt-4.8.7-intel-2015b.eb:    ('libX11', '1.6.3', 
'-Python-2.7.10'). This results in the error shown above.

What would be the correct solution to this issue when using dependency 
issues/conflicts like this in EasyBuild?

Your conclusion is correct, but not entirely: the conflict is reported on on libX11 that does not have a versionsuffix (libx11/1.6.3-intel-2016.03-GCC-5.3) with one that *does* have a (Python) versionsuffix (libx11/1.6.3-intel-2016.03-GCC-5.3-Python-2.7.10).

So, it seems it's not the libX11 dep in Qt that is to blame.

Since EasyBuild requires strict versioning (which includes version suffixes), you'll need to make sure you use one or the other.

One thing that usually helps is building the full dependency graph using "eb --dep-graph", which allows to easily track down what depends on libX11 in this case.

We're working on a more direct way; we currently already have support for "eb --check-conflicts" in develop, but it will (for now) only report conflicts, not why they occur (i.e. what their 'parent' is).

I hope this helps...


regards,

Kenneth

Reply via email to