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 Source4: %{name}.sysconfig
25 Patch0: %{name}-enable-secret.patch
26 Patch1: %{name}-ac.patch
27 Patch2: %{name}-jre-env.patch
28 Patch3: %{name}-config.patch
29 URL: http://java.apache.org/
30 BuildRequires: apache1-devel >= 1.3.9-8
31 BuildRequires: autoconf
32 BuildRequires: automake
33 BuildRequires: gettext-devel
34 BuildRequires: rpmbuild(macros) >= 1.268
35 BuildRequires: sed >= 4.0
37 BuildRequires: fastjar
38 BuildRequires: gcc-java
40 Requires: /usr/bin/gij
42 BuildRequires: java-sun
43 Requires: java-sun-jre
45 Requires(post,preun): rc-scripts
46 Requires(pre): /bin/id
47 Requires(pre): /usr/bin/getgid
48 Requires(pre): /usr/sbin/groupadd
49 Requires(pre): /usr/sbin/useradd
50 Requires: %{name} = %{version}-%{release}
51 Requires: rc-scripts >= 0.4.0.19
52 Provides: group(jserv)
56 Obsoletes: ApacheJServ-init
58 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60 %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
61 %define httpdconf %(%{apxs} -q SYSCONFDIR 2>/dev/null)
62 %define _sysconfdir /etc/jserv
63 %define logdir /var/log/jserv
64 %define _noautocompressdoc package-list
67 Apache JServ is a servlet engine, developed by the Java Apache Project
68 <http://java.apache.org/>. The Apache JServ servlet engine is written
69 in 100pc Java application, and listens for servlet requests using the
70 Apache Java protocol (AJp). Typically, these requests will originate
71 from the mod_jserv Apache module (DSO included). This package contains
72 a LGPL'ed implementation of Sun's Java Servlet API version 2.0 by Paul
73 Siegmann <http://www.euronet.nl/~pauls/java/servlet/>.
76 Apache JServ jest silnikiem serwletowym, rozwijanym przez Java Apache
77 Project <http://java.apache.org/>. Silnik serwletowy Apache JServ
78 zosta³ napisany od pocz±tku do koñca w Javie; nas³uchuje wywo³añ
79 serwletu wykorzystuj±c protokó³ Apache Java (AJp). Zazwyczaj wywo³ania
80 te pochodz± z modu³u Apache mod_jservmodule (³±cznie z DSO). Pakiet
81 ten zawiera implementacjê Java Servlet API Suna w wersji 2.0 napisan±
82 przez Paula Siegmanna (na licencji LGPL)
83 <http://www.euronet.nl/~pauls/java/servlet/>.
85 %package -n apache1-mod_jserv
86 Summary: JServ module for Apache
87 Summary(pl): Modu³ JServ dla Apache'a
88 Group: Networking/Daemons
89 Requires: apache1 >= 1.3.33-2
90 Obsoletes: ApacheJServ-auto
92 %description -n apache1-mod_jserv
93 JServ module for Apache.
95 %description -n apache1-mod_jserv -l pl
96 Modu³ JServ dla Apache'a.
99 Summary: ApacheJServ documentation
100 Summary(pl): Dokumentacja do ApacheJServ
101 Group: Development/Languages/Java
104 ApacheJserv documentation.
106 %description doc -l pl
107 Dokumentacja do ApacheJServ.
117 s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g
118 ' conf/jserv.properties.in
120 # do not load module in provided jserv.conf; we do this in httpd.conf
121 sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in
123 # we don't want gcj related deps
124 sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am
125 sed -i -e '/^SUBDIRS/s,example,,' Makefile.am
128 export JAVA_HOME="%{java_home}"
130 if [ ! -f _autotools.done.1 ]; then
136 touch _autotools.done.1
139 # prepare compilation
140 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
141 %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
144 if [ ! -d jsdk-doc ]; then
145 %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
149 cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
150 cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
154 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
157 %{!?debug:--disable-debugging} \
158 --with-apxs=%{apxs} \
159 --with-logdir=%{logdir} \
160 --with-servlets=%{_datadir}/jserv/servlets \
161 --with-java-platform=1.4 \
162 --with-JSDK=$dir/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar \
163 %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=$dir JAVAC_OPT="-source 1.4"} \
164 %{!?with_gcj:--with-javac=%{javac} --with-java=%{java} --with-jdk-home=$JAVA_HOME} \
165 %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
167 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
172 rm -rf $RPM_BUILD_ROOT
173 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{httpdconf}/conf.d,%{_javadir},%{_sbindir}}
175 install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/80_mod_jserv.conf
176 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
177 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/jserv
178 install %{SOURCE5} $RPM_BUILD_ROOT%{_sbindir}
181 DESTDIR=$RPM_BUILD_ROOT
183 # we removed java from SUBDIRS, so do it manually
185 %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
187 DESTDIR=$RPM_BUILD_ROOT
189 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
190 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
192 install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets
195 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
197 find jsdk-doc -name 'Makefile*' | xargs rm -f
198 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
201 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
202 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
205 rm -rf $RPM_BUILD_ROOT
208 %groupadd -g 154 jserv
209 %useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
212 if [ ! -s %{_sysconfdir}/jserv.secret.key ]; then
213 if [ -s %{httpdconf}/jserv.secret.key ]; then
214 cat %{httpdconf}/jserv.secret.key > %{_sysconfdir}/jserv.secret.key
216 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
217 | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
220 /sbin/chkconfig --add jserv
221 %service jserv restart "Apache JServ Daemon"
224 if [ "$1" = 0 ]; then
226 /sbin/chkconfig --del jserv
230 if [ "$1" = "0" ]; then
235 %post -n apache1-mod_jserv
236 if [ ! -s %{httpdconf}/jserv.secret.key ]; then
237 if [ -s %{_sysconfdir}/jserv.secret.key ]; then
238 cat %{_sysconfdir}/jserv.secret.key > %{httpdconf}/jserv.secret.key
240 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
241 | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
244 %service -q apache restart
246 %postun -n apache1-mod_jserv
247 if [ "$1" = "0" ]; then
248 %service -q apache restart
252 %defattr(644,root,root,755)
254 %dir %attr(750,root,jserv) %{_sysconfdir}
255 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key
256 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties
257 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties
258 %attr(754,root,root) /etc/rc.d/init.d/jserv
259 %attr(755,root,root) %{_sbindir}/runjserv
260 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/jserv
261 %{_javadir}/ApacheJServ.jar
262 %{_javadir}/servlet-2.0.jar
263 %dir %{_datadir}/jserv
264 %dir %attr(750,root,jserv) %{_datadir}/jserv/servlets
267 %{_datadir}/jserv/servlets/Hello.java
268 %{_datadir}/jserv/servlets/Hello.class
269 %{_datadir}/jserv/servlets/IsItWorking.java
270 %{_datadir}/jserv/servlets/IsItWorking.class
272 %attr(770,root,jserv) %dir %{logdir}
274 %files -n apache1-mod_jserv
275 %defattr(644,root,root,755)
276 %attr(755,root,root) %{_pkglibdir}/mod_jserv.so
277 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/80_mod_jserv.conf
278 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/jserv.secret.key
281 %defattr(644,root,root,755)