From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathieu Lirzin Subject: Re: [PATCH] gnu: Add giac-xcas Date: Mon, 11 Apr 2016 15:52:58 +0200 Message-ID: <878u0kp805.fsf@gnu.org> References: <87inzt7cc3.fsf@nicolasgoaziou.fr> <87h9f9mvfg.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39080) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1apcH5-0007wi-FF for guix-devel@gnu.org; Mon, 11 Apr 2016 09:53:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1apcH2-0004IY-0X for guix-devel@gnu.org; Mon, 11 Apr 2016 09:53:07 -0400 In-Reply-To: <87h9f9mvfg.fsf@nicolasgoaziou.fr> (Nicolas Goaziou's message of "Sun, 10 Apr 2016 15:42:59 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Nicolas Goaziou Cc: Guix-devel --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello, Nicolas Goaziou 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 =E2=80=98define=E2=80=99 and to add them to the #:export list of the module= , instead of directly using =E2=80=98define-public=E2=80=99. Either way is equivalent i= n 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 > 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/multiprecisio= n.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/m= pfi-" > + version ".tar.gz")) > + (sha256 > + (base32 > + "1g2q6i7dqx40p4gw11da6jgfcbzmm26wxc69fwv8zpcdyg32a9za")))) > + (build-system gnu-build-system) > + (propagated-inputs `(("gmp" ,gmp) ; 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"))) > --=20 > 2.8.0 Looks good to me. guix lint is happy and the build is reproducible. I have modified the indentation to follow our =E2=80=9Ccustom=E2=80=9D Emacs = rules. Here is the updated patch. --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename=0001-gnu-Add-mpfi.patch Content-Transfer-Encoding: quoted-printable >From ef5aac59d8170c484429aa8f59b27f07dd77307c Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou 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 =C2=A9 2012, 2013, 2015 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2014 Mark H Weaver ;;; Copyright =C2=A9 2015 Andreas Enge +;;; Copyright =C2=A9 2016 Nicolas Goaziou ;;; ;;; 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.ph= p/" + "file/30130/mpfi-" version ".tar.gz")) + (sha256 + (base32 + "1g2q6i7dqx40p4gw11da6jgfcbzmm26wxc69fwv8zpcdyg32a9za")))) + (build-system gnu-build-system) + (propagated-inputs `(("gmp" ,gmp) ; 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 f= or +arbitrary precision interval arithmetic with intervals represented using M= PFR +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 i= s on +the one hand to get guaranteed results, thanks to interval computation, an= d 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"))) --=20 2.8.0.rc3 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable > From: Nicolas Goaziou > 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 vali= dated. > + (modules '((guix build utils))) > + (snippet > + '(substitute* "check/Makefile.in" > + (("chk_fhan16") ""))))) Is there a particular reason for not patching this within the =E2=80=98arguments=E2=80=99 field? Otherwise everything looks good to me. Here is an updated patch with the suggested change and minor formatting fixes. --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename=0002-gnu-Add-giac-xcas.patch Content-Transfer-Encoding: quoted-printable >From 9227589406b2fc224584690dd40f94955b50e304 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou 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 =C2=A9 2012, 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright =C2=A9 2013, 2015 Ludovic Court=C3=A8s +;;; Copyright =C2=A9 2016 Nicolas Goaziou ;;; Copyright =C2=A9 2014 Mark H Weaver ;;; ;;; 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 fas= ter computations.") (license license:gpl2+) (home-page "http://pari.math.u-bordeaux.fr/"))) =20 +(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 regula= rly + ;; overrides the release tarball there, introducing a checks= um + ;; mismatch every time. See + ;; + (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 valida= ted. + (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 (graph= ic +or text interfaces) or as a C++ library.") + (license license:gpl3+))) + (define-public gp2c (package (name "gp2c") --=20 2.8.0.rc3 --=-=-= Content-Type: text/plain Thanks and welcome! -- Mathieu Lirzin --=-=-=--