[PATCH] gnu: Add form.

  • Done
  • quality assurance status badge
Details
5 participants
  • Andreas Enge
  • Antero Mejr
  • Eric Bavier
  • Liliana Marie Prikler
  • Christopher Baines
Owner
unassigned
Submitted by
Antero Mejr
Severity
normal

Debbugs page

A
A
Antero Mejr wrote on 22 Dec 2022 17:15
(address . guix-patches@gnu.org)(name . Antero Mejr)(address . antero@mailbox.org)
20221223011551.32708-1-antero@mailbox.org
* 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:

gnu/packages/maths.scm | 55 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)

Toggle diff (65 lines)
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")
+ (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")))))
+ (build-system gnu-build-system)
+ (native-inputs (list autoconf automake doxygen ruby))
+ (inputs (list bash openmpi))
+ (arguments
+ (list #:configure-flags #~(list "--enable-parform")
+ #: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")
+ (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+))))
--
2.38.1
E
E
Eric Bavier wrote on 9 Jan 2023 10:01
92910915624cad61de6c1fc75cbe6ac2b8c6fe27.camel@posteo.net
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:
Toggle quote (6 lines)
> * 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.

Toggle quote (16 lines)
>
> 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.

Toggle quote (18 lines)
> + (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.

Toggle quote (6 lines)
> + (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").

Toggle quote (22 lines)
> + #: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.

Toggle quote (10 lines)
> + (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
-----BEGIN PGP SIGNATURE-----

iQJGBAABCgAwFiEEo6S0GQB0CHyn3laYvEXKZ+L40AcFAmO8Vn0SHGJhdmllckBw
b3N0ZW8ubmV0AAoJELxFymfi+NAHUpwQAJwkC27XBHydtH34AqDU7FgE6q5p75sY
JaHfs+JrCEzU8nQqfMx0HErVokmQ1BL4pYaWoXxZwcKLspTsoFmVtIFb00ZUZar0
/jK5nbzjdpCruq+3VwX4yGHooe4KL+whsc1XpbDPrdemKa0NinJZNDRqFE1KptHy
mBm9fVDjUojPdrbWe/Fk/e8Hn65+zz9Ue/n4prPK2DPv73Kryh2WoC+8fYeAjPU/
W95ozHDLneQzsbmE2W9ofgwtJpxZu0N3tQti++9QblYjoCwH7YCCM8l04FkMjNKl
9PoiCOlrv3Ak33MmiRm2qZ9CEq2vu+JFdXMcdwTU8wXwyWzCVH285IOft6HH8FE0
Y7eIKO+7YaojUpRE692ziRLMvTiMTtWbW5lo5o5Ge3yyXz7a22yAcO0VOWG66EeG
vvuKsdwXMf+r2YAhaUkZo2Z5sYt1JEFl+ESMmJMSGQowW/QagVTJTaZTFEeO6Ag4
EM3z/e0lQTNKCwlTK+u1IfQBx0vFxiKsAUs2ySx6EPxdCJPeEZRe9iJJu7vfuP1i
QrYNhZ/JeQSZ09wJX5OugnqwpJUNxUoRctwxO2S0t6576nvYAUB1uErdXSjcsVSJ
EFhg0Sv5MsSsOCjcKNzPOOevT+fX14Llz1OtREUOfP4X3Cvnx+FWaZhZ5L1FNRsD
8seOIr9ABapd
=0vQ5
-----END PGP SIGNATURE-----


A
A
Andreas Enge wrote on 19 Feb 2023 14:42
Algebra
(address . 60266@debbugs.gnu.org)
Y/Kl1TqT6zkW7rCG@jurong
Hello,

I think this package should be in algebra.scm, not maths.scm.
The names are not completely logical, actually maths is all maths that
is not algebra (and a few packages are already in the maths module although
they should not be).

Andreas
C
C
Christopher Baines wrote on 1 Mar 2023 01:18
tag 60266 moreinfo
(address . control@debbugs.gnu.org)
87wn40q177.fsf@cbaines.net
tags 60266 + moreinfo
quit
A
A
Antero Mejr wrote on 15 Mar 2023 18:07
[PATCH v2 1/2] gnu: Add form.
(address . 60266@debbugs.gnu.org)
20230316010745.20987-1-antero@mailbox.org
* gnu/packages/algebra.scm (form): New variable.
---
Changes from v1:
moved to algebra.scm
split out parform (mpi version) into separate package
removed --march=native
added comments explaining some package fields
changed home-page

gnu/packages/algebra.scm | 61 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)

Toggle diff (85 lines)
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 5842a166ad..5bce35a229 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -34,6 +34,7 @@
(define-module (gnu packages algebra)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -58,6 +59,7 @@ (define-module (gnu packages algebra)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages shells)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
@@ -1818,3 +1820,62 @@ (define-public sollya
it offers a certified infinity norm, an automatic polynomial
implementer, and a fast Remez algorithm.")
(license license:cecill-c)))
+
+(define-public form
+ ;; using this commit as it removes some invalid/ambiguous license info
+ (let ((commit "e7c52d3b07abe21f21718f5e70ee138e856f15ac")
+ (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
+ "15pjpn5s8d3sva18syhyymh5v1dijchk0xkf6d0m7cl2sj3qxxxq"))
+ (modules '((guix build utils)))
+ ;; skip test that causes memory leak and fails
+ (snippet #~(substitute* "check/examples.frm"
+ (("#pend_if valgrind\\?")
+ "#pend_if 0")))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:configure-flags #~'("--enable-native=no")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-hardcoded-path
+ (lambda _
+ (substitute* "sources/extcmd.c"
+ (("/bin/sh")
+ (string-append
+ #$(this-package-input "bash-minimal")
+ "/bin/sh")))))
+ (add-after 'build 'build-doxygen
+ (lambda _
+ (with-directory-excursion "doc/doxygen"
+ (invoke "make" "html"))))
+ (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)))))))
+ (native-inputs (list autoconf automake doxygen ruby))
+ (inputs (list bash-minimal))
+ (home-page "https://www.nikhef.nl/~form/")
+ (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.")
+ ;; 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
+ (supported-systems '("x86_64-linux"))
+ (license license:gpl3+))))
--
2.38.1
A
A
Antero Mejr wrote on 15 Mar 2023 18:07
[PATCH v2 2/2] gnu: Add parform.
(address . 60266@debbugs.gnu.org)
20230316010745.20987-2-antero@mailbox.org
* gnu/packages/algebra.scm (parform): New variable.
---
gnu/packages/algebra.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (27 lines)
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 5bce35a229..556b1583f8 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1879,3 +1879,20 @@ (define-public form
;; https://github.com/vermaseren/form/issues/426
(supported-systems '("x86_64-linux"))
(license license:gpl3+))))
+
+(define-public parform
+ (package
+ (inherit form)
+ (name "parform")
+ (arguments
+ (substitute-keyword-arguments (package-arguments form)
+ ((#:configure-flags flags)
+ #~(cons* "--enable-parform=yes" #$flags))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-before 'check 'mpi-setup
+ #$%openmpi-setup)))))
+ (inputs (list bash-minimal openmpi))
+ (description (string-append (package-description form)
+ " This package also includes
+@code{parform}, a version of FORM parallelized using OpenMPI."))))
--
2.38.1
A
A
Antero Mejr wrote on 15 Mar 2023 18:15
Re: [bug#60266] [PATCH] gnu: Add form.
(name . Eric Bavier)(address . bavier@posteo.net)(address . 60266@debbugs.gnu.org)
871qlpzebc.fsf@mailbox.org
Eric Bavier <bavier@posteo.net> writes:

Toggle quote (7 lines)
>> 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.

Added comments in v2.

Toggle quote (4 lines)
> 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.

Added rationale.

Toggle quote (10 lines)
>> + (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.

No, it's disabling a failing test that has a known problem (memory
leak). Added a comment with the explanation.

Toggle quote (5 lines)
> 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.

Moved the openMPI version to the parform package.

Toggle quote (7 lines)
> 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").

Disabled --march=native in v2.

Toggle quote (3 lines)
> Maybe we should use https://www.nikhef.nl/~form/instead? This is the
> URL specified in the included manpage.

I used the other homepage so people can skip the weird "license
agreement" page at https://www.nikhef.nl/~form/.But I changed it to
your suggestion in v2.

Thanks for the review.
L
L
Liliana Marie Prikler wrote on 15 Mar 2023 22:23
(address . 60266@debbugs.gnu.org)
73af16a03efa3f4dad83bde3571731ce7a277360.camel@gmail.com
Am Donnerstag, dem 16.03.2023 um 01:15 +0000 schrieb Antero Mejr:
Toggle quote (12 lines)
> > > +                (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.
>
> No, it's disabling a failing test that has a known problem (memory
> leak). Added a comment with the explanation.
Test failures should also be fixed at build time. Other than that, you
could also try to fix the memory leak that causes the failure via a
patch.

Toggle quote (1 lines)
> > Guix usually assumes `SSE2` capabilities for x86_64 targets, iirc.
It does, but not for i386 to i686, which also often see sse2 flags in
build systems.

Toggle quote (3 lines)
>
> I used the other homepage so people can skip the weird "license
> agreement" page at https://www.nikhef.nl/~form/.
Calling the GPL a license agreement is weird, and it doesn't help that
https://www.nikhef.nl/~form/maindir/also refers to it. Perhaps we can
raise an issue about that upstream?

Cheers
A
A
Antero Mejr wrote on 21 Mar 2023 11:39
[PATCH v3 1/2] gnu: Add form.
(address . 60266@debbugs.gnu.org)
20230321183902.30605-1-antero@mailbox.org
* gnu/packages/algebra.scm (form): New variable.
---
gnu/packages/algebra.scm | 60 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)

Toggle diff (84 lines)
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 5842a166ad..f6cb171e2a 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -34,6 +34,7 @@
(define-module (gnu packages algebra)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -58,6 +59,7 @@ (define-module (gnu packages algebra)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages shells)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
@@ -1818,3 +1820,61 @@ (define-public sollya
it offers a certified infinity norm, an automatic polynomial
implementer, and a fast Remez algorithm.")
(license license:cecill-c)))
+
+(define-public form
+ ;; using this commit as it removes some invalid/ambiguous license info
+ (let ((commit "e7c52d3b07abe21f21718f5e70ee138e856f15ac")
+ (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
+ "15pjpn5s8d3sva18syhyymh5v1dijchk0xkf6d0m7cl2sj3qxxxq"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:configure-flags #~'("--enable-native=no")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-src
+ (lambda _
+ (substitute* "check/examples.frm"
+ ;; skip test that causes memory leak and fails
+ (("#pend_if valgrind\\?")
+ "#pend_if 0"))
+ (substitute* "sources/extcmd.c"
+ (("/bin/sh")
+ (string-append
+ #$(this-package-input "bash-minimal")
+ "/bin/sh")))))
+ (add-after 'build 'build-doxygen
+ (lambda _
+ (with-directory-excursion "doc/doxygen"
+ (invoke "make" "html"))))
+ (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)))))))
+ (native-inputs (list autoconf automake doxygen ruby))
+ (inputs (list bash-minimal))
+ (home-page "https://www.nikhef.nl/~form/")
+ (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.")
+ ;; 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
+ (supported-systems '("x86_64-linux"))
+ (license license:gpl3+))))
--
2.38.1
A
A
Antero Mejr wrote on 21 Mar 2023 11:39
[PATCH v3 2/2] gnu: Add parform.
(address . 60266@debbugs.gnu.org)
20230321183902.30605-2-antero@mailbox.org
* gnu/packages/algebra.scm (parform): New variable.
---
gnu/packages/algebra.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (27 lines)
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index f6cb171e2a..e893bed722 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1878,3 +1878,20 @@ (define-public form
;; https://github.com/vermaseren/form/issues/426
(supported-systems '("x86_64-linux"))
(license license:gpl3+))))
+
+(define-public parform
+ (package
+ (inherit form)
+ (name "parform")
+ (arguments
+ (substitute-keyword-arguments (package-arguments form)
+ ((#:configure-flags flags)
+ #~(cons* "--enable-parform=yes" #$flags))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-before 'check 'mpi-setup
+ #$%openmpi-setup)))))
+ (inputs (list bash-minimal openmpi))
+ (description (string-append (package-description form)
+ " This package also includes
+@code{parform}, a version of FORM parallelized using OpenMPI."))))
--
2.38.1
A
A
Antero Mejr wrote on 21 Mar 2023 11:53
Re: [bug#60266] [PATCH] gnu: Add form.
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
87cz523ph5.fsf@mailbox.org
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
Toggle quote (4 lines)
> Test failures should also be fixed at build time. Other than that, you
> could also try to fix the memory leak that causes the failure via a
> patch.

Fixed the test failure at build time in v3.

Toggle quote (4 lines)
>> > Guix usually assumes `SSE2` capabilities for x86_64 targets, iirc.
> It does, but not for i386 to i686, which also often see sse2 flags in
> build systems.

I did some benchmarks on a few workloads with millions of terms. The
"tunable" optimizations didn't consistently improve the
performance. Sometimes it would be a couple percent faster, sometimes
slower. So I didn't mark the package as tunable.

Toggle quote (6 lines)
>> I used the other homepage so people can skip the weird "license
>> agreement" page at https://www.nikhef.nl/~form/.
> Calling the GPL a license agreement is weird, and it doesn't help that
> https://www.nikhef.nl/~form/maindir/ also refers to it. Perhaps we can
> raise an issue about that upstream?

I would prefer not to bother upstream further regarding the website,
since I already had to ask them to change an invalid license statement
in a file header (which they did).
E
E
Eric Bavier wrote on 21 Mar 2023 21:54
(address . 60266-done@debbugs.gnu.org)
07209d425a70f9e21169478617feba541de5ca13.camel@posteo.net
Antero,

Thank you for your effort in this review.

On Tue, 2023-03-21 at 18:53 +0000, Antero Mejr wrote:
Toggle quote (9 lines)
> > > > Guix usually assumes `SSE2` capabilities for x86_64 targets, iirc.
> > It does, but not for i386 to i686, which also often see sse2 flags in
> > build systems.
>
> I did some benchmarks on a few workloads with millions of terms. The
> "tunable" optimizations didn't consistently improve the
> performance. Sometimes it would be a couple percent faster, sometimes
> slower. So I didn't mark the package as tunable.

I was watching my system load while `parform` was running its tests, and things did not
seem compute bound, so the package being not tunable seems fine to me.

Toggle quote (10 lines)
> > > I used the other homepage so people can skip the weird "license
> > > agreement" page at https://www.nikhef.nl/~form/.
> > Calling the GPL a license agreement is weird, and it doesn't help that
> > https://www.nikhef.nl/~form/maindir/ also refers to it. Perhaps we can
> > raise an issue about that upstream?
>
> I would prefer not to bother upstream further regarding the website,
> since I already had to ask them to change an invalid license statement
> in a file header (which they did).

Version 1 of the GPL used the term "license agreement" when describing itself, so the
phrasing is not *super* weird, just maybe a bit outdated. There are also plenty of free
software projects, e.g. nodejs, that present users with an "accept this license agreement"
prompt in their M$ installers.

I've pushed these patches in

15ee08ebf23ea6bc5be9fa157889419aa079076a and
31bed61b8278d3736cc29055d60db068a1160071

with a small adjustment to appease `guix lint`:

--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1873,6 +1873,9 @@ (define-public form
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.")
+ ;; XXX: Ignore this CVE to work around a name clash with the unrelated
+ ;; "neos/forms" package.
+ (properties '((lint-hidden-cve . ("CVE-2021-32697"))))
;; x86_64 only due to test failures on other platforms.
;; Developers say other platforms are not "tier 1" supported:

Thanks again,
`~Eric
-----BEGIN PGP SIGNATURE-----

iQJGBAABCgAwFiEEo6S0GQB0CHyn3laYvEXKZ+L40AcFAmQaiegSHGJhdmllckBw
b3N0ZW8ubmV0AAoJELxFymfi+NAHilkP/RsIw/KHn2Yq5WQb93nUmKtlJo4cKbz2
qtH0AZbcTjRxWV3rgt0AFLjM6BHmvMM03AnpFudV3YG7y9O/BIsh3SwhzmpW9BVc
KHLZumV2tK3UumEwASAKtUBXoxAFkY56yTJx6Mfx7m1zhbPj9RvqHnFLNTI711/2
uLfluhogAjpomoXMMNU/EYSnklxGJqmsqGXXsEqiGsmGzO3sWPnEZ+t3c6a29YWT
4BQOI251wYxyX24FYUYO1YQHnaOyF6808iGMDa1aIPsxMr0goz9IAR3faeNSSeCp
yJmZ9kCZVWs7acYyCXGClS+n3wVtWYLXdy/zhzhLEKKlbrx+cJpU1IICIHMSNQMX
jfUmlfc3Rp8Jue3xi5YukMI8VW4++2N29QhF+1B/xn3a9seTkqTC1u82Jtc6uYWv
CWBQH+pa2Yp4fx+xTO048QNqZnQM3fQq/1CBsIRkQFmn2iwsArhpNKDEiNoZF77H
LI6iiVpFJIaRJfhHNF/L4mKWiASGwKpFXQEEIjEWk1K1RChK5B7lx+QwH/dwRIe6
vDzFEDJjhwlECjFXkC08BSzuTm1Z5ZFfqVuHj4pYC5rZiTVwdLRzdCLR654s3CZd
uceMbyoG0k0hp2nReMr7Wn3GuCni16xdWswCM4qo/s/gVoviMRss3+qOzLUtO6qd
Rj5ALQB9zy/l
=xtxq
-----END PGP SIGNATURE-----


Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 60266@patchwise.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 60266
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch