X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/e55354b87eae085105b1d89eebcab0755e81d4c9..fc1adab1487e5ea3c5f6341263df14414ba4e784:/gnu/packages/plotutils.scm?ds=sidebyside diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 23b3183e82..67f692daf5 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2015 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,12 +18,26 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages plotutils) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #: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)) (define-public plotutils @@ -36,12 +51,22 @@ (sha256 (base32 "1arkyizn5wbgvbh53aziv3s6lmd3wm9lqzkhxb3hijlp1y124hjg")) - (patches (list (search-patch "plotutils-libpng-jmpbuf.patch"))))) + (patches (search-patches "plotutils-libpng-jmpbuf.patch")) + (modules '((guix build utils))) + (snippet + ;; Force the use of libXaw7 instead of libXaw. When not doing + ;; that, libplot.la ends up containing just "-lXaw" (without + ;; "-L/path/to/Xaw"), due to the fact that there is no + ;; libXaw.la, which forces us to propagate libXaw. + '(substitute* "configure" + (("-lXaw") + "-lXaw7"))))) (build-system gnu-build-system) (inputs `(("libpng" ,libpng) ("libx11" ,libx11) ("libxt" ,libxt) ("libxaw" ,libxaw))) + (home-page "http://www.gnu.org/software/plotutils/") (synopsis "Plotting utilities and library") @@ -51,4 +76,152 @@ It includes a library, \"libplot\", for C and C++ for exporting 2D vector graphics in many file formats. It also has support for 2D vector graphics animations. The package also contains command-line programs for plotting scientific data.") - (license gpl2+))) + (license license:gpl2+))) + +(define-public guile-charting + (package + (name "guile-charting") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (string-append "http://wingolog.org/pub/guile-charting/" + "guile-charting-" version ".tar.gz")) + (sha256 + (base32 + "0w5qiyv9v0ip5li22x762bm48g8xnw281w66iyw094zdw611pb2m")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Use the standard location for modules. + (substitute* "Makefile.in" + (("godir = .*$") + "godir = $(moddir)\n")))))) + (build-system gnu-build-system) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("guile" ,guile-2.0))) + (propagated-inputs `(("guile-cairo" ,guile-cairo))) + (home-page "http://wingolog.org/software/guile-charting/") + (synopsis "Create charts and graphs in Guile") + (description + "Guile-Charting is a Guile Scheme library to create bar charts and graphs +using the Cairo drawing library.") + (license license:lgpl2.1+))) + +(define-public ploticus + (package + (name "ploticus") + (version "2.42") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/ploticus/ploticus/" + version "/ploticus242_src.tar.gz")) + (sha256 + (base32 + "1c70cvfvgjh83hj1x21130wb9qfr2rc0x47cxy9kl805yjwy8a9z")) + (modules '((guix build utils))) + (snippet + ;; Install binaries in the right place. + '(substitute* "src/Makefile" + (("INSTALLBIN =.*$") + (string-append "INSTALLBIN = $(out)/bin")))))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'configure (lambda _ (chdir "src"))) + (add-before 'install 'make-target-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/bin")) + #t))) + (add-after 'install 'install-prefabs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out + "/share/ploticus/prefabs")) + (bin (string-append out "/bin"))) + (mkdir-p dir) + + ;; Install "prefabs". + (for-each (lambda (file) + (let ((target + (string-append dir "/" + (basename file)))) + (copy-file file target))) + (find-files "../prefabs" ".")) + + ;; Allow them to be found. + (wrap-program (string-append bin "/pl") + `("PLOTICUS_PREFABS" ":" = (,dir))))))))) + (inputs + `(("libpng" ,libpng) + ("libx11" ,libx11) + ("zlib" ,zlib))) + (home-page "http://ploticus.sourceforge.net/") + (synopsis "Command-line tool for producing plots and charts") + (description + "Ploticus is a non-interactive software package for producing plots, +charts, and graphics from data. Ploticus is good for automated or +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 (search-patches "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) + ("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+)))