* [bug#60976] [PATCH v3 2/4] gnu: Add java-libbatik
[not found] <1351eea169a28d30040826b14079fb49de3c98b8.1677369969.git.frank.pursel@gmail.com>
@ 2023-01-26 16:53 ` Frank Pursel
2023-02-26 7:59 ` Julien Lepiller
2023-01-26 17:01 ` [bug#60976] [PATCH v3 3/4] gnu: Add ditaa Frank Pursel
2023-02-23 21:00 ` [bug#60976] [PATCH v3 4/4] java-jericho-html: Using bzr-fetch and complete testing Frank Pursel
2 siblings, 1 reply; 5+ messages in thread
From: Frank Pursel @ 2023-01-26 16:53 UTC (permalink / raw)
To: 60976
---
gnu/packages/batik.scm | 82 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 81 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm
index 7f159010a5..662c4f5cd5 100644
--- a/gnu/packages/batik.scm
+++ b/gnu/packages/batik.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,8 +28,87 @@ (define-module (gnu packages batik)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages java)
+ #:use-module (gnu packages javascript)
#:use-module (gnu packages java-xml)
- #:use-module (gnu packages textutils))
+ #:use-module (gnu packages textutils)
+ #:use-module (gnu packages xml))
+
+(define-public java-libbatik
+ (package
+ (name "batik")
+ (version "1.16+dfsg")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://deb.debian.org/debian/pool/main/b/batik/"
+ name "_"
+ version ".orig.tar.xz"))
+ (sha256 (base32
+ "1xnmnnadp4l74dz55d3ask236lwy0iwg981851d01j2zlrgpw4p9"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Identify and delete bundled jars.
+ (format #t "~%~a~%" "Removing sourced jars")
+ (for-each
+ (lambda (f)
+ (delete-file f)
+ (format #t "Deleted: ~a~%" f))
+ (find-files "." "\\.jar$"))
+ ))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name (string-append ,name ".jar")
+ #:source-dir "sources/src/main/java"
+ #:test-dir "sources/src/test"
+ #:test-exclude (list "**/util/*.java")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after
+ 'unpack 'src-consolidation
+ (lambda _
+ (mkdir-p "sources")
+ (let ((cwd (getcwd))
+ (sub-dirs (list "anim" "awt-util" "bridge"
+ "codec" "constants" "css"
+ "dom" "ext" "extension"
+ "gui-util" "gvt" "i18n"
+ "parser" "script" "slideshow"
+ "svgbrowser" "svg-dom"
+ "svggen" "svgpp"
+ "svgrasterizer" "swing" "test"
+ "test-svg" "transcoder" "ttf2svg"
+ "util" "xml" "test-swing")) )
+ (for-each
+ (lambda (sdir)
+ (copy-recursively
+ (string-append
+ "batik-" sdir) "sources/") )
+ sub-dirs) )
+ ;; Prep testing
+ (copy-recursively
+ "test-resources" "sources")
+ ;; Remove scripting subdirs for jpython, and jacl.
+ (for-each
+ (lambda (rfile)
+ (delete-file rfile)
+ (format #t "Deleted: ~s\n" rfile))
+ (append
+ (find-files
+ "sources/src/main/java/org/apache/batik/script/jpython" )
+ (find-files
+ "sources/src/main/java/org/apache/batik/script/jacl" ) ))
+ #t) ) ) ) )
+ (native-inputs (list rhino java-xmlgraphics-commons libxslt
+ java-jaxen java-junit java-jaxp java-xerces
+ java-jdom quickjs))
+ (home-page "https://xmlgraphics.apache.org/batik")
+ (synopsis "The java based toolkit for Scalable Vector Graphics")
+ (description "Batik is a Java-based toolkit for applications or
+applets that want to use images in the Scalable Vector Graphics (SVG)
+format for various purposes, such as display, generation or manipulation.")
+ (license license:asl2.0) ) )
(define-public java-w3c-smil-3.0
(package
--
2.39.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#60976] [PATCH v3 3/4] gnu: Add ditaa
[not found] <1351eea169a28d30040826b14079fb49de3c98b8.1677369969.git.frank.pursel@gmail.com>
2023-01-26 16:53 ` [bug#60976] [PATCH v3 2/4] gnu: Add java-libbatik Frank Pursel
@ 2023-01-26 17:01 ` Frank Pursel
2023-02-26 8:19 ` Julien Lepiller
2023-02-23 21:00 ` [bug#60976] [PATCH v3 4/4] java-jericho-html: Using bzr-fetch and complete testing Frank Pursel
2 siblings, 1 reply; 5+ messages in thread
From: Frank Pursel @ 2023-01-26 17:01 UTC (permalink / raw)
To: 60976
---
gnu/packages/ditaa.scm | 145 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 145 insertions(+)
create mode 100644 gnu/packages/ditaa.scm
diff --git a/gnu/packages/ditaa.scm b/gnu/packages/ditaa.scm
new file mode 100644
index 0000000000..e1f063e179
--- /dev/null
+++ b/gnu/packages/ditaa.scm
@@ -0,0 +1,145 @@
+;;; GNU Guix --- Functional package management for GNU
+;;;
+;;; 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/>.
+;;;
+;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
+;;;
+
+(define-module (gnu packages ditaa)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages batik)
+ #:use-module (gnu packages java)
+ #:use-module (gnu packages java-xml)
+ #:use-module (gnu packages xml)
+ #:use-module (guix build-system ant)
+ #:use-module (guix build utils)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix modules)
+ )
+
+(define-public ditaa
+ (package
+ (name "ditaa")
+ (version "0.11.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stathissideris/ditaa")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1y3g17wp1wvb05m56pp25avww2njpgh0gk0jsbsf25scj7hyyj26"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (format #t "~%~a~%" "Finding and removing sourced jars.")
+ (for-each
+ (lambda (jarf)
+ (delete-file jarf)
+ (format #t "Deleted: ~a~%" jarf))
+ (find-files "." "\\.jar$"))))))
+ (build-system ant-build-system)
+ (inputs (list bash-minimal))
+ (native-inputs (list java-libbatik java-commons-cli java-w3c-svg
+ java-jericho-html `(,icedtea "jdk") java-junit))
+ (arguments
+ `(#:build-target "release-all"
+ #:phases
+ (modify-phases %standard-phases
+ ;; Ant's buildfile and build tree need to be modified
+ ;; to provide access to the guix builds of the
+ ;; batik and the java-commons-cli
+ ;; jar files. Also some of the source requires java7.
+ (add-before 'build 'build-prep
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((batik-jar (search-input-file inputs
+ "share/java/batik.jar"))
+ (commons-cli-jar (search-input-file inputs
+ "lib/m2/commons-cli/commons-cli/1.4/commons-cli-1.4.jar")))
+ (mkdir-p "lib")
+ (copy-file batik-jar "./lib/batik.jar")
+ (copy-file commons-cli-jar "./lib/commons-cli.jar"))
+ (with-directory-excursion "build"
+ (substitute* "release.xml"
+ (("source=\"1.6\"")
+ "source=\"7\"")
+ (("<file name=\"commons-cli-1.2.jar\"/>")
+ (string-append "<file name=\"commons-cli.jar\"/>"
+ "\n" "<file name=\"batik.jar\"/>"))))
+ #t))
+ (replace 'build
+ (lambda* _
+ (setenv "ANT_OPTS"
+ (string-append "-Dversion.string="
+ ,version))
+ (with-directory-excursion "build"
+ (invoke "ant" "-f" "release.xml" "release-jar")) #t))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (begin
+ (setenv "ANT_OPTS"
+ (string-append "-Dversion.string="
+ ,version))
+ (mkdir-p "tests/testlib")
+ (with-directory-excursion "build"
+ (invoke "ant" "-f" "release.xml"
+ "generate-test-images")
+ (invoke "ant" "test"))) #f)))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (bin (string-append out "/bin"))
+ (bash (search-input-file inputs "bin/bash"))
+ (java (search-input-file inputs "bin/java"))
+ (jre (search-input-directory inputs "jre"))
+ (ditaa (string-append out "/bin/ditaa"))
+ (jar-name (string-append ,name
+ ,version ".jar")))
+ (with-directory-excursion "releases"
+ (install-file jar-name lib))
+ (mkdir-p bin)
+ (with-output-to-file ditaa
+ (lambda _
+ (format #t "#!~a~%JAVA_HOME=~a ~a -jar ~a/~a $@~%"
+ bash jre java lib jar-name)))
+ (chmod ditaa #o755)) #t))
+ (add-after 'install 'install-docs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((doc (string-append (assoc-ref outputs "out")
+ "/share/doc/")))
+ (for-each (lambda (filen)
+ (install-file filen doc))
+ (find-files "." ".*README\\.md"))) #t)))))
+ (home-page "https://github.com/stathissideris/ditaa")
+ (synopsis "Create graphics from ascii art")
+ (description
+ "ditaa is a small command-line utility
+that converts diagrams drawn using ascii art
+('drawings' that contain characters that resemble lines like | / - ),
+into proper bitmap graphics.")
+ (license license:lgpl3)))
+
+
+
+
+
--
2.39.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#60976] [PATCH v3 4/4] java-jericho-html: Using bzr-fetch and complete testing.
[not found] <1351eea169a28d30040826b14079fb49de3c98b8.1677369969.git.frank.pursel@gmail.com>
2023-01-26 16:53 ` [bug#60976] [PATCH v3 2/4] gnu: Add java-libbatik Frank Pursel
2023-01-26 17:01 ` [bug#60976] [PATCH v3 3/4] gnu: Add ditaa Frank Pursel
@ 2023-02-23 21:00 ` Frank Pursel
2 siblings, 0 replies; 5+ messages in thread
From: Frank Pursel @ 2023-02-23 21:00 UTC (permalink / raw)
To: 60976
---
gnu/packages/java-xml.scm | 118 +++++++++++++++-----------------------
1 file changed, 46 insertions(+), 72 deletions(-)
diff --git a/gnu/packages/java-xml.scm b/gnu/packages/java-xml.scm
index 9cf256549b..739b525fa0 100644
--- a/gnu/packages/java-xml.scm
+++ b/gnu/packages/java-xml.scm
@@ -30,6 +30,7 @@ (define-module (gnu packages java-xml)
#:use-module (gnu packages compression)
#:use-module (gnu packages gtk)
#:use-module (gnu packages java)
+ #:use-module (guix bzr-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
@@ -39,82 +40,55 @@ (define-module (gnu packages java-xml)
#:use-module (guix utils))
(define-public java-jericho-html
- (let ((ver "3.4")
- (hash "1i7z3b8yamgkm7p3pv9qzv8l2kw15ccxy1aj9mpbf66kzkkds51i")
- (internal-name "jericho-html"))
- (package
- (name "java-jericho-html")
- (version ver)
- (source (origin
- (method url-fetch/zipbomb)
- (uri (string-append
- "https://sourceforge.net/projects/jerichohtml"
- "/files/jericho-html/3.4/jericho-html-3.4.zip/download"))
- (sha256
- (base32
- hash))
- (modules '((guix build utils)))
- (snippet '(begin
- (format #t "~%~a~%" "Removing sourced jar files.")
- (for-each (lambda (jarf)
- (delete-file jarf)
- (format #t "Deleted: ~a~%" jarf))
- (find-files "." "\\.jar$"))))))
- (build-system ant-build-system)
- (arguments
- `(#:jar-name (string-append ,name ".jar")
- #:source-dir (string-append ,internal-name "-"
- ,ver "/src/")
- #:test-dir (string-append ,internal-name "-"
- ,ver "/test/")
- #:test-exclude (list "**/StAXTest.java"
- "**/NodeIteratorTest.java"
- "**/ScriptTest.java"
- "**/SegmentGetStyleURISegmentsTest.java"
- "**/SegmentTest.java"
- "**/StreamedSourceTest.java"
- "**/HTMLSanitiserTest.java")
- #:phases (modify-phases %standard-phases
- (add-before 'build 'add-ant-env-options
- (lambda* _
- (setenv "ANT_OPTS" "-Dfile.encoding=iso-8859-1") #t))
- (add-after 'build 'check-prep
- (lambda* (#:key source #:allow-other-keys)
- (let* ((cwd (getcwd))
- (jericho-test (string-append cwd "/" ,internal-name
- "-" ,ver "/test"))
- (test (string-append jericho-test "/test"))
- (test-data (string-append jericho-test "/data"))
- (test-src (string-append jericho-test "/src"))
- (test-src-data (string-append test-src "/data")))
- (format #t "~%Check Prep dir: ~s\n" cwd)
- (substitute* "build.xml"
- (("\\$\\{test\\.home\\}/java")
- "${test.home}/src"))
- (mkdir-p (string-append cwd "/build/test-classes"))
- (copy-recursively (string-append cwd
- "/"
- ,internal-name
- "-"
- ,ver
- "/samples/console/classes")
- (string-append cwd
- "/build/test-classes/"))
- (mkdir-p test-src-data)
- (copy-recursively test-data
- test-src-data))
- #t)))))
- (native-inputs (list java-junit java-slf4j-api java-log4j-api
- java-commons-logging-minimal))
- (home-page "http://jericho.htmlparser.net/docs/index.html")
- (description
- "A java library allowing analysis and manipulation of
+ (package
+ (name "java-jericho-html")
+ (version "3.4")
+ (source (origin
+ (method bzr-fetch)
+ (uri
+ (bzr-reference
+ (url
+ "http://jerichohtml.bzr.sourceforge.net/bzr/jerichohtml")
+ (revision (string-append "tag:" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1zsf4i33jn05pma4y1658d6avhw7x4c12ggs96szhc06b7bxs8j0"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ (format #t "~%~a~%" "Removing sourced jar files.")
+ (for-each (lambda (jarf)
+ (delete-file jarf)
+ (format #t "Deleted: ~a~%" jarf))
+ (find-files "." "\\.jar$"))))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name (string-append ,name ".jar")
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'add-ant-env-options
+ (lambda* _
+ (setenv "ANT_OPTS" "-Dfile.encoding=iso-8859-1")
+ (let ((match-str
+ (string-append "jerichohtml-" ,version)))
+ (substitute* "build.xml"
+ ((match-str)
+ "")))
+ #t))
+ (add-after 'build 'check-prep
+ (lambda* (#:key source #:allow-other-keys)
+ (mkdir-p "src/test/java")
+ #t)))))
+ (native-inputs (list java-junit java-slf4j-api java-log4j-api
+ java-commons-logging-minimal))
+ (home-page "http://jericho.htmlparser.net/docs/index.html")
+ (description
+ "A java library allowing analysis and manipulation of
parts of an HTML document, including server-side tags, while
reproducing verbatim any unrecognised or invalid HTML. It also
provides high-level HTML form manipulation functions.
")
- (synopsis "Java HTML Parser library")
- (license (list license:lgpl2.1+ license:asl2.0 license:epl1.0)))))
+ (synopsis "Java HTML Parser library")
+ (license (list license:lgpl2.1+ license:asl2.0 license:epl1.0))))
(define-public java-simple-xml
(package
--
2.39.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [bug#60976] [PATCH v3 2/4] gnu: Add java-libbatik
2023-01-26 16:53 ` [bug#60976] [PATCH v3 2/4] gnu: Add java-libbatik Frank Pursel
@ 2023-02-26 7:59 ` Julien Lepiller
0 siblings, 0 replies; 5+ messages in thread
From: Julien Lepiller @ 2023-02-26 7:59 UTC (permalink / raw)
To: Frank Pursel, 60976
Hi!
Thanks for the patch, some comments below.
Le 26 janvier 2023 17:53:09 GMT+01:00, Frank Pursel <frank.pursel@gmail.com> a écrit :
>---
> gnu/packages/batik.scm | 82 +++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 81 insertions(+), 1 deletion(-)
>
>diff --git a/gnu/packages/batik.scm b/gnu/packages/batik.scm
>index 7f159010a5..662c4f5cd5 100644
>--- a/gnu/packages/batik.scm
>+++ b/gnu/packages/batik.scm
>@@ -1,6 +1,7 @@
> ;;; GNU Guix --- Functional package management for GNU
> ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
>+;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
>@@ -27,8 +28,87 @@ (define-module (gnu packages batik)
> #:use-module (gnu packages)
> #:use-module (gnu packages compression)
> #:use-module (gnu packages java)
>+ #:use-module (gnu packages javascript)
> #:use-module (gnu packages java-xml)
>- #:use-module (gnu packages textutils))
>+ #:use-module (gnu packages textutils)
>+ #:use-module (gnu packages xml))
>+
>+(define-public java-libbatik
>+ (package
>+ (name "batik")
So is this batik or libbatik?
>+ (version "1.16+dfsg")
>+ (source
>+ (origin
>+ (method url-fetch)
>+ (uri (string-append
>+ "https://deb.debian.org/debian/pool/main/b/batik/"
>+ name "_"
>+ version ".orig.tar.xz"))
I'm wondering why you need to fetch a Debian archive instead of upstream sources? Is there no upstream?
>+ (sha256 (base32
>+ "1xnmnnadp4l74dz55d3ask236lwy0iwg981851d01j2zlrgpw4p9"))
>+ (modules '((guix build utils)))
>+ (snippet
>+ '(begin
>+ ;; Identify and delete bundled jars.
>+ (format #t "~%~a~%" "Removing sourced jars")
>+ (for-each
>+ (lambda (f)
>+ (delete-file f)
>+ (format #t "Deleted: ~a~%" f))
>+ (find-files "." "\\.jar$"))
>+ ))))
These should be on the previous line.
>+ (build-system ant-build-system)
>+ (arguments
>+ `(#:jar-name (string-append ,name ".jar")
Usually, you'd just say #:jar-name "batik.jar"
>+ #:source-dir "sources/src/main/java"
>+ #:test-dir "sources/src/test"
>+ #:test-exclude (list "**/util/*.java")
That sounds like a lot of tests to exclude. Is there a reason?
>+ #:phases
>+ (modify-phases %standard-phases
>+ (add-after
>+ 'unpack 'src-consolidation
>+ (lambda _
>+ (mkdir-p "sources")
>+ (let ((cwd (getcwd))
>+ (sub-dirs (list "anim" "awt-util" "bridge"
>+ "codec" "constants" "css"
>+ "dom" "ext" "extension"
>+ "gui-util" "gvt" "i18n"
>+ "parser" "script" "slideshow"
>+ "svgbrowser" "svg-dom"
>+ "svggen" "svgpp"
>+ "svgrasterizer" "swing" "test"
>+ "test-svg" "transcoder" "ttf2svg"
>+ "util" "xml" "test-swing")) )
>+ (for-each
>+ (lambda (sdir)
>+ (copy-recursively
>+ (string-append
>+ "batik-" sdir) "sources/") )
>+ sub-dirs) )
>+ ;; Prep testing
>+ (copy-recursively
>+ "test-resources" "sources")
>+ ;; Remove scripting subdirs for jpython, and jacl.
>+ (for-each
>+ (lambda (rfile)
>+ (delete-file rfile)
>+ (format #t "Deleted: ~s\n" rfile))
>+ (append
>+ (find-files
>+ "sources/src/main/java/org/apache/batik/script/jpython" )
>+ (find-files
>+ "sources/src/main/java/org/apache/batik/script/jacl" ) ))
Maybe use delete-recursively instead?
>+ #t) ) ) ) )
No need to end a phase with #t anymore.
>+ (native-inputs (list rhino java-xmlgraphics-commons libxslt
>+ java-jaxen java-junit java-jaxp java-xerces
>+ java-jdom quickjs))
Please have one input per line, and maybe order alphabetically.
>+ (home-page "https://xmlgraphics.apache.org/batik")
>+ (synopsis "The java based toolkit for Scalable Vector Graphics")
Synopsis shouldn't start with "The", you could simply remove that word and start with "Java-based".
>+ (description "Batik is a Java-based toolkit for applications or
>+applets that want to use images in the Scalable Vector Graphics (SVG)
>+format for various purposes, such as display, generation or manipulation.")
>+ (license license:asl2.0) ) )
Great, thanks!
>
> (define-public java-w3c-smil-3.0
> (package
^ permalink raw reply [flat|nested] 5+ messages in thread
* [bug#60976] [PATCH v3 3/4] gnu: Add ditaa
2023-01-26 17:01 ` [bug#60976] [PATCH v3 3/4] gnu: Add ditaa Frank Pursel
@ 2023-02-26 8:19 ` Julien Lepiller
0 siblings, 0 replies; 5+ messages in thread
From: Julien Lepiller @ 2023-02-26 8:19 UTC (permalink / raw)
To: Frank Pursel, 60976
Hi,
Thanks again for the patch series. Comments below. Could you adress these and the others, and send a v2 for this patch series?
I think "guix lint" would have caught most of these ;)
Well, first I'm not sure this requires a new file. Maybe java-graphics.scm would be a better place? If you add a new file anyway, you need to add it to the list in gnu/local.mk too and add it to the commit log.
Le 26 janvier 2023 18:01:17 GMT+01:00, Frank Pursel <frank.pursel@gmail.com> a écrit :
>---
> gnu/packages/ditaa.scm | 145 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 145 insertions(+)
> create mode 100644 gnu/packages/ditaa.scm
>
>diff --git a/gnu/packages/ditaa.scm b/gnu/packages/ditaa.scm
>new file mode 100644
>index 0000000000..e1f063e179
>--- /dev/null
>+++ b/gnu/packages/ditaa.scm
>@@ -0,0 +1,145 @@
>+;;; GNU Guix --- Functional package management for GNU
>+;;;
>+;;; 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/>.
>+;;;
>+;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com>
>+;;;
>+
>+(define-module (gnu packages ditaa)
>+ #:use-module (gnu packages)
>+ #:use-module (gnu packages bash)
>+ #:use-module (gnu packages batik)
>+ #:use-module (gnu packages java)
>+ #:use-module (gnu packages java-xml)
>+ #:use-module (gnu packages xml)
>+ #:use-module (guix build-system ant)
>+ #:use-module (guix build utils)
>+ #:use-module (guix download)
>+ #:use-module (guix git-download)
>+ #:use-module ((guix licenses) #:prefix license:)
>+ #:use-module (guix packages)
>+ #:use-module (guix modules)
>+ )
This parenthesis feels lonely :)
>+
>+(define-public ditaa
>+ (package
>+ (name "ditaa")
>+ (version "0.11.0")
>+ (source (origin
>+ (method git-fetch)
>+ (uri (git-reference
>+ (url "https://github.com/stathissideris/ditaa")
>+ (commit (string-append "v" version))))
>+ (file-name (git-file-name name version))
>+ (sha256
>+ (base32
>+ "1y3g17wp1wvb05m56pp25avww2njpgh0gk0jsbsf25scj7hyyj26"))
>+ (modules '((guix build utils)))
>+ (snippet
>+ '(begin
>+ (format #t "~%~a~%" "Finding and removing sourced jars.")
Nitpicking, but "embedded" might be a better term, wdyt?
>+ (for-each
>+ (lambda (jarf)
>+ (delete-file jarf)
>+ (format #t "Deleted: ~a~%" jarf))
>+ (find-files "." "\\.jar$"))))))
>+ (build-system ant-build-system)
>+ (inputs (list bash-minimal))
>+ (native-inputs (list java-libbatik java-commons-cli java-w3c-svg
>+ java-jericho-html `(,icedtea "jdk") java-junit))
You shouldn't need icedtea in native-inputs, it's already added by the ant-build-system. Maybe you need the default output instead? To get a "java" binary from a small package instead of depending on the whole jdk at runtime?
>+ (arguments
>+ `(#:build-target "release-all"
>+ #:phases
>+ (modify-phases %standard-phases
>+ ;; Ant's buildfile and build tree need to be modified
>+ ;; to provide access to the guix builds of the
>+ ;; batik and the java-commons-cli
>+ ;; jar files. Also some of the source requires java7.
>+ (add-before 'build 'build-prep
>+ (lambda* (#:key inputs outputs #:allow-other-keys)
>+ (let* ((batik-jar (search-input-file inputs
>+ "share/java/batik.jar"))
>+ (commons-cli-jar (search-input-file inputs
>+ "lib/m2/commons-cli/commons-cli/1.4/commons-cli-1.4.jar")))
>+ (mkdir-p "lib")
>+ (copy-file batik-jar "./lib/batik.jar")
>+ (copy-file commons-cli-jar "./lib/commons-cli.jar"))
>+ (with-directory-excursion "build"
>+ (substitute* "release.xml"
>+ (("source=\"1.6\"")
>+ "source=\"7\"")
>+ (("<file name=\"commons-cli-1.2.jar\"/>")
>+ (string-append "<file name=\"commons-cli.jar\"/>"
>+ "\n" "<file name=\"batik.jar\"/>"))))
>+ #t))
Again, no need to end with #t.
>+ (replace 'build
>+ (lambda* _
>+ (setenv "ANT_OPTS"
>+ (string-append "-Dversion.string="
>+ ,version))
>+ (with-directory-excursion "build"
>+ (invoke "ant" "-f" "release.xml" "release-jar")) #t))
Same here.
>+ (replace 'check
>+ (lambda* (#:key tests? #:allow-other-keys)
>+ (if tests?
>+ (begin
>+ (setenv "ANT_OPTS"
>+ (string-append "-Dversion.string="
>+ ,version))
>+ (mkdir-p "tests/testlib")
>+ (with-directory-excursion "build"
>+ (invoke "ant" "-f" "release.xml"
>+ "generate-test-images")
>+ (invoke "ant" "test"))) #f)))
And here.
>+ (replace 'install
>+ (lambda* (#:key inputs outputs #:allow-other-keys)
>+ (let* ((out (assoc-ref outputs "out"))
>+ (lib (string-append out "/lib"))
>+ (bin (string-append out "/bin"))
>+ (bash (search-input-file inputs "bin/bash"))
>+ (java (search-input-file inputs "bin/java"))
>+ (jre (search-input-directory inputs "jre"))
>+ (ditaa (string-append out "/bin/ditaa"))
>+ (jar-name (string-append ,name
>+ ,version ".jar")))
>+ (with-directory-excursion "releases"
>+ (install-file jar-name lib))
>+ (mkdir-p bin)
>+ (with-output-to-file ditaa
>+ (lambda _
>+ (format #t "#!~a~%JAVA_HOME=~a ~a -jar ~a/~a $@~%"
>+ bash jre java lib jar-name)))
>+ (chmod ditaa #o755)) #t))
>+ (add-after 'install 'install-docs
>+ (lambda* (#:key outputs #:allow-other-keys)
>+ (let ((doc (string-append (assoc-ref outputs "out")
>+ "/share/doc/")))
>+ (for-each (lambda (filen)
>+ (install-file filen doc))
>+ (find-files "." ".*README\\.md"))) #t)))))
No need for #t.
>+ (home-page "https://github.com/stathissideris/ditaa")
>+ (synopsis "Create graphics from ascii art")
>+ (description
>+ "ditaa is a small command-line utility
>+that converts diagrams drawn using ascii art
>+('drawings' that contain characters that resemble lines like | / - ),
>+into proper bitmap graphics.")
Maybe @samp{|}, @samp{/}, …
>+ (license license:lgpl3)))
>+
>+
>+
>+
>+
And remove these additional empty lines.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-02-26 8:20 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1351eea169a28d30040826b14079fb49de3c98b8.1677369969.git.frank.pursel@gmail.com>
2023-01-26 16:53 ` [bug#60976] [PATCH v3 2/4] gnu: Add java-libbatik Frank Pursel
2023-02-26 7:59 ` Julien Lepiller
2023-01-26 17:01 ` [bug#60976] [PATCH v3 3/4] gnu: Add ditaa Frank Pursel
2023-02-26 8:19 ` Julien Lepiller
2023-02-23 21:00 ` [bug#60976] [PATCH v3 4/4] java-jericho-html: Using bzr-fetch and complete testing Frank Pursel
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).