diff --git a/batik-pdf-MANIFEST.MF b/batik-pdf-MANIFEST.MF
new file mode 100644
index 0000000..15c910d
--- /dev/null
+++ b/batik-pdf-MANIFEST.MF
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Main-Class: org.apache.fop.cli.Main
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Bundle-SymbolicName: org.apache.batik.pdf
+Import-Package: org.apache.batik.bridge;version="[1.6.0,1.7.0)",org.ap
+ ache.batik.dom.svg;version="[1.6.0,1.7.0)",org.apache.batik.dom.util;
+ version="[1.6.0,1.7.0)",org.apache.batik.ext.awt;version="[1.6.0,1.7.
+ 0)",org.apache.batik.ext.awt.g2d;version="[1.6.0,1.7.0)",org.apache.b
+ atik.gvt;version="[1.6.0,1.7.0)",org.apache.batik.gvt.renderer;versio
+ n="[1.6.0,1.7.0)",org.apache.batik.gvt.text;version="[1.6.0,1.7.0)",o
+ rg.apache.batik.transcoder;version="[1.6.0,1.7.0)",org.apache.batik.t
+ ranscoder.image;version="[1.6.0,1.7.0)",org.apache.batik.transcoder.k
+ eys;version="[1.6.0,1.7.0)",org.apache.batik.util;version="[1.6.0,1.7
+ .0)",org.w3c.dom
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-Localization: plugin
+Bundle-Version: 1.6.0.v200806031500
+Bundle-Vendor: %Bundle-Vendor
+Export-Package: org.apache.avalon.framework,org.apache.avalon.framewor
+ k.activity,org.apache.avalon.framework.configuration,org.apache.avalo
+ n.framework.container,org.apache.commons.io,org.apache.commons.io.out
+ put,org.apache.commons.logging,org.apache.commons.logging.impl,org.ap
+ ache.fop.apps,org.apache.fop.fo,org.apache.fop.fonts,org.apache.fop.f
+ onts.apps,org.apache.fop.fonts.base14,org.apache.fop.fonts.truetype,o
+ rg.apache.fop.fonts.type1,org.apache.fop.image,org.apache.fop.image.a
+ nalyser,org.apache.fop.pdf,org.apache.fop.render.pdf,org.apache.fop.r
+ ender.ps,org.apache.fop.svg,org.apache.fop.util
diff --git a/fop-1.0.pom b/fop-1.0.pom
new file mode 100644
index 0000000..46b43c4
--- /dev/null
+++ b/fop-1.0.pom
@@ -0,0 +1,150 @@
+
+
+
+
+ 4.0.0
+ org.apache.xmlgraphics
+ fop
+ jar
+ Apache FOP
+ 1.0
+ http://xmlgraphics.apache.org/fop/
+ Apache FOP (Formatting Objects Processor) is the world's first print formatter driven by XSL formatting objects (XSL-FO) and the world's first output independent formatter. It is a Java application that reads a formatting object (FO) tree and renders the resulting pages to a specified output. Output formats currently supported include PDF, PCL, PS, AFP, TIFF, PNG, SVG, XML (area tree representation), Print, AWT and TXT. The primary output target is PDF.
+ 1999
+
+
+ FOP Users List
+ fop-users-subscribe@xmlgraphics.apache.org
+ fop-users-unsubscribe@xmlgraphics.apache.org
+ http://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-users/
+
+
+ FOP Developer List
+ fop-dev-subscribe@xmlgraphics.apache.org
+ fop-dev-unsubscribe@xmlgraphics.apache.org
+ http://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-dev/
+
+
+ FOP Commit List
+ fop-commits-subscribe@xmlgraphics.apache.org
+ fop-commits-unsubscribe@xmlgraphics.apache.org
+ http://mail-archives.apache.org/mod_mbox/xmlgraphics-fop-commits/
+
+
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+ scm:svn:http://svn.apache.org/repos/asf/xmlgraphics/fop/trunk
+ scm:svn:https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk
+ http://svn.apache.org/viewcvs.cgi/xmlgraphics/fop/trunk/?root=Apache-SVN
+
+
+ Apache Software Foundation
+ http://www.apache.org/
+
+
+
+
+ org.apache.xmlgraphics
+ xmlgraphics-commons
+ 1.4
+
+
+ org.apache.xmlgraphics
+ batik-svg-dom
+ 1.7
+
+
+ org.apache.xmlgraphics
+ batik-bridge
+ 1.7
+
+
+ org.apache.xmlgraphics
+ batik-awt-util
+ 1.7
+
+
+ org.apache.xmlgraphics
+ batik-gvt
+ 1.7
+
+
+ org.apache.xmlgraphics
+ batik-transcoder
+ 1.7
+
+
+ org.apache.xmlgraphics
+ fop
+
+
+
+
+ org.apache.xmlgraphics
+ batik-extension
+ 1.7
+
+
+ org.apache.xmlgraphics
+ batik-ext
+ 1.7
+
+
+
+ commons-logging
+ commons-logging
+ 1.0.4
+
+
+ commons-io
+ commons-io
+ 1.3.1
+
+
+ org.apache.avalon.framework
+ avalon-framework-api
+ 4.3.1
+
+
+ org.apache.avalon.framework
+ avalon-framework-impl
+ 4.3.1
+
+
+ javax.servlet
+ servlet-api
+ 2.2
+ provided
+
+
+ xalan
+ xalan
+ 2.7.0
+ provided
+
+
+
diff --git a/fop.spec b/fop.spec
index 3b81886..bab3229 100644
--- a/fop.spec
+++ b/fop.spec
@@ -1,33 +1,46 @@
-%global gcj_support 0
-
Summary: XSL-driven print formatter
Name: fop
Version: 1.0
-Release: 13%{?dist}
+Release: 14%{?dist}
License: ASL 2.0
Group: Applications/Text
URL: http://xmlgraphics.apache.org/fop
Source0: http://www.apache.org/dist/xmlgraphics/fop/source/%{name}-%{version}-src.tar.gz
Source1: %{name}.script
+Source2: batik-pdf-MANIFEST.MF
+Source3: http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/xmlgraphics/%{name}/%{version}/%{name}-%{version}.pom
Patch0: %{name}-manifest.patch
Patch1: %{name}-main.patch
-BuildArch: noarch
+Patch2: qdox-build.patch
+BuildArch: noarch
Requires: xmlgraphics-commons >= 1.2
Requires: avalon-framework >= 4.1.4
Requires: batik >= 1.7
Requires: xalan-j2 >= 2.7.0
Requires: xml-commons-apis >= 1.3.04
Requires: jakarta-commons-httpclient
-Requires: jakarta-commons-io >= 1.2
-Requires: jakarta-commons-logging >= 1.0.4
-Requires: java-1.6.0-openjdk
-Requires: jpackage-utils
+Requires: apache-commons-io >= 1.2
+Requires: apache-commons-logging >= 1.0.4
+Requires: java >= 1:1.6.0
+Requires: jpackage-utils
+
+Requires(post): jpackage-utils
+Requires(postun): jpackage-utils
+
BuildRequires: ant
-BuildRequires: ant-trax
-BuildRequires: java-1.6.0-openjdk-devel
-BuildRequires: java-1.6.0-openjdk-javadoc
-BuildRequires: jpackage-utils
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+BuildRequires: java-devel >= 1:1.6.0
+BuildRequires: java-javadoc >= 1:1.6.0
+BuildRequires: jpackage-utils
+BuildRequires: apache-commons-logging
+BuildRequires: apache-commons-io
+BuildRequires: avalon-framework
+BuildRequires: xmlgraphics-commons
+BuildRequires: batik
+BuildRequires: servlet
+BuildRequires: qdox
+BuildRequires: xmlunit
+BuildRequires: zip
+BuildRequires: junit
%description
FOP is the world's first print formatter driven by XSL formatting
@@ -39,7 +52,8 @@ XT) SAX events.
%package javadoc
Summary: Javadoc for %{name}
-Group: Development/Java
+Group: Documentation
+Requires: jpackage-utils
%description javadoc
Javadoc for %{name}.
@@ -48,26 +62,28 @@ Javadoc for %{name}.
%setup -q
%patch0 -p1
%patch1 -p0
+%patch2 -b .sav
-%build
-export JAVA_HOME=%{java_home}
-export CLASSPATH=
-export OPT_JAR_LIST="`%{__cat} %{_sysconfdir}/ant.d/trax`"
+find -name '*.class' -exec rm -f '{}' \;
+find -name '*.jar' -exec rm -f '{}' \;
-%ant clean jar-main transcoder-pkg javadocs
+sed -i -e "s|1.4|1.5|g" build.xml
+
+%build
+export CLASSPATH=$(build-classpath apache-commons-logging apache-commons-io xmlgraphics-commons batik-all avalon-framework servlet batik/batik-svg-dom xml-commons-apis xml-commons-apis-ext qdox objectweb-asm/asm-all xmlunit)
+ant clean jar-main transcoder-pkg javadocs
%install
-rm -rf %{buildroot}
+# inject OSGi manifests
+mkdir -p META-INF
+cp -p %{SOURCE2} META-INF/MANIFEST.MF
+touch META-INF/MANIFEST.MF
+zip -u build/%{name}.jar META-INF/MANIFEST.MF
# jars
mkdir -p %{buildroot}%{_javadir}
-cp -a build/%{name}.jar %{buildroot}%{_javadir}/%{name}-%{version}.jar
+cp -a build/%{name}.jar %{buildroot}%{_javadir}/%{name}.jar
cp -a build/%{name}-transcoder.jar %{buildroot}%{_javadir}/pdf-transcoder.jar
-pushd %{buildroot}%{_javadir}
-for jar in *-%{version}*
-do ln -s ${jar} `echo $jar| sed "s|-%{version}||g"`
-done
-popd
# script
mkdir -p %{buildroot}%{_bindir}
@@ -78,44 +94,48 @@ mkdir -p %{buildroot}%{_datadir}/%{name}
cp -a conf %{buildroot}%{_datadir}/%{name}
# javadoc
-mkdir -p %{buildroot}%{_javadocdir}/%{name}-%{version}
-cp -a build/javadocs/* %{buildroot}%{_javadocdir}/%{name}-%{version}
-ln -s %{name}-%{version} %{buildroot}%{_javadocdir}/%{name}
+mkdir -p %{buildroot}%{_javadocdir}/%{name}
+cp -a build/javadocs/* %{buildroot}%{_javadocdir}/%{name}
-%if %{gcj_support}
-%{_bindir}/aot-compile-rpm
-%endif
+mkdir -p $RPM_BUILD_ROOT%{_mavenpomdir}
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}.pom
+%add_to_maven_depmap org.apache.xmlgraphics %{name} %{version} JPP %{name} %{version}
-%clean
-rm -rf %{buildroot}
+%pre javadoc
+# workaround for rpm bug 646523, can be removed in F-17
+[ $1 -gt 1 ] && [ -L %{_javadocdir}/%{name} ] && \
+rm -rf $(readlink -f %{_javadocdir}/%{name}) %{_javadocdir}/%{name} || :
-%if %{gcj_support}
%post
-%{update_gcjdb}
+%update_maven_depmap
%postun
-%{clean_gcjdb}
-%endif
+%update_maven_depmap
+
%files
-%defattr(-,root,root)
+%defattr(-,root,root,-)
%doc LICENSE README NOTICE
-%{_javadir}/%{name}*.jar
+%{_javadir}/%{name}.jar
%{_datadir}/%{name}
%{_javadir}/pdf-transcoder.jar
+%{_mavendepmapfragdir}/*
+%{_mavenpomdir}/*pom
%attr(0755,root,root) %{_bindir}/fop
-%if %{gcj_support}
-%dir %{_libdir}/gcj/%{name}
-%{_libdir}/gcj/%{name}/*
-%endif
%files javadoc
-%defattr(-,root,root)
-%doc %{_javadocdir}/%{name}-%{version}
+%defattr(-,root,root,-)
%doc %{_javadocdir}/%{name}
+%doc LICENSE
%changelog
+* Thu Mar 10 2011 Alexander Kurtakov 1.0-14
+- Reapply Fedora guidelines.
+- Re-add pom.xml to unbreak Maven stack.
+- Re-add OSGi manifest to unbreak Eclipse stack.
+- Remove all bundled jars and classes and fix the build to work with our libs.
+
* Thu Mar 10 2011 RĂ¼diger Landmann 1.0-13
- reinstate updated manifest patch
- change define to global
@@ -272,4 +292,3 @@ rm -rf %{buildroot}
* Thu Aug 30 2001 Guillaume Rousse 0.20.1-1mdk
- first release
-
diff --git a/qdox-build.patch b/qdox-build.patch
new file mode 100644
index 0000000..7d37c26
--- /dev/null
+++ b/qdox-build.patch
@@ -0,0 +1,80 @@
+--- src/codegen/java/org/apache/fop/tools/EventProducerCollector.java.sav 2010-07-12 22:34:46.000000000 +0300
++++ src/codegen/java/org/apache/fop/tools/EventProducerCollector.java 2011-03-10 16:59:50.680483330 +0200
+@@ -15,13 +15,12 @@
+ * limitations under the License.
+ */
+
+-/* $Id: EventProducerCollector.java 932502 2010-04-09 16:48:27Z vhennebert $ */
++/* $Id: EventProducerCollector.java 1066078 2011-02-01 16:04:41Z jeremias $ */
+
+ package org.apache.fop.tools;
+
+ import java.io.File;
+ import java.io.IOException;
+-import java.util.ArrayList;
+ import java.util.Collections;
+ import java.util.List;
+ import java.util.Map;
+@@ -47,10 +46,10 @@ import com.thoughtworks.qdox.model.Type;
+ class EventProducerCollector {
+
+ private static final String CLASSNAME_EVENT_PRODUCER = EventProducer.class.getName();
+- private static final Map PRIMITIVE_MAP;
++ private static final Map> PRIMITIVE_MAP;
+
+ static {
+- Map m = new java.util.HashMap();
++ Map > m = new java.util.HashMap>();
+ m.put("boolean", Boolean.class);
+ m.put("byte", Byte.class);
+ m.put("char", Character.class);
+@@ -63,7 +62,7 @@ class EventProducerCollector {
+ }
+
+ private DocletTagFactory tagFactory;
+- private List models = new ArrayList();
++ private List models = new java.util.ArrayList();
+
+ /**
+ * Creates a new EventProducerCollector.
+@@ -123,6 +122,9 @@ class EventProducerCollector {
+ */
+ protected void processEventProducerInterface(JavaClass clazz)
+ throws EventConventionException, ClassNotFoundException {
++ if (clazz.getParentClass() == null || clazz.getParentClass().getName().equals("java.lang.Object")) {
++ return;
++ }
+ EventProducerModel prodMeta = new EventProducerModel(clazz.getFullyQualifiedName());
+ JavaMethod[] methods = clazz.getMethods(true);
+ for (int i = 0, c = methods.length; i < c; i++) {
+@@ -139,7 +141,7 @@ class EventProducerCollector {
+ throws EventConventionException, ClassNotFoundException {
+ JavaClass clazz = method.getParentClass();
+ //Check EventProducer conventions
+- if (!method.getReturns().isVoid()) {
++ if (!method.getReturnType().isVoid()) {
+ throw new EventConventionException("All methods of interface "
+ + clazz.getFullyQualifiedName() + " must have return type 'void'!");
+ }
+@@ -168,10 +170,10 @@ class EventProducerCollector {
+ if (params.length > 1) {
+ for (int j = 1, cj = params.length; j < cj; j++) {
+ JavaParameter p = params[j];
+- Class type;
++ Class> type;
+ JavaClass pClass = p.getType().getJavaClass();
+ if (p.getType().isPrimitive()) {
+- type = (Class)PRIMITIVE_MAP.get(pClass.getName());
++ type = PRIMITIVE_MAP.get(pClass.getName());
+ if (type == null) {
+ throw new UnsupportedOperationException(
+ "Primitive datatype not supported: " + pClass.getName());
+@@ -197,7 +199,7 @@ class EventProducerCollector {
+ * Returns the event model that has been accumulated.
+ * @return the event model.
+ */
+- public List getModels() {
++ public List getModels() {
+ return this.models;
+ }
+