[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#60266] [PATCH] gnu: Add form.
From: |
Eric Bavier |
Subject: |
[bug#60266] [PATCH] gnu: Add form. |
Date: |
Mon, 09 Jan 2023 18:01:33 +0000 |
Hello Antero,
Thank you for the patch. Sorry for the delayed reply, holidays and
such. I was able to apply your patch and build a form package.
A few comments:
On Fri, 2022-12-23 at 01:15 +0000, Antero Mejr wrote:
> * gnu/packages/maths.scm (form): New variable.
> ---
> x86_64 only due to test failures on other platforms. Developers
> say other platforms are not "tier 1" supported:
> https://github.com/vermaseren/form/issues/426
This may be better as a comment near the `supported-systems` field,
along with a short summary of which tests fail on other systems.
>
> gnu/packages/maths.scm | 55 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 55 insertions(+)
>
> diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
> index 050450e12c..08ddd2ecb4 100644
> --- a/gnu/packages/maths.scm
> +++ b/gnu/packages/maths.scm
> @@ -8161,3 +8161,58 @@ (define-public optizelle
> provided for applications written in C++ and Python. Parallel
> computation is supported via MPI.")
> (license license:bsd-2))))
> +
> +(define-public form
> + (let ((commit "28e15eaf0856a0a012795298d6a4b570e764a8b1")
This commit is downstream from the 4.3.0 release, so we should include
in a comment the rationale for not using just the 4.3.0 release
tarball.
> + (revision "0"))
> + (package
> + (name "form")
> + (version (git-version "4.3.0" revision commit))
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/vermaseren/form")
> + (commit commit)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "04i932lqwng2hmknvai1gmmb5j17rwrhlj11nr96w9bmj4sq736x"))
> + (modules '((guix build utils)))
> + (snippet #~(substitute* "check/examples.frm"
> + (("#pend_if valgrind\\?")
> + "#pend_if 0")))))
This snippet appears to be related to the specifics of this package
build? E.g. if someone were to grab the source with `guix build -S
form`, they would not be able to have valgrind support, correct? If
that's the case, perhaps it would be better to apply this substitution
in a build phase.
> + (build-system gnu-build-system)
> + (native-inputs (list autoconf automake doxygen ruby))
> + (inputs (list bash openmpi))
> + (arguments
> + (list #:configure-flags #~(list "--enable-parform")
For some other maths packages that have both a serial and MPI versions,
we've usually provided two packages. See e.g. `petsc` and `petsc-
openmpi`. This can be useful if someone does not need a full MPI-
capable version of form, and the separation is easily achieved.
Also, I see the default compilation flags include `-march=native`,
which will most likely cause a problem with build farm substitutes or
`guix challenge`. Could you figure out have to override these flags?
Guix usually assumes `SSE2` capabilities for x86_64 targets, iirc.
Bonus points for enabling a "tunable" package (c.f. "Package
Transformation Options").
> + #:phases #~(modify-phases %standard-phases
> + (add-after 'unpack 'fix-hardcoded-path
> + (lambda _
> + (substitute* "sources/extcmd.c"
> + (("/bin/sh")
> + (string-append #$(this-package-input "bash")
> + "/bin/sh")))))
> + (add-after 'build 'build-doxygen
> + (lambda _
> + (with-directory-excursion "doc/doxygen"
> + (invoke "make" "html"))))
> + (add-before 'check 'mpi-setup
> + #$%openmpi-setup)
> + (add-after 'install 'install-docs
> + (lambda _
> + (let ((doc (string-append #$output
> "/share/doc/"
> + #$name "-" #$version
> + "/html")))
> + (mkdir-p doc)
> + (copy-recursively "doc/doxygen/html"
> doc)))))))
> + (home-page "https://www.nikhef.nl/~form/maindir/maindir.html")
Maybe we should use https://www.nikhef.nl/~form/ instead? This is the
URL specified in the included manpage.
> + (synopsis "Symbolic manipulation system for very big expressions")
> + (description
> + "FORM is a symbolic manipulation system. It reads symbolic
> expressions
> +from files and executes symbolic/algebraic transformations upon them. The
> +answers are returned in a textual mathematical representation. The size of
> the
> +considered expressions in FORM is only limited by the available disk space
> and
> +not by the available RAM.")
> + (supported-systems '("x86_64-linux"))
> + (license license:gpl3+))))
Thanks,
`~Eric
signature.asc
Description: This is a digitally signed message part
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug#60266] [PATCH] gnu: Add form.,
Eric Bavier <=