[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Jetty6 packaging



Hi Greg,

Sorry it has taken so long for you to get a reply to your email - I think
we have all been waiting for someone more knowledgeable to answer. Michael
Koch has been working on Jetty 5 recently, but I know he has been away for
a little while. I?m not sure if he has investigated Jetty 6.

I?ve made a few comments below...

On Thu, November 8, 2007 09:33, Greg Wilkins wrote:
>
> Hi,
>
> I am fumbling my way towards jetty6 packages.
 > I have added a module to jetty that uses mvn and ant to
> create the debian source directory (the one with the debian
> directory) ready for  dpkg-buildpackage to be run.
>
> The ant task then goes on to run dpkg-buildpackage and
> dpkg-deb in order to create libjetty6-java and jetty6
> packages.

These are quite low-level tools, and you might be making more work for
yourself than is necessary. I?ve not looked at your source code, but would
it help to use the existing Debian jetty package as a starting point?

    apt-get source jetty jetty-extra

Have you seen http://www.debian.org/doc/maint-guide/ ?


> Note that rules does not actually build the jars, as
> the mvn/ant tasks builds a binary tree to work on.  I'm
> not sure this is OK - but it was a quick way to get working
> with the layout etc.

It all depends on if you want the Jetty packages to be available as part
of the Debian distribution, or if you just want to offer the ?.deb?s for
download on your own website. Obviously it would be much better for your
users (and Debian) if jetty6 became an official Debian package, but that
would be more work.

To build it for Debian you would need to:

  *  Have all of your build and runtime dependencies already packaged in
Debian (i.e. you cannot include library Jars as part of your source
download).
  *  Be able to build all of your packages from source.
  *  Make sure you do not download anything during your build (so using
Maven to build your Debian packages is not yet possible).

Again I?m not sure how much work this would entail ? do you feel that
would be easy or difficult? If it is a lot of work then you might want to
carry on with your ?binary-only? packages, host them on your own website
and tackle the official Debian packages at your leisure. Michael did a
similar thing for the Maven2 packaging:

  http://lists.debian.org/debian-java/2007/03/msg00004.html

I hope this is of some help. There?s usually someone on #debian-java on
irc.debian.org if you want further help.

> I'd like to get these as close to perfect as possible before
> doing the jetty6-extra, jetty6-demo and jetty6-jsp packages.
>
> The init.d script is now a merge of the standard one in jetty
> and the one from the jetty5 package.  It needs more works, specifically
> to use start-stop-daemon
>
>
> I'd really appreciate feedback on what I have done:
>
> check out jetty with svn from http://svn.codehaus.org/jetty/jetty/trunk
> build with "mvn install"
> cd contrib/debian
> mvn install
>
> and then the debs are in contrib/debian/target




>
> cheers
>
>
>
> Greg Wilkins wrote:
>> Hi,
>>
>> I'd like to create some debian packages for Jetty 6 (and hightide 6) and
>> I'm
>> looking for somebody who know more about the process to help guide me.
>>
>> Jetty6 is a servlet 2.5 container.   hightide6 is the "premium" distro
>> of jetty6, which means that it is patched and compiled for java5 and
>> comes
>> with preconfigured support for JNDI, JMS, JTA etc.
>>
>> Jetty and hightide are both apache 2.0 licensed.
>>
>> We'd love for the end result to end up as part of debian, but would be
>> just as happy to have the debs available from our project site.
>>
>>
>> There are a number of tricky things with Jetty6 and hightide, including:
>>
>> We compile the majority of Jetty6 for java1.4  including the servlet 2.5
>> API.
>> Theoretically the 2.5 API is meant to be only java5, but there is
>> nothing in
>> the API that forces java5, so we like to make it available to java1.4
>> users.
>> Unfortunately that has prevented us from using other servlet 2.5 API
>> packages
>> and we build our own API.   Depending on the policies of debian, we
>> would
>> be happy to either continue having our own api bundle, or perhaps just
>> say
>> that jetty debians are java5 only and use a standard api bundle.  As I
>> understand
>> java 1.4 was not truely opensource, then the later approach may be
>> better?
>>
>> servlet api is the only dependency of core jetty, and I would like to
>> see
>>  * a libjetty6 package with the core jars available (used by many other
>>    java projects)
>>  * a jetty6 package with the run time configuration and scripts etc
>>  * potentially a binary setuid package that allows jetty to open port
>>    80 and then change to another user.
>>  * a jetty6-plus package with our optional jars for naming, jndi, ssl,
>> ajp
>>    I guess a lot of these could be in individual packages, but I think a
>>    grab bag package might be simplest to start with?
>>
>>
>> JSP is then a bit of a problem.  Jetty6 can work with the JSP 2.0 from
>> jakarta, unpatched but we need to bring in some slf4j and commons
>> logging
>> jars to join the logging together.
>>
>> But we really want to use JSP 2.1 (to be compliant with servlet 2.5).
>> Jetty uses JSP 2.1 from glassfish project (CDDL license), which our
>> build process checkouts, patches (to join our logging) and then
>> compiles.
>> Due to some history of the glassfish project, the result is not a very
>> clean division of API and impl.  The jsp-api-2.1 jar that results
>> actually
>> includes jstl and el APIs and the jsp-2.1 impl jar includes
>> implementations
>> for all of those.  Glassfish are in the process of refactoring their
>> project
>> to make the bits easier to reuse and I expect those dependencies may
>> shake
>> out then.  But for now I would like to make a jetty6-jsp2.1 package
>> which is all the api and impl jars needed without any attempt to re-use
>> other packages.  Once glassfish has refactored, I would definitely work
>> to get the duplication removed from the jetty project and the debs.
>>
>> hightide is much the same, except it definitely is all compiled for
>> java 5.  But it also has extra dependencies on packages like
>> activemq and atomikos.  If these can be made available via debs - great,
>> but I would not want to delay my own debs waiting for them.  So I
>> think a certain degree of bundling extra jars will be needed.
>>
>> Anyway, while I am a ubuntu user, I have never built a deb before, so
>> I'd really appreciate if somebody(s) could volunteer to be my mentor in
>> this process?





Reply to: