]> git.pld-linux.org Git - packages/ApacheJServ.git/blob - ApacheJServ.spec
- builds on amd64 with java-sun
[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.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 Source5:        runjserv
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
36 %if %{with gcj}
37 BuildRequires:  fastjar
38 BuildRequires:  gcc-java
39 BuildRequires:  jdkgcj
40 Requires:       /usr/bin/gij
41 %else
42 BuildRequires:  java-sun
43 Requires:       java-sun-jre
44 %endif
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)
53 Provides:       jsdk20
54 Provides:       jserv
55 Provides:       user(jserv)
56 Obsoletes:      ApacheJServ-init
57 Obsoletes:      jserv
58 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59
60 %define         _pkglibdir      %(%{apxs} -q LIBEXECDIR 2>/dev/null)
61 %define         httpdconf       %(%{apxs} -q SYSCONFDIR 2>/dev/null)
62 %define         _sysconfdir     /etc/jserv
63 %define         logdir          /var/log/jserv
64 %define         _noautocompressdoc  package-list
65
66 %description
67 Apache JServ is a servlet engine, developed by the Java Apache Project
68 <http://java.apache.org/>. The Apache JServ servlet engine is written
69 in 100pc Java application, and listens for servlet requests using the
70 Apache Java protocol (AJp). Typically, these requests will originate
71 from the mod_jserv Apache module (DSO included). This package contains
72 a LGPL'ed implementation of Sun's Java Servlet API version 2.0 by Paul
73 Siegmann <http://www.euronet.nl/~pauls/java/servlet/>.
74
75 %description -l pl
76 Apache JServ jest silnikiem serwletowym, rozwijanym przez Java Apache
77 Project <http://java.apache.org/>. Silnik serwletowy Apache JServ
78 zosta³ napisany od pocz±tku do koñca w Javie; nas³uchuje wywo³añ
79 serwletu wykorzystuj±c protokó³ Apache Java (AJp). Zazwyczaj wywo³ania
80 te pochodz± z modu³u Apache mod_jservmodule (³±cznie z DSO). Pakiet
81 ten zawiera implementacjê Java Servlet API Suna w wersji 2.0 napisan±
82 przez Paula Siegmanna (na licencji LGPL)
83 <http://www.euronet.nl/~pauls/java/servlet/>.
84
85 %package -n apache1-mod_jserv
86 Summary:        JServ module for Apache
87 Summary(pl):    Modu³ JServ dla Apache'a
88 Group:          Networking/Daemons
89 Requires:       apache1 >= 1.3.33-2
90 Obsoletes:      ApacheJServ-auto
91
92 %description -n apache1-mod_jserv
93 JServ module for Apache.
94
95 %description -n apache1-mod_jserv -l pl
96 Modu³ JServ dla Apache'a.
97
98 %package doc
99 Summary:        ApacheJServ documentation
100 Summary(pl):    Dokumentacja do ApacheJServ
101 Group:          Development/Languages/Java
102
103 %description doc
104 ApacheJserv documentation.
105
106 %description doc -l pl
107 Dokumentacja do ApacheJServ.
108
109 %prep
110 %setup -q -a1
111 %patch0 -p0
112 %patch1 -p0
113 %patch2 -p1
114 %patch3 -p1
115
116 sed -i -e '
117         s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g
118 ' conf/jserv.properties.in
119
120 # do not load module in provided jserv.conf; we do this in httpd.conf
121 sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in
122
123 # we don't want gcj related deps
124 sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am
125 sed -i -e '/^SUBDIRS/s,example,,' Makefile.am
126
127 %build
128 export JAVA_HOME="%{java_home}"
129
130 if [ ! -f _autotools.done.1 ]; then
131         %{__gettextize}
132         %{__libtoolize}
133         %{__aclocal}
134         %{__autoconf}
135         %{__automake}
136         touch _autotools.done.1
137 fi
138
139 # prepare compilation
140 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
141         %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
142 fi
143
144 if [ ! -d jsdk-doc ]; then
145         %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
146
147         # copy API-doc
148         mkdir jsdk-doc
149         cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
150         cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
151 fi
152
153 ### JSERV
154 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
155 dir=$(pwd)
156 %configure \
157         %{!?debug:--disable-debugging} \
158         --with-apxs=%{apxs} \
159         --with-logdir=%{logdir} \
160         --with-servlets=%{_datadir}/jserv/servlets \
161         --with-java-platform=1.4 \
162         --with-JSDK=$dir/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar \
163         %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=$dir JAVAC_OPT="-source 1.4"} \
164         %{!?with_gcj:--with-javac=%{javac} --with-java=%{java} --with-jdk-home=$JAVA_HOME} \
165         %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
166
167 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
168         -C src/java
169 %{__make}
170
171 %install
172 rm -rf $RPM_BUILD_ROOT
173 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{httpdconf}/conf.d,%{_javadir},%{_sbindir}}
174
175 install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/80_mod_jserv.conf
176 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
177 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/jserv
178 install %{SOURCE5} $RPM_BUILD_ROOT%{_sbindir}
179
180 %{__make} install \
181         DESTDIR=$RPM_BUILD_ROOT
182
183 # we removed java from SUBDIRS, so do it manually
184 %{__make} install \
185         %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
186         -C src/java \
187         DESTDIR=$RPM_BUILD_ROOT
188
189 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
190 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
191
192 install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets
193
194 ### GNU JSDK-classes
195 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
196
197 find jsdk-doc -name 'Makefile*' | xargs rm -f
198 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
199
200 # duplicate
201 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
202 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
203
204 %clean
205 rm -rf $RPM_BUILD_ROOT
206
207 %pre
208 %groupadd -g 154 jserv
209 %useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
210
211 %post
212 if [ ! -s %{_sysconfdir}/jserv.secret.key ]; then
213         if [ -s %{httpdconf}/jserv.secret.key ]; then
214                 cat %{httpdconf}/jserv.secret.key > %{_sysconfdir}/jserv.secret.key
215         else
216                 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
217                         | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
218         fi
219 fi
220 /sbin/chkconfig --add jserv
221 %service jserv restart "Apache JServ Daemon"
222
223 %preun
224 if [ "$1" = 0 ]; then
225         %service jserv stop
226         /sbin/chkconfig --del jserv
227 fi
228
229 %postun
230 if [ "$1" = "0" ]; then
231         %userremove jserv
232         %groupremove jserv
233 fi
234
235 %post -n apache1-mod_jserv
236 if [ ! -s %{httpdconf}/jserv.secret.key ]; then
237         if [ -s %{_sysconfdir}/jserv.secret.key ]; then
238                 cat %{_sysconfdir}/jserv.secret.key > %{httpdconf}/jserv.secret.key
239         else
240                 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
241                         | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
242         fi
243 fi
244 %service -q apache restart
245
246 %postun -n apache1-mod_jserv
247 if [ "$1" = "0" ]; then
248         %service -q apache restart
249 fi
250
251 %files
252 %defattr(644,root,root,755)
253 %doc LICENSE README
254 %dir %attr(750,root,jserv) %{_sysconfdir}
255 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key
256 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties
257 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties
258 %attr(754,root,root) /etc/rc.d/init.d/jserv
259 %attr(755,root,root) %{_sbindir}/runjserv
260 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/jserv
261 %{_javadir}/ApacheJServ.jar
262 %{_javadir}/servlet-2.0.jar
263 %dir %{_datadir}/jserv
264 %dir %attr(750,root,jserv) %{_datadir}/jserv/servlets
265
266 %if 0
267 %{_datadir}/jserv/servlets/Hello.java
268 %{_datadir}/jserv/servlets/Hello.class
269 %{_datadir}/jserv/servlets/IsItWorking.java
270 %{_datadir}/jserv/servlets/IsItWorking.class
271 %endif
272 %attr(770,root,jserv) %dir %{logdir}
273
274 %files -n apache1-mod_jserv
275 %defattr(644,root,root,755)
276 %attr(755,root,root) %{_pkglibdir}/mod_jserv.so
277 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/80_mod_jserv.conf
278 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/jserv.secret.key
279
280 %files doc
281 %defattr(644,root,root,755)
282 %doc index.html docs
283 %doc jsdk-doc
This page took 1.247879 seconds and 4 git commands to generate.