]> git.pld-linux.org Git - packages/ApacheJServ.git/blob - ApacheJServ.spec
- make just two packages: apache module and jserv runner
[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:        0.68
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 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
33 %if %{with gcj}
34 BuildRequires:  fastjar
35 BuildRequires:  gcc-java
36 BuildRequires:  jdkgcj
37 Requires:       /usr/bin/gij
38 %else
39 BuildRequires:  java-sun
40 Requires:       java-sun-jre
41 %endif
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}
48 Requires:       rc-scripts
49 Provides:       group(jserv)
50 Provides:       jsdk20
51 Provides:       jserv
52 Provides:       user(jserv)
53 Obsoletes:      ApacheJServ-init
54 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
55
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
62
63 %description
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/>.
71
72 %description -l pl
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/>.
81
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
88
89 %description -n apache1-mod_jserv
90 JServ module for Apache.
91
92 %description -n apache1-mod_jserv -l pl
93 Modu³ JServ dla Apache'a.
94
95 %package doc
96 Summary:        ApacheJServ documentation
97 Summary(pl):    Dokumentacja do ApacheJServ
98 Group:          Development/Languages/Java
99
100 %description doc
101 ApacheJserv documentation.
102
103 %description doc -l pl
104 Dokumentacja do ApacheJServ.
105
106 %prep
107 %setup -q -a1
108 %patch0 -p0
109 %patch1 -p0
110 %patch2 -p1
111
112 sed -i -e '
113         s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g
114 ' conf/jserv.properties.in
115
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
118
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
122
123 %build
124 if [ ! -f _autotools.done.1 ]; then
125         %{__gettextize}
126         %{__libtoolize}
127         %{__aclocal}
128         %{__autoconf}
129         %{__automake}
130         touch _autotools.done.1
131 fi
132
133 # prepare compilation
134 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
135         %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
136 fi
137
138 if [ ! -d jsdk-doc ]; then
139         %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
140
141         # copy API-doc
142         mkdir jsdk-doc
143         cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
144         cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
145 fi
146
147 ### JSERV
148 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
149 %configure \
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
158
159 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
160         -C src/java
161 %{__make}
162
163 %install
164 rm -rf $RPM_BUILD_ROOT
165 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{httpdconf}/conf.d,%{_javadir}}
166
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
169
170 %{__make} install \
171         DESTDIR=$RPM_BUILD_ROOT
172
173 # we removed java from SUBDIRS, so do it manually
174 %{__make} install \
175         %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
176         -C src/java \
177         DESTDIR=$RPM_BUILD_ROOT
178
179 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
180 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
181
182 ### GNU JSDK-classes
183 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
184
185 find jsdk-doc -name 'Makefile*' | xargs rm -f
186 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
187
188 # duplicate
189 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
190 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
191
192 %clean
193 rm -rf $RPM_BUILD_ROOT
194
195 %pre
196 %groupadd -g 154 jserv
197 %useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
198
199 %post
200 set -x
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
204         else
205                 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
206                         | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
207         fi
208 fi
209 /sbin/chkconfig --add jserv
210 %service jserv restart "Apache JServ Daemon"
211
212 %preun
213 if [ "$1" = 0 ]; then
214         if [ -f /var/lock/subsys/jserv ]; then
215                 /etc/rc.d/init.d/jserv stop 1>&2
216         fi
217         /sbin/chkconfig --del jserv
218 fi
219
220 %postun
221 if [ "$1" = "0" ]; then
222         %userremove jserv
223         %groupremove jserv
224 fi
225
226 %post -n apache1-mod_jserv
227 set -x
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
231         else
232                 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
233                         | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
234         fi
235 fi
236 %service -q apache restart
237
238 %postun -n apache1-mod_jserv
239 if [ "$1" = "0" ]; then
240         %service -q apache restart
241 fi
242
243 %files
244 %defattr(644,root,root,755)
245 %doc LICENSE README
246 %dir %{_sysconfdir}
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
253
254 %if 0
255 %dir %{servletdir}
256 %{servletdir}/Hello.java
257 %{servletdir}/Hello.class
258 %{servletdir}/IsItWorking.java
259 %{servletdir}/IsItWorking.class
260 %endif
261
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}
268
269 %files doc
270 %defattr(644,root,root,755)
271 %doc index.html docs
272 %doc jsdk-doc
This page took 0.071152 seconds and 3 git commands to generate.