From 2faf8a6c093739c4b8980b337a6a0ed659e84ebf Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 20 Dec 2015 16:24:24 -0600 Subject: [PATCH 2/2] gnu: Add Asymptote. * gnu/packages/bdw-gc.scm (libgc-for-c++): New variable. * gnu/packages/plotutils.scm (asymptote): New variable. * gnu/packages/patches/asymptote-gsl2.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/bdw-gc.scm | 6 +++ gnu/packages/patches/asymptote-gsl2.patch | 33 ++++++++++++++++ gnu/packages/plotutils.scm | 66 +++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 gnu/packages/patches/asymptote-gsl2.patch diff --git a/gnu-system.am b/gnu-system.am index 3c8f402..17196c3 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -406,6 +406,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 0a483ef..9079a08 100644 --- a/gnu/packages/bdw-gc.scm +++ b/gnu/packages/bdw-gc.scm @@ -106,3 +106,9 @@ lock-free code, experiment with thread programming paradigms, etc.") ;; 'USE_LIBC_PRIVATES' is now the default. (arguments '(#:configure-flags '("--enable-cplusplus"))))) + +;;; TODO: Remove this package once libgc is updated from core-updates. +(define-public libgc-for-c++ + (package (inherit libgc) + (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 0000000..4f73d16 --- /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 6166226..8ea4a73 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,58 @@ 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) + (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+))) -- 2.6.3