unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#60266] [PATCH] gnu: Add form.
@ 2022-12-23  1:15 Antero Mejr via Guix-patches via
  2023-01-09 18:01 ` Eric Bavier
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Antero Mejr via Guix-patches via @ 2022-12-23  1:15 UTC (permalink / raw)
  To: 60266; +Cc: Antero Mejr, bavier

* 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

 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")
+        (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





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#60266] [PATCH] gnu: Add form.
  2022-12-23  1:15 [bug#60266] [PATCH] gnu: Add form Antero Mejr via Guix-patches via
@ 2023-01-09 18:01 ` Eric Bavier
  2023-03-16  1:15   ` Antero Mejr via Guix-patches via
  2023-02-19 22:42 ` [bug#60266] Algebra Andreas Enge
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Eric Bavier @ 2023-01-09 18:01 UTC (permalink / raw)
  To: Antero Mejr, 60266

[-- Attachment #1: Type: text/plain, Size: 5280 bytes --]

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


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 858 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [bug#60266] Algebra
  2022-12-23  1:15 [bug#60266] [PATCH] gnu: Add form Antero Mejr via Guix-patches via
  2023-01-09 18:01 ` Eric Bavier
@ 2023-02-19 22:42 ` Andreas Enge
  2023-03-16  1:07 ` [bug#60266] [PATCH v2 1/2] gnu: Add form Antero Mejr via Guix-patches via
  2023-03-21 18:39 ` [bug#60266] [PATCH v3 1/2] gnu: Add form Antero Mejr via Guix-patches via
  3 siblings, 0 replies; 11+ messages in thread
From: Andreas Enge @ 2023-02-19 22:42 UTC (permalink / raw)
  To: 60266

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





^ permalink raw reply	[flat|nested] 11+ messages in thread

* [bug#60266] [PATCH v2 1/2] gnu: Add form.
  2022-12-23  1:15 [bug#60266] [PATCH] gnu: Add form Antero Mejr via Guix-patches via
  2023-01-09 18:01 ` Eric Bavier
  2023-02-19 22:42 ` [bug#60266] Algebra Andreas Enge
@ 2023-03-16  1:07 ` Antero Mejr via Guix-patches via
  2023-03-16  1:07   ` [bug#60266] [PATCH v2 2/2] gnu: Add parform Antero Mejr via Guix-patches via
  2023-03-21 18:39 ` [bug#60266] [PATCH v3 1/2] gnu: Add form Antero Mejr via Guix-patches via
  3 siblings, 1 reply; 11+ messages in thread
From: Antero Mejr via Guix-patches via @ 2023-03-16  1:07 UTC (permalink / raw)
  To: 60266; +Cc: bavier

* 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(+)

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





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#60266] [PATCH v2 2/2] gnu: Add parform.
  2023-03-16  1:07 ` [bug#60266] [PATCH v2 1/2] gnu: Add form Antero Mejr via Guix-patches via
@ 2023-03-16  1:07   ` Antero Mejr via Guix-patches via
  0 siblings, 0 replies; 11+ messages in thread
From: Antero Mejr via Guix-patches via @ 2023-03-16  1:07 UTC (permalink / raw)
  To: 60266; +Cc: bavier

* gnu/packages/algebra.scm (parform): New variable.
---
 gnu/packages/algebra.scm | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

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





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#60266] [PATCH] gnu: Add form.
  2023-01-09 18:01 ` Eric Bavier
@ 2023-03-16  1:15   ` Antero Mejr via Guix-patches via
  2023-03-16  5:23     ` Liliana Marie Prikler
  0 siblings, 1 reply; 11+ messages in thread
From: Antero Mejr via Guix-patches via @ 2023-03-16  1:15 UTC (permalink / raw)
  To: Eric Bavier; +Cc: 60266

Eric Bavier <bavier@posteo.net> writes:

>> 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.

> 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.

>> +                (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.

> 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.

> 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.

> 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.




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [bug#60266] [PATCH] gnu: Add form.
  2023-03-16  1:15   ` Antero Mejr via Guix-patches via
@ 2023-03-16  5:23     ` Liliana Marie Prikler
  2023-03-21 18:53       ` Antero Mejr via Guix-patches via
  0 siblings, 1 reply; 11+ messages in thread
From: Liliana Marie Prikler @ 2023-03-16  5:23 UTC (permalink / raw)
  To: Antero Mejr, Eric Bavier; +Cc: 60266

Am Donnerstag, dem 16.03.2023 um 01:15 +0000 schrieb Antero Mejr:
> > > +                (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.

> > 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 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




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [bug#60266] [PATCH v3 1/2] gnu: Add form.
  2022-12-23  1:15 [bug#60266] [PATCH] gnu: Add form Antero Mejr via Guix-patches via
                   ` (2 preceding siblings ...)
  2023-03-16  1:07 ` [bug#60266] [PATCH v2 1/2] gnu: Add form Antero Mejr via Guix-patches via
@ 2023-03-21 18:39 ` Antero Mejr via Guix-patches via
  2023-03-21 18:39   ` [bug#60266] [PATCH v3 2/2] gnu: Add parform Antero Mejr via Guix-patches via
  3 siblings, 1 reply; 11+ messages in thread
From: Antero Mejr via Guix-patches via @ 2023-03-21 18:39 UTC (permalink / raw)
  To: 60266

* gnu/packages/algebra.scm (form): New variable.
---
 gnu/packages/algebra.scm | 60 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

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





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#60266] [PATCH v3 2/2] gnu: Add parform.
  2023-03-21 18:39 ` [bug#60266] [PATCH v3 1/2] gnu: Add form Antero Mejr via Guix-patches via
@ 2023-03-21 18:39   ` Antero Mejr via Guix-patches via
  0 siblings, 0 replies; 11+ messages in thread
From: Antero Mejr via Guix-patches via @ 2023-03-21 18:39 UTC (permalink / raw)
  To: 60266

* gnu/packages/algebra.scm (parform): New variable.
---
 gnu/packages/algebra.scm | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

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





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#60266] [PATCH] gnu: Add form.
  2023-03-16  5:23     ` Liliana Marie Prikler
@ 2023-03-21 18:53       ` Antero Mejr via Guix-patches via
  2023-03-22  4:54         ` bug#60266: " Eric Bavier
  0 siblings, 1 reply; 11+ messages in thread
From: Antero Mejr via Guix-patches via @ 2023-03-21 18:53 UTC (permalink / raw)
  To: Liliana Marie Prikler; +Cc: 60266, Eric Bavier

Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
> 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.

>> > 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 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).




^ permalink raw reply	[flat|nested] 11+ messages in thread

* bug#60266: [PATCH] gnu: Add form.
  2023-03-21 18:53       ` Antero Mejr via Guix-patches via
@ 2023-03-22  4:54         ` Eric Bavier
  0 siblings, 0 replies; 11+ messages in thread
From: Eric Bavier @ 2023-03-22  4:54 UTC (permalink / raw)
  To: Antero Mejr, Liliana Marie Prikler; +Cc: 60266-done

[-- Attachment #1: Type: text/plain, Size: 2393 bytes --]

Antero,

Thank you for your effort in this review.

On Tue, 2023-03-21 at 18:53 +0000, Antero Mejr wrote:
> > > > 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.

> > > 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:
       ;; https://github.com/vermaseren/form/issues/426

Thanks again,
`~Eric

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 858 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-03-22  4:55 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-23  1:15 [bug#60266] [PATCH] gnu: Add form Antero Mejr via Guix-patches via
2023-01-09 18:01 ` Eric Bavier
2023-03-16  1:15   ` Antero Mejr via Guix-patches via
2023-03-16  5:23     ` Liliana Marie Prikler
2023-03-21 18:53       ` Antero Mejr via Guix-patches via
2023-03-22  4:54         ` bug#60266: " Eric Bavier
2023-02-19 22:42 ` [bug#60266] Algebra Andreas Enge
2023-03-16  1:07 ` [bug#60266] [PATCH v2 1/2] gnu: Add form Antero Mejr via Guix-patches via
2023-03-16  1:07   ` [bug#60266] [PATCH v2 2/2] gnu: Add parform Antero Mejr via Guix-patches via
2023-03-21 18:39 ` [bug#60266] [PATCH v3 1/2] gnu: Add form Antero Mejr via Guix-patches via
2023-03-21 18:39   ` [bug#60266] [PATCH v3 2/2] gnu: Add parform Antero Mejr via Guix-patches via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).