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}
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 servletdir %{_datadir}/jserv/servlets
61 %define _noautocompressdoc package-list
64 Apache JServ is a servlet engine, developed by the Java Apache Project
65 <http://java.apache.org/>. The Apache JServ servlet engine is written
66 in 100pc Java application, and listens for servlet requests using the
67 Apache Java protocol (AJp). Typically, these requests will originate
68 from the mod_jserv Apache module (DSO included). This package contains
69 a LGPL'ed implementation of Sun's Java Servlet API version 2.0 by Paul
70 Siegmann <http://www.euronet.nl/~pauls/java/servlet/>.
73 Apache JServ jest silnikiem serwletowym, rozwijanym przez Java Apache
74 Project <http://java.apache.org/>. Silnik serwletowy Apache JServ
75 zosta³ napisany od pocz±tku do koñca w Javie; nas³uchuje wywo³añ
76 serwletu wykorzystuj±c protokó³ Apache Java (AJp). Zazwyczaj wywo³ania
77 te pochodz± z modu³u Apache mod_jservmodule (³±cznie z DSO). Pakiet
78 ten zawiera implementacjê Java Servlet API Suna w wersji 2.0 napisan±
79 przez Paula Siegmanna (na licencji LGPL)
80 <http://www.euronet.nl/~pauls/java/servlet/>.
82 %package -n apache1-mod_jserv
83 Summary: JServ module for Apache
84 Summary(pl): Modu³ JServ dla Apache'a
85 Group: Networking/Daemons
86 Requires: apache1 >= 1.3.33-2
87 Obsoletes: ApacheJServ-auto
89 %description -n apache1-mod_jserv
90 JServ module for Apache.
92 %description -n apache1-mod_jserv -l pl
93 Modu³ JServ dla Apache'a.
96 Summary: ApacheJServ documentation
97 Summary(pl): Dokumentacja do ApacheJServ
98 Group: Development/Languages/Java
101 ApacheJserv documentation.
103 %description doc -l pl
104 Dokumentacja do ApacheJServ.
113 s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g
114 ' conf/jserv.properties.in
116 # do not load module in provided jserv.conf; we do this in httpd.conf
117 sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in
119 # we don't want gcj related deps
120 sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am
121 sed -i -e '/^SUBDIRS/s,example,,' Makefile.am
124 if [ ! -f _autotools.done.1 ]; then
130 touch _autotools.done.1
133 # prepare compilation
134 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
135 %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
138 if [ ! -d jsdk-doc ]; then
139 %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
143 cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
144 cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
148 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
150 %{!?debug:--disable-debugging} \
151 --with-apxs=%{apxs} \
152 --with-logdir=%{logdir} \
153 --with-servlets=%{servletdir} \
154 %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=`pwd` JAVAC_OPT="-source 1.4"} \
155 %{!?with_gcj:--with-javac=%{_bindir}/javac --with-java=%{_bindir}/java --with-jdk-home=%{_libdir}/java} \
156 %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
157 --with-JSDK=`pwd`/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar
159 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
164 rm -rf $RPM_BUILD_ROOT
165 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{httpdconf}/conf.d,%{_javadir}}
167 install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/80_mod_jserv.conf
168 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
171 DESTDIR=$RPM_BUILD_ROOT
173 # we removed java from SUBDIRS, so do it manually
175 %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
177 DESTDIR=$RPM_BUILD_ROOT
179 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
180 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
183 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
185 find jsdk-doc -name 'Makefile*' | xargs rm -f
186 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
189 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
190 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
193 rm -rf $RPM_BUILD_ROOT
196 %groupadd -g 154 jserv
197 %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
228 if [ ! -s %{httpdconf}/jserv.secret.key ]; then
229 if [ -s %{_sysconfdir}/jserv.secret.key ]; then
230 cat %{_sysconfdir}/jserv.secret.key > %{httpdconf}/jserv.secret.key
232 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
233 | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
236 %service -q apache restart
238 %postun -n apache1-mod_jserv
239 if [ "$1" = "0" ]; then
240 %service -q apache restart
244 %defattr(644,root,root,755)
247 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key
248 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties
249 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties
250 %attr(754,root,root) /etc/rc.d/init.d/jserv
251 %{_javadir}/ApacheJServ.jar
252 %{_javadir}/servlet-2.0.jar
256 %{servletdir}/Hello.java
257 %{servletdir}/Hello.class
258 %{servletdir}/IsItWorking.java
259 %{servletdir}/IsItWorking.class
262 %files -n apache1-mod_jserv
263 %defattr(644,root,root,755)
264 %attr(755,root,root) %{_pkglibdir}/mod_jserv.so
265 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/80_mod_jserv.conf
266 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/jserv.secret.key
267 %attr(770,root,http) %dir %{logdir}
270 %defattr(644,root,root,755)