mbox

[bug#39862,0/4] update Dune finite element packages

Message ID 20200301194914.899011-1-felgru@posteo.net
Headers show

Message

Felix Gruber March 1, 2020, 7:49 p.m. UTC
Hi Guix developers,

I've updated the packages of the Dune finite element library to properly
set up OpenMPI before running their tests instead of disabling all the
tests that failed due to mis-configured OpenMPI.
BTW, some other packages exist in variants with and without OpenMPI,
e.g. the dealii and dealii-openmpi packages. Do you think that it would
be useful to provide similar variants for the dune-* packages, which
could also be built without OpenMPI?

Additionally, I've added two new packages, dune-uggrid and dune-subgrid
that might be useful in combination with the existing Dune packages.

Finally, I've added the suitesparse package to dune-istl which as an
optional dependency allows to build some additional solvers for sparse
linear systems into dune-istl.

I've checked that all Dune packages still build after my changes (there
don't seem to be any other packages that depend on the dune-* packages).
Those builds were done using the updated suitesparse package that I've
submitted in bug #39839.

Felix Gruber (4):
  gnu: dune-*: set up MPI for tests
  gnu: add dune-uggrid 2.6.0
  gnu: Add dune-subgrid
  gnu: dune-istl: Build with suitesparse

 gnu/packages/maths.scm | 207 +++++++++++++++++++++--------------------
 1 file changed, 106 insertions(+), 101 deletions(-)

Comments

Simon Tournier March 2, 2020, 2:53 p.m. UTC | #1
Hi Felix,

Thank for working on that.

On Sun, 1 Mar 2020 at 21:07, Felix Gruber <felgru@posteo.net> wrote:

> I've updated the packages of the Dune finite element library to properly
> set up OpenMPI before running their tests instead of disabling all the
> tests that failed due to mis-configured OpenMPI.
> BTW, some other packages exist in variants with and without OpenMPI,
> e.g. the dealii and dealii-openmpi packages. Do you think that it would
> be useful to provide similar variants for the dune-* packages, which
> could also be built without OpenMPI?

As an end-user, I prefer regular packages 'dune-*' without the input
'openmpi' and so with the related tests disabled and then their
variants; say 'dune-*-openmpi' with the input 'openmpi' correctly
setup-ed, as in your patch.


> I've checked that all Dune packages still build after my changes (there
> don't seem to be any other packages that depend on the dune-* packages).
> Those builds were done using the updated suitesparse package that I've
> submitted in bug #39839.

Usually, 'guix refresh -l' lists the packages that would need to be
rebuilt when upgrading a particular one.


All the best,
simon
Felix Gruber March 2, 2020, 9:56 p.m. UTC | #2
Hi Simon,

Thank you for your feedback.

On 3/2/20 3:53 PM, zimoun wrote:
> On Sun, 1 Mar 2020 at 21:07, Felix Gruber <felgru@posteo.net> wrote:
> 
>> BTW, some other packages exist in variants with and without OpenMPI,
>> e.g. the dealii and dealii-openmpi packages. Do you think that it would
>> be useful to provide similar variants for the dune-* packages, which
>> could also be built without OpenMPI?
> 
> As an end-user, I prefer regular packages 'dune-*' without the input
> 'openmpi' and so with the related tests disabled and then their
> variants; say 'dune-*-openmpi' with the input 'openmpi' correctly
> setup-ed, as in your patch.

Cool, I'll create an additional patch which splits all the dune packages
in those two variants. Still struggling a bit with guile to replace all
the dune-* packages with dune-*-openmpi in an inputs list without copy
pasting the whole list and changing the packages manually.

>> I've checked that all Dune packages still build after my changes (there
>> don't seem to be any other packages that depend on the dune-* packages).
>> Those builds were done using the updated suitesparse package that I've
>> submitted in bug #39839.
> 
> Usually, 'guix refresh -l' lists the packages that would need to be
> rebuilt when upgrading a particular one.

A `guix refresh -l dune-common` only gives me three other dune-*
packages that would result in rebuilding 10 packages overall. Since
dune-common is in the input of all the other dune-* packages, I think
that tells me that there are no non-dune packages that depend on any
dune-* package.

Best,
Felix
Felix Gruber March 10, 2020, 7:29 p.m. UTC | #3
The first four patches in this patch set are identical to v1. I've added
two new patches that remove the openmpi dependency from all dune-*
packages and add new dedicated dune-*-openmpi packages instead.
To create these openmpi variants of the dune-* packages without a lot of
duplication, I've added a helper function add-openmpi-to-dune-package
that takes a dune-* package and returns its openmpi variant with the
correct dependencies and the setup code necessary to make Dune's tests
work with openmpi.

Felix Gruber (6):
  gnu: dune-*: set up MPI for tests
  gnu: add dune-uggrid 2.6.0
  gnu: Add dune-subgrid
  gnu: dune-istl: Build with suitesparse
  gnu: dune-*: remove openmpi dependency
  gnu: define dune-*-openmpi packages

 gnu/packages/maths.scm | 285 +++++++++++++++++++++++++----------------
 1 file changed, 172 insertions(+), 113 deletions(-)