+# TODO
+# - separate package for jsdk?
+#
+# Conditional build:
+%bcond_with gcj # use GCJ instead of javac
+#
+%define apxs /usr/sbin/apxs1
%define jsdkversion 20000924
-%define apxs /usr/sbin/apxs
-
+%define mod_name jserv
Summary: Servlet engine with support for the leading web server
-Summary(pl): Silnik serwletów ze wsparciem dla wiod±cego serwera WWW
+Summary(pl.UTF-8): Silnik serwletów ze wsparciem dla wiodącego serwera WWW
Name: ApacheJServ
Version: 1.1.2
-Release: 1
+Release: 4
+License: freely distributable & usable (JServ), LGPL (JSDK)
+Group: Networking/Daemons
Source0: http://java.apache.org/jserv/dist/%{name}-%{version}.tar.gz
+# Source0-md5: 6d48a1b9fcc5eea4dfebaae29ba5a485
Source1: http://www.euronet.nl/~pauls/java/servlet/download/classpathx_servlet-%{jsdkversion}.tar.gz
+# Source1-md5: a81feddb91b1358f9aaed94e83eddb54
+Source2: %{name}.conf
+Source3: %{name}.init
+Source4: %{name}.sysconfig
+Source5: runjserv
Patch0: %{name}-enable-secret.patch
+Patch1: %{name}-ac.patch
+Patch2: %{name}-jre-env.patch
+Patch3: %{name}-config.patch
URL: http://java.apache.org/
-License: freely distributable & usable (JServ), LGPL (JSDK)
-Group: Networking/Daemons
-BuildRequires: apache-devel >= 1.3.9-8
-BuildRequires: jdk
-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
+BuildRequires: apache1-devel >= 1.3.9-8
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: gettext-devel
+BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: sed >= 4.0
+%if %{with gcj}
+BuildRequires: fastjar
+BuildRequires: gcc-java
+BuildRequires: jdkgcj
+Requires: /usr/bin/gij
+%else
+BuildRequires: java-sun
+Requires: java-sun-jre
+%endif
+Requires(post,preun): rc-scripts
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires: %{name} = %{version}-%{release}
+Requires: rc-scripts >= 0.4.0.19
+Provides: group(jserv)
+Provides: jsdk20
+Provides: jserv
+Provides: user(jserv)
+Obsoletes: ApacheJServ-init
+Obsoletes: jserv
+ExclusiveArch: i586 i686 pentium3 pentium4 athlon %{x8664}
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 _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
+%define httpdconf %(%{apxs} -q SYSCONFDIR 2>/dev/null)
+%define _sysconfdir /etc/jserv
+%define logdir /var/log/jserv
+%define _noautocompressdoc package-list
%description
Apache JServ is a servlet engine, developed by the Java Apache Project
in 100pc Java application, and listens for servlet requests using the
Apache Java protocol (AJp). Typically, these requests will originate
from the mod_jserv Apache module (DSO included). This package contains
-a LGPL'ed implementation of sun's java servlet api version 2.0 by Paul
-Siegmann <http://www.euronet.nl/~pauls/java/servlet/>
+a LGPL'ed implementation of Sun's Java Servlet API version 2.0 by Paul
+Siegmann <http://www.euronet.nl/~pauls/java/servlet/>.
-%description -l pl
+%description -l pl.UTF-8
Apache JServ jest silnikiem serwletowym, rozwijanym przez Java Apache
Project <http://java.apache.org/>. Silnik serwletowy Apache JServ
-zosta³ napisany od pocz±tku do koñca w Javie; nas³uchuje wywo³añ
-serwletu wykorzystuj±c protokó³ Apache Java (AJp). Zazwyczaj wywo³ania
-te pochodz± z modu³u Apache mod_jservmodule (³±cznie z DSO). Pakiet
-ten zawiera sunowsk± implementacjê api serletów w javie w wersji 2.0
-(na licencji LGPL) napisana przez Paula Siegmanna
-<http://www.euronet.nl/~pauls/java/servlet/>
+został napisany od początku do końca w Javie; nasłuchuje wywołań
+serwletu wykorzystując protokół Apache Java (AJp). Zazwyczaj wywołania
+te pochodzą z modułu Apache mod_jservmodule (łącznie z DSO). Pakiet
+ten zawiera implementację Java Servlet API Suna w wersji 2.0 napisaną
+przez Paula Siegmanna (na licencji LGPL)
+<http://www.euronet.nl/~pauls/java/servlet/>.
+
+%package -n apache1-mod_jserv
+Summary: JServ module for Apache
+Summary(pl.UTF-8): Moduł JServ dla Apache'a
+Group: Networking/Daemons
+Requires: apache1-base >= 1.3.33-2
+Obsoletes: ApacheJServ-auto
+
+%description -n apache1-mod_jserv
+JServ module for Apache.
+
+%description -n apache1-mod_jserv -l pl.UTF-8
+Moduł JServ dla Apache'a.
+
+%package doc
+Summary: ApacheJServ documentation
+Summary(pl.UTF-8): Dokumentacja do ApacheJServ
+Group: Development/Languages/Java
+
+%description doc
+ApacheJserv documentation.
+
+%description doc -l pl.UTF-8
+Dokumentacja do ApacheJServ.
%prep
%setup -q -a1
%patch0 -p0
+%patch1 -p0
+%patch2 -p1
+%patch3 -p1
-# 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@|%{_javadir}/servlet-2.0.jar|g
+ s|@JAVA@|%{_bindir}/java|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
+export JAVA_HOME="%{java_home}"
+
+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
-APXS_CFLAGS=`%{apxs} -q CFLAGS`
-CFLAGS="$APXS_CFLAGS %{rpmcflags}" ./configure \
- --prefix=%{_prefix} \
- --disable-debugging \
+### JSERV
+CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
+dir=$(pwd)
+%configure \
+ %{!?debug:--disable-debugging} \
--with-apxs=%{apxs} \
--with-logdir=%{logdir} \
- --with-servlets=%{servletdir} \
- --with-JSDK=`pwd`/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar \
- --with-jdk-home=/usr/lib/java
+ --with-servlets=%{_datadir}/jserv/servlets \
+ --with-java-platform=1.4 \
+ --with-JSDK=$dir/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar \
+ %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=$dir JAVAC_OPT="-source 1.4"} \
+ %{!?with_gcj:--with-javac=%{javac} --with-java=%{java} --with-jdk-home=$JAVA_HOME} \
+ %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
+
+%{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
+ -C src/java
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{httpdconf}/conf.d,%{_javadir},%{_sbindir}}
-%{__make} DESTDIR=$RPM_BUILD_ROOT install
+install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/80_mod_jserv.conf
+install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
+install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/jserv
+install %{SOURCE5} $RPM_BUILD_ROOT%{_sbindir}
-echo "default - change on install `date`" > $RPM_BUILD_ROOT%{jservconf}/jserv.secret.key
-chmod 600 $RPM_BUILD_ROOT%{jservconf}/jserv.secret.key
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
-# currently disabled
-#install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
-#install -d $RPM_BUILD_ROOT/etc/profile.d
-#install -d $RPM_BUILD_ROOT/etc/logrotate.d
-#install -m755 src/scripts/package/rpm/jserv.init $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
-#install -m755 src/scripts/package/rpm/jserv.sh $RPM_BUILD_ROOT/etc/profile.d
-#install -m644 src/scripts/package/rpm/jserv.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/jserv
+# we removed java from SUBDIRS, so do it manually
+%{__make} install \
+ %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
+ -C src/java \
+ DESTDIR=$RPM_BUILD_ROOT
-### GNU JSDK-classes
-install -d $RPM_BUILD_ROOT%{classesdir}
-install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{classesdir}
+> $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
+> $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
-find docs jsdk-doc -name 'Makefile*' | xargs rm -f
-rm -rf jsdk-doc/{COPYING.LIB,CVS}
+install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets
-%clean
-rm -rf $RPM_BUILD_ROOT
+### GNU JSDK-classes
+install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
-%post
-# use fortune + install-date + process-list to create pseudo-random, hardly
-# guessable secret key. Use md5sum to create a hash from this, if available:
-(fortune 2>/dev/null ; date ; ps -eal 2>/dev/null) \
- | (md5sum 2>/dev/null || cat) > %{jservconf}/jserv.secret.key
-chmod 600 %{jservconf}/jserv.secret.key
+find jsdk-doc -name 'Makefile*' | xargs rm -f
+rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
-#
-# determine apache-USER and chown the jserv.secrect.key - file
-#
-APACHEUSER=`grep "^User[ ]\+" %{httpdconf}/httpd.conf | awk '{print $2}'`
-if test ! "x$APACHEUSER" = x ; then
- USERCOMMENT="(which is '$APACHEUSER' ?)"
-else
-# assumption:
- APACHEUSER=http
-fi
-chown $APACHEUSER %{jservconf}/jserv.secret.key
+# duplicate
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
+rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
-#
-# determine apache-GROUP and allow this group to write to %{logdir}
-APACHEGROUP=`grep "^Group[ ]\+" %{httpdconf}/httpd.conf | awk '{print $2}'`
-if test "x$APACHEGROUP" = x ; then
- APACHEGROUP=http
-fi
-chgrp $APACHEGROUP %{logdir}
-chmod g+w %{logdir}
+%clean
+rm -rf $RPM_BUILD_ROOT
-#
-# Add 'jserv' as an independent service (manual mode)
-#/sbin/chkconfig --add jserv
-#/etc/rc.d/init.d/jserv start
+%pre
+%groupadd -g 154 jserv
+%useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
-#
-# Find Include Statement or add it if necessary
-#
-umask 027
-cp -f %{httpdconf}/httpd.conf %{httpdconf}/httpd.conf.rpmorig
-grep -q '#\?.*[iI]nclude.*/jserv.conf' %{httpdconf}/httpd.conf
-if test $? -eq 0 ; then
- # found. Insert our include statement here
- ## this depends on GNU-sed ('|')
- sed 's|^#\?\(.*Include\).*/jserv.conf.*$|\1 %{jservconf}/jserv.conf|g' \
- %{httpdconf}/httpd.conf.rpmorig > %{httpdconf}/httpd.conf
-else
- # append it
- (
- echo "<IfModule mod_jserv.c>"
- echo " Include %{jservconf}/jserv.conf"
- echo "</IfModule>"
- ) >> %{httpdconf}/httpd.conf
+%post
+if [ ! -s %{_sysconfdir}/jserv.secret.key ]; then
+ if [ -s %{httpdconf}/jserv.secret.key ]; then
+ cat %{httpdconf}/jserv.secret.key > %{_sysconfdir}/jserv.secret.key
+ else
+ dd if=/dev/urandom bs=1 count=42 2>/dev/null \
+ | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
+ fi
fi
+/sbin/chkconfig --add jserv
+%service jserv restart "Apache JServ Daemon"
-#
-# LoadModule; uncomment or insert
-#
-grep -q '#\?.*LoadModule.*jserv_module.*mod_jserv.so' %{httpdconf}/httpd.conf
-if test $? -eq 0 ; then
- # found. Remove any comment
- sed 's|^#.*\(LoadModule.*mod_jserv.so\)|\1|g' \
- %{httpdconf}/httpd.conf > %{httpdconf}/httpd.conf.loadMod
- mv -f %{httpdconf}/httpd.conf.loadMod %{httpdconf}/httpd.conf
-else
- # Insert LoadModule line before first valid LoadModule
- (
- echo "/^LoadModule"
- echo "i"
- echo "LoadModule jserv_module modules/mod_jserv.so"
- echo "."
- echo "wq"
- ) | ed %{httpdconf}/httpd.conf > /dev/null 2>&1
+%preun
+if [ "$1" = 0 ]; then
+ %service jserv stop
+ /sbin/chkconfig --del jserv
fi
-#
-# AddModule; uncomment or insert
-#
-grep -q '#\?.*AddModule.*mod_jserv.c' %{httpdconf}/httpd.conf
-if test $? -eq 0 ; then
- # found. Remove any comment
- sed 's|^#.*\(AddModule.*mod_jserv.c\)|\1|g' \
- %{httpdconf}/httpd.conf > %{httpdconf}/httpd.conf.addMod
- mv -f %{httpdconf}/httpd.conf.addMod %{httpdconf}/httpd.conf
-else
- (
- echo "/^AddModule"
- echo "i"
- echo "AddModule mod_jserv.c"
- echo "."
- echo "wq"
- ) | ed %{httpdconf}/httpd.conf > /dev/null 2>&1
+%postun
+if [ "$1" = "0" ]; then
+ %userremove jserv
+ %groupremove jserv
fi
-#
-# Search for JAVA at possible locations and edit wrapper.bin
-#
-unset JAVABIN
-for lookfor in java jre ; do
- for loc in \
- $JAVA_HOME \
- $JDK_HOME \
- /usr/lib/java \
- /usr/local/java* \
- /usr/local/jdk*
- do
- if test -x "$loc/bin/$lookfor" ; then
- JAVABIN="$loc/bin/$lookfor"
- break
+%post -n apache1-mod_jserv
+if [ ! -s %{httpdconf}/jserv.secret.key ]; then
+ if [ -s %{_sysconfdir}/jserv.secret.key ]; then
+ cat %{_sysconfdir}/jserv.secret.key > %{httpdconf}/jserv.secret.key
+ else
+ dd if=/dev/urandom bs=1 count=42 2>/dev/null \
+ | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
fi
- done
-
- if test -z "$JAVABIN" ; then
- for prefix in /usr/jdk /usr/jdk- /usr/local/jdk /usr/local/jdk- ; do
- for jplatform in 2 1 ; do
- for subvers in .9 .8 .7 .6 .5 .4 .3 .2 .1 "" ; do
- if test -x "${prefix}1.$jplatform$subvers/bin/$lookfor" ; then
- JAVABIN="${prefix}1.$jplatform$subvers/bin/$lookfor"
- break
- fi
- done
- if test ! -z "$JAVABIN" ; then break ; fi
- done
- if test ! -z "$JAVABIN" ; then break ; fi
- done
- fi
- if test ! -z "$JAVABIN" ; then break ; fi
-done
-
-umask 022
-if test ! -z "$JAVABIN" ; then
- sed "s|^wrapper.bin=.*$|wrapper.bin=$JAVABIN|" \
- %{jservconf}/jserv.properties > %{jservconf}/jserv.properties.new
- mv -f %{jservconf}/jserv.properties.new %{jservconf}/jserv.properties
fi
+%service -q apache restart
-#
-# Get Server Port to echo right URL below
-#
-SERVERPORT=`grep "^Port" %{httpdconf}/httpd.conf | \
- head -1 | awk '{print ":" $2}'`
-if test "$SERVERPORT" = ":80" ; then
- SERVERPORT=""
-fi
-
-#FIXME: make this i18n-aware
-
-if test ! "x$JAVABIN" = x ; then
- echo "using java VM $JAVABIN"
-else
- echo "## didn't find java or jre. Please install it and edit the"
- echo "## wrapper.bin property in %{jservconf}/jserv.properties"
-fi
-echo ""
-echo "In order to enable JServ, restart the webserver and try"
-echo " http://localhost$SERVERPORT/servlets/IsItWorking"
-echo " and"
-echo " http://localhost$SERVERPORT/jserv/"
-echo "-- ENJOY! --"
-echo ""
-
-## we hopefully may distribute SUN-jsdk.jar with jserv once ..
-echo " | NOTE that this distribution contains a fully functional"
-echo " | free jsdk replacement, see <http://www.euronet.nl/~pauls/java/servlet/>."
-echo " | If you want to use the SUN-jsdk, replace the servlet-2.0.jar"
-echo " | in the wrapper.classpath - line in the file"
-echo " | %{jservconf}/jserv.properties"
-echo " | with the SUN jsdk."
-echo " | Get it from <http://java.sun.com/products/servlet/>."
-echo " | Only JSDK 2.0 (Java Servlet Development Kit)"
-echo " | is supported (_EXACTLY_ 2.0)."
-echo ""
-
-echo "Please send comments/suggestions regarding"
-echo "this RPM to <zeller@to.com>."
-
-%preun
-# do not remove the configured stuff if we upgrade.
-# the $1 argument contains the number of packages _after_ installation.
-if [ "$1" != "0" ] ; then
- exit 0
+%postun -n apache1-mod_jserv
+if [ "$1" = "0" ]; then
+ %service -q apache restart
fi
-# Remove 'jserv' service (manual mode)
-#/etc/rc.d/init.d/jserv stop
-#/sbin/chkconfig --del jserv
-
-#
-# Find jserv related configuration settings and comment
-# them out
-#
-umask 027
-cp -f %{httpdconf}/httpd.conf %{httpdconf}/httpd.conf.rpmorig
-sed 's|.*\(Include.*%{jservconf}/jserv.conf\)|#\1|g' \
- %{httpdconf}/httpd.conf.rpmorig \
- | sed 's|^\(AddModule.*mod_jserv.c\)|#\1|g' \
- | sed 's|^\(LoadModule.*mod_jserv.so\)|#\1|g' \
- > %{httpdconf}/httpd.conf
-# remove old logs
-/bin/rm -fr %{logdir}/mod_jserv.log
-/bin/rm -fr %{logdir}/jserv.log
-
%files
%defattr(644,root,root,755)
-# mmh, we can't give %{_prefix}/docs to %doc ..
-%doc index.html LICENSE README docs jsdk-doc
-
-%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
-
-# these are just for demonstration and thus,
-# no %config-files per-se; do not install
-# them for the RPM-packet
-#%%{jservconf}/jserv.properties.default
-#%%{jservconf}/zone.properties.default
-#%%{jservconf}/jserv.conf.default
-
-%attr(600,http,http) %{jservconf}/jserv.secret.key
-#%config /etc/rc.d/init.d/jserv
-#%config /etc/logrotate.d/jserv
-#%config /etc/profile.d/jserv.sh
-
-%attr(755,root,root) %{libexecdir}/mod_jserv.so
-%{libexecdir}/ApacheJServ.jar
-
-%dir %{classesdir}
-%{classesdir}/servlet-2.0.jar
-
-%dir %{servletdir}
-%{servletdir}/Hello.java
-%{servletdir}/Hello.class
-%{servletdir}/IsItWorking.java
-%{servletdir}/IsItWorking.class
-
-# we need to have write access here
-%attr(770,root,http) %dir %{logdir}
+%doc LICENSE README
+%dir %attr(750,root,jserv) %{_sysconfdir}
+%attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key
+%attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties
+%attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties
+%attr(754,root,root) /etc/rc.d/init.d/jserv
+%attr(755,root,root) %{_sbindir}/runjserv
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/jserv
+%{_javadir}/ApacheJServ.jar
+%{_javadir}/servlet-2.0.jar
+%dir %{_datadir}/jserv
+%dir %attr(750,root,jserv) %{_datadir}/jserv/servlets
+
+%if 0
+%{_datadir}/jserv/servlets/Hello.java
+%{_datadir}/jserv/servlets/Hello.class
+%{_datadir}/jserv/servlets/IsItWorking.java
+%{_datadir}/jserv/servlets/IsItWorking.class
+%endif
+%attr(770,root,jserv) %dir %{logdir}
+
+%files -n apache1-mod_jserv
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_pkglibdir}/mod_jserv.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/80_mod_jserv.conf
+%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/jserv.secret.key
+
+%files doc
+%defattr(644,root,root,755)
+%doc index.html docs
+%doc jsdk-doc