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-base >= 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 s|@JAVA@|%{_bindir}/java|g
120 ' conf/jserv.properties.in
122 # do not load module in provided jserv.conf; we do this in httpd.conf
123 sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in
125 # we don't want gcj related deps
126 sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am
127 sed -i -e '/^SUBDIRS/s,example,,' Makefile.am
130 export JAVA_HOME="%{java_home}"
132 if [ ! -f _autotools.done.1 ]; then
138 touch _autotools.done.1
141 # prepare compilation
142 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
143 %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
146 if [ ! -d jsdk-doc ]; then
147 %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
151 cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
152 cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
156 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
159 %{!?debug:--disable-debugging} \
160 --with-apxs=%{apxs} \
161 --with-logdir=%{logdir} \
162 --with-servlets=%{_datadir}/jserv/servlets \
163 --with-java-platform=1.4 \
164 --with-JSDK=$dir/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar \
165 %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=$dir JAVAC_OPT="-source 1.4"} \
166 %{!?with_gcj:--with-javac=%{javac} --with-java=%{java} --with-jdk-home=$JAVA_HOME} \
167 %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
169 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
174 rm -rf $RPM_BUILD_ROOT
175 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{httpdconf}/conf.d,%{_javadir},%{_sbindir}}
177 install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/80_mod_jserv.conf
178 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
179 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/jserv
180 install %{SOURCE5} $RPM_BUILD_ROOT%{_sbindir}
183 DESTDIR=$RPM_BUILD_ROOT
185 # we removed java from SUBDIRS, so do it manually
187 %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
189 DESTDIR=$RPM_BUILD_ROOT
191 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
192 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
194 install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets
197 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
199 find jsdk-doc -name 'Makefile*' | xargs rm -f
200 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
203 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
204 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
207 rm -rf $RPM_BUILD_ROOT
210 %groupadd -g 154 jserv
211 %useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
214 if [ ! -s %{_sysconfdir}/jserv.secret.key ]; then
215 if [ -s %{httpdconf}/jserv.secret.key ]; then
216 cat %{httpdconf}/jserv.secret.key > %{_sysconfdir}/jserv.secret.key
218 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
219 | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
222 /sbin/chkconfig --add jserv
223 %service jserv restart "Apache JServ Daemon"
226 if [ "$1" = 0 ]; then
228 /sbin/chkconfig --del jserv
232 if [ "$1" = "0" ]; then
237 %post -n apache1-mod_jserv
238 if [ ! -s %{httpdconf}/jserv.secret.key ]; then
239 if [ -s %{_sysconfdir}/jserv.secret.key ]; then
240 cat %{_sysconfdir}/jserv.secret.key > %{httpdconf}/jserv.secret.key
242 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
243 | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
246 %service -q apache restart
248 %postun -n apache1-mod_jserv
249 if [ "$1" = "0" ]; then
250 %service -q apache restart
254 %defattr(644,root,root,755)
256 %dir %attr(750,root,jserv) %{_sysconfdir}
257 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key
258 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties
259 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties
260 %attr(754,root,root) /etc/rc.d/init.d/jserv
261 %attr(755,root,root) %{_sbindir}/runjserv
262 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/jserv
263 %{_javadir}/ApacheJServ.jar
264 %{_javadir}/servlet-2.0.jar
265 %dir %{_datadir}/jserv
266 %dir %attr(750,root,jserv) %{_datadir}/jserv/servlets
269 %{_datadir}/jserv/servlets/Hello.java
270 %{_datadir}/jserv/servlets/Hello.class
271 %{_datadir}/jserv/servlets/IsItWorking.java
272 %{_datadir}/jserv/servlets/IsItWorking.class
274 %attr(770,root,jserv) %dir %{logdir}
276 %files -n apache1-mod_jserv
277 %defattr(644,root,root,755)
278 %attr(755,root,root) %{_pkglibdir}/mod_jserv.so
279 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/80_mod_jserv.conf
280 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/jserv.secret.key
283 %defattr(644,root,root,755)