+# TODO:
+# - generate docs without using forrest. It seems to be possible.
+#
+# Conditional build:
+%bcond_with doc # build with docs (require apache-forrest)
+%bcond_with bootstrap # break BR loop batik-fop
+
+%include /usr/lib/rpm/macros.java
+
+%define _rel 6
+%define srcname xmlgraphics-batik
Summary: Java SVG support
Summary(pl.UTF-8): Wsparcie dla SVG dla języka Java
-Name: batik
-Version: 1.6
-%define _snap 408156
-Release: 1.%{_snap}.1
+Name: java-xmlgraphics-batik
+Version: 1.7
+Release: %{_rel}%{?with_bootstrap:.bootstrap}
License: Apache
Group: Applications/Publishing/XML/Java
-Source0: %{name}-svn-%{_snap}.tar.bz2
-# Source0-md5: 4b0d5ee20c804c244b547f3427502652
+Source0: http://www.apache.org/dist/xmlgraphics/batik/batik-src-%{version}.zip
+# Source0-md5: c117ca2241907f62a2b3031167ebf917
+Patch0: %{name}-nodocs.patch
URL: http://xml.apache.org/batik/
-BuildRequires: jdk
+%{?with_doc:BuildRequires: java-forrest}
+BuildRequires: jdk >= 1.4
+BuildRequires: java-xalan
+%{!?with_bootstrap:BuildRequires: java-xmlgraphics-fop}
+BuildRequires: jpackage-utils
+BuildRequires: rhino
BuildRequires: unzip
-Requires: jre
+BuildRequires: xml-commons-external
+Requires: jre >= 1.4
+Requires: java-xalan
+Requires: rhino
+Requires: xml-commons-external
+Obsoletes: batik
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _javaclassdir %{_libdir}/java
-
%description
Java SVG support.
Dokumentacja dla biblioteki Batik.
%prep
-%setup -q -n xml-%{name}
+%setup -q -n batik-%{version}
+
+%if %{without doc}
+%patch0 -p0
+%endif
+
+rm lib/js.jar lib/xalan*.jar lib/xerces*.jar lib/xml-apis*.jar
%build
-JAVA_HOME=%{_libdir}/java
-#JAVA_HOME=/usr/lib/jvm/java-sun-1.5.0.06
-export JAVA_HOME
+unset CLASSPATH || :
+export JAVA_HOME=%{java_home}
+
+jars='js xalan xercesImpl xml-apis xml-apis-ext'
+for jar in $jars; do
+ ln -s $(find-jar $jar) lib
+done
+
+%if %{without bootstrap}
+ rm lib/pdf-transcoder.jar
+ ln -s $(find-jar xmlgraphics-fop) lib
+%endif
#sh build.sh dist-tgz # does not work :-(
sh build.sh dist-zip
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_javaclassdir}/%{name}/lib
+install -d $RPM_BUILD_ROOT%{_javadir}/%{srcname}
+
+cd batik-%{version}
+for jar in batik*.jar; do
+ base=$(basename $jar .jar)
+ install $jar $RPM_BUILD_ROOT%{_javadir}/xmlgraphics-$base-%{version}.jar
+ ln -s xmlgraphics-$base-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/xmlgraphics-$base.jar
+done
+
+cd lib
+for jar in batik*.jar; do
+ install $jar $RPM_BUILD_ROOT%{_javadir}/%{srcname}/$jar
+done
+
+%if %{with bootstrap}
+ install -p pdf-transcoder.jar $RPM_BUILD_ROOT%{_javadir}/%{srcname}/pdf-transcoder.jar
+%endif
-install %{name}-%{version}/lib/*.jar $RPM_BUILD_ROOT%{_javaclassdir}/%{name}/lib
-install %{name}-%{version}/*.jar $RPM_BUILD_ROOT%{_javaclassdir}/%{name}
+cd ../extensions
+for jar in batik*.jar; do
+ install $jar $RPM_BUILD_ROOT%{_javadir}/%{srcname}/extension-${jar#batik-}
+done
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc NOTICE README
-%dir %{_javaclassdir}/%{name}
-%{_javaclassdir}/%{name}/*.jar
-%dir %{_javaclassdir}/%{name}/lib
-%{_javaclassdir}/%{name}/lib/*.jar
+%doc CHANGES KEYS NOTICE README
+%{_javadir}/%{srcname}*.jar
+%{_javadir}/%{srcname}
+%if %{with doc}
%files doc
%defattr(644,root,root,755)
%doc %{name}-%{version}/docs/* %{name}-%{version}/samples
+%endif