Hello, Nicolas Goaziou <[email protected]> writes:
> I realized Guix already provided "libao", as "ao" variable. However, > I don't know why it isn't "public". In fact it is public. It is just that the module (gnu packages xiph) use a different convention which is to define "public" variable with ‘define’ and to add them to the #:export list of the module, instead of directly using ‘define-public’. Either way is equivalent in Guile. > I'm not sure about input "texlive-minimal". Debian package doesn't have > it. However, configure script checks for latex, makeindex, pdflatex and > dvips, probably so as to build documentation. OTOH, I don't think > default make dance builds documentation: it probably copies it directly > from the tarball, so it may be useless to provide the input. As a last > point, xcas itself provides a feature to print formulas as LaTeX. So, > all in all, texlive-minimal may be a propagated-input, AFAIU. It depends if this feature is essential for using xcas? If yes then adding it as a propagated-input is still not required unless "latex, makeindex, ..." are used using the PATH which could not be the case since those programs are checked at configure time. WDYT? > From: Nicolas Goaziou <[email protected]> > Date: Sun, 10 Apr 2016 13:53:42 +0200 > Subject: [PATCH 1/2] gnu: Add mpfi > > * gnu/packages/multiprecision.scm (mpfi): New variable. > --- > gnu/packages/multiprecision.scm | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm > index ad50770..a84d7f5 100644 > --- a/gnu/packages/multiprecision.scm > +++ b/gnu/packages/multiprecision.scm [...] > +(define-public mpfi > + (package > + (name "mpfi") > + (version "1.5.1") > + (source (origin > + (method url-fetch) > + (uri (string-append > + "https://gforge.inria.fr/frs/download.php/file/30130/mpfi-" > + version ".tar.gz")) > + (sha256 > + (base32 > + "1g2q6i7dqx40p4gw11da6jgfcbzmm26wxc69fwv8zpcdyg32a9za")))) > + (build-system gnu-build-system) > + (propagated-inputs `(("gmp" ,gmp) ; <mpfi.h> refers to both > + ("mpfr" ,mpfr))) > + (synopsis "C library for arbitrary precision interval arithmetic") > + (description "MPFI is intended to be a portable library written in C for > +arbitrary precision interval arithmetic with intervals represented using MPFR > +reliable floating-point numbers. It is based on the GNU MP library and on > the > +MPFR library. The purpose of an arbitrary precision interval arithmetic is > on > +the one hand to get guaranteed results, thanks to interval computation, and > on > +the other hand to obtain accurate results, thanks to multiple precision > +arithmetic.") > + (license lgpl2.1+) > + (home-page "https://perso.ens-lyon.fr/nathalie.revol/software.html"))) > -- > 2.8.0 Looks good to me. guix lint is happy and the build is reproducible. I have modified the indentation to follow our “custom” Emacs rules. Here is the updated patch.
>From ef5aac59d8170c484429aa8f59b27f07dd77307c Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <[email protected]> Date: Sun, 10 Apr 2016 13:53:42 +0200 Subject: [PATCH 1/2] gnu: Add mpfi * gnu/packages/multiprecision.scm (mpfi): New variable. --- gnu/packages/multiprecision.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index ad50770..d97bf9b 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <[email protected]> ;;; Copyright © 2014 Mark H Weaver <[email protected]> ;;; Copyright © 2015 Andreas Enge <[email protected]> +;;; Copyright © 2016 Nicolas Goaziou <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -119,3 +120,28 @@ floating-point computations with correct rounding.") It supports arbitrarily high precision and it correctly rounds the results.") (license lgpl3+) (home-page "http://mpc.multiprecision.org/"))) + +(define-public mpfi + (package + (name "mpfi") + (version "1.5.1") + (source (origin + (method url-fetch) + (uri (string-append "https://gforge.inria.fr/frs/download.php/" + "file/30130/mpfi-" version ".tar.gz")) + (sha256 + (base32 + "1g2q6i7dqx40p4gw11da6jgfcbzmm26wxc69fwv8zpcdyg32a9za")))) + (build-system gnu-build-system) + (propagated-inputs `(("gmp" ,gmp) ; <mpfi.h> refers to both + ("mpfr" ,mpfr))) + (synopsis "C library for arbitrary precision interval arithmetic") + (description "MPFI is intended to be a portable library written in C for +arbitrary precision interval arithmetic with intervals represented using MPFR +reliable floating-point numbers. It is based on the GNU MP library and on the +MPFR library. The purpose of an arbitrary precision interval arithmetic is on +the one hand to get guaranteed results, thanks to interval computation, and on +the other hand to obtain accurate results, thanks to multiple precision +arithmetic.") + (license lgpl2.1+) + (home-page "https://perso.ens-lyon.fr/nathalie.revol/software.html"))) -- 2.8.0.rc3
> From: Nicolas Goaziou <[email protected]> > Date: Thu, 7 Apr 2016 14:43:15 +0200 > Subject: [PATCH 2/2] gnu: Add giac-xcas > > * gnu/packages/algebra.scm (giac-xcas): New variable. > --- > gnu/packages/algebra.scm | 65 > ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 65 insertions(+) > > diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm > index abac961..74b3f71 100644 > --- a/gnu/packages/algebra.scm > +++ b/gnu/packages/algebra.scm [...] > + (sha256 > + (base32 > + "0cagh9nnaz7ks299b2bs3lrdclv4xbyis24zc8vf3i25p470bxsf")) > + ;; Disable failing test. Actually, the results are correct but > + ;; a sorting discrepancy prevents the test from being > validated. > + (modules '((guix build utils))) > + (snippet > + '(substitute* "check/Makefile.in" > + (("chk_fhan16") ""))))) Is there a particular reason for not patching this within the ‘arguments’ field? Otherwise everything looks good to me. Here is an updated patch with the suggested change and minor formatting fixes.
>From 9227589406b2fc224584690dd40f94955b50e304 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <[email protected]> Date: Thu, 7 Apr 2016 14:43:15 +0200 Subject: [PATCH 2/2] gnu: Add giac-xcas * gnu/packages/algebra.scm (giac-xcas): New variable. --- gnu/packages/algebra.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index abac961..98453d0 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge <[email protected]> ;;; Copyright © 2013, 2015 Ludovic Courtès <[email protected]> +;;; Copyright © 2016 Nicolas Goaziou <[email protected]> ;;; Copyright © 2014 Mark H Weaver <[email protected]> ;;; ;;; This file is part of GNU Guix. @@ -23,7 +24,10 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages compression) #:use-module (gnu packages doxygen) + #:use-module (gnu packages fltk) + #:use-module (gnu packages gl) #:use-module (gnu packages graphviz) + #:use-module (gnu packages image) #:use-module (gnu packages multiprecision) #:use-module (gnu packages maths) #:use-module (gnu packages mpi) @@ -31,7 +35,9 @@ #:use-module (gnu packages readline) #:use-module (gnu packages flex) #:use-module (gnu packages python) + #:use-module (gnu packages tcsh) #:use-module (gnu packages texlive) + #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -158,6 +164,64 @@ PARI is also available as a C library to allow for faster computations.") (license license:gpl2+) (home-page "http://pari.math.u-bordeaux.fr/"))) +(define-public giac-xcas + (package + (name "giac-xcas") + (version "1.2.2-37") + (source (origin + (method url-fetch) + ;; "~parisse/giac" is not used because the maintainer regularly + ;; overrides the release tarball there, introducing a checksum + ;; mismatch every time. See + ;; <https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/README> + (uri (string-append "https://www-fourier.ujf-grenoble.fr/" + "~parisse/debian/dists/stable/main/" + "source/giac_" version ".tar.gz")) + (sha256 + (base32 + "0cagh9nnaz7ks299b2bs3lrdclv4xbyis24zc8vf3i25p470bxsf")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-makefiles + (lambda _ + ;; Some Makefiles contain hard-coded "/bin/cp". + (substitute* (find-files "doc" "^Makefile") + (("/bin/cp") (which "cp"))) + ;; Disable failing test. Actually, the results are correct but + ;; a sorting discrepancy prevents the test from being validated. + (substitute* "check/Makefile.in" + (("chk_fhan16") "")) + #t))))) + (inputs + `(("fltk" ,fltk) + ("gmp" ,gmp) + ("gsl" ,gsl) + ("lapack" ,lapack) + ("libao" ,ao) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libx11" ,libx11) + ("libxft" ,libxft) + ("libxt" ,libxt) + ("mesa" ,mesa) + ("mpfi" ,mpfi) + ("mpfr" ,mpfr) + ("ntl" ,ntl) + ("perl" ,perl) + ("pari-gp" ,pari-gp) + ("tcsh" ,tcsh) + ("texlive" ,texlive-minimal))) + (native-inputs `(("readline" ,readline))) + (home-page "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html") + (synopsis "Computer algebra system") + (description + "Giac/Xcas is a computer algebra system. It has a compatibility mode for +maple, mupad and the TI89. It is available as a standalone program (graphic +or text interfaces) or as a C++ library.") + (license license:gpl3+))) + (define-public gp2c (package (name "gp2c") -- 2.8.0.rc3
Thanks and welcome! -- Mathieu Lirzin
