From 363909e77d78b5647bb6634b00ec541f27e21ffd Mon Sep 17 00:00:00 2001 From: Alexander Kurtakov Date: Mar 10 2011 16:12:08 +0000 Subject: Remove bundled libraries and patch the build to work with our versions. Building with bundled libraries was introduced by importing Mandriva version which uses them. 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. --- 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; + } +