From patchwork Fri Jan 6 18:46:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Frank Pursel X-Patchwork-Id: 46312 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id CB6EB27BBEB; Fri, 20 Jan 2023 23:29:48 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,URIBL_BLOCKED,URIBL_SBL_A autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 3AAAA27BBE9 for ; Fri, 20 Jan 2023 23:29:46 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pJ0oj-0006VH-0J; Fri, 20 Jan 2023 18:29:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pJ0og-0006Uo-RZ for guix-patches@gnu.org; Fri, 20 Jan 2023 18:29:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pJ0og-0005EG-JI for guix-patches@gnu.org; Fri, 20 Jan 2023 18:29:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pJ0og-00052i-74 for guix-patches@gnu.org; Fri, 20 Jan 2023 18:29:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#60976] [PATCH] gnu: Add ditaa. Resent-From: Frank Pursel Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 20 Jan 2023 23:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 60976 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 60976@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.167425734119375 (code B ref -1); Fri, 20 Jan 2023 23:29:02 +0000 Received: (at submit) by debbugs.gnu.org; 20 Jan 2023 23:29:01 +0000 Received: from localhost ([127.0.0.1]:47465 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pJ0oe-00052Q-3q for submit@debbugs.gnu.org; Fri, 20 Jan 2023 18:29:00 -0500 Received: from lists.gnu.org ([209.51.188.17]:50640) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pJ0ob-00052I-Vv for submit@debbugs.gnu.org; Fri, 20 Jan 2023 18:28:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pJ0ob-0006UZ-MV for guix-patches@gnu.org; Fri, 20 Jan 2023 18:28:57 -0500 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pJ0oZ-0005D9-A5 for guix-patches@gnu.org; Fri, 20 Jan 2023 18:28:57 -0500 Received: by mail-pl1-x635.google.com with SMTP id p24so6613253plw.11 for ; Fri, 20 Jan 2023 15:28:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:date:subject:to:from :message-id:from:to:cc:subject:date:message-id:reply-to; bh=cicRDO0xa2OevE2mHwWp00mRCr/0h5hOzYdh1kytusw=; b=j55i1tQfQTOKTsQp+mU2XINo/v481M9n7LhGdnYiJ4aHBa0Mh3szEN3uONWNUr4JaD rq95s5yb4vVd3+8eqXk3/s4rzSDF/KAQejLiUbWVZwF2mOMWKbGOvutHzRTlTDnxD+JH BzfLY2c3qWOqZ1at6yGyD+op+oHU5H7wt64stippv9zyrGkgIHnKrne9Je6LQeN8gB4l sMWWKesQE44i/WRSaagb1Tc8FegGuOluCjTdZgd8HRtWV4zrvL812afxt/UZhRjmRRnn W/5EaUSwdwxqQot17hS1I4ztyaZFb7sS/reTJPKQTG1VInGvRUasfBtpUehA2y147k7W nKwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:date:subject:to:from :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cicRDO0xa2OevE2mHwWp00mRCr/0h5hOzYdh1kytusw=; b=Eo9XuwFHfZSjbA8gagPB9jCjVOS9YGUDvEodWp8rFS7oyJnADBuvr6UXXVjJHDE4Uj jUQkebOyuS/G7hS/kTmhaEIh3h2TgQBuxO7QfGnxU/x+1+94vnMJcuEhhaE/x35N3CGE V85ERGz4L3j/iooNupyg+bUL8lN53Y5wM0peIn4gxnMaBVg6DKgaVklnRpHSATIF5GfI 8i21T1MYMaLAQiWpKCYyVFn2fCD4cUazZuxmTTCMRtTIEXwUHkgWT4OoL5exRm2E+cSS 5jmXCt46MxsxskOIldDT6JyyBnNCLbJjq36kwMsh+4HjAc1b/+MLJ8qH58yITNp0v0/t 2cQw== X-Gm-Message-State: AFqh2kr/HWjeSweV9qYY138KLhfudMA5MDxY1Ibiq/hPyc1/EF/NeQL/ jMFRD40cgkS76laAetJ6iNysDA9X1qE= X-Google-Smtp-Source: AMrXdXspGSmg4BB7WhzITOG/3vwKdryOAJLD36y0dzKf8ytV36y4MS0WWZ/Qh0t8oFo9yVis8sUsLg== X-Received: by 2002:a17:902:ccc9:b0:194:749a:1e78 with SMTP id z9-20020a170902ccc900b00194749a1e78mr18390125ple.40.1674257332362; Fri, 20 Jan 2023 15:28:52 -0800 (PST) Received: from Ginko ([66.170.190.211]) by smtp.gmail.com with ESMTPSA id c22-20020a6566d6000000b0045dc85c4a5fsm19342550pgw.44.2023.01.20.15.28.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Jan 2023 15:28:51 -0800 (PST) Message-ID: <63cb23b3.650a0220.26d15.f66d@mx.google.com> X-Google-Original-Message-ID: From fe6fb328ce756aed0ac0a123483192f8af1ebc65 Mon Sep 17 00:00:00 2001 From: Frank Pursel Date: Fri, 6 Jan 2023 10:46:18 -0800 MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=frank.pursel@gmail.com; helo=mail-pl1-x635.google.com X-Spam_score_int: 14 X-Spam_score: 1.4 X-Spam_bar: + X-Spam_report: (1.4 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_96_XX=3.405, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_SBL_A=0.1 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/ditaa.scm: New file. --- With Guix as with everything in life: If at first you don't succeed . . . This patch addresses the issues I discovered some time after posting 60612 which was intended to address the issues with the still older 53908! All of which required building a few odd dependencies supporting the goal of adding ditaa to guix's repertoire. Like the earlier patches to add ditaa I'm again hopeful about this one and look forward to any feedback. Sincerely, Frank Pursel gnu/packages/ditaa.scm | 296 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 296 insertions(+) create mode 100644 gnu/packages/ditaa.scm base-commit: 4e9cb45da0cc41cf85b720640a8ba9bc88c28d46 diff --git a/gnu/packages/ditaa.scm b/gnu/packages/ditaa.scm new file mode 100644 index 0000000000..c47efa3b3e --- /dev/null +++ b/gnu/packages/ditaa.scm @@ -0,0 +1,296 @@ +;;; 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 . +;;; +;;; Copyright © 2023 Frank Pursel +;;; + +(define-module (gnu packages ditaa) + #:use-module (gnu packages) + #:use-module (gnu packages bash) + #:use-module (gnu packages java) + #:use-module (gnu packages xml) + #:use-module (gnu packages java-xml) + #:use-module (gnu packages javascript) + #:use-module (gnu packages batik) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system ant) + #:use-module (guix modules) + #:use-module (guix build 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 +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))))) + +(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 + `(#:tests? #f + #:jar-name (string-append ,name ".jar") + #:source-dir "sources" + #: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" + "transcoder" "ttf2svg" + "util" "xml")) ) + (for-each + (lambda (sdir) + (copy-recursively + (string-append + "batik-" sdir "/src/main/java/") "sources/") ) + sub-dirs) ) + ;; Remove scripting subdirs for jpython, and jacl. + (for-each + (lambda (rfile) + (delete-file rfile) + (format #t "Deleted: ~s\n" rfile)) + (append + (find-files + "sources/org/apache/batik/script/jpython" ) + (find-files + "sources/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 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\"") + (("") + (string-append "" + "\n" "")))) + #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))) + + + + +