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
24 Patch0: %{name}-enable-secret.patch
25 Patch1: %{name}-ac.patch
26 Patch2: %{name}-jre-env.patch
27 Patch3: %{name}-config.patch
28 URL: http://java.apache.org/
29 BuildRequires: apache1-devel >= 1.3.9-8
30 BuildRequires: autoconf
31 BuildRequires: automake
32 BuildRequires: gettext-devel
33 BuildRequires: rpmbuild(macros) >= 1.268
34 BuildRequires: sed >= 4.0
36 BuildRequires: fastjar
37 BuildRequires: gcc-java
39 Requires: /usr/bin/gij
41 BuildRequires: java-sun
42 Requires: java-sun-jre
44 Requires(post,preun): rc-scripts
45 Requires(pre): /bin/id
46 Requires(pre): /usr/bin/getgid
47 Requires(pre): /usr/sbin/groupadd
48 Requires(pre): /usr/sbin/useradd
49 Requires: %{name} = %{version}-%{release}
50 Requires: rc-scripts >= 0.4.0.19
51 Provides: group(jserv)
55 Obsoletes: ApacheJServ-init
57 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59 %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
60 %define httpdconf %(%{apxs} -q SYSCONFDIR 2>/dev/null)
61 %define _sysconfdir /etc/jserv
62 %define logdir /var/log/jserv
63 %define _noautocompressdoc package-list
66 Apache JServ is a servlet engine, developed by the Java Apache Project
67 <http://java.apache.org/>. The Apache JServ servlet engine is written
68 in 100pc Java application, and listens for servlet requests using the
69 Apache Java protocol (AJp). Typically, these requests will originate
70 from the mod_jserv Apache module (DSO included). This package contains
71 a LGPL'ed implementation of Sun's Java Servlet API version 2.0 by Paul
72 Siegmann <http://www.euronet.nl/~pauls/java/servlet/>.
75 Apache JServ jest silnikiem serwletowym, rozwijanym przez Java Apache
76 Project <http://java.apache.org/>. Silnik serwletowy Apache JServ
77 zosta³ napisany od pocz±tku do koñca w Javie; nas³uchuje wywo³añ
78 serwletu wykorzystuj±c protokó³ Apache Java (AJp). Zazwyczaj wywo³ania
79 te pochodz± z modu³u Apache mod_jservmodule (³±cznie z DSO). Pakiet
80 ten zawiera implementacjê Java Servlet API Suna w wersji 2.0 napisan±
81 przez Paula Siegmanna (na licencji LGPL)
82 <http://www.euronet.nl/~pauls/java/servlet/>.
84 %package -n apache1-mod_jserv
85 Summary: JServ module for Apache
86 Summary(pl): Modu³ JServ dla Apache'a
87 Group: Networking/Daemons
88 Requires: apache1 >= 1.3.33-2
89 Obsoletes: ApacheJServ-auto
91 %description -n apache1-mod_jserv
92 JServ module for Apache.
94 %description -n apache1-mod_jserv -l pl
95 Modu³ JServ dla Apache'a.
98 Summary: ApacheJServ documentation
99 Summary(pl): Dokumentacja do ApacheJServ
100 Group: Development/Languages/Java
103 ApacheJserv documentation.
105 %description doc -l pl
106 Dokumentacja do ApacheJServ.
116 s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g
117 ' conf/jserv.properties.in
119 # do not load module in provided jserv.conf; we do this in httpd.conf
120 sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in
122 # we don't want gcj related deps
123 sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am
124 sed -i -e '/^SUBDIRS/s,example,,' Makefile.am
127 if [ ! -f _autotools.done.1 ]; then
133 touch _autotools.done.1
136 # prepare compilation
137 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
138 %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
141 if [ ! -d jsdk-doc ]; then
142 %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
146 cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
147 cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
151 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
153 %{!?debug:--disable-debugging} \
154 --with-apxs=%{apxs} \
155 --with-logdir=%{logdir} \
156 --with-servlets=%{_datadir}/jserv/servlets \
157 %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=`pwd` JAVAC_OPT="-source 1.4"} \
158 %{!?with_gcj:--with-javac=%{_bindir}/javac --with-java=%{_bindir}/java --with-jdk-home=%{_libdir}/java} \
159 %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
160 --with-JSDK=`pwd`/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar
162 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
167 rm -rf $RPM_BUILD_ROOT
168 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{httpdconf}/conf.d,%{_javadir}}
170 install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/80_mod_jserv.conf
171 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
172 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/jserv
175 DESTDIR=$RPM_BUILD_ROOT
177 # we removed java from SUBDIRS, so do it manually
179 %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
181 DESTDIR=$RPM_BUILD_ROOT
183 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
184 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
186 install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets
189 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
191 find jsdk-doc -name 'Makefile*' | xargs rm -f
192 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
195 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
196 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
199 rm -rf $RPM_BUILD_ROOT
202 %groupadd -g 154 jserv
203 %useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
206 if [ ! -s %{_sysconfdir}/jserv.secret.key ]; then
207 if [ -s %{httpdconf}/jserv.secret.key ]; then
208 cat %{httpdconf}/jserv.secret.key > %{_sysconfdir}/jserv.secret.key
210 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
211 | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
214 /sbin/chkconfig --add jserv
215 %service jserv restart "Apache JServ Daemon"
218 if [ "$1" = 0 ]; then
220 /sbin/chkconfig --del jserv
224 if [ "$1" = "0" ]; then
229 %post -n apache1-mod_jserv
230 if [ ! -s %{httpdconf}/jserv.secret.key ]; then
231 if [ -s %{_sysconfdir}/jserv.secret.key ]; then
232 cat %{_sysconfdir}/jserv.secret.key > %{httpdconf}/jserv.secret.key
234 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
235 | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
238 %service -q apache restart
240 %postun -n apache1-mod_jserv
241 if [ "$1" = "0" ]; then
242 %service -q apache restart
246 %defattr(644,root,root,755)
248 %dir %attr(750,root,jserv) %{_sysconfdir}
249 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key
250 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties
251 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties
252 %attr(754,root,root) /etc/rc.d/init.d/jserv
253 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/jserv
254 %{_javadir}/ApacheJServ.jar
255 %{_javadir}/servlet-2.0.jar
256 %dir %{_datadir}/jserv
257 %dir %attr(750,root,jserv) %{_datadir}/jserv/servlets
260 %{_datadir}/jserv/servlets/Hello.java
261 %{_datadir}/jserv/servlets/Hello.class
262 %{_datadir}/jserv/servlets/IsItWorking.java
263 %{_datadir}/jserv/servlets/IsItWorking.class
265 %attr(770,root,jserv) %dir %{logdir}
267 %files -n apache1-mod_jserv
268 %defattr(644,root,root,755)
269 %attr(755,root,root) %{_pkglibdir}/mod_jserv.so
270 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/80_mod_jserv.conf
271 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/jserv.secret.key
274 %defattr(644,root,root,755)