-%include /usr/lib/rpm/macros.java
+#
+# THIS IS TEMPLATE PACKAGE, CLEANUP UNUSED FRAGMENTS BEFORE SUBMITTING TO CVS
+#
+# Conditional build:
+%bcond_without javadoc # don't build javadoc
+%bcond_without source # don't build source jar
+%bcond_without tests # don't build and run tests
+
+# To force building with specific JDK implementation
+# without replacing currently installed /usr/bin/javac, etc.
+#%%define use_jdk java-gcj-compat
+#%%buildrequires_jdk
+#BuildRequires: rpmbuild(macros) >= 1.556
+
+# Name without java- prefix. If it is application, not a library,
+# just do s/srcname/name/g
+%define srcname -
Summary: -
-Name: -
+Summary(pl.UTF-8): -
+Name: java-%{srcname}
Version: -
Release: 0.1
License: -
-Group: Development/Languages/Java
+# for random java packages (applications?)
+#Group: Development/Languages/Java
+# for java-XXX packages
+Group: Libraries/Java
Source0: -
# Source0-md5: -
URL: -
+# this is needed for the LC_ALL=en_US in build part dependency
+%if %(locale -a | grep -q '^en_US$'; echo $?)
+BuildRequires: glibc-localedb-all
+%endif
BuildRequires: jpackage-utils
BuildRequires: rpm-javaprov
-BuildRequires: rpmbuild(macros) >= 1.300
+# if using noarch subpackage:
+#BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 1.745
+BuildRequires: sed >= 4.0
+# for %{_javadir}
Requires: jpackage-utils
+# if no JNI: use global noarch, remove noarch from subpackages
BuildArch: noarch
-ExclusiveArch: i586 i686 pentium3 pentium4 athlon %{x8664} noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
+%description -l pl.UTF-8
+
%package doc
-Summary: Manual for %{name}
-Summary(fr.UTF-8): Documentation pour %{name}
-Summary(it.UTF-8): Documentazione di %{name}
-Summary(pl.UTF-8): Podręcznik dla %{name}a
+Summary: Manual for %{srcname}
+Summary(fr.UTF-8): Documentation pour %{srcname}
+Summary(it.UTF-8): Documentazione di %{srcname}
+Summary(pl.UTF-8): Podręcznik dla %{srcname}
Group: Documentation
+BuildArch: noarch
%description doc
-Documentation for %{name}.
+Documentation for %{srcname}.
%description doc -l fr.UTF-8
-Documentation pour %{name}.
+Documentation pour %{srcname}.
%description doc -l it.UTF-8
-Documentazione di %{name}.
+Documentazione di %{srcname}.
%description doc -l pl.UTF-8
-Dokumentacja do %{name}a.
+Dokumentacja do %{srcname}.
%package javadoc
-Summary: Online manual for %{name}
-Summary(pl.UTF-8): Dokumentacja online do %{name}
+Summary: Online manual for %{srcname}
+Summary(pl.UTF-8): Dokumentacja online do %{srcname}
Group: Documentation
Requires: jpackage-utils
+BuildArch: noarch
%description javadoc
-Documentation for %{name} -
+Documentation for %{srcname}.
%description javadoc -l pl.UTF-8
-Dokumentacja do %{name}a -
+Dokumentacja do %{srcname}.
+
+%description javadoc -l fr.UTF-8
+Javadoc pour %{srcname}.
+
+%package demo
+Summary: Demo for %{srcname}
+Summary(pl.UTF-8): Pliki demonstracyjne dla pakietu %{srcname}
+Group: Documentation
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description demo
+Demonstrations and samples for %{srcname}.
+
+%description demo -l pl.UTF-8
+Pliki demonstracyjne i przykłady dla pakietu %{srcname}.
+
+%package manual
+Summary: Tutorial for %{srcname}
+Summary(pl.UTF-8): Podręcznik do pakietu %{srcname}
+Group: Documentation
+BuildArch: noarch
+
+%description manual
+Manual for %{srcname}.
+
+%description manual -l pl.UTF-8
+Podręcznik do pakietu %{srcname}.
%package source
-Summary: %{name} source code
-Group: Development/Languages/Java
-AutoReq: no
-AutoProv: no
+Summary: Source code of %{srcname}
+Summary(pl.UTF-8): Kod źródłowy %{srcname}
+Group: Documentation
+Requires: jpackage-utils >= 1.7.5-2
+BuildArch: noarch
%description source
-%{name} source code.
+Source code of %{srcname}.
+
+%description source -l pl.UTF-8
+Kod źródłowy %{srcname}.
%prep
-%setup -q
+%setup -q -n %{srcname}-%{version}
+#%%undos build.xml
%build
export JAVA_HOME="%{java_home}"
required_jars="jaxp_parser_impl"
-export CLASSPATH=$(build-classpath $required_jars)
+CLASSPATH=$(build-classpath $required_jars)
+export CLASSPATH
+
+# source code not US-ASCII
+export LC_ALL=en_US
%ant
+
%{__make}
+# if you need to assemble .jar yourself
+cd src
+%javac -cp $CLASSPATH $(find -name '*.java')
+%jar cf ../%{srcname}.jar $(find -name '*.class')
+%if %{with source}
+%jar cf ../%{srcname}.src.jar $(find -name '*.java')
+%endif
+cd ..
+
%install
rm -rf $RPM_BUILD_ROOT
+
+# jars
install -d $RPM_BUILD_ROOT%{_javadir}
-# install jar
-cp -a dist/%{name}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
-ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
+cp -p dist/%{srcname}.jar $RPM_BUILD_ROOT%{_javadir}/%{srcname}-%{version}.jar
+ln -s %{srcname}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{srcname}.jar
# for jakarta packages:
for a in dist/*.jar; do
jar=${a##*/}
- cp -a dist/$jar $RPM_BUILD_ROOT%{_javadir}/${jar%%.jar}-%{version}.jar
+ cp -p dist/$jar $RPM_BUILD_ROOT%{_javadir}/${jar%%.jar}-%{version}.jar
ln -s ${jar%%.jar}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/$jar
done
# javadoc
-install -d $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
-cp -a dist/docs/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
-ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink
+%if %{with javadoc}
+install -d $RPM_BUILD_ROOT%{_javadocdir}/%{srcname}-%{version}
+cp -a dist/docs/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{srcname}-%{version}
+ln -s %{srcname}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{srcname} # ghost symlink
+%endif
+
+# demo
+install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+cp -a demo/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-# source code
-install -d $RPM_BUILD_ROOT%{_prefix}/src/%{name}-%{version}
-cp -a dist/src/* $RPM_BUILD_ROOT%{_prefix}/src/%{name}-%{version}
+# source
+install -d $RPM_BUILD_ROOT%{_javasrcdir}
+cp -a %{srcname}.src.jar $RPM_BUILD_ROOT%{_javasrcdir}/%{srcname}.src.jar
%clean
rm -rf $RPM_BUILD_ROOT
%post javadoc
-ln -sf %{name}-%{version} %{_javadocdir}/%{name}
+ln -nfs %{srcname}-%{version} %{_javadocdir}/%{srcname}
%files
%defattr(644,root,root,755)
-%{_javadir}/*.jar
+%{_javadir}/%{srcname}-%{version}.jar
+%{_javadir}/%{srcname}.jar
%files doc
%defattr(644,root,root,755)
%doc docs/*
+%if 0
%files demo
%defattr(644,root,root,755)
%{_examplesdir}/%{name}-%{version}
+%endif
+%if %{with javadoc}
%files javadoc
%defattr(644,root,root,755)
-%{_javadocdir}/%{name}-%{version}
-%ghost %{_javadocdir}/%{name}
+%{_javadocdir}/%{srcname}-%{version}
+%ghost %{_javadocdir}/%{srcname}
+%endif
+%if %{with source}
%files source
%defattr(644,root,root,755)
-%{_prefix}/src/%{name}-%{version}
+%{_javasrcdir}/%{srcname}.src.jar
+%endif