Message ID | d957d49d-2ce0-6e84-e1e1-28deb838b6fc@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [bug#40691,v3,1/1] gnu: Add gromacs. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
Hi Vincent, Vincent Legoll <vincent.legoll@gmail.com> skribis: >> It may be reasonable to just skip it. > > Hope you don't mind trading a test suite failure for a (harmless) > test suite build warning... > > How's the crude disabling in the attached patch v3 look to you ? > > And does it fix the failure ? > This test is not failing here (kvm on ryzen). Oh that’s guix-daemon inside QEMU/KVM? Then what can happen, unlike on real hardware, is that hwloc doesn’t discrepancies between the actual number of cores and the info it gathers from /sys or whatever. > From 660371d5a3e7c7c763fc123357ddd6c31f730553 Mon Sep 17 00:00:00 2001 > From: Vincent Legoll <vincent.legoll@gmail.com> > Date: Sat, 18 Apr 2020 00:14:56 +0200 > Subject: [PATCH] gnu: Add gromacs. > > * gnu/packages/bioinformatics.scm (gromacs): New variable. [...] > + (add-after 'unpack 'disable-hwloc-test > + (lambda _ > + ;; This test warns about the build host hardware > + (substitute* "src/gromacs/hardware/tests/hardwaretopology.cpp" > + (("TEST\\(HardwareTopologyTest, HwlocExecute\\)") > + "void __guix_disabled()")) I was thinking it’d be nice to use whatever mechanism gtest has to mark a test as skipped but I didn’t find anything, so it’s probably OK like this. However, there’s another issue I hadn’t noticed (apologies!): src/external bundles a few things like googletest, tinyxml2, zlib (indirectly), etc. Could you check if we can use our own dependencies instead of the bundled ones? For gtest it’s good if we can unpack the source of our ‘googletest’ package in place of the bundled copy, but it’s optional (I think there are cases where we found this wasn’t possible for some reason). Thank you! Ludo’.
Hello, On 23/04/2020 21:52, Ludovic Courtès wrote: > However, there’s another issue I hadn’t noticed (apologies!): > src/external bundles a few things like googletest, tinyxml2, zlib > (indirectly), etc. > > Could you check if we can use our own dependencies instead of the > bundled ones? I'm working on it but it is not trivial, some of the bundled versions are old enough that guix's are not compatible with the code using them. I'm trying to get some fixes upstream for that. > For gtest it’s good if we can unpack the source of our ‘googletest’ > package in place of the bundled copy, but it’s optional (I think there > are cases where we found this wasn’t possible for some reason). I'll try to fix this one also.
Hi, Vincent Legoll <vincent.legoll@gmail.com> skribis: > On 23/04/2020 21:52, Ludovic Courtès wrote: >> However, there’s another issue I hadn’t noticed (apologies!): >> src/external bundles a few things like googletest, tinyxml2, zlib >> (indirectly), etc. >> >> Could you check if we can use our own dependencies instead of the >> bundled ones? > > I'm working on it but it is not trivial, some of the bundled versions > are old enough that guix's are not compatible with the code using them. > > I'm trying to get some fixes upstream for that. Awesome, let us know how it goes. >> For gtest it’s good if we can unpack the source of our ‘googletest’ >> package in place of the bundled copy, but it’s optional (I think there >> are cases where we found this wasn’t possible for some reason). > > I'll try to fix this one also. Thank you! Ludo’.
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.
From 660371d5a3e7c7c763fc123357ddd6c31f730553 Mon Sep 17 00:00:00 2001 From: Vincent Legoll <vincent.legoll@gmail.com> Date: Sat, 18 Apr 2020 00:14:56 +0200 Subject: [PATCH] gnu: Add gromacs. * gnu/packages/bioinformatics.scm (gromacs): New variable. --- gnu/packages/bioinformatics.scm | 56 +++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index b9be0c1918..62647d6146 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> +;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -79,6 +80,7 @@ #:use-module (gnu packages golang) #:use-module (gnu packages glib) #:use-module (gnu packages graph) + #:use-module (gnu packages graphviz) #:use-module (gnu packages groff) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) @@ -785,6 +787,60 @@ input/output delimiter. When the new functionality is not used, bioawk is intended to behave exactly the same as the original BWK awk.") (license license:x11))) +(define-public gromacs + (package + (name "gromacs") + (version "2020.1") + (source (origin + (method url-fetch) + (uri (string-append "http://ftp.gromacs.org/pub/gromacs/gromacs-" + version ".tar.gz")) + (sha256 + (base32 + "1kwrk3i1dxp8abhqqsl049lh361n4910h0415g052f8shdc6arp1")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DGMX_DEVELOPER_BUILD=on" ; Needed to run tests + ;; Workaround for cmake/FindSphinx.cmake version parsing that does + ;; not understand the guix-wrapped `sphinx-build --version' answer + (string-append "-DSPHINX_EXECUTABLE_VERSION=" + ,(package-version python-sphinx))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-hwloc-test + (lambda _ + ;; This test warns about the build host hardware + (substitute* "src/gromacs/hardware/tests/hardwaretopology.cpp" + (("TEST\\(HardwareTopologyTest, HwlocExecute\\)") + "void __guix_disabled()")) + #t))))) + (native-inputs + `(("doxygen" ,doxygen) + ("graphviz" ,graphviz) + ("python" ,python) + ("python-pygments" ,python-pygments) + ("python-sphinx" ,python-sphinx))) + (inputs + `(("fftwf" ,fftwf) + ("hwloc" ,hwloc-2 "lib") + ("imagemagick" ,imagemagick) + ("lapack" ,lapack) + ("openblas" ,openblas) + ("openmpi" ,openmpi) + ("perl" ,perl))) + (home-page "http://www.gromacs.org/") + (synopsis "Molecular dynamics software package") + (description "GROMACS is a versatile package to perform molecular dynamics, +i.e. simulate the Newtonian equations of motion for systems with hundreds to +millions of particles. It is primarily designed for biochemical molecules like +proteins, lipids and nucleic acids that have a lot of complicated bonded +interactions, but since GROMACS is extremely fast at calculating the nonbonded +interactions (that usually dominate simulations) many groups are also using it +for research on non-biological systems, e.g. polymers. GROMACS supports all the +usual algorithms you expect from a modern molecular dynamics implementation.") + (license license:lgpl2.1+))) + (define-public python-pybedtools (package (name "python-pybedtools") -- 2.26.0