From 3933c7e742bd8e20ea85c57bcab9e1feeacc35f8 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Aug 28 2007 21:44:54 +0000 Subject: Initial import. --- diff --git a/.cvsignore b/.cvsignore index e69de29..b8974e4 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +jetty-5.1.12.fedora.zip diff --git a/jetty.spec b/jetty.spec new file mode 100644 index 0000000..509772f --- /dev/null +++ b/jetty.spec @@ -0,0 +1,719 @@ +# Copyright (c) 2000-2007, JPackage Project +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the +# distribution. +# 3. Neither the name of the JPackage Project nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +%bcond_without fedora + +%define gcj_support 1 +%define bootstrap 0 + +# If you don't want the -extras subpackage to be built +# in order to avoid its (Build)Requires +# give rpmbuild option '--without extra' + +%define with_extra 0 + +%define section free +%define jettyname jetty +%define jtuid 110 +%define username %{name} +%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: jetty +Version: 5.1.12 +Release: 1jpp.5%{?dist} +Summary: The Jetty Webserver and Servlet Container + +Group: Applications/Internet +License: ASL 2.0 +URL: http://jetty.mortbay.org/jetty/ +# Following source zip was originally taken from the following location: +# http://mirrors.ibiblio.org/pub/mirrors/maven/jetty/jetty-5.1.12.zip +# The zip file was modified by removing all jars and BCLA licenses. +# unzip jetty-5.1.12.zip +# pushd jetty-5.1.12 +# find . -name *.jar -exec rm {} \; +# rm ./etc/LICENSE.javax.xml.html ./etc/LICENSE.jsse.txt +# popd +# zip jetty-5.1.12.fedora.zip jetty-5.1.12/* +Source0: %{jettyname}-%{version}.fedora.zip +Source1: jetty5.script +Source2: jetty5.init +Source3: jetty5.logrotate +Source4: jetty5-OSGi-MANIFEST.MF +Patch0: jetty5-extra-j2ee-build_xml.patch +Patch1: jetty5-PostFileFilter.patch +Patch2: jetty5-libgcj-bad-serialization.patch +Patch3: jetty5-TestRFC2616-libgcj-bad-date-parser.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%if ! %{gcj_support} +BuildArch: noarch +%endif +BuildRequires: fedora-usermgmt-devel +%{?FE_USERADD_REQ} +BuildRequires: jpackage-utils >= 0:1.6 +#BuildRequires: perl >= 0:5.005 +# build only +BuildRequires: ant-junit +BuildRequires: jakarta-commons-collections +BuildRequires: junit +BuildRequires: xdoclet +BuildRequires: xjavadoc +# main +BuildRequires: ant >= 0:1.6 +BuildRequires: jakarta-commons-el +BuildRequires: jakarta-commons-logging +BuildRequires: jsse +BuildRequires: mx4j >= 0:3.0 +BuildRequires: tomcat5-jasper +BuildRequires: tomcat5-servlet-2.4-api +BuildRequires: xerces-j2 >= 0:2.7 +BuildRequires: xml-commons-apis + +# extra +%if %{with_extra} +BuildRequires: carol +BuildRequires: geronimo-j2ee-connector-1.5-api +BuildRequires: geronimo-j2ee-management-1.0-api +BuildRequires: howl-logger +BuildRequires: hsqldb +BuildRequires: jaf +BuildRequires: jakarta-commons-cli +BuildRequires: javamail +BuildRequires: jboss4-cluster +BuildRequires: jboss4-common +BuildRequires: jboss4-j2ee +BuildRequires: jboss4-jmx +BuildRequires: jboss4-security +BuildRequires: jboss4-server +BuildRequires: jboss4-system +BuildRequires: jgroups +BuildRequires: jotm +BuildRequires: geronimo-jta-1.0.1B-api +BuildRequires: log4j +BuildRequires: openorb-ots +BuildRequires: xapool +%endif +# +Requires: /sbin/chkconfig +Requires: jpackage-utils >= 0:1.6 +Requires: ant >= 0:1.6 +Requires: jakarta-commons-el +Requires: jakarta-commons-logging +Requires: tomcat5-jasper +Requires: jsp +Requires: mx4j >= 0:3.0 +Requires: tomcat5-servlet-2.4-api +Requires: xerces-j2 >= 0:2.7 +Requires: xml-commons-apis +Provides: group(%username) = %jtuid +Provides: user(%username) = %jtuid + +%if %{gcj_support} +BuildRequires: java-gcj-compat-devel +Requires(post): java-gcj-compat +Requires(postun): java-gcj-compat +%endif + +%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: Documentation + +%description javadoc +%{summary}. + +%if %{with_extra} +%package extra +Summary: Extras for %{name} +Group: Applications/Internet +Requires: %{name} = %{version} +Requires: carol +Requires: geronimo-j2ee-connector-1.5-api +Requires: geronimo-j2ee-management-1.0-api +Requires: howl-logger +Requires: hsqldb +Requires: jaf +Requires: jakarta-commons-cli +Requires: javamail +Requires: jboss4-cluster +Requires: jboss4-common +Requires: jboss4-j2ee +Requires: jboss4-jmx +Requires: jboss4-system +Requires: jboss4-security +Requires: jboss4-server +Requires: jgroups +# jonas_timer +# objectweb-datasource +Requires: jotm +Requires: geronimo-jta-1.0.1B-api +Requires: log4j +Requires: openorb-ots +Requires: xapool +Requires: xdoclet +Requires: xjavadoc + +%description extra +The purpose of this project is to enrich Jetty by +selectively incorporating useful J2EE and non-J2EE +features. The result is JettyPlus, an environment +offering additional facilities to core web and servlet +services, but which does not entail a full-blown +application server (such as JettyJBoss and JettyJOnAS). +The feature set currently contains: +Java Transaction API (JTA) and Resource references, eg DataSources +Java Naming and Directory Interface API (JNDI) +Log4J +Java Authentication and Authorization Service (JAAS) +Java Mail +These features have been implemented as a pluggable, +Service-based architecture. This means that it is +possible to develop and use alternative services to +those provided. +%endif + +%package manual +Summary: Documents for %{name} +Group: Documentation +Requires: %{name} = %{version} + +%description manual +%{summary}. + + +%prep +%setup -q -n %{jettyname}-%{version} +mv demo/webapps/servlets-examples.war \ + demo/webapps/servlets-examples-dontdelete +mv demo/webapps/jsp-examples.war \ + demo/webapps/jsp-examples-dontdelete +for f in $(find . -name "*.?ar"); do rm $f; done +find . -name "*.class" -exec rm {} \; +# .war files needed for tests +mv demo/webapps/servlets-examples-dontdelete \ + demo/webapps/servlets-examples.war +mv demo/webapps/jsp-examples-dontdelete \ + demo/webapps/jsp-examples.war + +%if %{bootstrap} +rm src/org/mortbay/util/jmx/MX4JHttpAdaptor.java +%endif + +%patch0 -b .sav +%patch1 -b .sav +%patch2 -b .sav +%patch3 -b .sav + +# Delete this Sun specific file. +rm src/org/mortbay/http/SunJsseListener.java + +# Convert line endings... +%{__sed} -i 's/\r//' demo/webapps/jetty/auth/logon.html +%{__sed} -i 's/\r//' demo/webapps/jetty/auth/logon.jsp +%{__sed} -i 's/\r//' demo/webapps/jetty/auth/logonError.html + +%build + +pushd ext + ln -s $(build-classpath ant) . + ln -s $(build-classpath commons-el) . + ln -s $(build-classpath commons-logging) . + ln -s $(build-classpath jasper5-compiler) jasper-compiler.jar + ln -s $(build-classpath jasper5-runtime) jasper-runtime.jar + ln -s $(build-classpath mx4j/mx4j) . + ln -s $(build-classpath mx4j/mx4j-jmx) . + ln -s $(build-classpath mx4j/mx4j-remote) . + ln -s $(build-classpath mx4j/mx4j-tools) . + ln -s $(build-classpath xerces-j2) xercesImpl.jar + ln -s $(build-classpath xml-commons-apis) xml-apis.jar +popd +%if %{with_extra} +pushd extra/ext + ln -s $(build-classpath jaf) activation.jar + ln -s $(build-classpath commons-cli) . + ln -s $(build-classpath geronimo-j2ee-connector-1.5-api) connector-1_5.jar + ln -s $(build-classpath hsqldb) . + ln -s $(build-classpath geronimo-j2ee-management-1.0-api) javax77.jar + ln -s $(build-classpath geronimo-jta-1.0.1B-api) jta-spec1_0_1.jar + ln -s $(build-classpath log4j) . + ln -s $(build-classpath javamail/mailapi) mail.jar + ln -s $(build-classpath carol/ow_carol) . + ln -s $(build-classpath howl-logger) . +# #jonas_timer.jar + ln -s $(build-classpath jotm/jotm) . + ln -s $(build-classpath jotm/iiop-stubs) jotm_iiop_stubs.jar + ln -s $(build-classpath jotm/jrmp-stubs) jotm_jrmp_stubs.jar + ln -s $(build-classpath openorb-ots) jts1_0.jar + #objectweb-datasource.jar + ln -s $(build-classpath xapool) . +popd +%endif + +export CLASSPATH=$(build-classpath \ +xjavadoc \ +) + +%if %{with_extra} +CLASSPATH=$CLASSPATH:$(build-classpath \ +jboss4/jboss-j2ee \ +jboss4/jboss-common \ +jboss4/jboss-system \ +jboss4/jboss-jmx \ +jboss4/jboss \ +jboss4/jbosssx \ +jboss4/jbossha \ +jgroups \ +log4j \ +) +%endif + +%if %{with_extra} +ant -Dxdoclet.home=%{_javadir}/xdoclet -Dbuild.sysclasspath=first all extra +%else +ant -Dxdoclet.home=%{_javadir}/xdoclet -Dbuild.sysclasspath=first all +%endif + +# inject OSGi manifests +mkdir -p META-INF +cp %{SOURCE4} META-INF/MANIFEST.MF +zip -u lib/org.mortbay.jetty.jar META-INF/MANIFEST.MF + + +%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%{_sysconfdir}/logrotate.d +install -dm 755 $RPM_BUILD_ROOT%{_javadir}/%{name} +install -dm 755 $RPM_BUILD_ROOT%{confdir} +install -dm 755 $RPM_BUILD_ROOT%{confdir}/extra +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%{homedir}/extra +install -dm 755 $RPM_BUILD_ROOT%{homedir}/extra/ext +install -dm 755 $RPM_BUILD_ROOT%{libdir} +install -dm 755 $RPM_BUILD_ROOT%{libdir}/extra +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 extra/unix/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 755 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.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} +echo '# Placeholder configuration file. No default is provided.' > $RPM_BUILD_ROOT%{confdir}/jetty.conf +install -pm 644 lib/org.mortbay.jetty.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-%{version}.jar +install -pm 644 lib/org.mortbay.jmx.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-jmx-%{version}.jar +install -pm 644 lib/javax.servlet.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-servlet-%{version}.jar +(cd $RPM_BUILD_ROOT%{_javadir}/%{name} && 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}/%{name}.jar org.mortbay.jetty.jar + ln -sf %{_javadir}/%{name}/%{name}-jmx.jar org.mortbay.jmx.jar +popd +pushd $RPM_BUILD_ROOT%{homedir}/ext +ln -s $(build-classpath ant) +ln -s $(build-classpath jasper5-compiler) +ln -s $(build-classpath jasper5-runtime) +ln -s $(build-classpath commons-el) +ln -s $(build-classpath commons-logging) +ln -s $(build-classpath mx4j/mx4j-jmx) +ln -s $(build-classpath mx4j/mx4j-tools) +ln -s $(build-classpath servletapi5) +ln -s $(build-classpath jspapi) +ln -s $(build-classpath xerces-j2) +ln -s $(build-classpath xml-commons-apis) +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/jetty.pid +EO_RC +) > $RPM_BUILD_ROOT%{homedir}/jettyrc + +# extra +%if %{with_extra} +cp -pr extra/etc/* $RPM_BUILD_ROOT%{confdir}/extra +rm $RPM_BUILD_ROOT%{confdir}/extra/LICENSE.apache.txt +rm $RPM_BUILD_ROOT%{confdir}/extra/LICENSE.hsqldb.html +rm $RPM_BUILD_ROOT%{confdir}/extra/LICENSE.p6spy.html + +install -pm 644 extra/lib/org.jboss.jetty.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-jboss-%{version}.jar +install -pm 644 extra/lib/org.mortbay.ftp.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-ftp-%{version}.jar +install -pm 644 extra/lib/org.mortbay.j2ee.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-j2ee-%{version}.jar +install -pm 644 extra/lib/org.mortbay.jaas.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-jaas-%{version}.jar +install -pm 644 extra/lib/org.mortbay.jsr77.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-jsr77-%{version}.jar +# omit for 1.6 +# install -pm 644 extra/lib/org.mortbay.jetty-jdk1.2.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-jetty-jdk1.2-%{version}.jar +install -pm 644 extra/lib/org.mortbay.jetty.plus.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-plus-%{version}.jar +# omit for 1.6 +# install -pm 644 extra/lib/org.mortbay.jmx-jdk1.2.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-jmx-jdk1.2-%{version}.jar +install -pm 644 extra/lib/org.mortbay.loadbalancer.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-loadbalancer-%{version}.jar +(cd $RPM_BUILD_ROOT%{_javadir}/%{name} && for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done) +pushd $RPM_BUILD_ROOT%{libdir}/extra + ln -sf %{_javadir}/%{name}/%{name}-jboss.jar org.jboss.jetty.jar + ln -sf %{_javadir}/%{name}/%{name}-ftp.jar org.mortbay.ftp.jar + ln -sf %{_javadir}/%{name}/%{name}-j2ee.jar org.mortbay.j2ee.jar + ln -sf %{_javadir}/%{name}/%{name}-jaas.jar org.mortbay.jaas.jar + ln -sf %{_javadir}/%{name}/%{name}-jsr77.jar org.mortbay.jsr77.jar + ln -sf %{_javadir}/%{name}/%{name}-plus.jar org.mortbay.jetty.plus.jar + ln -sf %{_javadir}/%{name}/%{name}-loadbalancer.jar org.mortbay.loadbalancer.jar +popd +pushd $RPM_BUILD_ROOT%{homedir}/extra/ext + #jonas_timer.jar + #objectweb-datasource.jar +ln -s $(build-classpath jaf) +ln -s $(build-classpath carol/carol) +ln -s $(build-classpath commons-cli) +ln -s $(build-classpath hsqldb) +ln -s $(build-classpath jotm/jotm) +ln -s $(build-classpath jotm/iiop-stubs) +ln -s $(build-classpath jotm/jrmp-stubs) +ln -s $(build-classpath jta) +ln -s $(build-classpath openorb-ots) +ln -s $(build-classpath log4j) +ln -s $(build-classpath javamail/mailapi) +ln -s $(build-classpath xapool) +popd +%endif + +cp -pr demo/* $RPM_BUILD_ROOT%{demodir} + +# javadoc +cp -pr webapps/* $RPM_BUILD_ROOT%{appdir} +rm $RPM_BUILD_ROOT/%{appdir}/template/WEB-INF/lib/.keepme +install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} +pushd $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} +unzip -q $RPM_BUILD_ROOT%{appdir}/javadoc.war +%{__sed} -i 's/\r//' META-INF/MANIFEST.MF +popd + +# manual +install -dm 755 $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} +cp -p {LICENSE.TXT,VERSION.TXT} $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} +mv $RPM_BUILD_ROOT%{demodir}/webapps/jetty/* \ + $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} +rm $RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version}/WEB-INF/.cvsignore +rm -rf $RPM_BUILD_ROOT%{appdir}/jetty +# Remaining files in demodir are not built into any subpackage. +rm -rf $RPM_BUILD_ROOT%{demodir}/* + + +pushd $RPM_BUILD_ROOT%{homedir} + [ -d etc ] || ln -fs %{confdir} etc + [ -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 +%if %{with_extra} + pushd extra + [ -d etc ] || ln -fs %{confdir}/extra etc + [ -d lib ] || ln -fs %{libdir}/extra lib + popd +%endif +popd + +# no need to fix paths +#perl -pi -e 's#etc/#conf/#g;' $RPM_BUILD_ROOT%{confdir}/*.xml + +%if %{gcj_support} +%{_bindir}/aot-compile-rpm \ + --exclude /var/lib/jetty/webapps/javadoc.war \ + --exclude /usr/share/doc/jetty-%{version}/WEB-INF/classes \ + --exclude /var/lib/jetty/webapps/template/WEB-INF/classes +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%pre +# Add the "jetty" user and group +%__fe_groupadd %jtuid -r %username &>/dev/null || : +%__fe_useradd %jtuid -r -s /sbin/nologin -d %homedir -M \ + -g %username %username &>/dev/null || : + +%post +[ -x /sbin/chkconfig ] && /sbin/chkconfig --add %{name} +%if %{gcj_support} +if [ -x %{_bindir}/rebuild-gcj-db ] +then + %{_bindir}/rebuild-gcj-db +fi +%endif + +%postun +%__fe_userdel %username &>/dev/null || : +%__fe_groupdel %username &>/dev/null || : +%if %{gcj_support} +if [ -x %{_bindir}/rebuild-gcj-db ] +then + %{_bindir}/rebuild-gcj-db +fi +%endif + + +%preun +if [ $1 = 0 ]; then + [ -f /var/lock/subsys/%{name} ] && %{_sysconfdir}/init.d/%{name} stop + [ -f %{_sysconfdir}/init.d/%{name} -a -x /sbin/chkconfig ] && /sbin/chkconfig --del %{name} + + %{_sbindir}/fedora-userdel %{name} >> /dev/null 2>&1 || : +fi + +%files +%defattr(-,root,root,-) +%{_bindir}/* +%dir %{_javadir}/%{name} +%{_javadir}/%{name}/%{name}-%{version}.jar +%{_javadir}/%{name}/%{name}-jmx-%{version}.jar +%{_javadir}/%{name}/%{name}-servlet-%{version}.jar +%{_javadir}/%{name}/%{name}.jar +%{_javadir}/%{name}/%{name}-jmx.jar +%{_javadir}/%{name}/%{name}-servlet.jar +%config(noreplace) %{confdir} +%dir %{libdir} +%{libdir}/org.mortbay.jetty.jar +%{libdir}/org.mortbay.jmx.jar +%dir %{homedir} +%{homedir}/[^e]* +%{homedir}/ext +%{homedir}/etc +%{homedir}/jettyrc +%dir %{demodir} +%attr(755, jetty, jetty) %{logdir} +%attr(755, jetty, jetty) %{tempdir} +%attr(755, jetty, jetty) %{rundir} +%dir %{appdir} +%doc %{_docdir}/%{name}-%{version}/LICENSE.TXT +%doc %{_docdir}/%{name}-%{version}/VERSION.TXT +%{_sysconfdir}/init.d/%{name} +%{_sysconfdir}/logrotate.d/%{name} +%if %{gcj_support} +%dir %attr(-,root,root) %{_libdir}/gcj/%{name}/ +%attr(-,root,root) %{_libdir}/gcj/%{name}/*.so +%attr(-,root,root) %{_libdir}/gcj/%{name}/*.db +%endif + +%files javadoc +%defattr(-,root,root,-) +%{appdir}/template +%{appdir}/javadoc.war +%doc %{_javadocdir}/%{name}-%{version} + +%files manual +%defattr(-,root,root,-) +%doc %{_docdir}/%{name}-%{version} + +%if %{with_extra} +%files extra +%defattr(-,root,root,-) +%{_javadir}/%{name}/%{name}-ftp-%{version}.jar +%{_javadir}/%{name}/%{name}-ftp.jar +%{_javadir}/%{name}/%{name}-j2ee-%{version}.jar +%{_javadir}/%{name}/%{name}-j2ee.jar +%{_javadir}/%{name}/%{name}-jaas-%{version}.jar +%{_javadir}/%{name}/%{name}-jaas.jar +%{_javadir}/%{name}/%{name}-jboss-%{version}.jar +%{_javadir}/%{name}/%{name}-jboss.jar +%{_javadir}/%{name}/%{name}-jsr77-%{version}.jar +%{_javadir}/%{name}/%{name}-jsr77.jar +%{_javadir}/%{name}/%{name}-loadbalancer-%{version}.jar +%{_javadir}/%{name}/%{name}-loadbalancer.jar +%{_javadir}/%{name}/%{name}-plus-%{version}.jar +%{_javadir}/%{name}/%{name}-plus.jar +%{confdir}/extra +%{homedir}/extra +%{libdir}/extra +%if %{gcj_support} +%attr(-,root,root) %{_libdir}/gcj/%{name}/%{name}-ftp-%{version}.jar.* +%attr(-,root,root) %{_libdir}/gcj/%{name}/%{name}-j2ee-%{version}.jar.* +%attr(-,root,root) %{_libdir}/gcj/%{name}/%{name}-jaas-%{version}.jar.* +%attr(-,root,root) %{_libdir}/gcj/%{name}/%{name}-jboss-%{version}.jar.* +%attr(-,root,root) %{_libdir}/gcj/%{name}/%{name}-jsr77-%{version}.jar.* +%attr(-,root,root) %{_libdir}/gcj/%{name}/%{name}-loadbalancer-%{version}.jar.* +%attr(-,root,root) %{_libdir}/gcj/%{name}/%{name}-plus-%{version}.jar.* +%endif +%endif + +%changelog +* Tue Aug 28 2007 Jeff Johnston 5.1.12-1jpp.5 +- Rename from jetty5 to jetty + +* Mon Aug 27 2007 Jeff Johnston 5.1.12-1jpp.4 +- Remove post manual step +- Remove jsse requirement +- Add comment inside jetty.conf so it isn't empty + +- Use /sbin/nologin when creating the jetty5 user and group +* Mon Aug 27 2007 Jeff Johnston 5.1.12-1jpp.3 +- Use /sbin/nologin when creating the jetty5 user and group +- Remove all jars in %%prep +- Remove unnecessary preun step for removing extra jars +- Fix license +- Fix group for manual subpackage +- Fix group for javadoc subpackage +- Add comment regarding empty jetty.conf file +- Add jsp requirement +- Remove %%post javadoc ln command +- Remove %%post manual ln command +- Change source0 tarball to remove BCLA-licensed jars +- Remove epoch 0 references in subpackage requires for extras and manual +- Rename .jettyrc to jettyrc +- Remove hidden files +- Don't install gcj files twice + +* Fri Aug 24 2007 Jeff Johnston 5.1.12-1jpp.2 +- Remove demo subpackage. + +* Wed Aug 08 2007 Jeff Johnston 5.1.12-1jpp.1 +- Comment out demo subpackage. + +* Mon Aug 06 2007 Ben Konrath 5.1.12-1jpp.1 +- Add --excludes to aot-compile-rpm line. +- Inject OSGi manifest into jetty jar. + +* Thu Jul 19 2007 Andrew Overholt 5.1.12-1jpp.1 +- Update to 5.1.12 for Fedora. +- Use fedora-usermgmt stuff. + +* Fri Feb 02 2007 Ralph Apel - 0:5.1.12-1jpp +- Upgrade to 5.1.12 +- Add gcj_support option +- Avoid circular dependency with mx4j-tools thru bootstrap option + +* Sat Aug 12 2006 Anthony Green - 0:5.1.11-0.rc0.4jpp +- Escape macros in changelog with %. +- Untabify. +- Don't delete symlinks in %%preun. +- Add logrotate file. +- Don't install unversioned javadoc files. +- Don't rm old links in manual package. +- Convert some end-of-line encodings. + +* Fri Aug 11 2006 Anthony Green - 0:5.1.11-0.rc0.3jpp +- First Fedora build. +- Disable extras. +- Use fedora-useradd & fedora-userdel. +- Add gcj support. +- Tweak License and Group tags for rpmlint. +- Use full URL for Source0. + +* Thu Aug 10 2006 Ralph Apel - 0:5.1.11-0.rc0.2jpp +- Fix version/release in changelog +- Introduce option '--without extra' to omit this subpackage and its (B)Rs +- Don't delete user on erase +- Tidy up BRs +- Add commons-el.jar to ext +- No ghost for lib/org.mortbay.jetty.jar, lib/org.mortbay.jmx.jar +- Avoid use of build-jar-repository in spec +- Avoid use of rebuild-jar-repository in init and start script +- Don't handle JETTY_PID file in init script: start script takes care +- Patch PostFileFilter to remove a (unused) com.sun package import +- Explicitly (B)R geronimo-jta-1.0.1B-api instead of any jta +- Add empty file /etc/jetty5/jetty.conf: + activate contexts manually if desired + +* Tue Jun 20 2006 Ralph Apel - 0:5.1.2-3jpp +- First JPP-1.7 release + +* Mon Mar 14 2005 Ralph Apel - 0:5.1.2-2jpp +- link commons-logging to %%{_homedir}/ext +- link jspapi to %%{_homedir}/ext +- only use %%{_homedir}/etc not conf + +* Tue Feb 01 2005 Ralph Apel - 0:5.1.2-1jpp +- Upgrade to 5.1.2 +- Prepare for build with Java 1.5, (thx to Petr Adamek) +- Require /sbin/chkconfig instead of chkconfig package + +* Tue Jan 04 2005 Ralph Apel - 0:5.0.0-2jpp +- Include build of extra, so called JettyPlus +- Create own subdirectory for jetty5 in %%{_javadir} +- Change %%{_homedir}/conf to %%{_homedir}/etc +- Dropped chkconfig requirement; just exec if /sbin/chkconfig available +- Fixed unpackaged .jettyrc + +* Mon Oct 04 2004 Ralph Apel - 0:5.0.0-1jpp +- Upgrade to 5.0.0 +- Fixed URL +- relaxed some versioned dependencies + +* Sun Aug 23 2004 Randy Watler - 0:4.2.20-2jpp +- Rebuild with ant-1.6.2 + +* Fri Jun 18 2004 Ralph Apel - 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 - 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 - 0:4.2.17-1jpp +- First JPackage release. diff --git a/jetty5-OSGi-MANIFEST.MF b/jetty5-OSGi-MANIFEST.MF new file mode 100644 index 0000000..fa225ee --- /dev/null +++ b/jetty5-OSGi-MANIFEST.MF @@ -0,0 +1,24 @@ +Manifest-Version: 1.0 +Ant-Version: Apache Ant 1.7.0 +Created-By: 2.3 (IBM Corporation) +Import-Package: javax.net.ssl,javax.security.cert,javax.servlet;versio + n="[2.4.0,2.5.0)",javax.servlet.http;version="[2.4.0,2.5.0)",javax.se + rvlet.resources;version="[2.4.0,2.5.0)",javax.xml.parsers,org.apache. + commons.logging;version="[1.0.0,2.0.0)",org.xml.sax,org.xml.sax.helpe + rs +Bundle-ManifestVersion: 2 +Export-Package: org.mortbay.html;version="5.1.11",org.mortbay.http;ver + sion="5.1.11",org.mortbay.http.ajp;version="5.1.11",org.mortbay.http. + handler;version="5.1.11",org.mortbay.http.nio;version="5.1.11",org.mo + rtbay.jetty;version="5.1.11",org.mortbay.jetty.servlet;version="5.1.1 + 1",org.mortbay.jetty.win32;version="5.1.11",org.mortbay.log;version=" + 5.1.11",org.mortbay.servlet;version="5.1.11",org.mortbay.util;version + ="5.1.11",org.mortbay.xml;version="5.1.11" +Bundle-Version: 5.1.11.v200706111724 +Bundle-SymbolicName: org.mortbay.jetty +Bundle-Name: Jetty WebServer +Bundle-RequiredExecutionEnvironment: J2SE-1.4,CDC-1.0/Foundation-1.0,J + 2SE-1.3 +Bundle-Localization: plugin +Bundle-Vendor: Mort Bay Consulting, Pty. Ltd. + diff --git a/jetty5-PostFileFilter.patch b/jetty5-PostFileFilter.patch new file mode 100644 index 0000000..43e336a --- /dev/null +++ b/jetty5-PostFileFilter.patch @@ -0,0 +1,11 @@ +--- src/org/mortbay/servlet/PostFileFilter.java.sav 2006-08-10 14:03:26.000000000 +0200 ++++ src/org/mortbay/servlet/PostFileFilter.java 2006-08-10 14:04:24.000000000 +0200 +@@ -30,7 +30,7 @@ + import javax.servlet.http.HttpServletRequest; + import javax.servlet.http.HttpServletResponse; + +-import sun.reflect.ReflectionFactory.GetReflectionFactoryAction; ++//import sun.reflect.ReflectionFactory.GetReflectionFactoryAction; + + /* ------------------------------------------------------------ */ + /** PostFileFilter. diff --git a/jetty5-TestRFC2616-libgcj-bad-date-parser.patch b/jetty5-TestRFC2616-libgcj-bad-date-parser.patch new file mode 100644 index 0000000..bf008db --- /dev/null +++ b/jetty5-TestRFC2616-libgcj-bad-date-parser.patch @@ -0,0 +1,11 @@ +--- test/src/org/mortbay/http/TestRFC2616.java~ 2006-04-05 17:24:44.000000000 -0700 ++++ test/src/org/mortbay/http/TestRFC2616.java 2006-08-08 12:47:50.000000000 -0700 +@@ -296,7 +296,7 @@ + + fields.put("D1","Sun, 6 Nov 1994 08:49:37 GMT"); + fields.put("D2","Sunday, 6-Nov-94 08:49:37 GMT"); +- fields.put("D3","Sun Nov 6 08:49:37 1994"); ++ fields.put("D3","Sun Nov 6 08:49:37 1994"); + Date d1 = new Date(fields.getDateField("D1")); + Date d2 = new Date(fields.getDateField("D2")); + Date d3 = new Date(fields.getDateField("D3")); diff --git a/jetty5-extra-j2ee-build_xml.patch b/jetty5-extra-j2ee-build_xml.patch new file mode 100644 index 0000000..fb89f8b --- /dev/null +++ b/jetty5-extra-j2ee-build_xml.patch @@ -0,0 +1,11 @@ +--- extra/j2ee/build.xml.sav 2006-06-20 19:17:28.000000000 +0200 ++++ extra/j2ee/build.xml 2006-06-20 19:18:23.000000000 +0200 +@@ -66,7 +66,7 @@ + + + +- ++ + + + diff --git a/jetty5-libgcj-bad-serialization.patch b/jetty5-libgcj-bad-serialization.patch new file mode 100644 index 0000000..bafec9f --- /dev/null +++ b/jetty5-libgcj-bad-serialization.patch @@ -0,0 +1,22 @@ +--- test/src/org/mortbay/jetty/TestServer.java~ 2005-08-13 10:12:14.000000000 -0700 ++++ test/src/org/mortbay/jetty/TestServer.java 2006-08-08 11:24:55.000000000 -0700 +@@ -96,19 +96,6 @@ + + + +- System.err.println("Serialize and deserialize server"); +- +- ObjectInputStream oi = new ObjectInputStream(new FileInputStream(tmp)); +- server = (Server)oi.readObject(); +- oi.close(); +- +- +- System.err.println("start recovered server"); +- server.start(); +- assertTrue("restarted",server.isStarted()); +- server.stop(); +- assertTrue("restopped",!server.isStarted()); +- server.destroy(); + } + + /* ------------------------------------------------------------ */ diff --git a/jetty5.init b/jetty5.init new file mode 100644 index 0000000..be30bf1 --- /dev/null +++ b/jetty5.init @@ -0,0 +1,159 @@ +#!/bin/sh +# +# jetty5 This shell script takes care of starting and stopping jetty +# +# chkconfig: - 80 20 +# description: The Jetty Webserver and Servlet Container +# processname: jetty +# pidfile: /var/run/jetty5/jetty5.pid +# config: /etc/jetty5/jetty5.conf +# +# +# Portions from tomcat4.init by: +# +# Gomez Henri +# Keith Irwin +# Nicolas Mailhot +# +# + + +# Source function library. +if [ -x /etc/rc.d/init.d/functions ]; then + . /etc/rc.d/init.d/functions +fi + +[ -r /etc/java/java.conf ] && . /etc/java/java.conf +export JAVA_HOME + +# Get Jetty5's config + +JETTY_CFG="/etc/jetty5/jetty5.conf" + +[ -r "$JETTY_CFG" ] && . "${JETTY_CFG}" + +# Path to the jetty5 launch script (direct don't use the wrapper) +JETTY_SCRIPT=/usr/bin/djetty5 + +# if JETTY_USER is not set, use jetty5 +if [ -z "$JETTY_USER" ]; then + JETTY_USER="jetty5" +fi + +# if JETTY_HOME is not set, use /usr/share/jetty5 +if [ -z "$JETTY_HOME" ]; then + JETTY_HOME="/usr/share/jetty5" +fi + +if [ -z "$SHUTDOWN_WAIT" ]; then + SHUTDOWN_WAIT=10 +fi + +if [ -z "$JETTY_PID" ]; then + JETTY_PID=/var/run/jetty5/jetty5.pid +fi + + +RETVAL=0 + +start() { + echo -n "Starting $JETTY_PROG: " + + if [ -f /var/lock/subsys/jetty5 ] ; then + if [ -f $JETTY_PID ]; then + read kpid < $JETTY_PID + if checkpid $kpid 2>&1; then + echo "process already running" + return -1 + else + echo "lock file found but no process running for pid $kpid, continuing" + fi + fi + fi + +# touch $JETTY_PID +# chown $JETTY_USER:$JETTY_USER $JETTY_PID + +# [ -x ${JETTY_HOME}/ext ] && +# rebuild-jar-repository -s ${JETTY_HOME}/ext + + if [ -x /etc/rc.d/init.d/functions ]; then + daemon --user $JETTY_USER $JETTY_SCRIPT start + else + su - $JETTY_USER -c "$JETTY_SCRIPT start" + fi + + RETVAL=$? + echo + [ $RETVAL = 0 ] && touch /var/lock/subsys/jetty5 + return $RETVAL +} + + +stop() { + echo -n "Stopping $JETTY_PROG: " + + if [ -f /var/lock/subsys/jetty5 ] ; then + if [ -x /etc/rc.d/init.d/functions ]; then + daemon --user $JETTY_USER $JETTY_SCRIPT stop + else + su - $JETTY_USER -c "$JETTY_SCRIPT stop" + fi + RETVAL=$? + + if [ $RETVAL = 0 ]; then + count=0; + + if [ -f /var/run/jetty5/jetty5.pid ]; then + + read kpid < $JETTY_PID + let kwait=$SHUTDOWN_WAIT + + until [ `ps --pid $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq '0' ] || [ $count -gt $kwait ] + do + echo "waiting for processes to exit"; + sleep 1 + let count=$count+1; + done + + if [ $count -gt $kwait ]; then + echo "killing processes which didn't stop after $SHUTDOWN_WAIT seconds" + kill -9 $kpid + fi + fi + rm -f /var/lock/subsys/jetty5 $JETTY_PID + fi + fi +} + + + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + sleep 2 + start + ;; + condrestart) + if [ -f $JETTY_PID ] ; then + stop + start + fi + ;; + *) + echo "Usage: $JETTY_PROG {start|stop|restart|condrestart}" + exit 1 +esac + +exit $RETVAL + +# +# +# end diff --git a/jetty5.logrotate b/jetty5.logrotate new file mode 100644 index 0000000..3a9c339 --- /dev/null +++ b/jetty5.logrotate @@ -0,0 +1,7 @@ +/var/log/jetty5/jetty-console.log { + copytruncate + weekly + rotate 52 + compress + missingok +} diff --git a/jetty5.script b/jetty5.script new file mode 100644 index 0000000..0c20e76 --- /dev/null +++ b/jetty5.script @@ -0,0 +1,49 @@ +#!/bin/sh +# +# Wrapper script for Jetty5, to be sure it will allways +# be run with correct user profile (jetty5 by default) +# +# derived from stuff in tomcat5.init +# +# Gomez Henri +# Keith Irwin +# Nicolas Mailhot +# +# version 1.01 - Fix webapps dir permissions +# + +[ -r /etc/java/java.conf ] && . /etc/java/java.conf +export JAVA_HOME + +# Path to the jetty launch script +JETTY_SCRIPT=/usr/bin/djetty5 + +# Jetty name :) +JETTY_PROG=jetty5 + +# if JETTY_USER is not set, use jetty5 +if [ -z "$JETTY_USER" ]; then + JETTY_USER="jetty5" +fi + +# if JETTY_HOME is not set, use /usr/share/jetty5 +if [ -z "$JETTY_HOME" ]; then + JETTY_HOME="/usr/share/jetty5" +fi + +pushd ${JETTY_HOME}/ext + rm -f jcert.jar + ln -s $(build-classpath jsse/jcert) + rm -f jnet.jar + ln -s $(build-classpath jsse/jnet) + rm -f jsse.jar + ln -s $(build-classpath jsse/jsse) +popd + + + +RETVAL=0 + +su - $JETTY_USER -c "$JETTY_SCRIPT $@" +RETVAL=$? +exit $RETVAL diff --git a/sources b/sources index e69de29..07ffe2a 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +7c6af7ed3365b136b55e752df8dead6f jetty-5.1.12.fedora.zip