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

Re: Jetty6 packaging



Paul Cager wrote:
> 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...

thanks for the response - replies in-line:


> 
> 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.

Those are the tools that the maint-guide uses - so I just followed that.

> 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

Certainly!  Most of the debian/* contents are derived from those
packages and I think I have correctly attributed the work of Michael
and Phillipp.


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

yep


>> 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 think this is a big help.

I think that the core of Jetty will be easy to make into a compliant
debian bundle, but that there are a few modules that will be challenging
to make totally compliant.

So I'm going to push ahead with my approach to get binary packages for
most of Jetty (and then hightide).  That will allow us to test the
layout and make sure it is all OK.

Then subsequently (or in parallel)  I'll seek assistance from more
experienced packager to build these packages from source and get Jetty
included in a debian release.

Do you know of any other java packages out there that are being
built with maven?  I know the challenge there will be to stop
maven downloading dependencies and only use ones installed from
other deb packages.  It would be invaluable to follow the work
of others in this regard.

cheers



>> 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: