GNU bug report logs - #64345
[PATCH] gnu: Add reduce-csl.

Previous Next

Package: guix-patches;

Reported by: Nigko Yerden <nigko.yerden <at> gmail.com>

Date: Thu, 29 Jun 2023 06:44:03 UTC

Severity: normal

Tags: patch

Done: Andreas Enge <andreas <at> enge.fr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 64345 in the body.
You can then email your comments to 64345 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to andreas <at> enge.fr, efraim <at> flashner.co.il, bavier <at> posteo.net, guix-patches <at> gnu.org:
bug#64345; Package guix-patches. (Thu, 29 Jun 2023 06:44:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Nigko Yerden <nigko.yerden <at> gmail.com>:
New bug report received and forwarded. Copy sent to andreas <at> enge.fr, efraim <at> flashner.co.il, bavier <at> posteo.net, guix-patches <at> gnu.org. (Thu, 29 Jun 2023 06:44:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Nigko Yerden <nigko.yerden <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: Nigko Yerden <nigko.yerden <at> gmail.com>
Subject: [PATCH] gnu: Add reduce-csl.
Date: Thu, 29 Jun 2023 11:31:34 +0500
* gnu/packages/maths.scm (reduce-csl): New variable.
---
The package is built successfully on x86_64_linux (natively),
armhf-linux and aarch64-linux (via 'guix build --system=...' command)
architectures.

There is no reproducibility due to datestamp (printed each time the
program starts), rundom-number generator initialization in CSL 
(see csl/cslbase/csl.cpp), and maybe some other stuff.

The source code contains bundled fox and editline libraries as well
as their adjustments, which are difficult to remove. Also it contains
libffi (can be replaced by libffi from guix repo), crlibm and
softfloat (currently are not present in guix repo) libraries.

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

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 653e76027a..db66301f3a 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -60,6 +60,7 @@
 ;;; Copyright © 2022 Akira Kyle <akira <at> akirakyle.com>
 ;;; Copyright © 2022 Roman Scherer <roman.scherer <at> burningswell.com>
 ;;; Copyright © 2023 Jake Leporte <jakeleporte <at> outlook.com>
+;;; Copyright © 2023 Nigko Yerden <nigko.yerden <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4488,6 +4489,112 @@ (define-public wxmaxima
 full text searching.")
     (license license:gpl2+)))
 
+(define-public reduce-csl
+  (package
+    (name "reduce-csl")
+    (version "6547")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/reduce-algebra/snapshot_"
+                    "2023-03-08" "/Reduce-svn" version "-src.tar.gz"))
+              (sha256
+               (base32
+                "1a559s4ff5askifyha6fi8qvxjkya1n3ziypig2rgi6q62nbx418"))
+              (modules '((guix build utils)))
+              ;; remove binaries and unnecessary parts
+              ;; to ensure we build from source files only
+              (snippet '(map delete-file-recursively
+                         (append (find-files "csl/generated-c" "\\.img$")
+                          '("psl" "vsl"
+                            "jlisp"
+                            "jslisp"
+                            "libedit"
+                            "macbuild"
+                            "MacPorts"
+                            "mac-universal"
+                            "reduce2"
+                            "winbuild64"
+                            "common-lisp"
+                            "contrib"
+                            "generic/qreduce"
+                            "web/htdocs/images/Thumbs.db")
+                          (find-files "csl"
+                           "^(embedded|new-embedded|winbuild|support-packages)$"
+                           #:directories? #t)
+                          (find-files "libraries"
+                           "^(original|wineditline|libffi-for-mac)$"
+                           #:directories? #t))))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f
+           #:configure-flags
+           #~(list "--without-autogen"
+                   ;; fix conflict with internal build name determination
+                   "--build=" "--with-csl"
+                   (string-append "CXXFLAGS=-I"
+                                  #$freetype
+                                  "/include/freetype2"))
+           #:make-flags #~(list "csl")
+           #:phases #~(modify-phases %standard-phases
+                        (add-before 'patch-source-shebangs 'autogen
+                          (lambda _
+                            (invoke "sh" "autogen.sh")))
+                        (add-after 'install 'fix-install
+                          (lambda _
+                            (delete-file-recursively (string-append #$output
+                                                                    "/man"))
+                            (delete-file (string-append #$output "/share/man"))
+                            (copy-file "bin/rfcsl"
+                                       (string-append #$output "/bin/rfcsl"))
+                            (let ((.desktop-file
+                                   "debianbuild/reduce/debian/redcsl.desktop")
+                                  (icon "debianbuild/reduce/debian/reduce.png"))
+                              (substitute* .desktop-file
+                                (("Exec=/.*/(redcsl[ \t]+.*)" _ exec)
+                                 (string-append "Exec=" exec)))
+                              (install-file .desktop-file
+                                            (string-append #$output
+                                             "/share/applications"))
+                              (install-file icon
+                                            (string-append #$output
+                                             "/share/icons/hicolor/32x32/apps")))
+                            (rename-file "generic/newfront/redfront.1"
+                                         "generic/newfront/rfcsl.1")
+                            (map (lambda (file)
+                                   (invoke "gzip" file)
+                                   (install-file (string-append file ".gz")
+                                                 (string-append #$output
+                                                  "/share/man/man1")))
+                                 '("csl/cslbase/redcsl.1"
+                                   "generic/newfront/rfcsl.1"))
+                            (with-directory-excursion #$output
+                              (map (lambda (dir)
+                                     (map (lambda (file)
+                                            (chmod file #o444))
+                                          (find-files dir)))
+                                   '("share/man/man1" "share/doc/reduce"
+                                     "share/reduce/fonts"))))))))
+    (native-inputs (list which autoconf automake libtool))
+    (inputs
+     ;; bundled libraries: fox (adjusted) editline (adjusted)
+     ;; libffi crlibm softfloat
+     (list ncurses freetype libxft libx11 libxext))
+    (synopsis "Portable general-purpose computer algebra system")
+    (description
+     "REDUCE is a portable general-purpose computer algebra system.  It is a
+system for doing scalar, vector and matrix algebra by computer, which also
+supports arbitrary precision numerical approximation and interfaces to gnuplot
+to provide graphics.  It can be used interactively for simple calculations but
+also provides a full programming language, with a syntax similar to other
+modern programming languages.  REDUCE supports alternative user interfaces
+including Run-REDUCE, TeXmacs and GNU Emacs.  This package provides Codemist
+Standard Lisp (CSL) version of REDUCE.  It uses gnuplot program, if installed,
+to make figures.")
+    (home-page "https://reduce-algebra.sourceforge.io/")
+    (license (license:non-copyleft "file://README"
+                                   "See README in the deistribution."))))
+
 (define-public armadillo
   (package
     (name "armadillo")

base-commit: b24a05830d11e3011eee4bc5f60a41e26188cde1
-- 
2.40.1





Information forwarded to andreas <at> enge.fr, efraim <at> flashner.co.il, bavier <at> posteo.net, guix-patches <at> gnu.org:
bug#64345; Package guix-patches. (Sat, 23 Sep 2023 06:18:02 GMT) Full text and rfc822 format available.

Message #8 received at 64345 <at> debbugs.gnu.org (full text, mbox):

From: Nigko Yerden <nigko.yerden <at> gmail.com>
To: 64345 <at> debbugs.gnu.org
Cc: Nigko Yerden <nigko.yerden <at> gmail.com>
Subject: [PATCH v2] gnu: Add reduce-csl.
Date: Sat, 23 Sep 2023 10:45:58 +0500
* gnu/packages/maths.scm (reduce-csl): New variable.
---
This patch introduces Reduce, a general purpose computer algebra
system similar to Maxima.

The package is built successfully on x86_64_linux (natively),
armhf-linux and aarch64-linux (via 'guix build --system=...' command)
architectures.

Reduce became build-reproducible since the upstream revision 6601, but
the current "stable" snapshot 6547 is not reproducible.

The source code contains bundled fox and editline libraries as well
as their adjustments, which are difficult to remove. Also it contains
libffi (can be replaced by libffi from guix repo), crlibm and
softfloat (currently are not present in guix repo) libraries.
---
 gnu/packages/maths.scm | 107 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 107 insertions(+)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 6141c09886..7892291e0b 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -61,6 +61,7 @@
 ;;; Copyright © 2022 Roman Scherer <roman.scherer <at> burningswell.com>
 ;;; Copyright © 2023 Jake Leporte <jakeleporte <at> outlook.com>
 ;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico <at> riseup.net>
+;;; Copyright © 2023 Nigko Yerden <nigko.yerden <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4490,6 +4491,112 @@ (define-public wxmaxima
 full text searching.")
     (license license:gpl2+)))
 
+(define-public reduce-csl
+  (package
+    (name "reduce-csl")
+    (version "6547")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/reduce-algebra/snapshot_"
+                    "2023-03-08" "/Reduce-svn" version "-src.tar.gz"))
+              (sha256
+               (base32
+                "1a559s4ff5askifyha6fi8qvxjkya1n3ziypig2rgi6q62nbx418"))
+              (modules '((guix build utils)))
+              ;; remove binaries and unnecessary parts
+              ;; to ensure we build from source files only
+              (snippet '(map delete-file-recursively
+                         (append (find-files "csl/generated-c" "\\.img$")
+                          '("psl" "vsl"
+                            "jlisp"
+                            "jslisp"
+                            "libedit"
+                            "macbuild"
+                            "MacPorts"
+                            "mac-universal"
+                            "reduce2"
+                            "winbuild64"
+                            "common-lisp"
+                            "contrib"
+                            "generic/qreduce"
+                            "web/htdocs/images/Thumbs.db")
+                          (find-files "csl"
+                           "^(embedded|new-embedded|winbuild|support-packages)$"
+                           #:directories? #t)
+                          (find-files "libraries"
+                           "^(original|wineditline|libffi-for-mac)$"
+                           #:directories? #t))))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f
+           #:configure-flags
+           #~(list "--without-autogen"
+                   ;; fix conflict with internal build name determination
+                   "--build=" "--with-csl"
+                   (string-append "CXXFLAGS=-I"
+                                  #$freetype
+                                  "/include/freetype2"))
+           #:make-flags #~(list "csl")
+           #:phases #~(modify-phases %standard-phases
+                        (add-before 'patch-source-shebangs 'autogen
+                          (lambda _
+                            (invoke "sh" "autogen.sh")))
+                        (add-after 'install 'fix-install
+                          (lambda _
+                            (delete-file-recursively (string-append #$output
+                                                                    "/man"))
+                            (delete-file (string-append #$output "/share/man"))
+                            (copy-file "bin/rfcsl"
+                                       (string-append #$output "/bin/rfcsl"))
+                            (let ((.desktop-file
+                                   "debianbuild/reduce/debian/redcsl.desktop")
+                                  (icon "debianbuild/reduce/debian/reduce.png"))
+                              (substitute* .desktop-file
+                                (("Exec=/.*/(redcsl[ \t]+.*)" _ exec)
+                                 (string-append "Exec=" exec)))
+                              (install-file .desktop-file
+                                            (string-append #$output
+                                             "/share/applications"))
+                              (install-file icon
+                                            (string-append #$output
+                                             "/share/icons/hicolor/32x32/apps")))
+                            (rename-file "generic/newfront/redfront.1"
+                                         "generic/newfront/rfcsl.1")
+                            (map (lambda (file)
+                                   (invoke "gzip" file)
+                                   (install-file (string-append file ".gz")
+                                                 (string-append #$output
+                                                  "/share/man/man1")))
+                                 '("csl/cslbase/redcsl.1"
+                                   "generic/newfront/rfcsl.1"))
+                            (with-directory-excursion #$output
+                              (map (lambda (dir)
+                                     (map (lambda (file)
+                                            (chmod file #o444))
+                                          (find-files dir)))
+                                   '("share/man/man1" "share/doc/reduce"
+                                     "share/reduce/fonts"))))))))
+    (native-inputs (list which autoconf automake libtool))
+    (inputs
+     ;; bundled libraries: fox (adjusted) editline (adjusted)
+     ;; libffi crlibm softfloat
+     (list ncurses freetype libxft libx11 libxext))
+    (synopsis "Portable general-purpose computer algebra system")
+    (description
+     "REDUCE is a portable general-purpose computer algebra system.  It is a
+system for doing scalar, vector and matrix algebra by computer, which also
+supports arbitrary precision numerical approximation and interfaces to gnuplot
+to provide graphics.  It can be used interactively for simple calculations but
+also provides a full programming language, with a syntax similar to other
+modern programming languages.  REDUCE supports alternative user interfaces
+including Run-REDUCE, TeXmacs and GNU Emacs.  This package provides Codemist
+Standard Lisp (CSL) version of REDUCE.  It uses gnuplot program, if installed,
+to make figures.")
+    (home-page "https://reduce-algebra.sourceforge.io/")
+    (license (license:non-copyleft "file://README"
+                                   "See README in the deistribution."))))
+
 (define-public armadillo
   (package
     (name "armadillo")

base-commit: ec130e1a1b7f3b87b1a6e626754f7e7a07f6b717
-- 
2.41.0





Information forwarded to andreas <at> enge.fr, efraim <at> flashner.co.il, bavier <at> posteo.net, guix-patches <at> gnu.org:
bug#64345; Package guix-patches. (Wed, 18 Oct 2023 12:57:02 GMT) Full text and rfc822 format available.

Message #11 received at 64345 <at> debbugs.gnu.org (full text, mbox):

From: Nigko Yerden <nigko.yerden <at> gmail.com>
To: 64345 <at> debbugs.gnu.org
Cc: Nigko Yerden <nigko.yerden <at> gmail.com>
Subject: [PATCH v3] gnu: Add reduce-csl.
Date: Wed, 18 Oct 2023 17:54:03 +0500
* gnu/packages/maths.scm (reduce-csl): New variable.
---
This patch introduces Reduce, a general purpose computer algebra
system similar to Maxima.

The package is built successfully on x86_64_linux (natively),
armhf-linux and aarch64-linux (via 'guix build --system=...' command)
architectures.

Reduce became build-reproducible since the upstream revision 6601, but
the current "stable" snapshot 6547 is not reproducible.

The source code contains bundled fox and editline libraries as well
as their adjustments, which are difficult to remove. Also it contains
libffi (can be replaced by libffi from guix repo), crlibm and
softfloat (currently are not present in guix repo) libraries.

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

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 683acd96e1..89127c9e0e 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -62,6 +62,7 @@
 ;;; Copyright © 2023 Jake Leporte <jakeleporte <at> outlook.com>
 ;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico <at> riseup.net>
 ;;; Copyright © 2023 David Elsing <david.elsing <at> posteo.net>
+;;; Copyright © 2023 Nigko Yerden <nigko.yerden <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4761,6 +4762,112 @@ (define-public wxmaxima
 full text searching.")
     (license license:gpl2+)))
 
+(define-public reduce-csl
+  (package
+    (name "reduce-csl")
+    (version "6547")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/reduce-algebra/snapshot_"
+                    "2023-03-08" "/Reduce-svn" version "-src.tar.gz"))
+              (sha256
+               (base32
+                "1a559s4ff5askifyha6fi8qvxjkya1n3ziypig2rgi6q62nbx418"))
+              (modules '((guix build utils)))
+              ;; remove binaries and unnecessary parts
+              ;; to ensure we build from source files only
+              (snippet '(map delete-file-recursively
+                         (append (find-files "csl/generated-c" "\\.img$")
+                          '("psl" "vsl"
+                            "jlisp"
+                            "jslisp"
+                            "libedit"
+                            "macbuild"
+                            "MacPorts"
+                            "mac-universal"
+                            "reduce2"
+                            "winbuild64"
+                            "common-lisp"
+                            "contrib"
+                            "generic/qreduce"
+                            "web/htdocs/images/Thumbs.db")
+                          (find-files "csl"
+                           "^(embedded|new-embedded|winbuild|support-packages)$"
+                           #:directories? #t)
+                          (find-files "libraries"
+                           "^(original|wineditline|libffi-for-mac)$"
+                           #:directories? #t))))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f
+           #:configure-flags
+           #~(list "--without-autogen"
+                   ;; fix conflict with internal build name determination
+                   "--build=" "--with-csl"
+                   (string-append "CXXFLAGS=-I"
+                                  #$freetype
+                                  "/include/freetype2"))
+           #:make-flags #~(list "csl")
+           #:phases #~(modify-phases %standard-phases
+                        (add-before 'patch-source-shebangs 'autogen
+                          (lambda _
+                            (invoke "sh" "autogen.sh")))
+                        (add-after 'install 'fix-install
+                          (lambda _
+                            (delete-file-recursively (string-append #$output
+                                                                    "/man"))
+                            (delete-file (string-append #$output "/share/man"))
+                            (copy-file "bin/rfcsl"
+                                       (string-append #$output "/bin/rfcsl"))
+                            (let ((.desktop-file
+                                   "debianbuild/reduce/debian/redcsl.desktop")
+                                  (icon "debianbuild/reduce/debian/reduce.png"))
+                              (substitute* .desktop-file
+                                (("Exec=/.*/(redcsl[ \t]+.*)" _ exec)
+                                 (string-append "Exec=" exec)))
+                              (install-file .desktop-file
+                                            (string-append #$output
+                                             "/share/applications"))
+                              (install-file icon
+                                            (string-append #$output
+                                             "/share/icons/hicolor/32x32/apps")))
+                            (rename-file "generic/newfront/redfront.1"
+                                         "generic/newfront/rfcsl.1")
+                            (map (lambda (file)
+                                   (invoke "gzip" file)
+                                   (install-file (string-append file ".gz")
+                                                 (string-append #$output
+                                                  "/share/man/man1")))
+                                 '("csl/cslbase/redcsl.1"
+                                   "generic/newfront/rfcsl.1"))
+                            (with-directory-excursion #$output
+                              (map (lambda (dir)
+                                     (map (lambda (file)
+                                            (chmod file #o444))
+                                          (find-files dir)))
+                                   '("share/man/man1" "share/doc/reduce"
+                                     "share/reduce/fonts"))))))))
+    (native-inputs (list which autoconf automake libtool))
+    (inputs
+     ;; bundled libraries: fox (adjusted) editline (adjusted)
+     ;; libffi crlibm softfloat
+     (list ncurses freetype libxft libx11 libxext))
+    (synopsis "Portable general-purpose computer algebra system")
+    (description
+     "REDUCE is a portable general-purpose computer algebra system.  It is a
+system for doing scalar, vector and matrix algebra by computer, which also
+supports arbitrary precision numerical approximation and interfaces to gnuplot
+to provide graphics.  It can be used interactively for simple calculations but
+also provides a full programming language, with a syntax similar to other
+modern programming languages.  REDUCE supports alternative user interfaces
+including Run-REDUCE, TeXmacs and GNU Emacs.  This package provides Codemist
+Standard Lisp (CSL) version of REDUCE.  It uses gnuplot program, if installed,
+to make figures.")
+    (home-page "https://reduce-algebra.sourceforge.io/")
+    (license (license:non-copyleft "file://README"
+                                   "See README in the deistribution."))))
+
 (define-public armadillo
   (package
     (name "armadillo")

base-commit: 1076f32111e512ed437f135c9eb6ce2daaafd623
-- 
2.41.0





Reply sent to Andreas Enge <andreas <at> enge.fr>:
You have taken responsibility. (Wed, 05 Feb 2025 14:58:01 GMT) Full text and rfc822 format available.

Notification sent to Nigko Yerden <nigko.yerden <at> gmail.com>:
bug acknowledged by developer. (Wed, 05 Feb 2025 14:58:01 GMT) Full text and rfc822 format available.

Message #16 received at 64345-done <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: 64345-done <at> debbugs.gnu.org
Subject: Close
Date: Wed, 5 Feb 2025 15:57:09 +0100
Hello,

this seems to be a duplicate of #66606, so I will close this issue in
favour of the latter.

Andreas





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 06 Mar 2025 12:24:13 GMT) Full text and rfc822 format available.

This bug report was last modified 7 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.