]> git.pld-linux.org Git - packages/ApacheJServ.git/blob - ApacheJServ.spec
- force java path to wrapper; rel 4
[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.UTF-8):      Silnik serwletów ze wsparciem dla wiodącego serwera WWW
12 Name:           ApacheJServ
13 Version:        1.1.2
14 Release:        4
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 ExclusiveArch:  i586 i686 pentium3 pentium4 athlon %{x8664}
59 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60
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
66
67 %description
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/>.
75
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/>.
85
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
92
93 %description -n apache1-mod_jserv
94 JServ module for Apache.
95
96 %description -n apache1-mod_jserv -l pl.UTF-8
97 Moduł JServ dla Apache'a.
98
99 %package doc
100 Summary:        ApacheJServ documentation
101 Summary(pl.UTF-8):      Dokumentacja do ApacheJServ
102 Group:          Development/Languages/Java
103
104 %description doc
105 ApacheJserv documentation.
106
107 %description doc -l pl.UTF-8
108 Dokumentacja do ApacheJServ.
109
110 %prep
111 %setup -q -a1
112 %patch0 -p0
113 %patch1 -p0
114 %patch2 -p1
115 %patch3 -p1
116
117 sed -i -e '
118         s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g
119         s|@JAVA@|%{_bindir}/java|g
120 ' conf/jserv.properties.in
121
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
124
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
128
129 %build
130 export JAVA_HOME="%{java_home}"
131
132 if [ ! -f _autotools.done.1 ]; then
133         %{__gettextize}
134         %{__libtoolize}
135         %{__aclocal}
136         %{__autoconf}
137         %{__automake}
138         touch _autotools.done.1
139 fi
140
141 # prepare compilation
142 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
143         %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
144 fi
145
146 if [ ! -d jsdk-doc ]; then
147         %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
148
149         # copy API-doc
150         mkdir jsdk-doc
151         cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
152         cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
153 fi
154
155 ### JSERV
156 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
157 dir=$(pwd)
158 %configure \
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} \
168
169 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
170         -C src/java
171 %{__make}
172
173 %install
174 rm -rf $RPM_BUILD_ROOT
175 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{httpdconf}/conf.d,%{_javadir},%{_sbindir}}
176
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}
181
182 %{__make} install \
183         DESTDIR=$RPM_BUILD_ROOT
184
185 # we removed java from SUBDIRS, so do it manually
186 %{__make} install \
187         %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
188         -C src/java \
189         DESTDIR=$RPM_BUILD_ROOT
190
191 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
192 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
193
194 install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets
195
196 ### GNU JSDK-classes
197 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
198
199 find jsdk-doc -name 'Makefile*' | xargs rm -f
200 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
201
202 # duplicate
203 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
204 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
205
206 %clean
207 rm -rf $RPM_BUILD_ROOT
208
209 %pre
210 %groupadd -g 154 jserv
211 %useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
212
213 %post
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
217         else
218                 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
219                         | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
220         fi
221 fi
222 /sbin/chkconfig --add jserv
223 %service jserv restart "Apache JServ Daemon"
224
225 %preun
226 if [ "$1" = 0 ]; then
227         %service jserv stop
228         /sbin/chkconfig --del jserv
229 fi
230
231 %postun
232 if [ "$1" = "0" ]; then
233         %userremove jserv
234         %groupremove jserv
235 fi
236
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
241         else
242                 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
243                         | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
244         fi
245 fi
246 %service -q apache restart
247
248 %postun -n apache1-mod_jserv
249 if [ "$1" = "0" ]; then
250         %service -q apache restart
251 fi
252
253 %files
254 %defattr(644,root,root,755)
255 %doc LICENSE README
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
267
268 %if 0
269 %{_datadir}/jserv/servlets/Hello.java
270 %{_datadir}/jserv/servlets/Hello.class
271 %{_datadir}/jserv/servlets/IsItWorking.java
272 %{_datadir}/jserv/servlets/IsItWorking.class
273 %endif
274 %attr(770,root,jserv) %dir %{logdir}
275
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
281
282 %files doc
283 %defattr(644,root,root,755)
284 %doc index.html docs
285 %doc jsdk-doc
This page took 0.089869 seconds and 4 git commands to generate.