X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=ApacheJServ.spec;h=efaa4b6a676230c5904c6baa5528361ff9a51d8b;hb=HEAD;hp=c323e9dd038eb03f93b02b0f7d58502018c831d7;hpb=f9ed2a3fcf7bddbbafcf763dc853ca4955cfb5e7;p=packages%2FApacheJServ.git diff --git a/ApacheJServ.spec b/ApacheJServ.spec index c323e9d..efaa4b6 100644 --- a/ApacheJServ.spec +++ b/ApacheJServ.spec @@ -1,165 +1,127 @@ -# TODO -# - separate package for jsdk? -# -# Conditional build: -%bcond_with gcj # use GCJ instead of javac -# %define apxs /usr/sbin/apxs1 -%define jsdkversion 20000924 +%define mod_name jserv Summary: Servlet engine with support for the leading web server -Summary(pl): Silnik serwletów ze wsparciem dla wiod±cego serwera WWW +Summary(pl.UTF-8): Silnik serwletów ze wsparciem dla wiodącego serwera WWW Name: ApacheJServ Version: 1.1.2 -Release: 0.52 -License: freely distributable & usable (JServ), LGPL (JSDK) +Release: 11 +License: freely distributable & usable Group: Networking/Daemons Source0: http://java.apache.org/jserv/dist/%{name}-%{version}.tar.gz # Source0-md5: 6d48a1b9fcc5eea4dfebaae29ba5a485 -Source1: http://www.euronet.nl/~pauls/java/servlet/download/classpathx_servlet-%{jsdkversion}.tar.gz -# Source1-md5: a81feddb91b1358f9aaed94e83eddb54 Source2: %{name}.conf Source3: %{name}.init +Source4: %{name}.sysconfig +Source5: runjserv Patch0: %{name}-enable-secret.patch Patch1: %{name}-ac.patch Patch2: %{name}-jre-env.patch -URL: http://java.apache.org/ +Patch3: %{name}-config.patch +Patch4: doc-overwrite.patch +URL: http://archive.apache.org/dist/java/jserv/ BuildRequires: apache1-devel >= 1.3.9-8 -BuildRequires: rpmbuild(macros) >= 1.228 +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: gettext-tools +BuildRequires: jdk +BuildRequires: jpackage-utils +BuildRequires: rpm-javaprov +BuildRequires: rpmbuild(macros) >= 1.300 BuildRequires: sed >= 4.0 -%if %{with gcj} -BuildRequires: gcc-java -BuildRequires: fastjar -BuildRequires: jdkgcj -Requires: /usr/bin/gij -%else -BuildRequires: java-sun -Requires: java-sun-jre -%endif -Provides: jserv -Provides: jsdk20 +BuildRequires: servlet = 2.0 +Requires(post,preun): rc-scripts +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires: jpackage-utils +Requires: jre +Requires: rc-scripts >= 0.4.0.19 +Requires: servlet = 2.0 +Provides: group(jserv) +Provides: user(jserv) +Obsoletes: ApacheJServ-doc +Obsoletes: ApacheJServ-init +Obsoletes: jserv BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null) %define httpdconf %(%{apxs} -q SYSCONFDIR 2>/dev/null) %define _sysconfdir /etc/jserv -%define logdir /var/log/jserv -%define servletdir %{_datadir}/jserv/servlets -%define _noautocompressdoc package-list %description Apache JServ is a servlet engine, developed by the Java Apache Project . The Apache JServ servlet engine is written in 100pc Java application, and listens for servlet requests using the Apache Java protocol (AJp). Typically, these requests will originate -from the mod_jserv Apache module (DSO included). This package contains -a LGPL'ed implementation of Sun's Java Servlet API version 2.0 by Paul -Siegmann . +from the mod_jserv Apache module (DSO included). -%description -l pl +%description -l pl.UTF-8 Apache JServ jest silnikiem serwletowym, rozwijanym przez Java Apache Project . Silnik serwletowy Apache JServ -zosta³ napisany od pocz±tku do koñca w Javie; nas³uchuje wywo³añ -serwletu wykorzystuj±c protokó³ Apache Java (AJp). Zazwyczaj wywo³ania -te pochodz± z modu³u Apache mod_jservmodule (³±cznie z DSO). Pakiet -ten zawiera implementacjê Java Servlet API Suna w wersji 2.0 napisan± -przez Paula Siegmanna (na licencji LGPL) -. +został napisany od początku do końca w Javie; nasłuchuje wywołań +serwletu wykorzystując protokół Apache Java (AJp). Zazwyczaj wywołania +te pochodzą z modułu Apache mod_jservmodule (łącznie z DSO). %package -n apache1-mod_jserv Summary: JServ module for Apache -Summary(pl): Modu³ JServ dla Apache'a +Summary(pl.UTF-8): Moduł JServ dla Apache'a Group: Networking/Daemons -Requires: %{name} = %{version}-%{release} -Requires: apache1 >= 1.3.33-2 +Requires: apache1-base >= 1.3.33-2 +Obsoletes: ApacheJServ-auto %description -n apache1-mod_jserv JServ module for Apache. -%description -n apache1-mod_jserv -l pl -Modu³ JServ dla Apache'a. - -%package init -Summary: ApacheJServ initscript -Summary(pl): Skrypt startowy ApacheJServ -Group: Development/Languages/Java -Requires: %{name} = %{version}-%{release} -Requires(pre): /bin/id -Requires(pre): /usr/bin/getgid -Requires(pre): /usr/sbin/useradd -Requires(pre): /usr/sbin/groupadd -Requires(post,preun): rc-scripts -Requires(triggerin): sed >= 4.0 -Requires: rc-scripts - -%description init -JServ initscript for standalone mode. - -%description init -l pl -Skrypt startowy JServ dla trybu samodzielnego. - -%package doc -Summary: ApacheJServ documentation -Summary(pl): Dokumentacja do ApacheJServ -Group: Development/Languages/Java - -%description doc -ApacheJserv documentation. - -%description doc -l pl -Dokumentacja do ApacheJServ. +%description -n apache1-mod_jserv -l pl.UTF-8 +Moduł JServ dla Apache'a. %prep -%setup -q -a1 +%setup -q %patch0 -p0 %patch1 -p0 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 -sed -i -e ' - s|@JSDK_CLASSES@|%{_javadir}/servlet-2.0.jar|g -' conf/jserv.properties.in +# servlet-2.0 is the highest version the jserv code compiles with +servlet_jar=$(find-jar servlet-2.0) +%{__sed} -i -e " + s|@JSDK_CLASSES@|$servlet_jar|g + s|@JAVA@|%java|g +" conf/jserv.properties.in # do not load module in provided jserv.conf; we do this in httpd.conf -sed -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in +%{__sed} -i -e 's|@LOAD_OR_NOT@|#|g' conf/jserv.conf.in # we don't want gcj related deps -sed -i -e '/^SUBDIRS/s,java,,' src/Makefile.am -sed -i -e '/^SUBDIRS/s,example,,' Makefile.am +%{__sed} -i -e '/^SUBDIRS/s,java,,' src/Makefile.am +%{__sed} -i -e '/^SUBDIRS/s,example,,' Makefile.am %build -if [ ! -f _autotools.done.1 ]; then +export JAVA_HOME="%{java_home}" +if [ ! -f _autotools.stamp ]; then %{__gettextize} %{__libtoolize} %{__aclocal} %{__autoconf} %{__automake} - touch _autotools.done.1 -fi - -# prepare compilation -if [ ! -f classpathx_servlet-%{jsdkversion}/servlet-2.0.jar ]; then - %{__make} -C classpathx_servlet-%{jsdkversion} jar_2_0 -fi - -if [ ! -d jsdk-doc ]; then - %{__make} -C classpathx_servlet-%{jsdkversion}/apidoc - - # copy API-doc - mkdir jsdk-doc - cp classpathx_servlet-%{jsdkversion}/{README,AUTHORS,COPYING.LIB} jsdk-doc - cp -r classpathx_servlet-%{jsdkversion}/apidoc jsdk-doc + touch _autotools.stamp fi ### JSERV CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}" +dir=$(pwd) %configure \ %{!?debug:--disable-debugging} \ --with-apxs=%{apxs} \ - --with-logdir=%{logdir} \ - --with-servlets=%{servletdir} \ - %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=`pwd` JAVAC_OPT="-source 1.4"} \ - %{!?with_gcj:--with-javac=%{_bindir}/javac --with-java=%{_bindir}/java --with-jdk-home=%{_libdir}/java} \ - %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \ - --with-JSDK=`pwd`/classpathx_servlet-%{jsdkversion}/servlet-2.0.jar + --with-logdir=/var/log/jserv \ + --with-servlets=%{_datadir}/jserv/servlets \ + --with-java-platform=1.4 \ + --with-JSDK=$(find-jar servlet-2.0) \ + %{!?with_gcj:GCJ=javac GCJFLAGS= CLASSPATH=$dir JAVAC_OPT="-source 1.4"} \ + %{!?with_gcj:--with-javac=%{javac} --with-java=%{java} --with-jdk-home=$JAVA_HOME} \ + %{?with_gcj:--with-javac=%{_bindir}/gcj --with-jar=%{_bindir}/fastjar} \ %{__make} %{!?with_gcj:OBJEXT=class JAVAC_OPT='-source 1.4'} \ -C src/java @@ -167,10 +129,12 @@ CFLAGS="$(%{apxs} -q CFLAGS) %{rpmcflags}" %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{httpdconf}/conf.d,%{_javadir}} +install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{httpdconf}/conf.d,%{_javadir},%{_sbindir}} -install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/81_mod_jserv.conf +install %{SOURCE2} $RPM_BUILD_ROOT%{httpdconf}/conf.d/80_mod_jserv.conf install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv +install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/jserv +install %{SOURCE5} $RPM_BUILD_ROOT%{_sbindir} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT @@ -181,98 +145,80 @@ install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/jserv -C src/java \ DESTDIR=$RPM_BUILD_ROOT -echo "default - change on install" > $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key - -### GNU JSDK-classes -install classpathx_servlet-%{jsdkversion}/servlet-2.0.jar $RPM_BUILD_ROOT%{_javadir} +> $RPM_BUILD_ROOT%{httpdconf}/jserv.secret.key +> $RPM_BUILD_ROOT%{_sysconfdir}/jserv.secret.key -find jsdk-doc -name 'Makefile*' | xargs rm -f -rm -rf jsdk-doc/{COPYING.LIB,CVS} jsdk-doc/apidoc/CVS +install -d $RPM_BUILD_ROOT%{_datadir}/jserv/servlets # duplicate rm -f $RPM_BUILD_ROOT%{_sysconfdir}/jserv.conf -rm -rf $RPM_BUILD_ROOT/usr/docs +rm -rf $RPM_BUILD_ROOT%{_prefix}/docs %clean rm -rf $RPM_BUILD_ROOT -%post -if [ "$1" = 1 ]; then - dd if=/dev/urandom bs=1 count=42 2>/dev/null \ - | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key -fi - -%post -n apache1-mod_jserv -%service apache restart +%pre +%groupadd -g 154 jserv +%useradd -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv -%postun -n apache1-mod_jserv -if [ "$1" = "0" ]; then - %service -q apache restart +%post +if [ ! -s %{_sysconfdir}/jserv.secret.key ]; then + if [ -s %{httpdconf}/jserv.secret.key ]; then + cat %{httpdconf}/jserv.secret.key > %{_sysconfdir}/jserv.secret.key + else + dd if=/dev/urandom bs=1 count=42 2>/dev/null \ + | (md5sum 2>/dev/null || cat) > %{_sysconfdir}/jserv.secret.key + fi fi - -%pre init -%groupadd -P %{name}-init -g 154 jserv -%useradd -P %{name}-init -u 154 -g jserv -d /etc/jserv -c "JServ User" jserv - -%post init /sbin/chkconfig --add jserv +%service jserv restart "Apache JServ Daemon" -%preun init +%preun if [ "$1" = 0 ]; then - if [ -f /var/lock/subsys/jserv ]; then - /etc/rc.d/init.d/jserv stop 1>&2 - fi + %service jserv stop /sbin/chkconfig --del jserv fi -%postun init +%postun if [ "$1" = "0" ]; then %userremove jserv %groupremove jserv fi -%triggerin init -- apache1-mod_jserv -if [ "$2" != 1 ]; then - exit 0 +%post -n apache1-mod_jserv +if [ ! -s %{httpdconf}/jserv.secret.key ]; then + if [ -s %{_sysconfdir}/jserv.secret.key ]; then + cat %{_sysconfdir}/jserv.secret.key > %{httpdconf}/jserv.secret.key + else + dd if=/dev/urandom bs=1 count=42 2>/dev/null \ + | (md5sum 2>/dev/null || cat) > %{httpdconf}/jserv.secret.key + fi fi -# so, we have initscript and apache module, it means we turn off -# automatic mode and switch to manual mode, and change jserv config -# groups to jserv user -MODE=$(awk '/^[\t ]*ApJServManual (on|off)/{print $2}' %{httpdconf}/conf.d/??_mod_jserv.conf) -if [ "$MODE" = off ]; then - chgrp jserv %{_sysconfdir}/{{jserv,zone}.properties,jserv.secret.key} - sed -i -e '/^[ ]*ApJServManual[ ]\+/s/off/on/i' %{httpdconf}/conf.d/??_mod_jserv.conf +%service -q apache restart + +%postun -n apache1-mod_jserv +if [ "$1" = "0" ]; then + %service -q apache restart fi %files %defattr(644,root,root,755) %doc LICENSE README -%dir %{_sysconfdir} -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key +%doc index.html docs +%dir %attr(750,root,jserv) %{_sysconfdir} +%attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.secret.key +%attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jserv.properties +%attr(640,root,jserv) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/zone.properties +%attr(754,root,root) /etc/rc.d/init.d/jserv +%attr(755,root,root) %{_sbindir}/runjserv +%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/jserv %{_javadir}/ApacheJServ.jar -%{_javadir}/servlet-2.0.jar - -%if 0 -%dir %{servletdir} -%{servletdir}/Hello.java -%{servletdir}/Hello.class -%{servletdir}/IsItWorking.java -%{servletdir}/IsItWorking.class -%endif +%dir %{_datadir}/jserv +%dir %attr(750,root,jserv) %{_datadir}/jserv/servlets +%attr(770,root,jserv) %dir /var/log/jserv %files -n apache1-mod_jserv %defattr(644,root,root,755) -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/*_mod_jserv.conf %attr(755,root,root) %{_pkglibdir}/mod_jserv.so -%attr(770,root,http) %dir %{logdir} - -%files init -%defattr(644,root,root,755) -%attr(754,root,root) /etc/rc.d/init.d/jserv - -%files doc -%defattr(644,root,root,755) -%doc index.html docs -%doc jsdk-doc +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/conf.d/80_mod_jserv.conf +%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{httpdconf}/jserv.secret.key