[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 1/1] gnu: Add plantuml.
From: |
Roel Janssen |
Subject: |
Re: [PATCH v4 1/1] gnu: Add plantuml. |
Date: |
Wed, 02 Nov 2016 14:58:48 +0100 |
User-agent: |
mu4e 0.9.17; emacs 25.1.1 |
Theodoros Foradis writes:
> * gnu/packages/uml.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> ---
> gnu/local.mk | 1 +
> gnu/packages/uml.scm | 83
> ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 84 insertions(+)
> create mode 100644 gnu/packages/uml.scm
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 0d400e9..595a5bd 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -357,6 +357,7 @@ GNU_SYSTEM_MODULES = \
> %D%/packages/tmux.scm \
> %D%/packages/tor.scm \
> %D%/packages/tv.scm \
> + %D%/packages/uml.scm \
> %D%/packages/unrtf.scm \
> %D%/packages/upnp.scm \
> %D%/packages/uucp.scm \
> diff --git a/gnu/packages/uml.scm b/gnu/packages/uml.scm
> new file mode 100644
> index 0000000..a93975b
> --- /dev/null
> +++ b/gnu/packages/uml.scm
> @@ -0,0 +1,83 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2016 Theodoros Foradis <address@hidden>
> +;;;
> +;;; 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 uml)
> + #:use-module ((guix licenses) #:prefix license:)
> + #:use-module (guix packages)
> + #:use-module (guix download)
> + #:use-module (guix utils)
> + #:use-module (guix build-system ant)
> + #:use-module (gnu packages graphviz)
> + #:use-module (gnu packages java))
> +
> +(define-public plantuml
> + (package
> + (name "plantuml")
> + (version "8048")
> + (source (origin
> + (method url-fetch)
> + (uri (string-append
> + "mirror://sourceforge/plantuml/plantuml-"
> + version ".tar.gz"))
> + (sha256
> + (base32
> + "1vipxd6p7isb1k1qqh4hrpfcj27hx1nll2yp0rfwpvps1w2d936i"))))
> + (build-system ant-build-system)
> + (arguments
> + `(#:tests? #f ; no tests
> + #:build-target "dist"
> + #:phases
> + (modify-phases %standard-phases
> + (add-before 'build 'delete-extra-from-classpath
> + (lambda _
> + (substitute* "build.xml"
> + (("1.6") "1.7")
> + (("<attribute name=\"Class-Path\"") "<!--")
> + (("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->"))
> + #t))
> + (replace 'install
> + (lambda* (#:key outputs #:allow-other-keys)
> + (install-file "plantuml.jar" (string-append
> + (assoc-ref outputs "out")
> + "/share/java"))
> + #t))
> + (add-after 'install 'make-wrapper
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (wrapper (string-append out "/bin/plantuml")))
> + (mkdir-p (string-append out "/bin"))
> + (with-output-to-file wrapper
> + (lambda _
> + (display
> + (string-append
> + "#!/bin/sh\n\n"
> + (assoc-ref inputs "jre") "/bin/java -jar "
> + out "/share/java/plantuml.jar \"address@hidden"\n"))))
> + (chmod wrapper #o555))
> + #t)))))
> + (inputs
> + `(("graphviz" ,graphviz)
> + ("jre" ,icedtea)))
> + (home-page "http://plantuml.com/")
> + (synopsis "Draw UML diagrams from simple textual description")
> + (description
> + "Plantuml is a tool to generate sequence, usecase, class, activity,
> +component, state, deployment and object UML diagrams, using a simple and
> +human readable text description. Contains @code{salt}, a tool that can
> design
> +simple graphical interfaces.")
> + (license license:gpl3+)))
I tried running plantuml with the following snippet:
@startuml
A <..> B
@enduml
And it crashes because it attempts to run "/usr/bin/dot".
With the following snippet, we replace this "/usr/bin/dot" dependency
with the proper one from the graphviz input:
(add-before 'build 'patch-usr-bin-dot
(lambda* (#:key inputs #:allow-other-keys)
(let ((dot (string-append (assoc-ref inputs "graphviz")
"/bin/dot")))
(substitute*
"src/net/sourceforge/plantuml/cucadiagram/dot/GraphvizLinux.java"
(("/usr/bin/dot") dot)))))
Could you add this snippet?
Other than this, it works fine for me.
Kind regards,
Roel Janssen