unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: Add plantuml.
@ 2016-10-24 13:12 Theodoros Foradis
  2016-10-27 10:13 ` Efraim Flashner
  2016-10-27 10:21 ` [PATCH] " Marius Bakke
  0 siblings, 2 replies; 19+ messages in thread
From: Theodoros Foradis @ 2016-10-24 13:12 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/plantuml.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk              |  1 +
 gnu/packages/plantuml.scm | 87 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 88 insertions(+)
 create mode 100644 gnu/packages/plantuml.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 0d400e9..678acfd 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -292,6 +292,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/perl.scm				\
   %D%/packages/photo.scm			\
   %D%/packages/pkg-config.scm			\
+  %D%/packages/plantuml.scm			\
   %D%/packages/plotutils.scm			\
   %D%/packages/polkit.scm			\
   %D%/packages/popt.scm				\
diff --git a/gnu/packages/plantuml.scm b/gnu/packages/plantuml.scm
new file mode 100644
index 0000000..11c5f72
--- /dev/null
+++ b/gnu/packages/plantuml.scm
@@ -0,0 +1,87 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.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 plantuml)
+  #: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 bash)
+  #: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
+                    "https://downloads.sourceforge.net/project/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-cp
+                     (lambda _
+                       (substitute* "build.xml"
+                         (("1.6") "1.7"))
+                       (substitute* "build.xml"
+                         (("<attribute name=\"Class-Path\"") "<!--"))
+                       (substitute* "build.xml"
+                         (("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->"))))
+         (add-before 'install 'gen-install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (mkdir-p "build/jar")
+                    (system* "mv" "plantuml.jar" "build/jar")
+                    ((@@ (guix build ant-build-system) default-build.xml)
+                     "plantuml.jar"
+                     (string-append (assoc-ref outputs "out")
+                                    "/share/java"))))
+         (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
+                              "#!" (assoc-ref inputs "bash") "/bin/sh\n\n"
+                              (assoc-ref inputs "jre") "/bin/java -jar "
+                              out "/share/java/plantuml.jar \"$@\"\n"))))
+                        (chmod wrapper #o555)))))))
+    (inputs
+     `(("graphviz" ,graphviz)
+       ("bash" ,bash)
+       ("jre" ,icedtea "out")))
+    (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 salt, a tool that can design simple
+graphical interfaces.")
+    (license license:gpl3+)))
-- 
2.10.1

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH] gnu: Add plantuml.
  2016-10-24 13:12 [PATCH] gnu: Add plantuml Theodoros Foradis
@ 2016-10-27 10:13 ` Efraim Flashner
  2016-10-27 11:18   ` [PATCH v2 0/1] " Theodoros Foradis
  2016-10-27 10:21 ` [PATCH] " Marius Bakke
  1 sibling, 1 reply; 19+ messages in thread
From: Efraim Flashner @ 2016-10-27 10:13 UTC (permalink / raw)
  To: Theodoros Foradis; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 3548 bytes --]

I don't java, so I haven't tried it out, so my comments are mostly
cosmetic on the package definition.

On Mon, Oct 24, 2016 at 04:12:25PM +0300, Theodoros Foradis wrote:
> +
> +(define-public plantuml
> +  (package
> +    (name "plantuml")
> +    (version "8048")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "https://downloads.sourceforge.net/project/plantuml/plantuml-"
> +                    version ".tar.gz"))

this should be of the mirror://sourceforge type

> +              (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-cp
> +                     (lambda _
> +                       (substitute* "build.xml"
> +                         (("1.6") "1.7"))
> +                       (substitute* "build.xml"
> +                         (("<attribute name=\"Class-Path\"") "<!--"))
> +                       (substitute* "build.xml"
> +                         (("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->"))))

                return #t
                also, since they're all for the same set (build.xml),
                you can take out the duplicate substitute* lines

> +         (add-before 'install 'gen-install
> +                  (lambda* (#:key outputs #:allow-other-keys)
> +                    (mkdir-p "build/jar")
> +                    (system* "mv" "plantuml.jar" "build/jar")
> +                    ((@@ (guix build ant-build-system) default-build.xml)
> +                     "plantuml.jar"
> +                     (string-append (assoc-ref outputs "out")
> +                                    "/share/java"))))
> +         (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
> +                              "#!" (assoc-ref inputs "bash") "/bin/sh\n\n"
> +                              (assoc-ref inputs "jre") "/bin/java -jar "
> +                              out "/share/java/plantuml.jar \"$@\"\n"))))
> +                        (chmod wrapper #o555)))))))
> +    (inputs
> +     `(("graphviz" ,graphviz)
> +       ("bash" ,bash)
> +       ("jre" ,icedtea "out")))
> +    (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 salt, a tool that can design simple
> +graphical interfaces.")
> +    (license license:gpl3+)))
> -- 
> 2.10.1
> 
> 

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH] gnu: Add plantuml.
  2016-10-24 13:12 [PATCH] gnu: Add plantuml Theodoros Foradis
  2016-10-27 10:13 ` Efraim Flashner
@ 2016-10-27 10:21 ` Marius Bakke
  1 sibling, 0 replies; 19+ messages in thread
From: Marius Bakke @ 2016-10-27 10:21 UTC (permalink / raw)
  To: Theodoros Foradis, guix-devel

[-- Attachment #1: Type: text/plain, Size: 447 bytes --]

Theodoros Foradis <theodoros.for@openmailbox.org> writes:

> * gnu/packages/plantuml.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
> ---
>  gnu/local.mk              |  1 +
>  gnu/packages/plantuml.scm | 87 +++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 88 insertions(+)
>  create mode 100644 gnu/packages/plantuml.scm

Please add it to "uml.scm" instead, so that we can use it for other UML
related packages.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 454 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v2 0/1] gnu: Add plantuml.
  2016-10-27 10:13 ` Efraim Flashner
@ 2016-10-27 11:18   ` Theodoros Foradis
  2016-10-27 11:18     ` [PATCH v2 1/1] " Theodoros Foradis
  0 siblings, 1 reply; 19+ messages in thread
From: Theodoros Foradis @ 2016-10-27 11:18 UTC (permalink / raw)
  To: guix-devel


Efraim Flashner writes:

> I don't java, so I haven't tried it out, so my comments are mostly
> cosmetic on the package definition.
>
> On Mon, Oct 24, 2016 at 04:12:25PM +0300, Theodoros Foradis wrote:
>> +
>> +(define-public plantuml
>> +  (package
>> +    (name "plantuml")
>> +    (version "8048")
>> +    (source (origin
>> +              (method url-fetch)
>> +              (uri (string-append
>> +                    "https://downloads.sourceforge.net/project/plantuml/plantuml-"
>> +                    version ".tar.gz"))
>
> this should be of the mirror://sourceforge type
>

fixed

>> +              (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-cp
>> +                     (lambda _
>> +                       (substitute* "build.xml"
>> +                         (("1.6") "1.7"))
>> +                       (substitute* "build.xml"
>> +                         (("<attribute name=\"Class-Path\"") "<!--"))
>> +                       (substitute* "build.xml"
>> +                         (("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->"))))
>
>                 return #t
>                 also, since they're all for the same set (build.xml),
>                 you can take out the duplicate substitute* lines
>

done

>> +         (add-before 'install 'gen-install
>> +                  (lambda* (#:key outputs #:allow-other-keys)
>> +                    (mkdir-p "build/jar")
>> +                    (system* "mv" "plantuml.jar" "build/jar")
>> +                    ((@@ (guix build ant-build-system) default-build.xml)
>> +                     "plantuml.jar"
>> +                     (string-append (assoc-ref outputs "out")
>> +                                    "/share/java"))))
>> +         (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
>> +                              "#!" (assoc-ref inputs "bash") "/bin/sh\n\n"
>> +                              (assoc-ref inputs "jre") "/bin/java -jar "
>> +                              out "/share/java/plantuml.jar \"$@\"\n"))))
>> +                        (chmod wrapper #o555)))))))
>> +    (inputs
>> +     `(("graphviz" ,graphviz)
>> +       ("bash" ,bash)
>> +       ("jre" ,icedtea "out")))
>> +    (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 salt, a tool that can design simple
>> +graphical interfaces.")
>> +    (license license:gpl3+)))
>> -- 
>> 2.10.1
>> 
>> 

Also, I took Marius Bakke's advice, and added it to "uml.scm" instead.

Thanks for your input.
-- 
Theodoros Foradis

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v2 1/1] gnu: Add plantuml.
  2016-10-27 11:18   ` [PATCH v2 0/1] " Theodoros Foradis
@ 2016-10-27 11:18     ` Theodoros Foradis
  2016-10-27 17:29       ` Ricardo Wurmus
  0 siblings, 1 reply; 19+ messages in thread
From: Theodoros Foradis @ 2016-10-27 11:18 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/uml.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk         |  1 +
 gnu/packages/uml.scm | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 87 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..7dbcd20
--- /dev/null
+++ b/gnu/packages/uml.scm
@@ -0,0 +1,86 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.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 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 bash)
+  #: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-cp
+                     (lambda _
+                       (substitute* "build.xml"
+                         (("1.6") "1.7")
+                         (("<attribute name=\"Class-Path\"") "<!--")
+                         (("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->"))
+                       #t))
+         (add-before 'install 'gen-install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (mkdir-p "build/jar")
+                    (system* "mv" "plantuml.jar" "build/jar")
+                    ((@@ (guix build ant-build-system) default-build.xml)
+                     "plantuml.jar"
+                     (string-append (assoc-ref outputs "out")
+                                    "/share/java"))))
+         (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
+                              "#!" (assoc-ref inputs "bash") "/bin/sh\n\n"
+                              (assoc-ref inputs "jre") "/bin/java -jar "
+                              out "/share/java/plantuml.jar \"$@\"\n"))))
+                        (chmod wrapper #o555)))))))
+    (inputs
+     `(("graphviz" ,graphviz)
+       ("bash" ,bash)
+       ("jre" ,icedtea "out")))
+    (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 salt, a tool that can design simple
+graphical interfaces.")
+    (license license:gpl3+)))
-- 
2.10.1

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/1] gnu: Add plantuml.
  2016-10-27 11:18     ` [PATCH v2 1/1] " Theodoros Foradis
@ 2016-10-27 17:29       ` Ricardo Wurmus
  2016-10-28 11:19         ` Theodoros Foradis
  2016-10-28 19:12         ` [PATCH v2 1/1] " Theodoros Foradis
  0 siblings, 2 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2016-10-27 17:29 UTC (permalink / raw)
  To: Theodoros Foradis; +Cc: guix-devel


Hi Theodoros,

thanks for the patch!

> +(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-cp
> +                     (lambda _
> +                       (substitute* "build.xml"
> +                         (("1.6") "1.7")
> +                         (("<attribute name=\"Class-Path\"") "<!--")
> +                         (("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->"))
> +                       #t))
> +         (add-before 'install 'gen-install
> +                  (lambda* (#:key outputs #:allow-other-keys)
> +                    (mkdir-p "build/jar")
> +                    (system* "mv" "plantuml.jar" "build/jar")
> +                    ((@@ (guix build ant-build-system) default-build.xml)
> +                     "plantuml.jar"
> +                     (string-append (assoc-ref outputs "out")
> +                                    "/share/java"))))

I don’t understand this.  Do you only use “default-build.xml” to add an
install target?  In the previous phase you use the included “build.xml”.
I find this a little odd and think it would be clearer to just install
the files manually instead of using “default-build.xml” here.

> +         (add-after 'install 'make-wrapper
> +                    (lambda* (#:key inputs outputs #:allow-other-keys)

Please check the indentation for all phases.  That’s too far to the
right.

> +                      (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
> +                              "#!" (assoc-ref inputs "bash")
> "/bin/sh\n\n"

You might not need bash here.  Would just “#!/bin/sh” work?

> +                              (assoc-ref inputs "jre") "/bin/java -jar "
> +                              out "/share/java/plantuml.jar \"$@\"\n"))))
> +                        (chmod wrapper #o555)))))))

Please note that all phases should end with #t or #f. 

> +    (inputs
> +     `(("graphviz" ,graphviz)
> +       ("bash" ,bash)
> +       ("jre" ,icedtea "out")))

“out” is the default so you can just leave it off.

> +    (home-page "http://plantuml.com/")
> +    (synopsis "Draw UML diagrams from simple textual description")
> +    (description
> +     "Plantuml is a tool to generate sequence, usecase, class,
> activity,

Is “usecase” a word or should it be “use case”?

> +component, state, deployment and object UML diagrams, using a simple and
> +human readable text description.  Contains salt, a tool that can
> design simple

Please use “@code{salt}”.

> +graphical interfaces.")
> +    (license license:gpl3+)))

Could you please send an updated patch?

~~ Ricardo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/1] gnu: Add plantuml.
  2016-10-27 17:29       ` Ricardo Wurmus
@ 2016-10-28 11:19         ` Theodoros Foradis
  2016-10-29 21:46           ` Ricardo Wurmus
  2016-10-28 19:12         ` [PATCH v2 1/1] " Theodoros Foradis
  1 sibling, 1 reply; 19+ messages in thread
From: Theodoros Foradis @ 2016-10-28 11:19 UTC (permalink / raw)
  To: guix-devel

Hello Ricardo,

> Hi Theodoros,
>
> thanks for the patch!
>
>> +(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-cp
>> +                     (lambda _
>> +                       (substitute* "build.xml"
>> +                         (("1.6") "1.7")
>> +                         (("<attribute name=\"Class-Path\"") "<!--")
>> +                         (("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->"))
>> +                       #t))
>> +         (add-before 'install 'gen-install
>> +                  (lambda* (#:key outputs #:allow-other-keys)
>> +                    (mkdir-p "build/jar")
>> +                    (system* "mv" "plantuml.jar" "build/jar")
>> +                    ((@@ (guix build ant-build-system) default-build.xml)
>> +                     "plantuml.jar"
>> +                     (string-append (assoc-ref outputs "out")
>> +                                    "/share/java"))))
>
> I don’t understand this.  Do you only use “default-build.xml” to add an
> install target?  In the previous phase you use the included “build.xml”.
> I find this a little odd and think it would be clearer to just install
> the files manually instead of using “default-build.xml” here.

The build.xml that our ant-build-system generates, does not generate a
correct manifest attribute with the Main-Class, so the produced jar file
cannot be run. Instead of generating the required text manually, I use
the default build.xml for the build phase.

The default build.xml does not include an install phase, so I generate
it after compilation, with our ant-build-system.

Feedback is welcome, if there is a better way to do this, before I
reformat the patch.

>
>> +         (add-after 'install 'make-wrapper
>> +                    (lambda* (#:key inputs outputs #:allow-other-keys)
>
> Please check the indentation for all phases.  That’s too far to the
> right.
>

I will fix that. This is the default indentation emacs does with this,
so I forgot to fix it manually.

>> +                      (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
>> +                              "#!" (assoc-ref inputs "bash")
>> "/bin/sh\n\n"
>

Works for me, so I'll change it.

> You might not need bash here.  Would just “#!/bin/sh” work?
>
>> +                              (assoc-ref inputs "jre") "/bin/java -jar "
>> +                              out "/share/java/plantuml.jar \"$@\"\n"))))
>> +                        (chmod wrapper #o555)))))))
>
> Please note that all phases should end with #t or #f. 
>

Will fix.

>> +    (inputs
>> +     `(("graphviz" ,graphviz)
>> +       ("bash" ,bash)
>> +       ("jre" ,icedtea "out")))
>
> “out” is the default so you can just leave it off.
>
>> +    (home-page "http://plantuml.com/")
>> +    (synopsis "Draw UML diagrams from simple textual description")
>> +    (description
>> +     "Plantuml is a tool to generate sequence, usecase, class,
>> activity,
>
> Is “usecase” a word or should it be “use case”?
>
>> +component, state, deployment and object UML diagrams, using a simple and
>> +human readable text description.  Contains salt, a tool that can
>> design simple
>
> Please use “@code{salt}”.
>

Ok.

>> +graphical interfaces.")
>> +    (license license:gpl3+)))
>
> Could you please send an updated patch?
>
> ~~ Ricardo

Sure, I will send an updated patch later.

Regards,
-- 
Theodoros Foradis

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/1] gnu: Add plantuml.
  2016-10-27 17:29       ` Ricardo Wurmus
  2016-10-28 11:19         ` Theodoros Foradis
@ 2016-10-28 19:12         ` Theodoros Foradis
  2016-10-28 19:12           ` [PATCH v3 " Theodoros Foradis
  1 sibling, 1 reply; 19+ messages in thread
From: Theodoros Foradis @ 2016-10-28 19:12 UTC (permalink / raw)
  To: guix-devel

>> +    (home-page "http://plantuml.com/")
>> +    (synopsis "Draw UML diagrams from simple textual description")
>> +    (description
>> +     "Plantuml is a tool to generate sequence, usecase, class,
>> activity,
>
> Is “usecase” a word or should it be “use case”?
>

It is a word. I reply with the changes you suggested, with no change in the 
build procedure.

Theodoros Foradis (1):
      gnu: Add plantuml.

 gnu/local.mk         |  1 +
 gnu/packages/uml.scm | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 88 insertions(+)

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v3 1/1] gnu: Add plantuml.
  2016-10-28 19:12         ` [PATCH v2 1/1] " Theodoros Foradis
@ 2016-10-28 19:12           ` Theodoros Foradis
  2016-10-29 10:39             ` Theodoros Foradis
  0 siblings, 1 reply; 19+ messages in thread
From: Theodoros Foradis @ 2016-10-28 19:12 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/uml.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk         |  1 +
 gnu/packages/uml.scm | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 88 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..ae1af41
--- /dev/null
+++ b/gnu/packages/uml.scm
@@ -0,0 +1,87 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.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 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 bash)
+  #: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-cp
+           (lambda _
+             (substitute* "build.xml"
+               (("1.6") "1.7")
+               (("<attribute name=\"Class-Path\"") "<!--")
+               (("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->"))
+             #t))
+         (add-before 'install 'gen-install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (mkdir-p "build/jar")
+             (system* "mv" "plantuml.jar" "build/jar")
+             ((@@ (guix build ant-build-system) default-build.xml)
+              "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 \"$@\"\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+)))
-- 
2.10.1

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH v3 1/1] gnu: Add plantuml.
  2016-10-28 19:12           ` [PATCH v3 " Theodoros Foradis
@ 2016-10-29 10:39             ` Theodoros Foradis
  0 siblings, 0 replies; 19+ messages in thread
From: Theodoros Foradis @ 2016-10-29 10:39 UTC (permalink / raw)
  To: Guix-devel


> +  #:use-module (gnu packages bash)

This has to be removed, because bash is no longer an input to the
package, I forgot to.

-- 
Theodoros Foradis

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/1] gnu: Add plantuml.
  2016-10-28 11:19         ` Theodoros Foradis
@ 2016-10-29 21:46           ` Ricardo Wurmus
  2016-11-02  0:07             ` Theodoros Foradis
  2016-11-02 11:03             ` [PATCH v4 " Theodoros Foradis
  0 siblings, 2 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2016-10-29 21:46 UTC (permalink / raw)
  To: Theodoros Foradis; +Cc: guix-devel


Theodoros Foradis <theodoros.for@openmailbox.org> writes:

>>> +(define-public plantuml

[…]

>>> +       (modify-phases %standard-phases
>>> +         (add-before 'build 'delete-extra-from-cp

BTW: the phase name is a little hard to understand.  We don’t mind
slightly longer phase names if that improves readability.

>>> +                     (lambda _
>>> +                       (substitute* "build.xml"
>>> +                         (("1.6") "1.7")
>>> +                         (("<attribute name=\"Class-Path\"") "<!--")
>>> +                         (("j2v8_macosx_x86_64-3.1.7.jar\" />")
>>> "-->"))

Another thing I forgot: is this jar bundled?  If so, it should be
removed in a snippet.

>>> +                       #t))
>>> +         (add-before 'install 'gen-install
>>> +                  (lambda* (#:key outputs #:allow-other-keys)
>>> +                    (mkdir-p "build/jar")
>>> +                    (system* "mv" "plantuml.jar" "build/jar")
>>> +                    ((@@ (guix build ant-build-system) default-build.xml)
>>> +                     "plantuml.jar"
>>> +                     (string-append (assoc-ref outputs "out")
>>> +                                    "/share/java"))))
>>
>> I don’t understand this.  Do you only use “default-build.xml” to add an
>> install target?  In the previous phase you use the included “build.xml”.
>> I find this a little odd and think it would be clearer to just install
>> the files manually instead of using “default-build.xml” here.
>
> The build.xml that our ant-build-system generates, does not generate a
> correct manifest attribute with the Main-Class, so the produced jar file
> cannot be run. Instead of generating the required text manually, I use
> the default build.xml for the build phase.
>
> The default build.xml does not include an install phase, so I generate
> it after compilation, with our ant-build-system.
>
> Feedback is welcome, if there is a better way to do this, before I
> reformat the patch.

(I’m a little confused.  When you write “default build.xml” you mean the
included “build.xml”, not the one generated by the procedure
“default-build.xml”, right?)

Should the “default-build.xml” procedure be changed to (conditionally)
add the “Main-Class” attribute?

In this case I think using “default-build.xml” just for the install
phase is a little over the top.  All it does is copy the jars to the
target directory:

(target (@ (name "install"))
        (copy (@ (todir "${dist.dir}"))
              (fileset (@ (dir "${jar.dir}"))
                       (include (@ (name "**/*.jar"))))))

That’s something you could do with Scheme directly:

    (replace 'install
      (lambda* (#:key outputs #:allow-other-keys)
        (for-each (lambda … install-file …)
                  (find-files … "\\.jar$"))
        #t))

I find that a lot clearer than accessing a private procedure from
“ant-build-system”.

>>
>>> +         (add-after 'install 'make-wrapper
>>> +                    (lambda* (#:key inputs outputs #:allow-other-keys)
>>
>> Please check the indentation for all phases.  That’s too far to the
>> right.
>>
>
> I will fix that. This is the default indentation emacs does with this,
> so I forgot to fix it manually.

Actually, we have a “.dir-locals.el” file that Emacs should respect.
Using the settings in that file will tell Emacs to indent these things
correctly.  (Many of us here are using Emacs and we don’t fix
indentation manually.)

~~ Ricardo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 1/1] gnu: Add plantuml.
  2016-10-29 21:46           ` Ricardo Wurmus
@ 2016-11-02  0:07             ` Theodoros Foradis
  2016-11-02 11:03             ` [PATCH v4 " Theodoros Foradis
  1 sibling, 0 replies; 19+ messages in thread
From: Theodoros Foradis @ 2016-11-02  0:07 UTC (permalink / raw)
  To: Guix-devel


Ricardo Wurmus writes:

> Theodoros Foradis <theodoros.for@openmailbox.org> writes:
>
>>>> +(define-public plantuml
>
> […]
>
>>>> +       (modify-phases %standard-phases
>>>> +         (add-before 'build 'delete-extra-from-cp
>
> BTW: the phase name is a little hard to understand.  We don’t mind
> slightly longer phase names if that improves readability.
>

I'll change that to delete-extra-from-classpath.

>>>> +                     (lambda _
>>>> +                       (substitute* "build.xml"
>>>> +                         (("1.6") "1.7")
>>>> +                         (("<attribute name=\"Class-Path\"") "<!--")
>>>> +                         (("j2v8_macosx_x86_64-3.1.7.jar\" />")
>>>> "-->"))
>
> Another thing I forgot: is this jar bundled?  If so, it should be
> removed in a snippet.
>

The jar is not bundled. With those substitutions, I comment out all the
extra jars (not included anyway) from the classpath. 

>>>> +                       #t))
>>>> +         (add-before 'install 'gen-install
>>>> +                  (lambda* (#:key outputs #:allow-other-keys)
>>>> +                    (mkdir-p "build/jar")
>>>> +                    (system* "mv" "plantuml.jar" "build/jar")
>>>> +                    ((@@ (guix build ant-build-system) default-build.xml)
>>>> +                     "plantuml.jar"
>>>> +                     (string-append (assoc-ref outputs "out")
>>>> +                                    "/share/java"))))
>>>
>>> I don’t understand this.  Do you only use “default-build.xml” to add an
>>> install target?  In the previous phase you use the included “build.xml”.
>>> I find this a little odd and think it would be clearer to just install
>>> the files manually instead of using “default-build.xml” here.
>>

Right, I should install manually instead. Generating the
default-build.xml is unneeded.

>> The build.xml that our ant-build-system generates, does not generate a
>> correct manifest attribute with the Main-Class, so the produced jar file
>> cannot be run. Instead of generating the required text manually, I use
>> the default build.xml for the build phase.
>>
>> The default build.xml does not include an install phase, so I generate
>> it after compilation, with our ant-build-system.
>>
>> Feedback is welcome, if there is a better way to do this, before I
>> reformat the patch.
>
> (I’m a little confused.  When you write “default build.xml” you mean the
> included “build.xml”, not the one generated by the procedure
> “default-build.xml”, right?)

Right.

>
> Should the “default-build.xml” procedure be changed to (conditionally)
> add the “Main-Class” attribute?
>

I am not very knowledgeable about the ant-build-system, but I think it
would be a useful addition, as runnable jars need that "Main-Class"
attibute.

> In this case I think using “default-build.xml” just for the install
> phase is a little over the top.  All it does is copy the jars to the
> target directory:
>
> (target (@ (name "install"))
>         (copy (@ (todir "${dist.dir}"))
>               (fileset (@ (dir "${jar.dir}"))
>                        (include (@ (name "**/*.jar"))))))
>
> That’s something you could do with Scheme directly:
>
>     (replace 'install
>       (lambda* (#:key outputs #:allow-other-keys)
>         (for-each (lambda … install-file …)
>                   (find-files … "\\.jar$"))
>         #t))
>
> I find that a lot clearer than accessing a private procedure from
> “ant-build-system”.
>

Thanks for the hint. I'll skip the "default-build.xml" and do it with
Scheme directly.

>>>
>>>> +         (add-after 'install 'make-wrapper
>>>> +                    (lambda* (#:key inputs outputs #:allow-other-keys)
>>>
>>> Please check the indentation for all phases.  That’s too far to the
>>> right.
>>>
>>
>> I will fix that. This is the default indentation emacs does with this,
>> so I forgot to fix it manually.
>
> Actually, we have a “.dir-locals.el” file that Emacs should respect.
> Using the settings in that file will tell Emacs to indent these things
> correctly.  (Many of us here are using Emacs and we don’t fix
> indentation manually.)
>
> ~~ Ricardo

Thanks for letting me know. I thought I had been using that
".dir-locals.el", and that this indentation wasn't included, but I should
have made some mistake.

Regards,
-- 
Theodoros Foradis

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v4 1/1] gnu: Add plantuml.
  2016-10-29 21:46           ` Ricardo Wurmus
  2016-11-02  0:07             ` Theodoros Foradis
@ 2016-11-02 11:03             ` Theodoros Foradis
  2016-11-02 13:58               ` Roel Janssen
  1 sibling, 1 reply; 19+ messages in thread
From: Theodoros Foradis @ 2016-11-02 11:03 UTC (permalink / raw)
  To: guix-devel

* 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 <theodoros.for@openmailbox.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 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 \"$@\"\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+)))
-- 
2.10.1

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH v4 1/1] gnu: Add plantuml.
  2016-11-02 11:03             ` [PATCH v4 " Theodoros Foradis
@ 2016-11-02 13:58               ` Roel Janssen
  2016-11-03 14:29                 ` Theodoros Foradis
  0 siblings, 1 reply; 19+ messages in thread
From: Roel Janssen @ 2016-11-02 13:58 UTC (permalink / raw)
  To: Theodoros Foradis; +Cc: guix-devel


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 <theodoros.for@openmailbox.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 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 \"$@\"\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

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v4 1/1] gnu: Add plantuml.
  2016-11-02 13:58               ` Roel Janssen
@ 2016-11-03 14:29                 ` Theodoros Foradis
  2016-11-04 14:46                   ` Roel Janssen
  0 siblings, 1 reply; 19+ messages in thread
From: Theodoros Foradis @ 2016-11-03 14:29 UTC (permalink / raw)
  To: Guix-devel


Roel Janssen writes:

> 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)))))
>

Nice catch! Thanks for testing that.

> Could you add this snippet?
>
> Other than this, it works fine for me.
>
> Kind regards,
> Roel Janssen

Let me know if I need to post an updated patch.

-- 
Theodoros Foradis

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v4 1/1] gnu: Add plantuml.
  2016-11-03 14:29                 ` Theodoros Foradis
@ 2016-11-04 14:46                   ` Roel Janssen
  2016-11-07 13:21                     ` [PATCH v5 0/1] " Theodoros Foradis
  0 siblings, 1 reply; 19+ messages in thread
From: Roel Janssen @ 2016-11-04 14:46 UTC (permalink / raw)
  To: Theodoros Foradis; +Cc: Guix-devel


Theodoros Foradis writes:

> Roel Janssen writes:
>
>> 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)))))
>>
>
> Nice catch! Thanks for testing that.
>
>> Could you add this snippet?
>>
>> Other than this, it works fine for me.
>>
>> Kind regards,
>> Roel Janssen
>
> Let me know if I need to post an updated patch.

Please do.  Have all comments been incorporated into this version of the
patch?  If so, I guess we can push the version that includes my snippet,
unless anyone still has any comments.

Thanks!

Kind regards,
Roel Janssen

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v5 0/1] gnu: Add plantuml.
  2016-11-04 14:46                   ` Roel Janssen
@ 2016-11-07 13:21                     ` Theodoros Foradis
  2016-11-07 13:21                       ` [PATCH v5 1/1] " Theodoros Foradis
  2016-11-08 14:03                       ` [PATCH v5 0/1] " Roel Janssen
  0 siblings, 2 replies; 19+ messages in thread
From: Theodoros Foradis @ 2016-11-07 13:21 UTC (permalink / raw)
  To: guix-devel

Roel Janssen writes:

> Theodoros Foradis writes:
>
>> Roel Janssen writes:
>>
>>> 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)))))
>>>
>>
>> Nice catch! Thanks for testing that.
>>
>>> Could you add this snippet?
>>>
>>> Other than this, it works fine for me.
>>>
>>> Kind regards,
>>> Roel Janssen
>>
>> Let me know if I need to post an updated patch.
>
> Please do.  Have all comments been incorporated into this version of the
> patch?  If so, I guess we can push the version that includes my snippet,
> unless anyone still has any comments.
>

I have done all the changes suggested in the comments. I guess the
package is ready, if there are not any more. I have added your snippet
in this revised patch and lint finds no errors.

> Thanks!
>
> Kind regards,
> Roel Janssen

Regards,
-- 
Theodoros Foradis

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v5 1/1] gnu: Add plantuml.
  2016-11-07 13:21                     ` [PATCH v5 0/1] " Theodoros Foradis
@ 2016-11-07 13:21                       ` Theodoros Foradis
  2016-11-08 14:03                       ` [PATCH v5 0/1] " Roel Janssen
  1 sibling, 0 replies; 19+ messages in thread
From: Theodoros Foradis @ 2016-11-07 13:21 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/uml.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk         |  1 +
 gnu/packages/uml.scm | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 92 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..8f6e1d8
--- /dev/null
+++ b/gnu/packages/uml.scm
@@ -0,0 +1,91 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.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 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))
+         (add-after 'delete-extra-from-classpath '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)))
+             #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 \"$@\"\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+)))
-- 
2.10.1

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH v5 0/1] gnu: Add plantuml.
  2016-11-07 13:21                     ` [PATCH v5 0/1] " Theodoros Foradis
  2016-11-07 13:21                       ` [PATCH v5 1/1] " Theodoros Foradis
@ 2016-11-08 14:03                       ` Roel Janssen
  1 sibling, 0 replies; 19+ messages in thread
From: Roel Janssen @ 2016-11-08 14:03 UTC (permalink / raw)
  To: Theodoros Foradis; +Cc: guix-devel


Theodoros Foradis writes:

> Roel Janssen writes:
>
>> Theodoros Foradis writes:
>>
>>> Roel Janssen writes:
>>>
>>> [...]
>>>
>>> Let me know if I need to post an updated patch.
>>
>> Please do.  Have all comments been incorporated into this version of the
>> patch?  If so, I guess we can push the version that includes my snippet,
>> unless anyone still has any comments.
>>
>
> I have done all the changes suggested in the comments. I guess the
> package is ready, if there are not any more. I have added your snippet
> in this revised patch and lint finds no errors.

Thanks!  Pushed at 842a1400a.

Kind regards,
Roel Janssen

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2016-11-08 14:01 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-24 13:12 [PATCH] gnu: Add plantuml Theodoros Foradis
2016-10-27 10:13 ` Efraim Flashner
2016-10-27 11:18   ` [PATCH v2 0/1] " Theodoros Foradis
2016-10-27 11:18     ` [PATCH v2 1/1] " Theodoros Foradis
2016-10-27 17:29       ` Ricardo Wurmus
2016-10-28 11:19         ` Theodoros Foradis
2016-10-29 21:46           ` Ricardo Wurmus
2016-11-02  0:07             ` Theodoros Foradis
2016-11-02 11:03             ` [PATCH v4 " Theodoros Foradis
2016-11-02 13:58               ` Roel Janssen
2016-11-03 14:29                 ` Theodoros Foradis
2016-11-04 14:46                   ` Roel Janssen
2016-11-07 13:21                     ` [PATCH v5 0/1] " Theodoros Foradis
2016-11-07 13:21                       ` [PATCH v5 1/1] " Theodoros Foradis
2016-11-08 14:03                       ` [PATCH v5 0/1] " Roel Janssen
2016-10-28 19:12         ` [PATCH v2 1/1] " Theodoros Foradis
2016-10-28 19:12           ` [PATCH v3 " Theodoros Foradis
2016-10-29 10:39             ` Theodoros Foradis
2016-10-27 10:21 ` [PATCH] " Marius Bakke

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).