Hi Simon, >If mumps depends explicitly on openmpi, then '--with-inputs' can >rewrite the direct dependencies, by providing say mpich instead of >openmpi. >If petsc* depends explicitly on openmpi and on mumps (which depends >explicitly on openmpi too), then '--with-inputs=openmpi=mpich' will >*only* rewrite the dependency of petsc but not of mumps. So it ends >with petsc compiled with mpich and mumps with openmpi. > >Still considering this (fictive) example, where: > - petsc depends on openmpi(1) and mumps > - mumps depends on openmpi(2) >The openmpi(2) is an implicit dependency for petsc and '--with-inputs' >does not work. > >*because I know better PETSc than Scotch. ;-) > Ok thank you for the clarification, I understand better now. I misunderstood the documentation: https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html --with-input=package=replacement [...] This is a recursive, deep replacement. [...] So I thought that implicit packages had something to do with other inputs like native-inputs, but it was not clear for me. (I must admit that I still do not understand very well the recursive term here) I made a confusion also with the replacement, --with-input must be given the name of the package and not the name of the dependency, so --with-input=openmpi=mpich is sufficient. In the scalapack input I can see: `(("mpi" ,openmpi) ("fortran" ,gfortran) ("lapack" ,lapack))) ;for testing only So my assumption is that the --with-input transformation should work here as neither gfortran or lapack depends on mpi and to just build scalapack with mpich I tried: guix time-machine --commit=c70261bfb993cebc23cd80042de3f52a8b7932a4 -- build scalapack --with-input=openmpi=mpich This fails with the same error: