%define section free %define name jetty4 %define jettyname jetty %define jtuid 111 %define confdir %{_sysconfdir}/%{name} %define logdir %{_localstatedir}/log/%{name} %define homedir %{_datadir}/%{name} %define tempdir %{_localstatedir}/cache/%{name}/temp %define rundir %{_localstatedir}/run/%{name} %define libdir %{_localstatedir}/lib/%{name}/lib %define appdir %{_localstatedir}/lib/%{name}/webapps %define demodir %{_localstatedir}/lib/%{name}/demo Name: %{name} Version: 4.2.20 Release: 1jpp Epoch: 0 Summary: The Jetty Webserver and Servlet Container Group: Networking/Daemons License: Open Source URL: http://jetty.mortbar.org/jetty/ Source0: %{jettyname}-%{version}-all.tar.gz Source1: jetty4.script Source2: jetty4.init Patch0: jetty4-build_xml.patch Patch1: jetty-4.2-djetty.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Distribution: JPackage Vendor: JPackage Project BuildArch: noarch BuildRequires: jpackage-utils >= 0:1.5.38, ant >= 0:1.5.4 BuildRequires: servletapi4 >= 0:4.0.4 BuildRequires: jsse BuildRequires: xerces-j2 >= 0:2.6.2 BuildRequires: xml-commons-apis >= 0:1.0 BuildRequires: mx4j >= 0:1.1.1 BuildRequires: jasper4 >= 0:4.1.30 BuildRequires: perl >= 0:5.005 Requires: chkconfig Requires: jpackage-utils >= 0:1.5.38, ant >= 0:1.5.4 Requires: servletapi4 >= 0:4.0.4 Requires: jsse Requires: xerces-j2 >= 0:2.6.2 Requires: xml-commons-apis >= 0:1.0 Requires: mx4j >= 0:1.1.1 Requires: jasper4 >= 0:4.1.30 %description Jetty is a 100% Java HTTP Server and Servlet Container. This means that you do not need to configure and run a separate web server (like Apache) in order to use java, servlets and JSPs to generate dynamic content. Jetty is a fully featured web server for static and dynamic content. Unlike separate server/container solutions, this means that your web server and web application run in the same process, without interconnection overheads and complications. Furthermore, as a pure java component, Jetty can be simply included in your application for demonstration, distribution or deployment. Jetty is available on all Java supported platforms. %package javadoc Summary: Javadoc for %{name} Group: Development/Documentation %description javadoc %{summary}. %package demo Summary: Examples for %{name} Group: Development/Documentation Requires: %{name} = 0:%{version} %description demo %{summary}. %package manual Summary: Documents for %{name} Group: Development/Documentation Requires: %{name} = 0:%{version} %description manual %{summary}. %prep %setup -q -n %{jettyname}-%{version} find . -name "*.jar" -exec rm {} \; find . -name "*.war" -exec rm {} \; echo jboss.home = /var/lib/jboss >> ant.properties %patch0 -p0 -b .orig #%patch0 -p0 %patch1 -p1 -b .orig #%patch1 -p1 %build export CLASSPATH=$(build-classpath \ servletapi4 \ jsse \ jta \ log4j \ xerces-j2 \ xml-commons-apis \ mx4j/mx4j-jmx \ mx4j/mx4j-tools \ jasper4-compiler \ jasper4-runtime \ ) ant -Dbuild.sysclasspath=first all %install rm -rf $RPM_BUILD_ROOT # dirs install -dm 755 $RPM_BUILD_ROOT%{_bindir} install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/init.d install -dm 755 $RPM_BUILD_ROOT%{_javadir} install -dm 755 $RPM_BUILD_ROOT%{confdir} install -dm 755 $RPM_BUILD_ROOT%{demodir} install -dm 755 $RPM_BUILD_ROOT%{homedir} install -dm 755 $RPM_BUILD_ROOT%{homedir}/bin install -dm 755 $RPM_BUILD_ROOT%{homedir}/ext install -dm 755 $RPM_BUILD_ROOT%{libdir} install -dm 755 $RPM_BUILD_ROOT%{logdir} install -dm 755 $RPM_BUILD_ROOT%{rundir} install -dm 755 $RPM_BUILD_ROOT%{tempdir} install -dm 755 $RPM_BUILD_ROOT%{appdir} # main pkg install -pm 755 bin/jetty.sh $RPM_BUILD_ROOT%{_bindir}/d%{name} install -pm 755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name} install -pm 755 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/init.d/%{name} install -pm 644 start.jar $RPM_BUILD_ROOT%{homedir}/bin install -pm 644 stop.jar $RPM_BUILD_ROOT%{homedir}/bin cp -pr etc/* $RPM_BUILD_ROOT%{confdir} install -pm 644 lib/org.mortbay.jetty.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar install -pm 644 lib/org.mortbay.jmx.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-jmx-%{version}.jar install -pm 644 lib/javax.servlet.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-servlet-%{version}.jar (cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done) pushd $RPM_BUILD_ROOT%{libdir} ln -sf %{_javadir}/%{name}.jar org.mortbay.jetty.jar ln -sf %{_javadir}/%{name}-jmx.jar org.mortbay.jmx.jar popd ( cat << EO_RC JAVA_HOME=/usr/lib/jvm/java JAVA_OPTIONS= JETTY_HOME=%{homedir} JETTY_CONSOLE=%{logdir}/jetty-console.log JETTY_PORT=8080 JETTY_RUN=%{_localstatedir}/run/%{name} JETTY_PID=\$JETTY_RUN/jetty4.pid EO_RC ) > $RPM_BUILD_ROOT%{homedir}/.jettyrc # demo cp -pr demo/* $RPM_BUILD_ROOT%{demodir} # javadoc cp -pr webapps/* $RPM_BUILD_ROOT%{appdir} install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} pushd $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} unzip -q $RPM_BUILD_ROOT%{appdir}/javadoc.war popd ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink # manual install -dm 755 $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} cp -p {LICENSE.html,VERSION.TXT} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} mv $RPM_BUILD_ROOT%{demodir}/webapps/jetty/* \ $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} rm -rf $RPM_BUILD_ROOT%{appdir}/jetty pushd $RPM_BUILD_ROOT%{homedir} [ -d conf ] || ln -fs %{confdir} conf [ -d demo ] || ln -fs %{demodir} demo [ -d logs ] || ln -fs %{logdir} logs [ -d lib ] || ln -fs %{libdir} lib [ -d temp ] || ln -fs %{tempdir} temp [ -d webapps ] || ln -fs %{appdir} webapps popd #fix paths perl -pi -e 's#etc/#conf/#g;' $RPM_BUILD_ROOT%{confdir}/*.xml %clean rm -rf $RPM_BUILD_ROOT %pre # Add the "jetty4" user and group # we need a shell to be able to use su - later %{_sbindir}/groupadd -g %{jtuid} -r %{name} 2> /dev/null || : %{_sbindir}/useradd -c "Jetty4" -u %{jtuid} -g %{name} \ -s /bin/sh -d %{homedir} %{name} 2> /dev/null || : %post /sbin/chkconfig --add %{name} # create the jar repository build-jar-repository -s %{homedir}/ext \ ant \ jasper4-compiler \ jasper4-runtime \ mx4j/mx4j-jmx \ mx4j/mx4j-tools \ servletapi4 \ xerces-j2 \ xml-commons-apis \ jsse/jcert \ jsse/jnet \ jsse/jsse %post javadoc rm -f %{_javadocdir}/%{name} ln -s %{name}-%{version} %{_javadocdir}/%{name} rm -f %{homedir}/javadoc ln -s %{_javadocdir}/%{name} %{homedir}/javadoc %post manual rm -f %{demodir}/webapps/jetty mkdir -p %{demodir}/webapps ln -s %{_docdir}/%{name}-%{version} %{demodir}/webapps/jetty %preun if [ $1 = 0 ]; then [ -f /var/lock/subsys/%{name} ] && %{_sysconfdir}/init.d/%{name} stop [ -f %{_sysconfdir}/init.d/%{name} ] && /sbin/chkconfig --del %{name} %{_sbindir}/userdel %{name} >> /dev/null 2>&1 || : %{_sbindir}/groupdel %{name} >> /dev/null 2>&1 || : # Remove automated symlinks for repository in %{homedir}/ext ; do find $repository -name '\[*\]*.jar' -not -type d -exec rm -f {} \; done fi %files %defattr(-,root,root,-) %{_bindir}/* %{_javadir}/* %config %{confdir} %{libdir} %{homedir} %dir %{demodir} %attr(755, jetty4, jetty4) %{logdir} %attr(755, jetty4, jetty4) %{tempdir} %attr(755, jetty4, jetty4) %{rundir} %dir %{appdir} %doc %{_docdir}/%{name}-%{version}/LICENSE.html %doc %{_docdir}/%{name}-%{version}/VERSION.TXT %config %{_sysconfdir}/init.d/%{name} %files demo %defattr(-,root,root,-) %{demodir} %files javadoc %defattr(-,root,root,-) %{appdir}/template %{appdir}/javadoc.war %doc %{_javadocdir}/%{name}-%{version} %ghost %doc %{_javadocdir}/%{name} %files manual %defattr(-,root,root,-) %doc %{_docdir}/%{name}-%{version} %changelog * Fri Jun 18 2004 Ralph Apel <r.apel@r-apel.de> - 0:4.2.20-1jpp Upgrade to 4.2.20 Drop ownership of /usr/share/java and /usr/bin * Tue Feb 24 2004 Ralph Apel <r.apel@r-apel.de> - 0:4.2.17-2jpp - enhancements and corrections thanks to Kaj J. Niemi: - $JETTY_HOME/ext didn't exist but %post depended on it - correctly shutdown jetty upon uninstall - RedHat depends on chkconfig/service to work so a functional init.d/jetty4 needed to be created - djetty4 (jetty.sh) did funny things especially when it attempted to guess stuff - a lot of .xml config files assumed that the configs were in etc/ instead of conf/ * Thu Feb 19 2004 Ralph Apel <r.apel@r-apel.de> - 0:4.2.17-1jpp - First JPackage release.