[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
A
A
Antero Mejr wrote on 23 Dec 2022 02: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 19: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 23: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 10:18
tag 60266 moreinfo
(address . control@debbugs.gnu.org)
87wn40q177.fsf@cbaines.net
tags 60266 + moreinfo
quit
A
A
Antero Mejr wrote on 16 Mar 2023 02: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 16 Mar 2023 02: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 16 Mar 2023 02: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 16 Mar 2023 06: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 19: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 19: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 19: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 22 Mar 2023 05: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
?