diff --git a/gnu-system.am b/gnu-system.am index 24f7516fcf..c0f8fac1ab 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -405,6 +405,7 @@ dist_patch_DATA = \ gnu/packages/patches/agg-am_c_prototype.patch \ gnu/packages/patches/alsa-lib-mips-atomic-fix.patch \ gnu/packages/patches/apr-skip-getservbyname-test.patch \ + gnu/packages/patches/asymptote-gsl2.patch \ gnu/packages/patches/ath9k-htc-firmware-binutils.patch \ gnu/packages/patches/ath9k-htc-firmware-gcc.patch \ gnu/packages/patches/ath9k-htc-firmware-objcopy.patch \ diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm index 66158912d7..f4bbc64569 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -104,3 +104,10 @@ lock-free code, experiment with thread programming paradigms, etc.") ;; 'USE_LIBC_PRIVATES' is now the default. (arguments '()))) + +;;; TODO: Remove this package once libgc is updated from core-updates. +(define-public libgc-for-c++ + (package (inherit libgc) + (name "libgc-cxx") + (arguments + '(#:configure-flags '("--enable-cplusplus"))))) ;install gc_cpp.h et al. diff --git a/gnu/packages/patches/asymptote-gsl2.patch b/gnu/packages/patches/asymptote-gsl2.patch new file mode 100644 index 0000000000..4f73d16d7f --- /dev/null +++ b/gnu/packages/patches/asymptote-gsl2.patch @@ -0,0 +1,33 @@ +From 71ff9e769ba5d9995b367201f0d41b7a8dedab9d Mon Sep 17 00:00:00 2001 +From: John Bowman +Date: Sat, 14 Nov 2015 01:25:56 -0700 +Subject: [PATCH] Support GSL 2.0. + +--- + gsl.cc | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/gsl.cc b/gsl.cc +index b500557..0f81dc6 100644 +--- a/gsl.cc ++++ b/gsl.cc +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + #include "opsymbols.h" + +@@ -1088,7 +1089,11 @@ void gen_rungsl_venv(venv &ve) + addGSLDOUBLE2Func(SYM(F)); + addGSLDOUBLE2Func(SYM(E)); + addGSLDOUBLE3Func(SYM(P),SYM(phi),SYM(k),SYM(n)); ++#if GSL_MAJOR_VERSION >= 2 ++ addGSLDOUBLE2Func(SYM(D),SYM(phi),SYM(k)); ++#else + addGSLDOUBLE3Func(SYM(D),SYM(phi),SYM(k),SYM(n)); ++#endif + addGSLDOUBLE2Func(SYM(RC),SYM(x),SYM(y)); + addGSLDOUBLE3Func(SYM(RD),SYM(x),SYM(y),SYM(z)); + addGSLDOUBLE3Func(SYM(RF),SYM(x),SYM(y),SYM(z)); diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 6166226dce..09a2d4f91d 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2015 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,11 +22,21 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (gnu packages algebra) + #:use-module (gnu packages bdw-gc) #:use-module (gnu packages xorg) #:use-module (gnu packages image) + #:use-module (gnu packages ghostscript) #:use-module (gnu packages guile) + #:use-module (gnu packages gl) #:use-module (gnu packages gtk) + #:use-module (gnu packages maths) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages readline) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages texlive) #:use-module (gnu packages compression) #:use-module (gnu packages)) @@ -156,3 +167,61 @@ just-in-time graph generation, handles date and time data nicely, and has basic statistical capabilities. It allows significant user control over colors, styles, options and details.") (license license:gpl2+))) + +(define-public asymptote + (package + (name "asymptote") + (version "2.35") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/asymptote/" + version "/asymptote-" version ".src.tgz")) + (sha256 + (base32 + "11f28vxw0ybhvl7vxmqcdwvw7y6gz55ykw9ybgzb2px6lsvgag7z")) + (patches (list (search-patch "asymptote-gsl2.patch"))))) + (build-system gnu-build-system) + ;; Note: The 'asy' binary retains a reference to docdir for use with its + ;; "help" command in interactive mode, so adding a "doc" output is not + ;; currently useful. + (native-inputs + `(("gs" ,ghostscript) ;For tests + ("texinfo" ,texinfo) ;For generating documentation + ("texlive" ,texlive) ;For tests and documentation + ("perl" ,perl))) + (inputs + `(("fftw" ,fftw) + ("freeglut" ,freeglut) + ("gsl" ,gsl) + ("libgc" ,libgc-for-c++) + ("python" ,python-2) + ("readline" ,readline) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags + (list (string-append "--enable-gc=" (assoc-ref %build-inputs "libgc")) + (string-append "--with-latex=" + (assoc-ref %outputs "out") + "/share/texmf/tex/latex") + (string-append "--with-context=" + (assoc-ref %outputs "out") + "/share/texmf/tex/context/third")) + #:phases (modify-phases %standard-phases + (add-before 'build 'patch-pdf-viewer + (lambda _ + ;; Default to a free pdf viewer + (substitute* "settings.cc" + (("defaultPDFViewer=\"acroread\"") + "defaultPDFViewer=\"gv\""))))))) + (home-page "http://asymptote.sourceforge.net") + (synopsis "Script-based vector graphics language") + (description + "Asymptote is a powerful descriptive vector graphics language for +technical drawing, inspired by MetaPost but with an improved C++-like syntax. +Asymptote provides for figures the same high-quality level of typesetting that +LaTeX does for scientific text.") + ;; Most source files do not contain license statements, but the README + ;; contains: "All source files in the Asymptote project, unless explicitly + ;; noted otherwise, are released under version 3 (or later) of the GNU + ;; Lesser General Public License" + (license license:lgpl3+)))