On 12.06.2015 15:34, Orion Poplawski wrote:
On 06/11/2015 10:01 AM, Sandro Mani wrote:
> Hello,
>
> Investigating bug #1230838, I noticed that when installing mmg3d-libs,
> dnf installs Konsole output ptscotch-mpich, whereas yum-deprecated
> installs scotch. Both scotch and ptscotch-mpich provide the required
> libscotch.so.0()(64bit), albeit one in /usr/lib64/ and the other one in
> /usr/lib64/mpich/lib/:
>
> $ dnf repoquery --requires mmg3d-libs
> [...]
> libscotch.so.0()(64bit)
> libscotcherr.so.0()(64bit)
> [...]
>
>
> $ dnf provides 'libscotch.so.0()(64bit)'
> ptscotch-mpich-6.0.4-2.fc23.x86_64 : PT-Scotch libraries compiled
> against mpich
> Repo : rawhide
>
> ptscotch-openmpi-6.0.4-2.fc23.x86_64 : PT-Scotch libraries compiled
> against openmpi
> Repo : rawhide
>
> scotch-6.0.4-2.fc23.x86_64 : Graph, mesh and hypergraph partitioning
> library
> Repo : rawhide
>
>
> Konsole output $ dnf repoquery -l scotch.x86_64 | grep libscotch.so.0
> /usr/lib64/libscotch.so.0
> /usr/lib64/libscotch.so.0.2
>
>
> Konsole output $ dnf repoquery -l ptscotch-mpich.x86_64 | grep
> libscotch.so.0
> /usr/lib64/mpich/lib/libscotch.so.0
> /usr/lib64/mpich/lib/libscotch.so.0.2
>
>
> $ dnf install mmg3d-libs
> [...]
> Installing:
> environment-modules x86_64
> 3.2.10-14.fc23 rawhide 117 k
> hwloc-libs x86_64
> 1.10.1-2.fc23 rawhide 1.3 M
> lzma-libs x86_64
> 4.32.7-13.fc22 rawhide 38 k
> mmg3d-libs x86_64
> 4.0.2-1.fc23 rawhide 211 k
> mpich x86_64
> 3.1.4-3.fc23 rawhide 1.1 M
> ptscotch-mpich
>
> $ yum-deprecated install mmg3d-libs
> [...]
> Installing:
> mmg3d-libs x86_64
> 4.0.2-1.fc23 rawhide 211 k
> Installing for dependencies:
> lzma-libs x86_64
> 4.32.7-13.fc22 rawhide 38 k
> scotch
>
>
> So, whose fault is this? Packaging of dnf? Nothing relevant for this
> caught my eye skimming through the packaging guidelines.
>
> And related: trying to install some $pkg-openmpi package, I don't
> generally see packages enforcing that the -openmpi version of some
> dependency library is installed as opposed to just the regular libs
> package. Should such requires need to be stated explicitly?
MPI packages need to filter out the provides from the MPI versions and
explicitly add needed requires on the specific MPI flavors of packages
needed. This probably needs to be added to the MPI guidelines.
Right this makes sense, though, as pointed out in an other post in this
thread, cases like
gmsh: requires mmg3d
mmg3d: requires scotch
gmsh-openmpi: requires mmg3d
mmg3d: requires scotch -> but in this case it is actually
ptscotch-openmpi
which is desired, right?
The only "sane" way to fix this I see is extending the mmg3d.spec with
something like
[...]
%package openmpi
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: ptscotch-openmpi
%package mpich
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: ptscotch-mpich
Better ideas?