Bug 1264887

Summary: mpich: Needs to install a dynamic linker hints file for sub-packages
Product: [Fedora] Fedora Reporter: Neil Darlow <neil>
Component: mpichAssignee: Zbigniew Jędrzejewski-Szmek <zbyszek>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 22CC: dakingun, zbyszek
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-16 16:37:22 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Neil Darlow 2015-09-21 12:20:14 UTC
Description of problem:
mpich (and sub-packages linked with it) store library files in /usr/lib64/mpich/lib which the dynamic linker knows nothing about.


Version-Release number of selected component (if applicable):
mpich-3.1.4-2.fc22


How reproducible:
Every time


Steps to Reproduce:
1. Install an application requiring a mpich linked library e.g. gmsh
2. Execute the application and notice libraries are not resolved e.g. libscotch.so.0 for gmsh


Actual results:
Applications linked against mpich (or a derived library e.g. ptscotch-mpich) fail due to their libraries not being found.


Expected results:
Application should launch.


Additional info:
I created a file /etc/ld.so.conf.d/mpich-x86_64.conf with contents:
/usr/lib64/mpich/lib
then ran ldconfig and the appropriate libraries are now found and gmsh runs.

Comment 1 Zbigniew Jędrzejewski-Szmek 2015-11-16 16:37:22 UTC
To get access to mpi-implementation-specific directories, please do

module load mpi/mpich-x86_64

This (amongst other things) sets LD_LIBRARY_PATH.

You can also do this permanently, by installing mpich-autoload.

Comment 2 Neil Darlow 2015-11-16 17:36:22 UTC
So, let me get this right!

mpich installs libraries in /usr/lib/mpich/lib and does nothing to make those libraries known to the dynamic linker.

Applications which make use of those libraries then fail to start because the libraries cannot be found.

By some *magic* the end-user is supposed to know to run some obscure command or install another package which is not a dependency of mpich to allow the application to run.

How the heck is that NOTABUG? If a package installs a GUI application it should run out-of-the-box not need manual intervention.

Jeesh!

Comment 3 Zbigniew Jędrzejewski-Szmek 2015-11-16 17:39:36 UTC
There is more than one mpi implementation. They conflict with one another. Therefore what you propose (always enabling the libraries) is not possible in general. modulefiles are a standard mechanism to achieve runtime switching of optional components like this.