aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-06-17 01:15:55 +0200
committerLudovic Courtès <ludo@gnu.org>2013-06-17 01:17:05 +0200
commitb1b07d72c755ea314fb0c8333cd88293ee504ce4 (patch)
tree548210490b70fc560ea1017c29113a698c68e273
parent7997c4bf76e93ce4e916498847fffba46b859a0b (diff)
downloadpatches-b1b07d72c755ea314fb0c8333cd88293ee504ce4.tar
patches-b1b07d72c755ea314fb0c8333cd88293ee504ce4.tar.gz
gnu: Add Graphviz.
* gnu/packages/graphviz.scm: New file. * Makefile.am (MODULES): Add it.
-rw-r--r--Makefile.am1
-rw-r--r--gnu/packages/graphviz.scm124
2 files changed, 125 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index b7a3ac2a36..d7f6341b00 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -115,6 +115,7 @@ MODULES = \
gnu/packages/gnutls.scm \
gnu/packages/gperf.scm \
gnu/packages/gprolog.scm \
+ gnu/packages/graphviz.scm \
gnu/packages/groff.scm \
gnu/packages/grub.scm \
gnu/packages/grue-hunter.scm \
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
new file mode 100644
index 0000000000..a1ee104da9
--- /dev/null
+++ b/gnu/packages/graphviz.scm
@@ -0,0 +1,124 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages graphviz)
+ #:use-module (guix packages)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix download)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages libpng)
+ #:use-module (gnu packages libjpeg)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages gd)
+ #:use-module ((guix licenses) #:select (lgpl2.0+ epl1.0)))
+
+(define-public graphviz
+ (package
+ (name "graphviz")
+ (version "2.28.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0xpwg99cd8sp0c6r8klsmc66h1pday64kmnr4v6f9jkqqmrpkank"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; FIXME: rtest/rtest.sh is a ksh script (!). Add ksh as an input.
+ '(#:tests? #f
+
+ #:phases (alist-cons-before
+ 'build 'pre-build
+ (lambda _
+ ;; Work around bogus makefile when using an external
+ ;; libltdl. Failing to do so, one hits this error:
+ ;; "No rule to make target `-lltdl', needed by `libgvc.la'."
+ (substitute* "lib/gvc/Makefile"
+ (("am__append_5 *=.*")
+ "am_append_5 =\n")))
+ %standard-phases)))
+ (inputs
+ `(("libXrender" ,libxrender)
+ ("libX11" ,libx11)
+ ("gts" ,gts)
+ ("gd" ,gd) ; FIXME: Our GD is too old
+ ("pango" ,pango)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("libltdl" ,libtool)
+ ("bison" ,bison)
+ ("libXaw" ,libxaw)
+ ("expat" ,expat)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("pkg-config" ,pkg-config)))
+ (home-page "http://www.graphviz.org/")
+ (synopsis "Graph visualization software")
+ (description
+ "Graphviz is graph visualization tool suite. Graph visualization is a
+way of representing structural information as diagrams of abstract graphs and
+networks. It has important applications in networking, bioinformatics,
+software engineering, database and web design, machine learning, and in visual
+interfaces for other technical domains.")
+ (license epl1.0)))
+
+(define-public gts
+ (package
+ (name "gts")
+ (version "0.7.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/gts/gts-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "07mqx09jxh8cv9753y2d2jsv7wp8vjmrd7zcfpbrddz3wc9kx705"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-cons-before
+ 'check 'pre-check
+ (lambda _
+ (chmod "test/boolean/test.sh" #o777))
+ %standard-phases)
+
+ ;; Some data files used by the test suite are missing.
+ ;; See <http://sourceforge.net/p/gts/bugs/41/>.
+ #:tests? #f))
+ (inputs
+ `(("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ ;; The gts.pc file has glib-2.0 as required.
+ `(("glib" ,glib)))
+ (home-page "http://gts.sourceforge.net/")
+
+ ;; Note: Despite the name, this is not official GNU software.
+ (synopsis "Triangulated Surface Library")
+ (description
+ "Library intended to provide a set of useful functions to deal with
+3D surfaces meshed with interconnected triangles.")
+ (license lgpl2.0+)))