diff --git a/ditaa.spec b/ditaa.spec index 0fe7aac..7941aa6 100644 --- a/ditaa.spec +++ b/ditaa.spec @@ -1,20 +1,15 @@ Summary: Diagrams Through ASCII Art Name: ditaa Version: 0.10 -Release: 30%{?dist} -# Automatically converted from old format: GPLv2+ - review is highly recommended. -License: GPL-2.0-or-later +Release: 8.1%{?dist} +License: GPLv2+ 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 -ExclusiveArch: %{java_arches} noarch -BuildRequires: java-25-devel >= 1:1.6.0 -BuildRequires: ant-openjdk25 +BuildRequires: java-devel >= 1:1.6.0 +BuildRequires: ant BuildRequires: jpackage-utils BuildRequires: batik BuildRequires: jericho-html @@ -25,7 +20,7 @@ Requires: xml-commons-apis Requires: jericho-html Requires: batik Requires: jpackage-utils -Requires: java-25-headless >= 1:1.6.0 +Requires: java-headless >= 1:1.6.0 %description ditaa is a small command-line utility written in Java, that can @@ -34,7 +29,8 @@ characters that resemble lines like | / - ), into proper bitmap graphics. %prep -%autosetup -p1 +%setup -q +%patch0 -p1 find -name '*.class' -delete find -name '*.jar' -delete @@ -53,71 +49,8 @@ install -D -p -m 0755 %{SOURCE1} %{buildroot}%{_bindir}/%{name} %{_javadir}/%{name}.jar %changelog -* Mon Jul 28 2025 jiri vanek - 0.10-30 -- Rebuilt for java-25-openjdk as preffered jdk - -* Wed Jul 23 2025 Fedora Release Engineering - 0.10-29 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Thu Jan 16 2025 Fedora Release Engineering - 0.10-28 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Thu Jul 25 2024 Miroslav Suchý - 0.10-27 -- convert license to SPDX - -* Wed Jul 17 2024 Fedora Release Engineering - 0.10-26 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Jul 01 2024 Terje Rosten - 0.10-25 -- Use autosetup macro - -* Tue Feb 27 2024 Jiri Vanek - 0.10-24 -- Rebuilt for java-21-openjdk as system jdk - -* Wed Jan 24 2024 Fedora Release Engineering - 0.10-23 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 0.10-22 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jul 19 2023 Fedora Release Engineering - 0.10-21 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jan 19 2023 Fedora Release Engineering - 0.10-20 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Thu Jul 21 2022 Fedora Release Engineering - 0.10-19 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Fri Jul 08 2022 Jiri Vanek - 0.10-18 -- Rebuilt for Drop i686 JDKs - -* Sat Feb 05 2022 Jiri Vanek - 0.10-17 -- changed bytecode level to 8 - -* Sat Feb 05 2022 Jiri Vanek - 0.10-16 -- Rebuilt for java-17-openjdk as system jdk - -* Thu Jan 20 2022 Fedora Release Engineering - 0.10-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Jul 21 2021 Fedora Release Engineering - 0.10-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jan 26 2021 Fedora Release Engineering - 0.10-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 0.10-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Sun Jul 19 2020 Terje Rosten - 0.10-11 -- Add patch from Debian to build with JDK 10+ - -* Fri Jul 10 2020 Jiri Vanek - 0.10-10 -- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 - -* Tue Jan 28 2020 Fedora Release Engineering - 0.10-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild +* Sat Jul 25 2020 Terje Rosten - 0.10-8.1 +- Rebuild * Wed Jul 24 2019 Fedora Release Engineering - 0.10-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild diff --git a/jdk17.patch b/jdk17.patch deleted file mode 100644 index 82472b6..0000000 --- a/jdk17.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/build/release.xml -+++ a/build/release.xml -@@ -35,7 +35,7 @@ - - - -- -+ - - - - diff --git a/remove-JavadocTaglet.patch b/remove-JavadocTaglet.patch deleted file mode 100644 index 996d809..0000000 --- a/remove-JavadocTaglet.patch +++ /dev/null @@ -1,345 +0,0 @@ -From: Markus Koschany -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. -- *

-- * The syntax is:
-- * -- * {@textdiagram diagram_name
-- * the ascii art diagram
-- * } -- *
-- *

-- * 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". -- *

-- * The syntax for the ditaa diagram is described at -- * http://ditaa.sourceforge.net/. -- *

-- * Note: 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"; -- } -- -- 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("

");
--			strBuf.append(figureText);
--			strBuf.append("
"); -- return strBuf.toString(); -- } else { -- File outputFile = getOutputFile(tag.position().file(), figureName); -- generateImage(figureText, outputFile); -- -- StringBuffer strBuf = new StringBuffer(); -- 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