;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
-;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
+;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (guix download)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages gtk)
- #:use-module (gnu packages xml)
+ #:use-module (guix git-download)
+ #:use-module (guix utils)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages flex)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages gd)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
- #:use-module (gnu packages bison)
#:use-module (gnu packages image)
- #:use-module (gnu packages autotools)
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
- #:use-module (gnu packages glib)
- #:use-module (gnu packages gtk)
- #:use-module (gnu packages gnome)
- #:use-module (gnu packages fontutils)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages gd)
- #:use-module (gnu packages swig)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages swig)
+ #:use-module (gnu packages tcl)
#:use-module (gnu packages tex)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
#:use-module ((guix licenses) #:prefix license:))
(define-public graphviz
(package
(name "graphviz")
- (version "2.40.1")
+ (version "2.42.3")
(source (origin
(method url-fetch)
(uri (string-append
- "http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-"
- version ".tar.gz"))
+ "https://www2.graphviz.org/Packages/stable/portable_source/"
+ "graphviz-" version ".tar.gz"))
(sha256
(base32
- "08d4ygkxz2f553bxj6087da56a23kx1khv0j8ycxa102vvx1hlna"))))
+ "1pbswjbx3fjdlsxcm7cmlsl5bvaa3d6gcnr0cr8x3c8pag13zbwg"))))
(build-system gnu-build-system)
(arguments
;; FIXME: rtest/rtest.sh is a ksh script (!). Add ksh as an input.
("gts" ,gts)
("gd" ,gd) ; FIXME: Our GD is too old
("guile" ,guile-2.0) ;Guile bindings
- ("swig" ,swig)
("pango" ,pango)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("libltdl" ,libltdl)
("libXaw" ,libxaw)
("expat" ,expat)
- ("libjpeg" ,libjpeg)
+ ("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)))
(native-inputs
`(("bison" ,bison)
+ ("swig" ,swig)
("pkg-config" ,pkg-config)))
(outputs '("out" "doc")) ; 5 MiB of html + pdfs
(home-page "http://www.graphviz.org/")
interfaces for other technical domains.")
(license license:epl1.0)))
+;; Older Graphviz needed for pygraphviz. See
+;; https://github.com/pygraphviz/pygraphviz/issues/175
+(define-public graphviz-2.38
+ ;; This commit corresponds to the changelog change for version 2.38.0.
+ ;; There are no tags.
+ (let ((commit "f54ac2c9313ae80ccf76ef4ac6aa9be820a23126")
+ (revision "1"))
+ (package (inherit graphviz)
+ (name "graphviz")
+ (version (git-version "2.38.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/graphviz/graphviz.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1vjg308gflmi1khgjmcj431cnkrlv12bg4cqah39mwhny92jy92x"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments graphviz)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'prepare-bootstrap
+ (lambda _
+ (substitute* "autogen.sh"
+ (("/bin/sh") (which "sh"))
+ (("\\$GRAPHVIZ_VERSION_DATE") "0"))
+ (setenv "CONFIG_SHELL" (which "sh"))
+ (setenv "SHELL" (which "sh"))
+
+ (map make-file-writable (find-files "." ".*"))
+ #t))
+ (replace 'bootstrap
+ (lambda _ (invoke (which "sh") "autogen.sh" "NOCONFIG") #t))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("flex" ,flex)
+ ("perl" ,perl)
+ ("tcl" ,tcl)
+ ,@(package-native-inputs graphviz))))))
+
(define-public python-graphviz
(package
(name "python-graphviz")
- (version "0.8.3")
+ (version "0.13.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "graphviz" version ".zip"))
(sha256
(base32
- "0gnl11w98iib7vif92f3vircavy2v1yl9sl54y6hhk1mwm0f07f6"))))
+ "009alrilzx0v7kl41khbq7k6k8b8pxyvbsi1b1ai933f6kpbxb30"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests #:allow-other-keys)
+ (if tests
+ (invoke "pytest" "-vv")
+ (format #t "test suite not run~%"))
+ #t)))))
(native-inputs
- `(("unzip" ,unzip)))
+ `(("unzip" ,unzip)
+
+ ;; For tests.
+ ("graphviz" ,graphviz)
+ ("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-mock" ,python-pytest-mock)))
(home-page "https://github.com/xflr6/graphviz")
(synopsis "Simple Python interface for Graphviz")
(description
(define-public python2-graphviz
(package-with-python2 python-graphviz))
+(define-public python-pygraphviz
+ (package
+ (name "python-pygraphviz")
+ (version "1.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pygraphviz/pygraphviz")
+ (commit (string-append "pygraphviz-" version))))
+ (file-name (string-append "pygraphviz-" version "-checkout"))
+ (sha256
+ (base32
+ "1yldym38m8ckgflln83i88143pd9fjj1vfp23sq39fs6np5g0nzp"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:configure-flags
+ (let ((graphviz (assoc-ref %build-inputs "graphviz")))
+ (list (string-append "--include-path=" graphviz "/include")
+ (string-append "--library-path=" graphviz "/lib")))))
+ (inputs
+ `(("graphviz" ,graphviz-2.38)))
+ (native-inputs
+ `(("python-nose" ,python-nose)
+ ("python-mock" ,python-mock)
+ ("python-doctest-ignore-unicode" ,python-doctest-ignore-unicode)))
+ (home-page "https://pygraphviz.github.io")
+ (synopsis "Python interface to Graphviz")
+ (description "PyGraphviz is a Python interface to the Graphviz graph
+layout and visualization package. With PyGraphviz you can create, edit, read,
+write, and draw graphs using Python to access the Graphviz graph data
+structure and layout algorithms.")
+ (license license:bsd-3)))
+
+(define-public python2-pygraphviz
+ (package-with-python2 python-pygraphviz))
+
(define-public gts
(package
(name "gts")
(define-public xdot
(package
(name "xdot")
- (version "0.7")
+ (version "1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xdot" version))
(sha256
(base32
- "1q0f3pskb09saw1qkd2s6vmk80rq5zjhq8l93dfr2x6r04r0q46j"))))
+ "0cr4rh7dz4dfzyxrk5pzhm0d15gkrgkfp3i5lw178xy81pc56p71"))))
(build-system python-build-system)
(arguments
`(#:phases
("gtk+" ,gtk+)
("python-pycairo" ,python-pycairo)
("python-pygobject" ,python-pygobject)))
- (home-page "https://pypi.python.org/pypi/xdot")
+ (home-page "https://pypi.org/project/xdot/")
(synopsis "Interactive viewer for graphviz dot files")
(description "Xdot is an interactive viewer for graphs written in
@code{graphviz}’s dot language. Internally, it uses the xdot output format as
-an intermediate format,and @code{gtk} and @code{cairo} for rendering. Xdot can
-be used either as a standalone application, or as a python library.")
+an intermediate format, and @code{gtk} and @code{cairo} for rendering. Xdot
+can be used either as a standalone application, or as a Python library.")
(license license:lgpl3+)))
(define-public python-pydot
(package
(name "python-pydot")
- (version "1.2.3")
+ (version "1.2.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pydot" version))
(sha256
(base32
- "00imlz0033dygb9gdag1xr0cybn33gk5jsdi9ffbszzr97rd7dgd"))))
+ "1dhy4jpp646jslh2yks6klwwbaxcs905byyny880gl1iap8y5llj"))))
(build-system python-build-system)
- ;; FIXME: No tests in PyPi release tarball.
- (arguments '(#:tests? #f))
+ (native-inputs
+ ;; For tests.
+ `(("python-chardet" ,python-chardet)))
(propagated-inputs
`(("python-pyparsing" ,python-pyparsing)))
(home-page "https://github.com/erocarrera/pydot")
(define-public dot2tex
(package
(name "dot2tex")
- (version "2.9.0")
+ (version "2.11.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "dot2tex" version))
(sha256
(base32
- "0jhdwp0wv2h0xb7j2s5xiv7i8yaqgfpwwqcyrjvaxkfwsynm8gkx"))))
+ "1kp77wiv7b5qib82i3y3sn9r49rym43aaqm5aw1bwnzfbbq2m6i9"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2))