]> git.pld-linux.org Git - packages/ApacheJServ.git/blob - ApacheJServ.spec
- setup daemon process
[packages/ApacheJServ.git] / ApacheJServ.spec
1 # TODO
2 # - separate package for jsdk?
3 #
4 # Conditional build:
5 %bcond_with     gcj     # use javac instead of GCJ
6 #
7 %define         apxs            /usr/sbin/apxs1
8 %define         jsdkversion     20000924
9 Summary:        Servlet engine with support for the leading web server
10 Summary(pl):    Silnik serwletów ze wsparciem dla wiod±cego serwera WWW
11 Name:           ApacheJServ
12 Version:        1.1.2
13 Release:        0.33
14 License:        freely distributable & usable (JServ), LGPL (JSDK)
15 Group:          Networking/Daemons
16 Source0:        http://java.apache.org/jserv/dist/%{name}-%{version}.tar.gz
17 # Source0-md5:  6d48a1b9fcc5eea4dfebaae29ba5a485
18 Source1:        http://www.euronet.nl/~pauls/java/servlet/download/classpathx_servlet-%{jsdkversion}.tar.gz
19 # Source1-md5:  a81feddb91b1358f9aaed94e83eddb54
20 Source2:        %{name}.conf
21 Source3:        %{name}.init
22 Patch0:         %{name}-enable-secret.patch
23 Patch1:         %{name}-ac.patch
24 Patch2:         %{name}-jre-env.patch
25 URL:            http://java.apache.org/
26 BuildRequires:  apache1-devel >= 1.3.9-8
27 BuildRequires:  rpmbuild(macros) >= 1.228
28 BuildRequires:  sed >= 4.0
29 %if %{with gcj}
30 BuildRequires:  gcc-java
31 BuildRequires:  fastjar
32 Requires:       /usr/bin/gij
33 %else
34 BuildRequires:  jdk
35 %endif
36 Provides:       jserv
37 Provides:       jsdk20
38 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
39
40 %define         _pkglibdir      %(%{apxs} -q LIBEXECDIR 2>/dev/null)
41 %define         httpdconf       %(%{apxs} -q SYSCONFDIR 2>/dev/null)
42 %define         _sysconfdir     /etc/jserv
43 %define         logdir          /var/log/jserv
44 %define         servletdir      %{_datadir}/jserv/servlets
45 %define         _noautocompressdoc  package-list
46
47 %description
48 Apache JServ is a servlet engine, developed by the Java Apache Project
49 <http://java.apache.org/>. The Apache JServ servlet engine is written
50 in 100pc Java application, and listens for servlet requests using the
51 Apache Java protocol (AJp). Typically, these requests will originate
52 from the mod_jserv Apache module (DSO included). This package contains
53 a LGPL'ed implementation of Sun's Java Servlet API version 2.0 by Paul
54 Siegmann <http://www.euronet.nl/~pauls/java/servlet/>.
55
56 %description -l pl
57 Apache JServ jest silnikiem serwletowym, rozwijanym przez Java Apache
58 Project <http://java.apache.org/>. Silnik serwletowy Apache JServ
59 zosta³ napisany od pocz±tku do koñca w Javie; nas³uchuje wywo³añ
60 serwletu wykorzystuj±c protokó³ Apache Java (AJp). Zazwyczaj wywo³ania
61 te pochodz± z modu³u Apache mod_jservmodule (³±cznie z DSO). Pakiet
62 ten zawiera implementacjê Java Servlet API Suna w wersji 2.0 napisan±
63 przez Paula Siegmanna (na licencji LGPL)
64 <http://www.euronet.nl/~pauls/java/servlet/>.
65
66 %package -n apache1-mod_jserv
67 Summary:        JServ module for Apache
68 Group:          Networking/Daemons
69 Requires:       %{name} = %{version}-%{release}
70 Requires:       apache1 >= 1.3.33-2
71
72 %description -n apache1-mod_jserv
73 Apache JServ apache module.
74
75 %package init
76 Summary:        ApacheJServ initscript
77 Summary(pl):    Skrypt startowy ApacheJServ
78 Group:          Development/Languages/Java
79 Requires:       %{name} = %{version}-%{release}
80 Requires(pre):  /bin/id
81 Requires(pre):  /usr/bin/getgid
82 Requires(pre):  /usr/sbin/useradd
83 Requires(pre):  /usr/sbin/groupadd
84 Requires(post,preun):   rc-scripts
85
86 %description init
87 JServ initscript for standalone mode.
88
89 %description init -l pl
90 Skrypt startowy JServ dla trybu samodzielnego.
91
92 %package doc
93 Summary:        ApacheJServ documentation
94 Summary(pl):    Dokumentacja do ApacheJServ
95 Group:          Development/Languages/Java
96
97 %description doc
98 ApacheJserv documentation.
99
100 %description doc -l pl
101 Dokumentacja do ApacheJServ.
102
103 %prep
104 %setup -q -a1
105 %patch0 -p0
106 %patch1 -p0
107 %patch2 -p1
108
109 sed -i -e '
110         s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g
111 ' conf/jserv.properties.in
112
113 # do not load module in provided jserv.conf; we do this in httpd.conf
114 sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in
115
116 # we don't want gcj related deps
117 sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am
118 sed -i -e '/^SUBDIRS/s,example,,' Makefile.am
119
120 %build
121 if [ ! -f _autotools.done.1 ]; then
122         %{__gettextize}
123         %{__libtoolize}
124         %{__aclocal}
125         %{__autoconf}
126         %{__automake}
127         touch _autotools.done.1
128 fi
129
130 # prepare compilation
131 if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then
132         %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0
133 fi
134
135 if [ ! -d jsdk-doc ]; then
136         %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc
137
138         # copy API-doc
139         mkdir jsdk-doc
140         cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc
141         cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc
142 fi
143
144 ### JSERV
145 CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}"
146 %configure \
147         %{!?debug:--disable-debugging} \
148         --with-apxs=%{apxs} \
149         --with-logdir=%{logdir} \
150         --with-servlets=%{servletdir} \
151         %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=`pwd` JAVAC_OPT="-source 1.4"} \
152     %{!?with_gcj:--with-javac=%{_bindir}/javac --with-java=%{_bindir}/java --with-jdk-home=%{_libdir}/java} \
153     %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \
154         --with-JSDK=`pwd`/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar
155
156 %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
157         -C src/java
158 %{__make}
159
160 %install
161 rm -rf $RPM_BUILD_ROOT
162 install -d $RPM_BUILD_ROOT%{_javadir}
163 install -d $RPM_BUILD_ROOT/etc/apache/conf.d
164 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,profile.d,logrotate.d}
165 install %{SOURCE2} $RPM_BUILD_ROOT/etc/apache/conf.d/81_mod_jserv.conf
166 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
167
168 %{__make} install \
169         DESTDIR=$RPM_BUILD_ROOT
170
171 # we removed java, so do it manually
172 %{__make} install \
173         %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \
174         -C src/java \
175         DESTDIR=$RPM_BUILD_ROOT
176
177 echo "default - change on install" > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key
178
179 # currently disabled
180 #install src/scripts/package/rpm/jserv.init      $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv
181 #install src/scripts/package/rpm/jserv.sh        $RPM_BUILD_ROOT/etc/profile.d
182 #install src/scripts/package/rpm/jserv.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/jserv
183
184 ### GNU JSDK-classes
185 install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir}
186
187 find jsdk-doc -name 'Makefile*' | xargs rm -f
188 rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS
189
190 # duplicate
191 rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf
192
193 %clean
194 rm -rf $RPM_BUILD_ROOT
195
196 %post
197 if [ "$1" = 1 ]; then
198         dd if=/dev/urandom bs=1 count=42 2>/dev/null \
199                 | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key
200 fi
201
202 %post -n apache1-mod_jserv
203 %service apache restart
204
205 %postun -n apache1-mod_jserv
206 if [ "$1" = "0" ]; then
207         %service -q apache restart
208 fi
209
210 %pre init
211 %groupadd -P %{name}-init -g 154 jserv
212 %useradd -P %{name}-init -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv
213
214 %post init
215 /sbin/chkconfig --add jserv
216
217 %preun init
218 if [ "$1" = 0 ]; then
219         if [ -f /var/lock/subsys/jserv ]; then
220                 /etc/rc.d/init.d/jserv stop 1>&2
221         fi
222         /sbin/chkconfig --del jserv
223 fi
224
225 %postun init
226 if [ "$1" = "0" ]; then
227         %userremove jserv
228         %groupremove jserv
229 fi
230
231 %files
232 %defattr(644,root,root,755)
233 %doc LICENSE README
234 %dir %{_sysconfdir}
235 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties
236 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties
237 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key
238 %{_javadir}/ApacheJServ.jar
239 %{_javadir}/servlet-2.0.jar
240
241 %if 0
242 %dir %{servletdir}
243 %{servletdir}/Hello.java
244 %{servletdir}/Hello.class
245 %{servletdir}/IsItWorking.java
246 %{servletdir}/IsItWorking.class
247 %endif
248
249 %files -n apache1-mod_jserv
250 %defattr(644,root,root,755)
251 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/*_mod_jserv.conf
252 %attr(755,root,root) %{_pkglibdir}/mod_jserv.so
253 %attr(770,root,http) %dir %{logdir}
254
255 %files init
256 %defattr(644,root,root,755)
257 %attr(754,root,root) /etc/rc.d/init.d/jserv
258
259 %files doc
260 %defattr(644,root,root,755)
261 %doc index.html docs
262 %doc jsdk-doc
This page took 0.039283 seconds and 3 git commands to generate.