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