]> git.pld-linux.org Git - packages/ApacheJServ.git/blob - ApacheJServ.spec
010b0d25e4f9ebf18044195fee9034ce667836ac
[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:        3
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 >= 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 ' conf/jserv.properties.in
120
121 # do not load module in provided jserv.conf; we do this in httpd.conf
122 sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in
123
124 # we don't want gcj related deps
125 sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am
126 sed -i -e '/^SUBDIRS/s,example,,' Makefile.am
127
128 %build
129 export JAVA_HOME="%{java_home}"
130
131 if [ ! -f _autotools.done.1 ]; then
132         %{__gettextize}
133         %{__libtoolize}
134         %{__aclocal}
135         %{__autoconf}
136         %{__automake}
137         touch _autotools.done.1
138 fi
139
140 # prepare compilation
141 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
142         %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
143 fi
144
145 if [ ! -d jsdk-doc ]; then
146         %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
147
148         # copy API-doc
149         mkdir jsdk-doc
150         cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
151         cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
152 fi
153
154 ### JSERV
155 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
156 dir=$(pwd)
157 %configure \
158         %{!?debug:--disable-debugging} \
159         --with-apxs=%{apxs} \
160         --with-logdir=%{logdir} \
161         --with-servlets=%{_datadir}/jserv/servlets \
162         --with-java-platform=1.4 \
163         --with-JSDK=$dir/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar \
164         %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=$dir JAVAC_OPT="-source 1.4"} \
165         %{!?with_gcj:--with-javac=%{javac} --with-java=%{java} --with-jdk-home=$JAVA_HOME} \
166         %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
167
168 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
169         -C src/java
170 %{__make}
171
172 %install
173 rm -rf $RPM_BUILD_ROOT
174 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{httpdconf}/conf.d,%{_javadir},%{_sbindir}}
175
176 install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/80_mod_jserv.conf
177 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
178 install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/jserv
179 install %{SOURCE5} $RPM_BUILD_ROOT%{_sbindir}
180
181 %{__make} install \
182         DESTDIR=$RPM_BUILD_ROOT
183
184 # we removed java from SUBDIRS, so do it manually
185 %{__make} install \
186         %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
187         -C src/java \
188         DESTDIR=$RPM_BUILD_ROOT
189
190 > $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key
191 > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
192
193 install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets
194
195 ### GNU JSDK-classes
196 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
197
198 find jsdk-doc -name 'Makefile*' | xargs rm -f
199 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
200
201 # duplicate
202 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
203 rm -rf $RPM_BUILD_ROOT%{_prefix}/docs
204
205 %clean
206 rm -rf $RPM_BUILD_ROOT
207
208 %pre
209 %groupadd -g 154 jserv
210 %useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
211
212 %post
213 if [ ! -s %{_sysconfdir}/jserv.secret.key ]; then
214         if [ -s %{httpdconf}/jserv.secret.key ]; then
215                 cat %{httpdconf}/jserv.secret.key > %{_sysconfdir}/jserv.secret.key
216         else
217                 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
218                         | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
219         fi
220 fi
221 /sbin/chkconfig --add jserv
222 %service jserv restart "Apache JServ Daemon"
223
224 %preun
225 if [ "$1" = 0 ]; then
226         %service jserv stop
227         /sbin/chkconfig --del jserv
228 fi
229
230 %postun
231 if [ "$1" = "0" ]; then
232         %userremove jserv
233         %groupremove jserv
234 fi
235
236 %post -n apache1-mod_jserv
237 if [ ! -s %{httpdconf}/jserv.secret.key ]; then
238         if [ -s %{_sysconfdir}/jserv.secret.key ]; then
239                 cat %{_sysconfdir}/jserv.secret.key > %{httpdconf}/jserv.secret.key
240         else
241                 dd if=/dev/urandom bs=1 count=42 2>/dev/null \
242                         | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key
243         fi
244 fi
245 %service -q apache restart
246
247 %postun -n apache1-mod_jserv
248 if [ "$1" = "0" ]; then
249         %service -q apache restart
250 fi
251
252 %files
253 %defattr(644,root,root,755)
254 %doc LICENSE README
255 %dir %attr(750,root,jserv) %{_sysconfdir}
256 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key
257 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties
258 %attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties
259 %attr(754,root,root) /etc/rc.d/init.d/jserv
260 %attr(755,root,root) %{_sbindir}/runjserv
261 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/jserv
262 %{_javadir}/ApacheJServ.jar
263 %{_javadir}/servlet-2.0.jar
264 %dir %{_datadir}/jserv
265 %dir %attr(750,root,jserv) %{_datadir}/jserv/servlets
266
267 %if 0
268 %{_datadir}/jserv/servlets/Hello.java
269 %{_datadir}/jserv/servlets/Hello.class
270 %{_datadir}/jserv/servlets/IsItWorking.java
271 %{_datadir}/jserv/servlets/IsItWorking.class
272 %endif
273 %attr(770,root,jserv) %dir %{logdir}
274
275 %files -n apache1-mod_jserv
276 %defattr(644,root,root,755)
277 %attr(755,root,root) %{_pkglibdir}/mod_jserv.so
278 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/80_mod_jserv.conf
279 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/jserv.secret.key
280
281 %files doc
282 %defattr(644,root,root,755)
283 %doc index.html docs
284 %doc jsdk-doc
This page took 0.037347 seconds and 2 git commands to generate.