I realized Guix already provided "libao", as "ao" variable. However, I don't know why it isn't "public".
I also packaged "mpfi". Since all dependencies of "giac-xcas" are now available, I can update the package definition. 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. WDYT? In any case, here are the patches. Thank you for reading so far. Regards,
>From eab8703a36c405bf01c34db4a5ceb1a5926033b5 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <m...@nicolasgoaziou.fr> 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 @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2015 Ludovic Courtès <l...@gnu.org> ;;; Copyright © 2014 Mark H Weaver <m...@netris.org> ;;; Copyright © 2015 Andreas Enge <andr...@enge.fr> +;;; Copyright © 2016 Nicolas Goaziou <m...@nicolasgoaziou.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -119,3 +120,29 @@ 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
>From b454564510f436ca1150a672970bafc805fbd86b Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <m...@nicolasgoaziou.fr> 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 @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge <andr...@enge.fr> ;;; Copyright © 2013, 2015 Ludovic Courtès <l...@gnu.org> +;;; Copyright © 2016 Nicolas Goaziou <m...@nicolasgoaziou.fr> ;;; Copyright © 2014 Mark H Weaver <m...@netris.org> ;;; ;;; 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,65 @@ 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) + ;; We don't use "~parisse/giac" 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")) + ;; 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") ""))))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Some Make files contain hard-coded "/bin/cp". + (add-after 'unpack 'patch-bin-cp + (lambda _ + (substitute* (find-files "doc" "^Makefile") + (("/bin/cp") (which "cp"))) + #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