2 # - separate package for jsdk?
5 %bcond_with gcj # use GCJ instead of javac
7 %define apxs /usr/sbin/apxs1
8 %define jsdkversion 20000924
10 Summary: Servlet engine with support for the leading web server
11 Summary(pl): Silnik serwletów ze wsparciem dla wiod±cego serwera WWW
15 License: freely distributable & usable (JServ), LGPL (JSDK)
16 Group: Networking/Daemons
17 Source0: http://java.apache.org/jserv/dist/%{name}-%{version}.tar.gz
18 # Source0-md5: 6d48a1b9fcc5eea4dfebaae29ba5a485
19 Source1: http://www.euronet.nl/~pauls/java/servlet/download/classpathx_servlet-%{jsdkversion}.tar.gz
20 # Source1-md5: a81feddb91b1358f9aaed94e83eddb54
23 Patch0: %{name}-enable-secret.patch
24 Patch1: %{name}-ac.patch
25 Patch2: %{name}-jre-env.patch
26 URL: http://java.apache.org/
27 BuildRequires: apache1-devel >= 1.3.9-8
28 BuildRequires: autoconf
29 BuildRequires: automake
30 BuildRequires: gettext-devel
31 BuildRequires: rpmbuild(macros) >= 1.228
32 BuildRequires: sed >= 4.0
34 BuildRequires: fastjar
35 BuildRequires: gcc-java
37 Requires: /usr/bin/gij
39 BuildRequires: java-sun
40 Requires: java-sun-jre
42 Requires(post,preun): rc-scripts
43 Requires(pre): /bin/id
44 Requires(pre): /usr/bin/getgid
45 Requires(pre): /usr/sbin/groupadd
46 Requires(pre): /usr/sbin/useradd
47 Requires: %{name} = %{version}-%{release}
48 Requires: rc-scripts >= 0.4.0.19
49 Provides: group(jserv)
53 Obsoletes: ApacheJServ-init
54 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
56 %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
57 %define httpdconf %(%{apxs} -q SYSCONFDIR 2>/dev/null)
58 %define _sysconfdir /etc/jserv
59 %define logdir /var/log/jserv
60 %define _noautocompressdoc package-list
63 Apache JServ is a servlet engine, developed by the Java Apache Project
64 <http://java.apache.org/>. The Apache JServ servlet engine is written
65 in 100pc Java application, and listens for servlet requests using the
66 Apache Java protocol (AJp). Typically, these requests will originate
67 from the mod_jserv Apache module (DSO included). This package contains
68 a LGPL'ed implementation of Sun's Java Servlet API version 2.0 by Paul
69 Siegmann <http://www.euronet.nl/~pauls/java/servlet/>.
72 Apache JServ jest silnikiem serwletowym, rozwijanym przez Java Apache
73 Project <http://java.apache.org/>. Silnik serwletowy Apache JServ
74 zosta³ napisany od pocz±tku do koñca w Javie; nas³uchuje wywo³añ
75 serwletu wykorzystuj±c protokó³ Apache Java (AJp). Zazwyczaj wywo³ania
76 te pochodz± z modu³u Apache mod_jservmodule (³±cznie z DSO). Pakiet
77 ten zawiera implementacjê Java Servlet API Suna w wersji 2.0 napisan±
78 przez Paula Siegmanna (na licencji LGPL)
79 <http://www.euronet.nl/~pauls/java/servlet/>.
81 %package -n apache1-mod_jserv
82 Summary: JServ module for Apache
83 Summary(pl): Modu³ JServ dla Apache'a
84 Group: Networking/Daemons
85 Requires: apache1 >= 1.3.33-2
86 Obsoletes: ApacheJServ-auto
88 %description -n apache1-mod_jserv
89 JServ module for Apache.
91 %description -n apache1-mod_jserv -l pl
92 Modu³ JServ dla Apache'a.
95 Summary: ApacheJServ documentation
96 Summary(pl): Dokumentacja do ApacheJServ
97 Group: Development/Languages/Java
100 ApacheJserv documentation.
102 %description doc -l pl
103 Dokumentacja do ApacheJServ.
112 s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g
113 ' conf/jserv.properties.in
115 # do not load module in provided jserv.conf; we do this in httpd.conf
116 sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in
118 # we don't want gcj related deps
119 sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am
120 sed -i -e '/^SUBDIRS/s,example,,' Makefile.am
123 if [ ! -f _autotools.done.1 ]; then
129 touch _autotools.done.1
132 # prepare compilation
133 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
134 %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
137 if [ ! -d jsdk-doc ]; then
138 %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
142 cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
143 cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
147 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
149 %{!?debug:--disable-debugging} \
150 --with-apxs=%{apxs} \
151 --with-logdir=%{logdir} \
152 --with-servlets=%{_datadir}/jserv/servlets \
153 %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=`pwd` JAVAC_OPT="-source 1.4"} \
154 %{!?with_gcj:--with-javac=%{_bindir}/javac --with-java=%{_bindir}/java --with-jdk-home=%{_libdir}/java} \
155 %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
156 --with-JSDK=`pwd`/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar
158 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
163 rm -rf $RPM_BUILD_ROOT
164 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{httpdconf}/conf.d,%{_javadir}}
166 install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/80_mod_jserv.conf
167 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
170 DESTDIR=$RPM_BUILD_ROOT
172 # we removed java from SUBDIRS, so do it manually
174 %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
176 DESTDIR=$RPM_BUILD_ROOT
178 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
179 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
181 install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets
184 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
186 find jsdk-doc -name 'Makefile*' | xargs rm -f
187 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
190 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
191 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
194 rm -rf $RPM_BUILD_ROOT
197 %groupadd -g 154 jserv
198 %useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
201 if [ ! -s %{_sysconfdir}/jserv.secret.key ]; then
202 if [ -s %{httpdconf}/jserv.secret.key ]; then
203 cat %{httpdconf}/jserv.secret.key > %{_sysconfdir}/jserv.secret.key
205 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
206 | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
209 /sbin/chkconfig --add jserv
210 %service jserv restart "Apache JServ Daemon"
213 if [ "$1" = 0 ]; then
214 if [ -f /var/lock/subsys/jserv ]; then
215 /etc/rc.d/init.d/jserv stop 1>&2
217 /sbin/chkconfig --del jserv
221 if [ "$1" = "0" ]; then
226 %post -n apache1-mod_jserv
227 if [ ! -s %{httpdconf}/jserv.secret.key ]; then
228 if [ -s %{_sysconfdir}/jserv.secret.key ]; then
229 cat %{_sysconfdir}/jserv.secret.key > %{httpdconf}/jserv.secret.key
231 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
232 | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
235 %service -q apache restart
237 %postun -n apache1-mod_jserv
238 if [ "$1" = "0" ]; then
239 %service -q apache restart
243 %defattr(644,root,root,755)
245 %dir %attr(750,root,jserv) %{_sysconfdir}
246 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key
247 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties
248 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties
249 %attr(754,root,root) /etc/rc.d/init.d/jserv
250 %{_javadir}/ApacheJServ.jar
251 %{_javadir}/servlet-2.0.jar
252 %dir %{_datadir}/jserv
253 %dir %attr(750,root,jserv) %{_datadir}/jserv/servlets
256 %{_datadir}/jserv/servlets/Hello.java
257 %{_datadir}/jserv/servlets/Hello.class
258 %{_datadir}/jserv/servlets/IsItWorking.java
259 %{_datadir}/jserv/servlets/IsItWorking.class
261 %attr(770,root,jserv) %dir %{logdir}
263 %files -n apache1-mod_jserv
264 %defattr(644,root,root,755)
265 %attr(755,root,root) %{_pkglibdir}/mod_jserv.so
266 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/80_mod_jserv.conf
267 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/jserv.secret.key
270 %defattr(644,root,root,755)