-%define jsdkversion 20000924
-%define apxs /usr/sbin/apxs
+# Conditional build:
+%bcond_with gcj # use javac instead of GCJ
+%define jsdkversion 20000924
+%define apxs /usr/sbin/apxs1
Summary: Servlet engine with support for the leading web server
Summary(pl): Silnik serwletów ze wsparciem dla wiod±cego serwera WWW
Name: ApacheJServ
Version: 1.1.2
-Release: 1
+Release: 0.4
License: freely distributable & usable (JServ), LGPL (JSDK)
Group: Networking/Daemons
Source0: http://java.apache.org/jserv/dist/%{name}-%{version}.tar.gz
Source1: http://www.euronet.nl/~pauls/java/servlet/download/classpathx_servlet-%{jsdkversion}.tar.gz
# Source1-md5: a81feddb91b1358f9aaed94e83eddb54
Patch0: %{name}-enable-secret.patch
+Patch1: %{name}-ac.patch
URL: http://java.apache.org/
-BuildRequires: apache-devel >= 1.3.9-8
+BuildRequires: apache1-devel >= 1.3.9-8
+%if %{with gcj}
+BuildRequires: gcc-java
+BuildRequires: fastjar
+#BuildRequires: gcc-java-tools
+Requires: /usr/bin/gij
+%else
+#BuildRequires: jar
BuildRequires: jdk
+#Requires: jre
+%endif
Requires(post): awk
Requires(post): ed
-Requires(post,preun): fileutils
Requires(post): grep
-Requires(post,preun): sed
Requires(post): sh-utils
Requires(post): textutils
-Requires: apache >= 1.3.6
-Provides: jserv jsdk20
+Requires(post,preun): fileutils
+Requires(post,preun): sed
+Requires: apache1 >= 1.3.6
+Provides: jserv
+Provides: jsdk20
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define libexecdir %(%{apxs} -q LIBEXECDIR)
%define httpdconf %(%{apxs} -q SYSCONFDIR)
%define jservconf %{httpdconf}/jserv
%define logdir /var/log/httpd
-%define servletdir /home/services/httpd/servlets
-%define classesdir /home/services/httpd/classes
+%define servletdir %{_datadir}/jserv/servlets
+%define classesdir %{_datadir}/jserv/classes
+%define _noautocompressdoc package-list
%description
Apache JServ is a servlet engine, developed by the Java Apache Project
(na licencji LGPL) napisana przez Paula Siegmanna
<http://www.euronet.nl/~pauls/java/servlet/>
+%package doc
+Summary: ApacheJServ documentation
+Group: Development/Languages/Java
+
+%description doc
+ApacheJserv documentation.
+
%prep
%setup -q -a1
%patch0 -p0
+%patch1 -p0
# final position of GNU JSDK-Classes
-sed 's|@JSDK_CLASSES@|%{classesdir}/servlet-2.0.jar|g' \
- conf/jserv.properties.in > conf/jserv.properties.in.new
-mv -f conf/jserv.properties.in.new conf/jserv.properties.in
+sed -i -e 's|@JSDK_CLASSES@|%{classesdir}/servlet-2.0.jar|g' conf/jserv.properties.in
# do not load module in provided jserv.conf; we do this in httpd.conf
-sed 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in \
- > conf/jserv.conf.in.new
-mv -f conf/jserv.conf.in.new conf/jserv.conf.in
+sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in
+
+# we don't want gcj related deps
+sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am
+sed -i -e '/^SUBDIRS/s,example,,' Makefile.am
%build
+if [ ! -f _autotools.done.1 ]; then
+ %{__gettextize}
+ %{__libtoolize}
+ %{__aclocal}
+ %{__autoconf}
+ %{__automake}
+ touch _autotools.done.1
+fi
+
# prepare compilation
-%{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
-%{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
+if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
+ %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
+fi
-# copy API-doc
-mkdir jsdk-doc
-cp classpathx_servlet-%{jsdkversion}/README \
- classpathx_servlet-%{jsdkversion}/AUTHORS \
- classpathx_servlet-%{jsdkversion}/COPYING.LIB \
- jsdk-doc
-cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
+if [ ! -d jsdk-doc ]; then
+ %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
-### JSERV
+ # copy API-doc
+ mkdir jsdk-doc
+ cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
+ cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
+fi
+#%{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=`pwd` JAVAC_OPT="-source 1.4" ac_cv_objext=class} \
+
+### JSERV
APXS_CFLAGS=`%{apxs} -q CFLAGS`
+%{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=`pwd` JAVAC_OPT="-source 1.4"} \
CFLAGS="$APXS_CFLAGS %{rpmcflags}" ./configure \
--prefix=%{_prefix} \
--disable-debugging \
--with-apxs=%{apxs} \
--with-logdir=%{logdir} \
--with-servlets=%{servletdir} \
+ %{!?with_gcj:--with-javac=%{_bindir}/javac --with-jdk-home=%{_libdir}/java} \
+ %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
--with-JSDK=`pwd`/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar \
- --with-jdk-home=%{_libdir}/java
+
+%{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
+ -C src/java
%{__make}
%install
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
+# we removed java, so do it manually
+%{__make} install \
+ %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
+ -C src/java \
+ DESTDIR=$RPM_BUILD_ROOT
+
echo "default - change on install `date`" > $RPM_BUILD_ROOT%{jservconf}/jserv.secret.key
chmod 600 $RPM_BUILD_ROOT%{jservconf}/jserv.secret.key
### GNU JSDK-classes
install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{classesdir}
-find docs jsdk-doc -name 'Makefile*' | xargs rm -f
-rm -rf jsdk-doc/{COPYING.LIB,CVS}
+find jsdk-doc -name 'Makefile*' | xargs rm -f
+rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
# mmh, we can't give %{_prefix}/docs to %doc ..
-%doc index.html LICENSE README docs jsdk-doc
+%doc LICENSE README
%dir %{jservconf}
-%config(noreplace) %verify(not size mtime md5) %{jservconf}/jserv.properties
-%config(noreplace) %verify(not size mtime md5) %{jservconf}/zone.properties
-%config(noreplace) %verify(not size mtime md5) %{jservconf}/jserv.conf
+%config(noreplace) %verify(not md5 mtime size) %{jservconf}/jserv.properties
+%config(noreplace) %verify(not md5 mtime size) %{jservconf}/zone.properties
+%config(noreplace) %verify(not md5 mtime size) %{jservconf}/jserv.conf
# these are just for demonstration and thus,
# no %config-files per-se; do not install
%dir %{classesdir}
%{classesdir}/servlet-2.0.jar
+%if 0
%dir %{servletdir}
%{servletdir}/Hello.java
%{servletdir}/Hello.class
%{servletdir}/IsItWorking.java
%{servletdir}/IsItWorking.class
+%endif
# we need to have write access here
%attr(770,root,http) %dir %{logdir}
+
+%files doc
+%doc index.html docs
+%doc jsdk-doc