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.UTF-8): 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 ExclusiveArch: i586 i686 pentium3 pentium4 athlon %{x8664}
59 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61 %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
62 %define httpdconf %(%{apxs} -q SYSCONFDIR 2>/dev/null)
63 %define _sysconfdir /etc/jserv
64 %define logdir /var/log/jserv
65 %define _noautocompressdoc package-list
68 Apache JServ is a servlet engine, developed by the Java Apache Project
69 <http://java.apache.org/>. The Apache JServ servlet engine is written
70 in 100pc Java application, and listens for servlet requests using the
71 Apache Java protocol (AJp). Typically, these requests will originate
72 from the mod_jserv Apache module (DSO included). This package contains
73 a LGPL'ed implementation of Sun's Java Servlet API version 2.0 by Paul
74 Siegmann <http://www.euronet.nl/~pauls/java/servlet/>.
76 %description -l pl.UTF-8
77 Apache JServ jest silnikiem serwletowym, rozwijanym przez Java Apache
78 Project <http://java.apache.org/>. Silnik serwletowy Apache JServ
79 został napisany od początku do końca w Javie; nasłuchuje wywołań
80 serwletu wykorzystując protokół Apache Java (AJp). Zazwyczaj wywołania
81 te pochodzą z modułu Apache mod_jservmodule (łącznie z DSO). Pakiet
82 ten zawiera implementację Java Servlet API Suna w wersji 2.0 napisaną
83 przez Paula Siegmanna (na licencji LGPL)
84 <http://www.euronet.nl/~pauls/java/servlet/>.
86 %package -n apache1-mod_jserv
87 Summary: JServ module for Apache
88 Summary(pl.UTF-8): Moduł JServ dla Apache'a
89 Group: Networking/Daemons
90 Requires: apache1 >= 1.3.33-2
91 Obsoletes: ApacheJServ-auto
93 %description -n apache1-mod_jserv
94 JServ module for Apache.
96 %description -n apache1-mod_jserv -l pl.UTF-8
97 Moduł JServ dla Apache'a.
100 Summary: ApacheJServ documentation
101 Summary(pl.UTF-8): Dokumentacja do ApacheJServ
102 Group: Development/Languages/Java
105 ApacheJserv documentation.
107 %description doc -l pl.UTF-8
108 Dokumentacja do ApacheJServ.
118 s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g
119 ' conf/jserv.properties.in
121 # do not load module in provided jserv.conf; we do this in httpd.conf
122 sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in
124 # we don't want gcj related deps
125 sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am
126 sed -i -e '/^SUBDIRS/s,example,,' Makefile.am
129 export JAVA_HOME="%{java_home}"
131 if [ ! -f _autotools.done.1 ]; then
137 touch _autotools.done.1
140 # prepare compilation
141 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
142 %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
145 if [ ! -d jsdk-doc ]; then
146 %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
150 cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
151 cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
155 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
158 %{!?debug:--disable-debugging} \
159 --with-apxs=%{apxs} \
160 --with-logdir=%{logdir} \
161 --with-servlets=%{_datadir}/jserv/servlets \
162 --with-java-platform=1.4 \
163 --with-JSDK=$dir/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar \
164 %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=$dir JAVAC_OPT="-source 1.4"} \
165 %{!?with_gcj:--with-javac=%{javac} --with-java=%{java} --with-jdk-home=$JAVA_HOME} \
166 %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
168 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
173 rm -rf $RPM_BUILD_ROOT
174 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{httpdconf}/conf.d,%{_javadir},%{_sbindir}}
176 install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/80_mod_jserv.conf
177 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
178 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/jserv
179 install %{SOURCE5} $RPM_BUILD_ROOT%{_sbindir}
182 DESTDIR=$RPM_BUILD_ROOT
184 # we removed java from SUBDIRS, so do it manually
186 %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
188 DESTDIR=$RPM_BUILD_ROOT
190 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
191 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
193 install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets
196 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
198 find jsdk-doc -name 'Makefile*' | xargs rm -f
199 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
202 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
203 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
206 rm -rf $RPM_BUILD_ROOT
209 %groupadd -g 154 jserv
210 %useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
213 if [ ! -s %{_sysconfdir}/jserv.secret.key ]; then
214 if [ -s %{httpdconf}/jserv.secret.key ]; then
215 cat %{httpdconf}/jserv.secret.key > %{_sysconfdir}/jserv.secret.key
217 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
218 | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
221 /sbin/chkconfig --add jserv
222 %service jserv restart "Apache JServ Daemon"
225 if [ "$1" = 0 ]; then
227 /sbin/chkconfig --del jserv
231 if [ "$1" = "0" ]; then
236 %post -n apache1-mod_jserv
237 if [ ! -s %{httpdconf}/jserv.secret.key ]; then
238 if [ -s %{_sysconfdir}/jserv.secret.key ]; then
239 cat %{_sysconfdir}/jserv.secret.key > %{httpdconf}/jserv.secret.key
241 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
242 | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
245 %service -q apache restart
247 %postun -n apache1-mod_jserv
248 if [ "$1" = "0" ]; then
249 %service -q apache restart
253 %defattr(644,root,root,755)
255 %dir %attr(750,root,jserv) %{_sysconfdir}
256 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key
257 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties
258 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties
259 %attr(754,root,root) /etc/rc.d/init.d/jserv
260 %attr(755,root,root) %{_sbindir}/runjserv
261 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/jserv
262 %{_javadir}/ApacheJServ.jar
263 %{_javadir}/servlet-2.0.jar
264 %dir %{_datadir}/jserv
265 %dir %attr(750,root,jserv) %{_datadir}/jserv/servlets
268 %{_datadir}/jserv/servlets/Hello.java
269 %{_datadir}/jserv/servlets/Hello.class
270 %{_datadir}/jserv/servlets/IsItWorking.java
271 %{_datadir}/jserv/servlets/IsItWorking.class
273 %attr(770,root,jserv) %dir %{logdir}
275 %files -n apache1-mod_jserv
276 %defattr(644,root,root,755)
277 %attr(755,root,root) %{_pkglibdir}/mod_jserv.so
278 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/80_mod_jserv.conf
279 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/jserv.secret.key
282 %defattr(644,root,root,755)