;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(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
(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")
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+)))