mbox

[bug#40691,v4,0/3] gnu: Add gromacs, tng & lmfit.

Message ID 5ff814d6-e0da-f5c9-8ae1-29cf40f87702@gmail.com
Headers show

Message

Vincent Legoll May 2, 2020, 1:46 p.m. UTC
Hello,

here is my latest work on adding gromacs to guix.

- rebased on latest guix master
- gromacs had a new version
- unbundling 3rdparties
- packaged some 3rdparties to have our own

I unbundled googletest by extracting our tarball in
place of the bundled copy.

Zlib got unbundled via packaging tng and unbundling
it from there.

Unbundled lmfit by packaging it separately and using that.
I put it with gromacs, but its legitimate place may be
elsewhere, like in maths.scm.

Unbundled tinyxml2 to use our version, which is newer and
broke code compatibility, so I added a patch to fix the
fallout. I am trying to get those fixes upstream, but that
may not be always practical, they may want to keep their
well tested version. I'll follow up updating the patch in
case parts of it get applied / released upstream.

The remaining bundled 3rdparties are vmd_molfile & thread_mpi.

Vmd_molfile source is behind a registration-only web form, I'm
not going there.

Thread_mpi looks like it is made to be bundled like that, and
is part of the parallelizing of gromacs which is above my
level of understanding (I'm only trying to package it, I'm not
a user). More info here:
http://www.gromacs.org/Documentation/Acceleration_and_parallelization#Multithreading_with_thread-MPI

Latest license change for tng say "revised bsd", I don't know
which one to choose, I put bsd-3.

https://github.com/gromacs/tng/commit/65443992d81a8845ba3597620d84e8652e83a254

Lmfit is freebsd license, I choose bsd-2.

https://jugit.fz-juelich.de/mlz/lmfit/-/blob/master/COPYING

Gromacs itself is lgpl2.1+ and its copying file has bundled
3parties license explanations.

https://github.com/gromacs/gromacs/blob/master/COPYING

Please advise how to proceed further, this is already quite an
adventure for me.

Comments

Ludovic Courtès May 3, 2020, 10:39 a.m. UTC | #1
Hi Vincent,

Vincent Legoll <vincent.legoll@gmail.com> skribis:

> here is my latest work on adding gromacs to guix.
>
> - rebased on latest guix master
> - gromacs had a new version
> - unbundling 3rdparties
> - packaged some 3rdparties to have our own
>
> I unbundled googletest by extracting our tarball in
> place of the bundled copy.
>
> Zlib got unbundled via packaging tng and unbundling
> it from there.
>
> Unbundled lmfit by packaging it separately and using that.
> I put it with gromacs, but its legitimate place may be
> elsewhere, like in maths.scm.
>
> Unbundled tinyxml2 to use our version, which is newer and
> broke code compatibility, so I added a patch to fix the
> fallout. I am trying to get those fixes upstream, but that
> may not be always practical, they may want to keep their
> well tested version. I'll follow up updating the patch in
> case parts of it get applied / released upstream.

Woow, quite an achievement!  Thanks for taking the time to go down this
rabbit hole, I think it’s worth it.

> The remaining bundled 3rdparties are vmd_molfile & thread_mpi.
>
> Vmd_molfile source is behind a registration-only web form, I'm
> not going there.

Sounds reasonable: the headers say it’s part of Gromacs, and it’s
definitely free software, so it’s OK to keep it here.

> Thread_mpi looks like it is made to be bundled like that, and
> is part of the parallelizing of gromacs which is above my
> level of understanding (I'm only trying to package it, I'm not
> a user). More info here:
> http://www.gromacs.org/Documentation/Acceleration_and_parallelization#Multithreading_with_thread-MPI

Sounds good.  Perhaps a comment in the code to state that would be
welcome, for our future selves.

> Latest license change for tng say "revised bsd", I don't know
> which one to choose, I put bsd-3.
>
> https://github.com/gromacs/tng/commit/65443992d81a8845ba3597620d84e8652e83a254
>
> Lmfit is freebsd license, I choose bsd-2.
>
> https://jugit.fz-juelich.de/mlz/lmfit/-/blob/master/COPYING
>
> Gromacs itself is lgpl2.1+ and its copying file has bundled
> 3parties license explanations.
>
> https://github.com/gromacs/gromacs/blob/master/COPYING
>
> Please advise how to proceed further, this is already quite an
> adventure for me.

I’ll look at the individual patches but it looks like we’re close to the
end line!

Ludo’.
Vincent Legoll May 3, 2020, 10:31 p.m. UTC | #2
Hello Ludo,

I removed the leftover scm code that was duplicating what is now
in the patch, and added a patch header explaining what's going on.

>> Vmd_molfile source is behind a registration-only web form, I'm
>> not going there.
> 
> Sounds reasonable: the headers say it’s part of Gromacs, and it’s
> definitely free software, so it’s OK to keep it here.

Added comment.

>> Thread_mpi looks like it is made to be bundled like that, and
>> is part of the parallelizing of gromacs which is above my
>> level of understanding (I'm only trying to package it, I'm not
>> a user). More info here:
> 
> Sounds good.  Perhaps a comment in the code to state that would be
> welcome, for our future selves.

Added comment.

Put tng & gromacs in chemistry.scm, in fact gromacs sci domain is
chemistry, even if also used in bioinfo. Added more comments for
patch & still bundled 3rdparties.

Moved lmfit to algebra.scm, shortened synopsis.

I think I fixed all review comments.

Thanks, patches follow.