Compare commits
24 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6836bf65e1 | ||
|
|
0f06b20786 | ||
|
|
4eb6af7fde | ||
|
|
0e6f90dc4d | ||
|
|
eeff52e270 | ||
|
|
7d3566a42f | ||
|
|
b6579fd54c | ||
|
|
7ff3d4732d | ||
|
|
0835d6deaf | ||
|
|
522dbdaf71 | ||
|
|
5c3c8a32c4 | ||
|
|
800ab0d9fb | ||
|
|
eec69bcb59 | ||
|
|
0074aad3d9 | ||
|
|
ab42a1ca79 | ||
|
|
42969e9dc3 | ||
|
|
0300776174 | ||
|
|
dda43efda0 | ||
|
|
1859bbfd79 | ||
|
|
38e299980c | ||
|
|
a066daa20e | ||
|
|
49f51f00f9 | ||
|
|
697c419a2f | ||
|
|
b735fd05d8 |
3 changed files with 434 additions and 7 deletions
84
ditaa.spec
84
ditaa.spec
|
|
@ -1,15 +1,20 @@
|
|||
Summary: Diagrams Through ASCII Art
|
||||
Name: ditaa
|
||||
Version: 0.10
|
||||
Release: 8%{?dist}
|
||||
License: GPLv2+
|
||||
Release: 30%{?dist}
|
||||
# Automatically converted from old format: GPLv2+ - review is highly recommended.
|
||||
License: GPL-2.0-or-later
|
||||
URL: http://ditaa.sourceforge.net/
|
||||
Source0: https://github.com/stathissideris/ditaa/archive/v%{version}.tar.gz
|
||||
Source1: ditaa.wrapper
|
||||
Patch0: ditaa-0.9-port-to-batik-1.8.patch
|
||||
# Patch from Debian to build with JDK 10+
|
||||
Patch1: https://sources.debian.org/data/main/d/ditaa/0.10+ds1-1.2/debian/patches/remove-JavadocTaglet.patch
|
||||
Patch2: jdk17.patch
|
||||
BuildArch: noarch
|
||||
BuildRequires: java-devel >= 1:1.6.0
|
||||
BuildRequires: ant
|
||||
ExclusiveArch: %{java_arches} noarch
|
||||
BuildRequires: java-25-devel >= 1:1.6.0
|
||||
BuildRequires: ant-openjdk25
|
||||
BuildRequires: jpackage-utils
|
||||
BuildRequires: batik
|
||||
BuildRequires: jericho-html
|
||||
|
|
@ -20,7 +25,7 @@ Requires: xml-commons-apis
|
|||
Requires: jericho-html
|
||||
Requires: batik
|
||||
Requires: jpackage-utils
|
||||
Requires: java-headless >= 1:1.6.0
|
||||
Requires: java-25-headless >= 1:1.6.0
|
||||
|
||||
%description
|
||||
ditaa is a small command-line utility written in Java, that can
|
||||
|
|
@ -29,8 +34,7 @@ characters that resemble lines like | / - ), into proper bitmap
|
|||
graphics.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%autosetup -p1
|
||||
find -name '*.class' -delete
|
||||
find -name '*.jar' -delete
|
||||
|
||||
|
|
@ -49,6 +53,72 @@ install -D -p -m 0755 %{SOURCE1} %{buildroot}%{_bindir}/%{name}
|
|||
%{_javadir}/%{name}.jar
|
||||
|
||||
%changelog
|
||||
* Mon Jul 28 2025 jiri vanek <jvanek@redhat.com> - 0.10-30
|
||||
- Rebuilt for java-25-openjdk as preffered jdk
|
||||
|
||||
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-29
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-28
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Thu Jul 25 2024 Miroslav Suchý <msuchy@redhat.com> - 0.10-27
|
||||
- convert license to SPDX
|
||||
|
||||
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-26
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Mon Jul 01 2024 Terje Rosten <terje.rosten@ntnu.no> - 0.10-25
|
||||
- Use autosetup macro
|
||||
|
||||
* Tue Feb 27 2024 Jiri Vanek <jvanek@redhat.com> - 0.10-24
|
||||
- Rebuilt for java-21-openjdk as system jdk
|
||||
|
||||
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-23
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-22
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-21
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-20
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-19
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Fri Jul 08 2022 Jiri Vanek <jvanek@redhat.com> - 0.10-18
|
||||
- Rebuilt for Drop i686 JDKs
|
||||
|
||||
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 0.10-17
|
||||
- changed bytecode level to 8
|
||||
|
||||
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 0.10-16
|
||||
- Rebuilt for java-17-openjdk as system jdk
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-15
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Sun Jul 19 2020 Terje Rosten <terje.rosten@ntnu.no> - 0.10-11
|
||||
- Add patch from Debian to build with JDK 10+
|
||||
|
||||
* Fri Jul 10 2020 Jiri Vanek <jvanek@redhat.com> - 0.10-10
|
||||
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
|
||||
|
||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.10-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
|
|
|
|||
12
jdk17.patch
Normal file
12
jdk17.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
--- a/build/release.xml
|
||||
+++ a/build/release.xml
|
||||
@@ -35,7 +35,7 @@
|
||||
</target>
|
||||
|
||||
<target name="compile" depends="prep" description="Compiles ascii2image code">
|
||||
- <javac destdir="${rootDir}/jar-temp" source="1.6" classpathref="build.classpath">
|
||||
+ <javac destdir="${rootDir}/jar-temp" source="8" classpathref="build.classpath">
|
||||
<src path="${rootDir}/src" />
|
||||
<exclude name="org/stathissideris/ascii2image/test/**" />
|
||||
</javac>
|
||||
|
||||
345
remove-JavadocTaglet.patch
Normal file
345
remove-JavadocTaglet.patch
Normal file
|
|
@ -0,0 +1,345 @@
|
|||
From: Markus Koschany <apo@debian.org>
|
||||
Date: Wed, 13 Jun 2018 22:58:25 +0200
|
||||
Subject: remove JavadocTaglet
|
||||
|
||||
Remove JavadocTaglet class because the Taglet class has been removed in
|
||||
Java 10.
|
||||
|
||||
Bug-Debian: https://bugs.debian.org/897494
|
||||
---
|
||||
.../ascii2image/core/JavadocTaglet.java | 326 ---------------------
|
||||
1 file changed, 326 deletions(-)
|
||||
delete mode 100644 src/org/stathissideris/ascii2image/core/JavadocTaglet.java
|
||||
|
||||
diff --git a/src/org/stathissideris/ascii2image/core/JavadocTaglet.java b/src/org/stathissideris/ascii2image/core/JavadocTaglet.java
|
||||
deleted file mode 100644
|
||||
index f1642ef..0000000
|
||||
--- a/src/org/stathissideris/ascii2image/core/JavadocTaglet.java
|
||||
+++ /dev/null
|
||||
@@ -1,326 +0,0 @@
|
||||
-/*
|
||||
- * Text Diagram Taglet
|
||||
- *
|
||||
- * Copyright (C) 2006 Nordic Growth Market NGM AB,
|
||||
- * Mikael Brannstrom.
|
||||
- *
|
||||
- * This program 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 2 of the License, or
|
||||
- * (at your option) any later version.
|
||||
- *
|
||||
- * This program 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 this program; if not, write to the Free Software
|
||||
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
- *
|
||||
- */
|
||||
-package org.stathissideris.ascii2image.core;
|
||||
-
|
||||
-import com.sun.javadoc.ProgramElementDoc;
|
||||
-import com.sun.javadoc.Tag;
|
||||
-import com.sun.tools.doclets.Taglet;
|
||||
-import com.sun.tools.doclets.internal.toolkit.Configuration;
|
||||
-import com.sun.tools.doclets.standard.Standard;
|
||||
-import java.awt.image.RenderedImage;
|
||||
-import java.io.File;
|
||||
-import java.io.IOException;
|
||||
-import java.io.UnsupportedEncodingException;
|
||||
-import java.lang.reflect.Field;
|
||||
-import java.lang.reflect.Method;
|
||||
-import java.util.Map;
|
||||
-import java.util.regex.Pattern;
|
||||
-import javax.imageio.ImageIO;
|
||||
-
|
||||
-import org.stathissideris.ascii2image.text.TextGrid;
|
||||
-import org.stathissideris.ascii2image.graphics.Diagram;
|
||||
-import org.stathissideris.ascii2image.core.ConversionOptions;
|
||||
-import org.stathissideris.ascii2image.graphics.BitmapRenderer;
|
||||
-
|
||||
-/** This class is a custom Javadoc taglet for embedding ditaa diagrams in
|
||||
- * javadoc comments. The tag is an inline which can be used in any javadoc
|
||||
- * comment. The tag can also be used in package documentation and in the
|
||||
- * overview.
|
||||
- * This taglet assumes that the Standard Javadoc Doclet is being used.
|
||||
- * <p>
|
||||
- * The syntax is:<br>
|
||||
- * <code>
|
||||
- * {<b>@textdiagram</b> <i>diagram_name</i><br>
|
||||
- * <i>the ascii art diagram</i><br>
|
||||
- * }
|
||||
- * </code>
|
||||
- * <p>
|
||||
- * The diagram name will be used when generating the image, so that the image
|
||||
- * can be referenced to somewhere else (by using an a-href HTML tag). The
|
||||
- * diagram name can only contain letters, numbers and underscore. The name of
|
||||
- * the generated image will become "<classname>-<diagram name>.png".
|
||||
- * <p>
|
||||
- * The syntax for the ditaa diagram is described at
|
||||
- * <a href="http://ditaa.sourceforge.net/">http://ditaa.sourceforge.net/</a>.
|
||||
- * <p>
|
||||
- * <b>Note:</b> The overview file needs to be named "overview.html" if it lies
|
||||
- * in the source path, otherwise it is sufficient that it ends with ".html".
|
||||
- *
|
||||
- * @author Mikael Brannstrom
|
||||
- */
|
||||
-public class JavadocTaglet implements Taglet {
|
||||
-
|
||||
- private static final String NAME = "textdiagram";
|
||||
- private static final Pattern FIGURE_NAME_PATTERN = Pattern.compile("\\w+");
|
||||
-
|
||||
- private final File[] srcPath;
|
||||
- private final File dstDir;
|
||||
-
|
||||
- private final boolean simpleMode;
|
||||
-
|
||||
- /** Creates a new instance of TextDiagramTaglet */
|
||||
- public JavadocTaglet() {
|
||||
-
|
||||
- String configSourcepath = null;
|
||||
- String configDestDirName = null;
|
||||
- // Try to get configuration
|
||||
- try {
|
||||
- // Do this: Configuration config = Standard.htmlDoclet.configuration();
|
||||
- Field htmlDocletField = Standard.class.getField("htmlDoclet");
|
||||
- Object htmlDoclet = htmlDocletField.get(null); // static field
|
||||
- Method configurationMethod = htmlDoclet.getClass().getMethod("configuration", null);
|
||||
- Object config = configurationMethod.invoke(htmlDoclet, null);
|
||||
- // Do this: configSourcepath = config.sourcepath;
|
||||
- Field sourcepathField = config.getClass().getField("sourcepath");
|
||||
- configSourcepath = (String)sourcepathField.get(config);
|
||||
- // Do this: configDestDirName = config.destDirName;
|
||||
- Field destDirNameField = config.getClass().getField("destDirName");
|
||||
- configDestDirName = (String)destDirNameField.get(config);
|
||||
- } catch(Exception e) {
|
||||
- warning("Could not setup taglet. Falling back to simple mode.\n"+e);
|
||||
- }
|
||||
-
|
||||
- if(configDestDirName == null) {
|
||||
- srcPath = null;
|
||||
- dstDir = null;
|
||||
- simpleMode = true;
|
||||
- } else {
|
||||
- // setup srcPath
|
||||
- String[] srcPathStr = configSourcepath.split("[;:]");
|
||||
- srcPath = new File[srcPathStr.length];
|
||||
- for(int i=0; i<srcPath.length; i++) {
|
||||
- srcPath[i] = new File(srcPathStr[i]).getAbsoluteFile();
|
||||
- try {
|
||||
- srcPath[i] = srcPath[i].getCanonicalFile();
|
||||
- } catch (IOException ex) {
|
||||
- warning("Could not get canonical path of file: "+srcPath[i]);
|
||||
- }
|
||||
- }
|
||||
- // setup dstDir
|
||||
- dstDir = new File(configDestDirName);
|
||||
-
|
||||
- simpleMode = false;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- public boolean inField() {
|
||||
- return false; // inline tag
|
||||
- }
|
||||
-
|
||||
- public boolean inConstructor() {
|
||||
- return false; // inline tag
|
||||
- }
|
||||
-
|
||||
- public boolean inMethod() {
|
||||
- return false; // inline tag
|
||||
- }
|
||||
-
|
||||
- public boolean inOverview() {
|
||||
- return false; // inline tag
|
||||
- }
|
||||
-
|
||||
- public boolean inPackage() {
|
||||
- return false; // inline tag
|
||||
- }
|
||||
-
|
||||
- public boolean inType() {
|
||||
- return false; // inline tag
|
||||
- }
|
||||
-
|
||||
- /** This tag is an inline tag. */
|
||||
- public boolean isInlineTag() {
|
||||
- return true;
|
||||
- }
|
||||
-
|
||||
- public String getName() {
|
||||
- return NAME;
|
||||
- }
|
||||
-
|
||||
- /** Generates the diagram image and returns an img html tag that references
|
||||
- * to the image.
|
||||
- */
|
||||
- public String toString(Tag tag) {
|
||||
- String text = tag.text().trim();
|
||||
- String figureName, figureText;
|
||||
- int i1=text.indexOf(" "), i2=text.indexOf("\n");
|
||||
- if(i1 == -1 && -2 == -1) {
|
||||
- return "<!-- Empty "+getName()+" tag -->";
|
||||
- }
|
||||
-
|
||||
- int i;
|
||||
- if(i1 == -1 || i1 == -1)
|
||||
- i = Math.max(i1, i2);
|
||||
- else
|
||||
- i = Math.min(i1, i2);
|
||||
-
|
||||
- figureName = text.substring(0, i);
|
||||
- figureText = text.substring(i+1);
|
||||
-
|
||||
- if(!FIGURE_NAME_PATTERN.matcher(figureName).matches()) {
|
||||
- error("Illegal "+getName()+" name: \""+figureName+"\"");
|
||||
- }
|
||||
-
|
||||
- // Convert [d] to {d} where d can be 1 character and more
|
||||
- figureText = figureText.replaceAll("\\[(\\w+)\\]", "{$1}");
|
||||
-
|
||||
- if(simpleMode) {
|
||||
- StringBuffer strBuf = new StringBuffer();
|
||||
- strBuf.append("<pre>");
|
||||
- strBuf.append(figureText);
|
||||
- strBuf.append("</pre>");
|
||||
- return strBuf.toString();
|
||||
- } else {
|
||||
- File outputFile = getOutputFile(tag.position().file(), figureName);
|
||||
- generateImage(figureText, outputFile);
|
||||
-
|
||||
- StringBuffer strBuf = new StringBuffer();
|
||||
- strBuf.append("<img src=\"");
|
||||
- strBuf.append(outputFile.getName());
|
||||
- strBuf.append("\" alt=\"");
|
||||
- strBuf.append(figureName);
|
||||
- strBuf.append("\"/>");
|
||||
- return strBuf.toString();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /** Returns null since this is an inline tag.
|
||||
- */
|
||||
- public String toString(Tag[] tag) {
|
||||
- return null; // should return null, this is an inline tag
|
||||
- }
|
||||
-
|
||||
- /** Returns the path of the output file given
|
||||
- * the source file and the diagram name.
|
||||
- * @param srcFile the source file which contains the tag
|
||||
- * @param name the diagram name that will be used for generating the output
|
||||
- * filename.
|
||||
- */
|
||||
- private File getOutputFile(File srcFile, String name) {
|
||||
- String relPath = getRelativePath(srcFile);
|
||||
-
|
||||
- // Special hack for the overview file
|
||||
- if(srcFile.getName().toLowerCase().equals("overview.html") ||
|
||||
- (relPath == null && srcFile.getName().toLowerCase().endsWith(".html"))) {
|
||||
- relPath = "overview";
|
||||
- }
|
||||
-
|
||||
- if(relPath == null) {
|
||||
- error("The file is not relative to the source path: "+srcFile);
|
||||
- }
|
||||
-
|
||||
- // get the filename and dirname
|
||||
- String dirname=null, filename=null;
|
||||
- int i = relPath.lastIndexOf(File.separatorChar);
|
||||
- if(i == -1) {
|
||||
- filename = relPath;
|
||||
- } else if(i == 0) {
|
||||
- filename = relPath.substring(1);
|
||||
- } else {
|
||||
- filename = relPath.substring(i+1);
|
||||
- dirname = relPath.substring(0, i);
|
||||
- }
|
||||
-
|
||||
- // skip file ending in filename
|
||||
- i = filename.lastIndexOf('.');
|
||||
- if(i != -1)
|
||||
- filename = filename.substring(0, i);
|
||||
-
|
||||
- String path;
|
||||
- if(dirname == null) {
|
||||
- path = filename;
|
||||
- } else {
|
||||
- path = dirname+File.separator+filename;
|
||||
- }
|
||||
-
|
||||
- return new File(dstDir, path+"-"+name+".png");
|
||||
- }
|
||||
-
|
||||
- /** Returns the relative path of a (source) file.
|
||||
- * The path is relative to one of the source dirs specified to the
|
||||
- * standard doclet.
|
||||
- * @returns the relative path. If a relative path could not be found
|
||||
- * null is returned.
|
||||
- */
|
||||
- private String getRelativePath(File file) {
|
||||
- file = file.getAbsoluteFile();
|
||||
- try {
|
||||
- file = file.getCanonicalFile();
|
||||
- } catch (IOException ex) {
|
||||
- warning("Could not get canonical path of file: "+file);
|
||||
- }
|
||||
- String filePath = file.getAbsolutePath();
|
||||
- for(int i=0; i<srcPath.length; i++) {
|
||||
- String s = srcPath[i].getAbsolutePath();
|
||||
- if(filePath.startsWith(s)) {
|
||||
- filePath = filePath.substring(s.length());
|
||||
- if(filePath.startsWith(File.separator))
|
||||
- filePath = filePath.substring(1);
|
||||
- return filePath;
|
||||
- }
|
||||
- }
|
||||
- return null;
|
||||
- }
|
||||
-
|
||||
- /** Generates the image from the specified text to the output file.
|
||||
- * @param text the ascii art text.
|
||||
- * @param outputFile the file name of the image that is generated.
|
||||
- */
|
||||
- private void generateImage(String text, File outputFile) {
|
||||
- ConversionOptions options = new ConversionOptions();
|
||||
- TextGrid textGrid = new TextGrid();
|
||||
- try {
|
||||
- if(!textGrid.initialiseWithText(text, null)) {
|
||||
- error("Cannot initialize text grid");
|
||||
- }
|
||||
- } catch (UnsupportedEncodingException e1) {
|
||||
- error("Cannot initialize text grid");
|
||||
- }
|
||||
- Diagram diagram = new Diagram(textGrid, options);
|
||||
- RenderedImage image = new BitmapRenderer().renderToImage(diagram,
|
||||
- options.renderingOptions);
|
||||
-
|
||||
- try {
|
||||
- ImageIO.write(image, "png", outputFile);
|
||||
- } catch (IOException e) {
|
||||
- error("Cannot write to file "+outputFile.getAbsolutePath());
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /** Prints an error message and exits. */
|
||||
- private void error(String msg) {
|
||||
- System.err.println("Error: "+msg);
|
||||
- System.exit(1);
|
||||
- }
|
||||
-
|
||||
- /** Prints a warning message. */
|
||||
- private void warning(String msg) {
|
||||
- System.err.println("Warning: "+msg);
|
||||
- }
|
||||
-
|
||||
- /** Register this Taglet.
|
||||
- * @param tagletMap the map to register this tag to.
|
||||
- */
|
||||
- public static void register(Map tagletMap) {
|
||||
- JavadocTaglet taglet = new JavadocTaglet();
|
||||
- tagletMap.put(taglet.getName(), taglet);
|
||||
- }
|
||||
-}
|
||||
Loading…
Add table
Add a link
Reference in a new issue