]> git.pld-linux.org Git - packages/ApacheJServ.git/blob - ApacheJServ.spec
- setsid and log stdout/stderr to logfile
[packages/ApacheJServ.git] / ApacheJServ.spec
1 # TODO
2 # - separate package for jsdk?
3 #
4 # Conditional build:
5 %bcond_with     gcj     # use GCJ instead of javac
6 #
7 %define         apxs            /usr/sbin/apxs1
8 %define         jsdkversion     20000924
9 %define         mod_name        jserv
10 Summary:        Servlet engine with support for the leading web server
11 Summary(pl):    Silnik serwletów ze wsparciem dla wiod±cego serwera WWW
12 Name:           ApacheJServ
13 Version:        1.1.2
14 Release:        1
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
21 Source2:        %{name}.conf
22 Source3:        %{name}.init
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
35 %if %{with gcj}
36 BuildRequires:  fastjar
37 BuildRequires:  gcc-java
38 BuildRequires:  jdkgcj
39 Requires:       /usr/bin/gij
40 %else
41 BuildRequires:  java-sun
42 Requires:       java-sun-jre
43 %endif
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)
52 Provides:       jsdk20
53 Provides:       jserv
54 Provides:       user(jserv)
55 Obsoletes:      ApacheJServ-init
56 Obsoletes:      jserv
57 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
58
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
64
65 %description
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/>.
73
74 %description -l pl
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/>.
83
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
90
91 %description -n apache1-mod_jserv
92 JServ module for Apache.
93
94 %description -n apache1-mod_jserv -l pl
95 Modu³ JServ dla Apache'a.
96
97 %package doc
98 Summary:        ApacheJServ documentation
99 Summary(pl):    Dokumentacja do ApacheJServ
100 Group:          Development/Languages/Java
101
102 %description doc
103 ApacheJserv documentation.
104
105 %description doc -l pl
106 Dokumentacja do ApacheJServ.
107
108 %prep
109 %setup -q -a1
110 %patch0 -p0
111 %patch1 -p0
112 %patch2 -p1
113 %patch3 -p1
114
115 sed -i -e '
116         s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g
117 ' conf/jserv.properties.in
118
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
121
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
125
126 %build
127 if [ ! -f _autotools.done.1 ]; then
128         %{__gettextize}
129         %{__libtoolize}
130         %{__aclocal}
131         %{__autoconf}
132         %{__automake}
133         touch _autotools.done.1
134 fi
135
136 # prepare compilation
137 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
138         %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
139 fi
140
141 if [ ! -d jsdk-doc ]; then
142         %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
143
144         # copy API-doc
145         mkdir jsdk-doc
146         cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
147         cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
148 fi
149
150 ### JSERV
151 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
152 %configure \
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
161
162 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
163         -C src/java
164 %{__make}
165
166 %install
167 rm -rf $RPM_BUILD_ROOT
168 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{httpdconf}/conf.d,%{_javadir}}
169
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
173
174 %{__make} install \
175         DESTDIR=$RPM_BUILD_ROOT
176
177 # we removed java from SUBDIRS, so do it manually
178 %{__make} install \
179         %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
180         -C src/java \
181         DESTDIR=$RPM_BUILD_ROOT
182
183 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
184 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
185
186 install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets
187
188 ### GNU JSDK-classes
189 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
190
191 find jsdk-doc -name 'Makefile*' | xargs rm -f
192 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
193
194 # duplicate
195 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
196 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
197
198 %clean
199 rm -rf $RPM_BUILD_ROOT
200
201 %pre
202 %groupadd -g 154 jserv
203 %useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
204
205 %post
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
209         else
210                 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
211                         | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
212         fi
213 fi
214 /sbin/chkconfig --add jserv
215 %service jserv restart "Apache JServ Daemon"
216
217 %preun
218 if [ "$1" = 0 ]; then
219         %service jserv stop
220         /sbin/chkconfig --del jserv
221 fi
222
223 %postun
224 if [ "$1" = "0" ]; then
225         %userremove jserv
226         %groupremove jserv
227 fi
228
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
233         else
234                 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
235                         | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
236         fi
237 fi
238 %service -q apache restart
239
240 %postun -n apache1-mod_jserv
241 if [ "$1" = "0" ]; then
242         %service -q apache restart
243 fi
244
245 %files
246 %defattr(644,root,root,755)
247 %doc LICENSE README
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
258
259 %if 0
260 %{_datadir}/jserv/servlets/Hello.java
261 %{_datadir}/jserv/servlets/Hello.class
262 %{_datadir}/jserv/servlets/IsItWorking.java
263 %{_datadir}/jserv/servlets/IsItWorking.class
264 %endif
265 %attr(770,root,jserv) %dir %{logdir}
266
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
272
273 %files doc
274 %defattr(644,root,root,755)
275 %doc index.html docs
276 %doc jsdk-doc
This page took 0.07829 seconds and 3 git commands to generate.