diff --git a/enable-jdom.patch b/enable-jdom.patch
new file mode 100644
index 0000000..62c94f9
--- /dev/null
+++ b/enable-jdom.patch
@@ -0,0 +1,115 @@
+diff -Nru freemarker-2.3.23/source/src/main/java/freemarker/ext/jdom/NodeListModel.java freemarker-2.3.23/source/src/main/java/freemarker/ext/jdom/NodeListModel.java
+--- freemarker-2.3.23/source/src/main/java/freemarker/ext/jdom/NodeListModel.java 2012-03-01 01:56:25.000000000 +0100
++++ freemarker-2.3.23/source/src/main/java/freemarker/ext/jdom/NodeListModel.java 2012-05-16 13:29:44.097551911 +0200
+@@ -734,7 +734,7 @@
+ else if ("data".equals(localName))
+ attr = new Attribute("data", pi.getData());
+ else
+- attr = new Attribute(localName, pi.getValue(localName));
++ attr = new Attribute(localName, pi.getPseudoAttributeValue(localName));
+ } else if (node instanceof DocType) {
+ DocType doctype = (DocType)node;
+ if ("publicId".equals(localName))
+@@ -844,17 +844,17 @@
+ private static final Element getParent(Object node)
+ {
+ if (node instanceof Element)
+- return((Element)node).getParent();
++ return((Element)node).getParentElement();
+ else if (node instanceof Attribute)
+ return((Attribute)node).getParent();
+ else if (node instanceof Text)
+- return((Text)node).getParent();
++ return((Text)node).getParentElement();
+ else if (node instanceof ProcessingInstruction)
+- return((ProcessingInstruction)node).getParent();
++ return((ProcessingInstruction)node).getParentElement();
+ else if (node instanceof Comment)
+- return((Comment)node).getParent();
++ return((Comment)node).getParentElement();
+ else if (node instanceof EntityRef)
+- return((EntityRef)node).getParent();
++ return((EntityRef)node).getParentElement();
+ else
+ // With 2.1 semantics it makes more sense to just return a null and let the core
+ // throw an InvalidReferenceException and the template writer can use ?exists etcetera. (JR)
+@@ -878,7 +878,7 @@
+ LinkedList list = new LinkedList();
+ do {
+ list.addFirst(parent);
+- parent = parent.getParent();
++ parent = parent.getParentElement();
+ }
+ while (parent != null);
+ return list;
+@@ -894,7 +894,7 @@
+ list.addFirst(node);
+ do {
+ list.addFirst(parent);
+- parent = parent.getParent();
++ parent = parent.getParentElement();
+ }
+ while (parent != null);
+ return list;
+@@ -950,10 +950,10 @@
+ if (node instanceof Element)
+ doc = ((Element)node).getDocument();
+ else if (node instanceof Attribute) {
+- Element parent = ((Attribute)node).getParent();
++ Element parent = ((Text)node).getParentElement();
+ doc = parent == null ? null : parent.getDocument();
+ } else if (node instanceof Text) {
+- Element parent = ((Text)node).getParent();
++ Element parent = ((Text)node).getParentElement();
+ doc = parent == null ? null : parent.getDocument();
+ } else if (node instanceof Document)
+ doc = (Document)node;
+diff -Nru freemarker-2.3.23/source/src/main/java/freemarker/ext/xml/_JdomNavigator.java freemarker-2.3.23/source/src/main/java/freemarker/ext/xml/_JdomNavigator.java
+--- freemarker-2.3.23/source/src/main/java/freemarker/ext/xml/_JdomNavigator.java 2012-03-01 01:56:25.000000000 +0100
++++ freemarker-2.3.23/source/src/main/java/freemarker/ext/xml/_JdomNavigator.java 2012-05-16 13:32:06.328559677 +0200
+@@ -169,7 +169,7 @@
+ result.add(new Attribute("data", pi.getData()));
+ }
+ else {
+- result.add(new Attribute(localName, pi.getValue(localName)));
++ result.add(new Attribute(localName, pi.getPseudoAttributeValue(localName)));
+ }
+ } else if (node instanceof DocType) {
+ DocType doctype = (DocType)node;
+@@ -206,22 +206,22 @@
+
+ Object getParent(Object node) {
+ if (node instanceof Element) {
+- return((Element)node).getParent();
++ return((Element)node).getParentElement();
+ }
+ if (node instanceof Attribute) {
+ return((Attribute)node).getParent();
+ }
+ if (node instanceof Text) {
+- return((Text)node).getParent();
++ return((Text)node).getParentElement();
+ }
+ if (node instanceof ProcessingInstruction) {
+- return((ProcessingInstruction)node).getParent();
++ return((ProcessingInstruction)node).getParentElement();
+ }
+ if (node instanceof Comment) {
+- return((Comment)node).getParent();
++ return((Comment)node).getParentElement();
+ }
+ if (node instanceof EntityRef) {
+- return((EntityRef)node).getParent();
++ return((EntityRef)node).getParentElement();
+ }
+ return null;
+ }
+@@ -235,7 +235,7 @@
+ return parent == null ? null : parent.getDocument();
+ }
+ else if (node instanceof Text) {
+- Element parent = ((Text)node).getParent();
++ Element parent = ((Text)node).getParentElement();
+ return parent == null ? null : parent.getDocument();
+ }
+ else if (node instanceof Document)
diff --git a/fix-javadoc-encoding.patch b/fix-javadoc-encoding.patch
new file mode 100644
index 0000000..aca44d7
--- /dev/null
+++ b/fix-javadoc-encoding.patch
@@ -0,0 +1,12 @@
+diff -ruN freemarker-2.3.23.orig/source/src/main/java/freemarker/template/LocalizedString.java freemarker-2.3.23/source/src/main/java/freemarker/template/LocalizedString.java
+--- freemarker-2.3.23.orig/source/src/main/java/freemarker/template/LocalizedString.java 2015-07-05 10:47:06.000000000 -0400
++++ freemarker-2.3.23/source/src/main/java/freemarker/template/LocalizedString.java 2016-01-05 13:06:17.511844735 -0500
+@@ -30,7 +30,7 @@
+ * if "fr".equals(lang)
+ * return "oui";
+ * else if "de".equals(lang)
+- * return "sí";
++ * return "s\u00ED";
+ * else
+ * return "yes";
+ * }
diff --git a/freemarker-2.3.13~PyObject.__class__.patch b/freemarker-2.3.13~PyObject.__class__.patch
deleted file mode 100644
index b306227..0000000
--- a/freemarker-2.3.13~PyObject.__class__.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -Nur freemarker-2.3.13/src/freemarker/ext/jython/JythonHashModel.java freemarker-2.3.13.new/src/freemarker/ext/jython/JythonHashModel.java
---- freemarker-2.3.13/src/freemarker/ext/jython/JythonHashModel.java 2008-05-05 22:56:38.000000000 +0400
-+++ freemarker-2.3.13.new/src/freemarker/ext/jython/JythonHashModel.java 2008-07-17 03:19:42.000000000 +0400
-@@ -137,7 +137,8 @@
- {
- throw new TemplateModelException(e);
- }
-- throw new TemplateModelException("'?keys' is not supported as there is no 'keys' nor 'keySet' attribute on an instance of " + object.__class__.__name__);
-+// throw new TemplateModelException("'?keys' is not supported as there is no 'keys' nor 'keySet' attribute on an instance of " + object.__class__.__name__);
-+ throw new TemplateModelException("'?keys' is not supported as there is no 'keys' nor 'keySet' attribute on an instance of " + object);
- }
-
- /**
-@@ -157,6 +158,7 @@
- {
- throw new TemplateModelException(e);
- }
-- throw new TemplateModelException("'?values' is not supported as there is no 'values' attribute on an instance of " + object.__class__.__name__);
-+// throw new TemplateModelException("'?values' is not supported as there is no 'values' attribute on an instance of " + object.__class__.__name__);
-+ throw new TemplateModelException("'?values' is not supported as there is no 'values' attribute on an instance of " + object);
- }
- }
diff --git a/freemarker-2.3.13~encoding.patch b/freemarker-2.3.13~encoding.patch
deleted file mode 100644
index dc931b5..0000000
--- a/freemarker-2.3.13~encoding.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur freemarker-2.3.13/src/freemarker/template/LocalizedString.java freemarker-2.3.13.new/src/freemarker/template/LocalizedString.java
---- freemarker-2.3.13/src/freemarker/template/LocalizedString.java 2008-05-05 22:56:37.000000000 +0400
-+++ freemarker-2.3.13.new/src/freemarker/template/LocalizedString.java 2010-02-28 02:57:32.391514174 +0300
-@@ -13,7 +13,7 @@
- * if "fr".equals(lang)
- * return "oui";
- * else if "de".equals(lang)
-- * return "s�";
-+ * return "s\u00ED";
- * else
- * return "yes";
- * }
diff --git a/freemarker-2.3.19-build.patch b/freemarker-2.3.19-build.patch
deleted file mode 100644
index a56e758..0000000
--- a/freemarker-2.3.19-build.patch
+++ /dev/null
@@ -1,148 +0,0 @@
---- build.xml 2012-03-01 01:56:24.000000000 +0100
-+++ build.xml-gil 2012-05-16 12:33:02.759366191 +0200
-@@ -58,6 +58,7 @@
-
-
-
-+
-
-
-
-@@ -86,11 +87,14 @@
-
-
-
-+
-
-
-
-
-
-+
-+
-
-
-
-@@ -119,6 +123,8 @@
-
-
-
-+
-+
-
-
-
-@@ -139,6 +145,8 @@
-
-
-
-+
-+
-
-
-
-@@ -297,6 +305,7 @@
-
-
-
-+
-+ < Needed only for testing SLF4J:>
-
-
-
-@@ -326,7 +335,7 @@
-
-
-
--
-+
-
-
-
-@@ -547,7 +556,7 @@
-
-
-
-
-@@ -561,13 +570,13 @@
-
-
-
--
-+
-
-
-
-
-
--
-+
-
-
-
-@@ -580,7 +589,7 @@
-
-
-
-
-@@ -591,7 +600,7 @@
-
-
-
-
-@@ -602,7 +611,7 @@
-
-
-
-
-@@ -613,7 +622,7 @@
-
-
-
-
-@@ -631,7 +631,7 @@
-
-
-
-
-@@ -642,7 +642,7 @@
-
-
-
-
diff --git a/freemarker-2.3.19-enable-jdom.patch b/freemarker-2.3.19-enable-jdom.patch
deleted file mode 100644
index e7accbc..0000000
--- a/freemarker-2.3.19-enable-jdom.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-diff -Nru freemarker-2.3.19/build.xml freemarker-2.3.19-gil/build.xml
---- freemarker-2.3.19/build.xml 2012-05-16 13:22:41.753528850 +0200
-+++ freemarker-2.3.19-gil/build.xml 2012-05-16 13:33:05.935562933 +0200
-@@ -575,7 +575,7 @@
-
-
-
--
-+
-
-
-
-diff -Nru freemarker-2.3.19/src/freemarker/ext/jdom/NodeListModel.java freemarker-2.3.19-gil/src/freemarker/ext/jdom/NodeListModel.java
---- freemarker-2.3.19/src/freemarker/ext/jdom/NodeListModel.java 2012-03-01 01:56:25.000000000 +0100
-+++ freemarker-2.3.19-gil/src/freemarker/ext/jdom/NodeListModel.java 2012-05-16 13:29:44.097551911 +0200
-@@ -734,7 +734,7 @@
- else if ("data".equals(localName))
- attr = new Attribute("data", pi.getData());
- else
-- attr = new Attribute(localName, pi.getValue(localName));
-+ attr = new Attribute(localName, pi.getPseudoAttributeValue(localName));
- } else if (node instanceof DocType) {
- DocType doctype = (DocType)node;
- if ("publicId".equals(localName))
-@@ -844,17 +844,17 @@
- private static final Element getParent(Object node)
- {
- if (node instanceof Element)
-- return((Element)node).getParent();
-+ return((Element)node).getParentElement();
- else if (node instanceof Attribute)
- return((Attribute)node).getParent();
- else if (node instanceof Text)
-- return((Text)node).getParent();
-+ return((Text)node).getParentElement();
- else if (node instanceof ProcessingInstruction)
-- return((ProcessingInstruction)node).getParent();
-+ return((ProcessingInstruction)node).getParentElement();
- else if (node instanceof Comment)
-- return((Comment)node).getParent();
-+ return((Comment)node).getParentElement();
- else if (node instanceof EntityRef)
-- return((EntityRef)node).getParent();
-+ return((EntityRef)node).getParentElement();
- else
- // With 2.1 semantics it makes more sense to just return a null and let the core
- // throw an InvalidReferenceException and the template writer can use ?exists etcetera. (JR)
-@@ -878,7 +878,7 @@
- LinkedList list = new LinkedList();
- do {
- list.addFirst(parent);
-- parent = parent.getParent();
-+ parent = parent.getParentElement();
- }
- while (parent != null);
- return list;
-@@ -894,7 +894,7 @@
- list.addFirst(node);
- do {
- list.addFirst(parent);
-- parent = parent.getParent();
-+ parent = parent.getParentElement();
- }
- while (parent != null);
- return list;
-@@ -950,10 +950,10 @@
- if (node instanceof Element)
- doc = ((Element)node).getDocument();
- else if (node instanceof Attribute) {
-- Element parent = ((Attribute)node).getParent();
-+ Element parent = ((Text)node).getParentElement();
- doc = parent == null ? null : parent.getDocument();
- } else if (node instanceof Text) {
-- Element parent = ((Text)node).getParent();
-+ Element parent = ((Text)node).getParentElement();
- doc = parent == null ? null : parent.getDocument();
- } else if (node instanceof Document)
- doc = (Document)node;
-diff -Nru freemarker-2.3.19/src/freemarker/ext/xml/JdomNavigator.java freemarker-2.3.19-gil/src/freemarker/ext/xml/JdomNavigator.java
---- freemarker-2.3.19/src/freemarker/ext/xml/JdomNavigator.java 2012-03-01 01:56:25.000000000 +0100
-+++ freemarker-2.3.19-gil/src/freemarker/ext/xml/JdomNavigator.java 2012-05-16 13:32:06.328559677 +0200
-@@ -169,7 +169,7 @@
- result.add(new Attribute("data", pi.getData()));
- }
- else {
-- result.add(new Attribute(localName, pi.getValue(localName)));
-+ result.add(new Attribute(localName, pi.getPseudoAttributeValue(localName)));
- }
- } else if (node instanceof DocType) {
- DocType doctype = (DocType)node;
-@@ -206,22 +206,22 @@
-
- Object getParent(Object node) {
- if (node instanceof Element) {
-- return((Element)node).getParent();
-+ return((Element)node).getParentElement();
- }
- if (node instanceof Attribute) {
- return((Attribute)node).getParent();
- }
- if (node instanceof Text) {
-- return((Text)node).getParent();
-+ return((Text)node).getParentElement();
- }
- if (node instanceof ProcessingInstruction) {
-- return((ProcessingInstruction)node).getParent();
-+ return((ProcessingInstruction)node).getParentElement();
- }
- if (node instanceof Comment) {
-- return((Comment)node).getParent();
-+ return((Comment)node).getParentElement();
- }
- if (node instanceof EntityRef) {
-- return((EntityRef)node).getParent();
-+ return((EntityRef)node).getParentElement();
- }
- return null;
- }
-@@ -235,7 +235,7 @@
- return parent == null ? null : parent.getDocument();
- }
- else if (node instanceof Text) {
-- Element parent = ((Text)node).getParent();
-+ Element parent = ((Text)node).getParentElement();
- return parent == null ? null : parent.getDocument();
- }
- else if (node instanceof Document)
diff --git a/freemarker-2.3.19-javacc.patch b/freemarker-2.3.19-javacc.patch
deleted file mode 100644
index 1205962..0000000
--- a/freemarker-2.3.19-javacc.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- build.xml 2012-05-16 13:50:05.577618606 +0200
-+++ build.xml-gil 2012-05-16 13:50:10.364618868 +0200
-@@ -488,13 +488,12 @@
- description="Build the JavaCC parser from its grammar file">
-
-
-
-
--
-+ /-->
-
-
-
--
-+
-
-
-
-@@ -467,6 +467,8 @@
- doctitle="FreeMarker ${version}"
- packagenames="freemarker.debug, freemarker.template.*, freemarker.core.*, freemarker.ext.*, freemarker.cache.*, freemarker.log.*"
- sourcepath="${src.dir}"
-+ encoding="utf-8"
-+ additionalparam="-Xdoclint:none"
- version="true"
- windowtitle="FreeMarker ${version} API"
- classpathref="compile.classpath.javadoc"
diff --git a/freemarker-2.3.19-logging.patch b/freemarker-2.3.19-logging.patch
deleted file mode 100644
index 3bcde1e..0000000
--- a/freemarker-2.3.19-logging.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- src/freemarker/log/Logger.java 2012-03-01 01:56:24.000000000 +0100
-+++ src/freemarker/log/Logger.java-gil 2012-06-05 00:38:36.004769500 +0200
-@@ -301,12 +301,18 @@
-
- try
- {
-- return createFactory(i);
-+ LoggerFactory f = createFactory(i);
-+ f.getLogger("just.testing");
-+ return f;
- }
- catch(ClassNotFoundException e)
- {
- ;//Intentionally ignored
- }
-+ catch(NoClassDefFoundError e)
-+ {
-+ ;//Intentionally ignored
-+ }
- }
- System.err.println("*** WARNING: FreeMarker logging suppressed.");
- return new NullLoggerFactory();
diff --git a/freemarker-2.3.19-no-javarebel.patch b/freemarker-2.3.19-no-javarebel.patch
deleted file mode 100644
index 14d8c96..0000000
--- a/freemarker-2.3.19-no-javarebel.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -Nru freemarker-2.3.19/build.xml freemarker-2.3.19-gil/build.xml
---- freemarker-2.3.19/build.xml 2012-05-16 13:03:44.563466757 +0200
-+++ freemarker-2.3.19-gil/build.xml 2012-05-16 13:01:04.725458030 +0200
-@@ -164,6 +164,7 @@
-
-
-
-+
-
-
-
-diff -Nru freemarker-2.3.19/src/freemarker/ext/beans/BeansWrapper.java freemarker-2.3.19-gil/src/freemarker/ext/beans/BeansWrapper.java
---- freemarker-2.3.19/src/freemarker/ext/beans/BeansWrapper.java 2012-03-01 01:56:25.000000000 +0100
-+++ freemarker-2.3.19-gil/src/freemarker/ext/beans/BeansWrapper.java 2012-05-16 13:03:24.057465638 +0200
-@@ -232,7 +232,6 @@
- */
- public BeansWrapper() {
- if(javaRebelAvailable) {
-- JavaRebelIntegration.registerWrapper(this);
- }
- }
-
-@@ -1672,13 +1671,7 @@
-
-
- private static boolean isJavaRebelAvailable() {
-- try {
-- JavaRebelIntegration.testAvailability();
-- return true;
-- }
-- catch(NoClassDefFoundError e) {
- return false;
-- }
- }
-
- /**
diff --git a/freemarker-2.3.19-no-tomcat5.patch b/freemarker-2.3.19-no-tomcat5.patch
deleted file mode 100644
index ccb5bde..0000000
--- a/freemarker-2.3.19-no-tomcat5.patch
+++ /dev/null
@@ -1,140 +0,0 @@
---- build.xml 2012-05-16 12:49:40.018420644 +0200
-+++ build.xml-gil 2012-05-16 12:56:22.835442638 +0200
-@@ -55,8 +55,6 @@
-
-
-
--
--
-
-
-
-@@ -99,7 +97,7 @@
-
-
-
--
-+
-
-
-
-@@ -260,9 +258,9 @@
-
-
-
--
--
--
-+
-+
-+
-
-
-
-@@ -571,7 +569,7 @@
-
-
-
--
-+
-
-
-
-@@ -655,7 +653,7 @@
-
-
-
-
-@@ -666,7 +664,7 @@
-
-
-
-
-@@ -678,7 +676,7 @@
-
-
-
-
-@@ -689,7 +687,7 @@
-
-
-
-
-@@ -698,20 +696,20 @@
-
-
-
--
-+
-
-
--
--
-+
-+
-
-
-
-
-
-
-@@ -722,7 +720,7 @@
-
-
-
-
-@@ -733,7 +731,7 @@
-
-
-
-
-@@ -744,7 +742,7 @@
-
-
-
-
-@@ -755,7 +753,7 @@
-
-
-
-
diff --git a/freemarker-2.3.19-pom.patch b/freemarker-2.3.19-pom.patch
deleted file mode 100644
index 691e70a..0000000
--- a/freemarker-2.3.19-pom.patch
+++ /dev/null
@@ -1,64 +0,0 @@
---- build.xml 2015-07-02 17:09:31.214345653 +0200
-+++ build.xml.pom 2015-07-02 17:09:42.019834057 +0200
-@@ -1064,7 +1064,7 @@
- Note: maven-ant-tasks-x.x.x.jar must be added to ${ANT_HOME}/lib for
- this to work. Get it here: http://maven.apache.org/download.html
- -->
--
-+
-
-
-
- ]]>
--
--
--
--
--
--
--You are about uploading
--${dist.dir.versioned}/lib/freemarker.jar
--into the Maven central repostiry sync. directory.
--Be sure that's the final (released) variation there,
--and that the version number is correct.
--Proceed?
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- **********************************************
-- CLEAR THE SCREEN, NOW! Your password is on it!
-- **********************************************
-
-
-
diff --git a/freemarker-2.3.19.pom b/freemarker-2.3.19.pom
deleted file mode 100644
index 1f45c09..0000000
--- a/freemarker-2.3.19.pom
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- 4.0.0
- org.freemarker
- freemarker
- 2.3.19
- jar
- FreeMarker
-
- FreeMarker is a "template engine"; a generic tool to generate text output based on templates.
-
- http://freemarker.org
-
-
- BSD-style license
- http://freemarker.org/LICENSE.txt
-
-
-
- http://freemarker.svn.sourceforge.net/viewvc/freemarker/
- scm:svn:https://freemarker.svn.sourceforge.net/svnroot/freemarker
-
-
-
-
-
-
\ No newline at end of file
diff --git a/freemarker.spec b/freemarker.spec
index f8c1113..ff35793 100644
--- a/freemarker.spec
+++ b/freemarker.spec
@@ -5,58 +5,62 @@
echo "ERROR: Sources should not contain JAR files:" && echo "$F" && exit 1
%global fm_compatible_ver 2.3
-%global fm_ver %{fm_compatible_ver}.19
+%global fm_ver %{fm_compatible_ver}.23
Name: freemarker
Version: %{fm_ver}
-Release: 11%{?dist}
+Release: 1%{?dist}
Summary: A template engine
License: BSD
URL: http://freemarker.sourceforge.net/
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
-# disabled functionality: ext/jdom, ext/jsp/FreeMarkerPageContext1, ext/xml/JdomNavigator
-Patch0: %{name}-%{version}-build.patch
-#
-Patch1: %{name}-2.3.13~PyObject.__class__.patch
-# http://netbeans.org/bugzilla/show_bug.cgi?id=156876
-Patch2: %{name}-%{version}-logging.patch
+# Remove JSP 1.x and 2.0 API usage
+Patch1: jsp-api.patch
+# Compile only the classes compatible with the version of jython
+Patch2: jython-compatibility.patch
# illegal character in the javadoc comment
-Patch3: %{name}-2.3.13~encoding.patch
-# do not depend on tomcat5
-Patch4: %{name}-%{version}-no-tomcat5.patch
+Patch3: fix-javadoc-encoding.patch
+# Fix ivy configuration
+Patch4: ivy-configuration.patch
# Disable JavaRebelIntegration
-Patch5: %{name}-%{version}-no-javarebel.patch
+Patch5: no-javarebel.patch
# enable jdom extension
-Patch6: %{name}-%{version}-enable-jdom.patch
+Patch6: enable-jdom.patch
# use system javacc and fix Token.java
-Patch7: %{name}-%{version}-javacc.patch
-# generate pom file
-Patch8: %{name}-%{version}-pom.patch
-# fix javadoc classpath and doclint issues
-Patch9: %{name}-%{version}-javadoc.patch
+Patch7: javacc.patch
BuildArch: noarch
BuildRequires: ant >= 1.6
+BuildRequires: apache-parent
BuildRequires: apache-commons-logging
+BuildRequires: apache-commons-io
+BuildRequires: aqute-bnd
BuildRequires: avalon-logkit >= 1.2
BuildRequires: dom4j >= 1.6.1
BuildRequires: emma >= 2.0
+BuildRequires: findbugs
+BuildRequires: hamcrest
+BuildRequires: ivy-local
BuildRequires: java-devel >= 1:1.6.0
BuildRequires: javacc >= 4.0
BuildRequires: javapackages-local
BuildRequires: jaxen >= 1.1
+BuildRequires: jboss-jsp-2.2-api
+BuildRequires: jcl-over-slf4j
BuildRequires: jdom >= 1.0
+BuildRequires: jetty-jsp
+BuildRequires: jetty-webapp
BuildRequires: junit >= 3.8.2
BuildRequires: jython >= 2.2.1
BuildRequires: log4j >= 1.2
+BuildRequires: log4j-over-slf4j
+BuildRequires: logback
BuildRequires: rhino >= 1.6
+BuildRequires: sonatype-oss-parent
+BuildRequires: saxpath
BuildRequires: slf4j
-BuildRequires: tomcat-el-3.0-api
-BuildRequires: tomcat-lib >= 6.0.16
-BuildRequires: tomcat-jsp-2.3-api
-BuildRequires: tomcat-servlet-3.1-api >= 6.0
BuildRequires: xalan-j2 >= 2.7.0
%description
@@ -75,81 +79,42 @@ Summary: Javadoc for %{name}
This package contains the API documentation for %{name}.
%prep
-%setup -q -n %{name}-%{version}
+%setup -q -n %{name}-%{version} -c
+
find . -name "*.jar" -delete
find . -name "*.class" -delete
-rm -rf docs/docs/api
+rm -rf documentation/_html/api/
-%patch0 -p0
-# %% p atch1 -p1
-%patch2 -p0
+%patch1 -p1
+%patch2 -p1
%patch3 -p1
-%patch4 -p0
+%patch4 -p1
%patch5 -p1
%patch6 -p1
-%patch7 -p0
-%patch8 -p0
-%patch9 -p0
+%patch7 -p1
+
+%{__rm} -rf source/ivysettings.xml
# %%{__rm} -rf src/freemarker/core/ParseException.java
-%{__rm} -rf src/freemarker/core/FMParser.java
-%{__rm} -rf src/freemarker/core/FMParserConstants.java
-%{__rm} -rf src/freemarker/core/FMParserTokenManager.java
-%{__rm} -rf src/freemarker/core/SimpleCharStream.java
-%{__rm} -rf src/freemarker/core/Token.java
-%{__rm} -rf src/freemarker/core/TokenMgrError.java
-
-%{__ln_s} -f %{_javadir}/ant.jar lib/ant.jar
-%{__ln_s} -f %{_javadir}/commons-logging.jar lib/commons-logging.jar
-%{__ln_s} -f %{_javadir}/dom4j.jar lib/dom4j.jar
-%{__ln_s} -f %{_javadir}/emma_ant.jar lib/emma_ant.jar
-%{__ln_s} -f %{_javadir}/emma.jar lib/emma.jar
-#%%{__ln_s} -f %%{_javadir}/javacc.jar lib/javacc.jar
-%{__ln_s} -f %{_javadir}/jaxen.jar lib/jaxen.jar
-%{__ln_s} -f %{_javadir}/jdom.jar lib/jdom.jar
-# js.jsr provided by rhino package
-%{__ln_s} -f %{_javadir}/js.jar lib/js.jar
-
-# The JavaServer Pages 1.2 technology isn't provided in Fedora 10
-#%%{__ln_s} -f %%{_javadir}/jsp-api-1.2.jar lib/jsp-api-1.2.jar
-
-%{__ln_s} -f %{_javadir}/tomcat-jsp-api.jar lib/jsp-api-2.0.jar
-
-%{__ln_s} -f %{_javadir}/tomcat-jsp-api.jar lib/jsp-api-2.1.jar
-
-%{__ln_s} -f %{_javadir}/junit.jar lib/junit.jar
-%{__ln_s} -f %{_javadir}/jython/jython.jar lib/jython.jar
-%{__ln_s} -f %{_javadir}/log4j.jar lib/log4j.jar
-%{__ln_s} -f %{_javadir}/avalon-logkit.jar lib/logkit.jar
-%{__ln_s} -f %{_javadir}/slf4j/api.jar lib/slf4j-api.jar
-
-# It doesn't required due to OpenJDK 6 is used
-#%%{__ln_s} -f %%{_javadir}/rt122.jar lib/rt122.jar
-
-# SAXPath has been merged into the Jaxen codebase and is
-# no longer being maintained separately. See jaxen-1.1.jar
-#%%{__ln_s} -f %%{_javadir}/saxpath.jar lib/saxpath.jar
-
-# The package javax.el isn't included in:
-%{__ln_s} -f %{_javadir}/tomcat-servlet-api.jar lib/servlet.jar
-# so, el-api.jar is additionally used.
-%{__ln_s} -f %{_javadir}/tomcat-el-api.jar lib/el-api.jar
-
-%{__ln_s} -f %{_javadir}/struts.jar lib/struts.jar
-%{__ln_s} -f %{_javadir}/xalan-j2.jar lib/xalan.jar
+%{__rm} -rf source/src/freemarker/core/FMParser.java
+%{__rm} -rf source/src/freemarker/core/FMParserConstants.java
+%{__rm} -rf source/src/freemarker/core/FMParserTokenManager.java
+%{__rm} -rf source/src/freemarker/core/SimpleCharStream.java
+%{__rm} -rf source/src/freemarker/core/Token.java
+%{__rm} -rf source/src/freemarker/core/TokenMgrError.java
%checkForbiddenJARFiles
%mvn_file org.%{name}:%{name} %{name}
%build
-
-%{ant} jar javadoc maven-upload
+cd source
+ant -Divy.mode=local javacc jar javadoc maven-pom
%install
-%mvn_artifact build/pom.xml lib/%{name}.jar
-%mvn_install -J build/api
+%mvn_artifact source/build/pom.xml source/build/%{name}.jar
+%mvn_install -J source/build/api
%files -f .mfiles
%doc README.txt
@@ -159,6 +124,9 @@ rm -rf docs/docs/api
%license LICENSE.txt NOTICE.txt
%changelog
+* Wed Jan 06 2015 Omair Majid - 2.3.23-1
+- Update to 2.3.23
+
* Thu Jul 02 2015 gil cattaneo 2.3.19-11
- fix FTBFS
- adapt to current guideline
diff --git a/ivy-configuration.patch b/ivy-configuration.patch
new file mode 100644
index 0000000..d4e33ce
--- /dev/null
+++ b/ivy-configuration.patch
@@ -0,0 +1,86 @@
+--- freemarker-2.3.23.orig/source/build.xml 2016-01-05 13:51:18.913881273 -0500
++++ freemarker-2.3.23/source/build.xml 2016-01-05 16:04:10.790446860 -0500
+@@ -1007,29 +1007,8 @@
+ >
+ Getting dependencies...
+ -------------------------------------------------------
+-
+
+-
+- -------------------------------------------------------
+- *** Successfully acquired dependencies from the Web ***
+- Eclipse users: Now right-click on ivy.xml and Resolve!
+- -------------------------------------------------------
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
+
+
+
+--- freemarker-2.3.23.orig/source/ivy.xml 2016-01-05 13:51:18.900881078 -0500
++++ freemarker-2.3.23/source/ivy.xml 2016-01-06 11:56:54.313942232 -0500
+@@ -83,7 +83,7 @@
+
+
+
+-
++
+
+
+
+@@ -97,12 +97,10 @@
+
+
+
+-
+-
+-
+-
+-
+-
++
++
++
++
+
+
+
+@@ -137,17 +135,6 @@
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
+
+
+@@ -164,4 +151,4 @@
+
+
+
+-
+\ No newline at end of file
++
diff --git a/javacc.patch b/javacc.patch
new file mode 100644
index 0000000..9f34e9e
--- /dev/null
+++ b/javacc.patch
@@ -0,0 +1,32 @@
+Description: Use JavaCC from Fedora
+Forwarded: no
+Author: Damien Raude-Morvan
+Last-Update: 2009-09-27
+--- freemarker-2.3.23/source/build.xml
++++ freemarker-2.3.23/source/build.xml
+@@ -123,7 +123,6 @@
+
+
+
+
+
+
+@@ -157,7 +156,7 @@
+
+
+Last-Update: 2009-09-27
+--- a/source/build.xml
++++ b/source/build.xml
+@@ -253,22 +253,13 @@
+ excludes="
+ freemarker/ext/jsp/TaglibFactory.java,
+ freemarker/ext/jsp/_FreeMarkerPageContext1.java,
++ freemarker/ext/jsp/_FreeMarkerPageContext2.java,
+ freemarker/ext/jsp/_FreeMarkerPageContext21.java,
++ freemarker/ext/jsp/FreeMarkerJspFactory2.java,
+ freemarker/ext/jsp/FreeMarkerJspFactory21.java,
+ freemarker/ext/jsp/FreeMarkerJspApplicationContext.java"
+ />
+
+-
+-
+-
+
+
+
diff --git a/jython-compatibility.patch b/jython-compatibility.patch
new file mode 100644
index 0000000..c9b9d4a
--- /dev/null
+++ b/jython-compatibility.patch
@@ -0,0 +1,52 @@
+Description: Compile only the classes compatible with the version of jython in Fedora
+Author: Emmanuel Bourg
+Forwarded: not-needed
+--- a/source/build.xml
++++ b/source/build.xml
+@@ -275,41 +275,21 @@
+ freemarker/ext/jsp/FreeMarkerJspApplicationContext.java"
+ />
+
+-
++
+
+-
+-
+-
+
+-
+-
+-
+
+Last-Update: 2009-09-27
+--- freemarker-2.3.23/source/build.xml
++++ freemarker-2.3.23/source/build.xml
+@@ -207,6 +207,7 @@
+ bootclasspath="${boot.classpath.j2se1.4}"
+ excludes="
+ freemarker/ext/beans/_EnumModels.java,
++ freemarker/ext/beans/JRebelClassChangeNotifier.java,
+ freemarker/ext/dom/SunInternalXalanXPathSupport.java,
+
+ freemarker/ext/jsp/**,
+--- freemarker-2.3.23/source/ivy.xml
++++ freemarker-2.3.23/source/ivy.xml
+@@ -116,8 +116,6 @@
+
+
+
+-
+-
+
+
+
diff --git a/no-tomcat5.patch b/no-tomcat5.patch
deleted file mode 100644
index 0496647..0000000
--- a/no-tomcat5.patch
+++ /dev/null
@@ -1,69 +0,0 @@
---- freemarker-2.3.13/build.xml.orig 2011-02-28 15:02:29.572173242 -0500
-+++ freemarker-2.3.13/build.xml 2011-02-28 15:02:39.340418592 -0500
-@@ -48,8 +48,6 @@
-
-
-
--
--
-
-
-
-@@ -83,9 +81,9 @@
-
-
-
--
-+
-
--
-+
-
-
-
-@@ -93,7 +91,7 @@
-
-
-
--
-+
-
-
-
-@@ -221,9 +219,9 @@
-
-
-
--
--
--
-+
-+
-+
-
-
-
-@@ -451,7 +449,7 @@
-
-
-
--
-+
-
-
-
-@@ -513,11 +511,11 @@
-
-
-
--
-+
-
-
--
--
-+
-+
-
-
-