Something needs to be explained about how debian packaging works.  It will
help with the understanding of a few things below.

Debian source packages contain 3 files(normally)

1: A tarball
   This tarball is generally an unmodified upstream release, except that it is
   renamed.
2: A diff
   This diff contains modifications done to the upstream source, plus the
   files in debian/, that say how the debs should be layed out.
3: A .dsc
   This is a simple text file, that describes meta data about the source
   package.

The tarball is prefered to be unmodified, so that md5sums can match with what
upstream has.

The modifications done to upstream is generally supposed to be minor.  If
something major is done, or bug fixes where done, then these should be sent
upstream.

On Thu, 15 Nov 2001, Jason Dillon wrote:

> > Does the stuff in j2ee and naming depend on other jboss items?  Do they depend
> > on the jboss module?  If no, then I started at the wrong spot.
>
> If you look in each build.xml there is a target called '_configure-modules',
> this section shows the dependency on other modules (or in the case of the
> build module shows how the modules are organized).

Ah, this is very useful information.  For any splitting I end up doing, this
will help me greatly.

> > Is everything in thirdparty exact copies of external libraries, that get
> > built, or just checked in pre-compiled version, or a mixture of the two?
>
> Everything from thirdparty and tools are pre-compiled.

This is bad.  If these were to be in the tarball that was used for building of
Debian packages, then the source package could not be uploaded to Debian.

Please see my forthcoming mail, explaining this(I didn't want to include it in
this mail, because it would make it too cluttered).

> > In either case, since they are third party modules, and not part of jboss,
> > they can not be packaged with jboss in Debian.
>
> Fine, as long as you make for sure that there are packages available that
> contains the *exact* version of these libraries (version appropriately so
> that things don't break when they are updated).

Are the things in thirdparty and tools the latest available?  Or are they
somewhat old, as making jboss work with newer versions would be too much work
right now(right now not precluding it will work later on)?

> > If jboss has patched these upstream sources, have the patches then been sent
> > upstream?
>
> Nothing in thirdparty has been patched.  They are the same files from
> downloaded distributions.

Good.

> > I'm not building a single jboss deb.  What I have done for 2.4, is make
> > separate debs, split along the same lines as each top-level directory in the
> > 2.4.3 tarball.
>
> I am not interested in the .deb'ification of 2.4.x at all.  I would expect
> that the package structure of 2.4 would be mostly if not completly different
> than 3.0.

Because 3.0 is imminent, I won't be releasing the debs of 2.4 to a wide
audience.  Those who will see it, are people here at work, and a few
interested Debian developers, who are also interested in JBoss.  I am using
these people as my alpha and beta testers, so I can make sure that the Debian
packaging is correct and functional.

>  * * *
>
> I am interested in the creation of .deb's to make it easier for people to
> get/install/use JBoss.  I am very concerned that what you are doing will
> cause support and maintenece problems.  I would rather like to avoid having
> differing instructions for debian and non-debian users.  I would also like
> to avoid help me emails about users who have the wrong version of
> thirdparty .deb packages installed... especially when I don't really know
> who makes and maintains them.

Well, for things that exist in thirdparty, there are already existing debs in
debian.  I will make jboss depend on those debs, and modify build.xml to use
the system install versions, instead of the local versions.

Also, there is not a single type Debian user.  It is true, that doing
something along the lines of 'apt-get install jboss' should give you an almost
exact copy of what you would get when downloading a precompiled JBoss tarball.
However, there are users more advanced than this, who may, for whatever
reasons they have, not want the full JBoss environment, and only install a
smaller set of features.

The way this is accomplished, is with dependencies between debs.  You have
mentioned that there is a '_configure-modules' target in the build.xmls, that
shows the dependencies.  This information would be 'ported' to the Debian
dependency system, and would allow for micro installation of services.

I've seen talk about 3.0 mbeans supporting 'dependencies' by using
mbean-refs(and lists).  This information could be put into the .deb as well.
What happens when an mbean depends on another mbean, but isn't distributed
along side it?  How is it installed onto the system?  Does JBoss throw an
error when a mbean-ref doesn't exist?

If these dependencies were part of the deb, then the package would not
install/configure, until all of its dependencies were also installed and
configured.

> I think it would be really cool if a debian user could 'apt-get jboss' and
> in a few minutes/seconds have a functional server which they could start
> working with right away.

That's my goal.  However, I do want to support the advanced users that know
more about JBoss, and want to fine tune the installation set.

> I also think that there are huge maintenece issues envolved with making this
> happen.  Thus I would lean twords a .deb building system that took worked
> off our existing release and made use of the support files which are
> contained there.

It will, except for most things in thirdparty and tools.

> If these maintence problems are not resolved, then each time a new release
> comes out there will be problems when users upgrade, which might lead them
> away from JBoss... or may lead them to simply download the .tar.gz and work
> from there (which isn't soo bad, but just wasted yours and my time over all
> of this).

This is another thing that Debian does quite well: In place upgrading, without
lose of configuration, or introduction of breakage.

Debian packages are designed so that when upgrading from one version to
another, the configuration is carried over.  If, for some reason, the new
version of a package has a subtle change to the configuration, then generally
a script is written that facilitates this change.

Additionally, if the new version is so radically different that any kind of
automatic conversion is not possible, then a few solutions can be used:

  1: The new version can either refuse to install, when it detects that the
     existing configuration won't work; or,
  2: The new version can install, but not start up automatically.
  3: The new version can actually be packaged as a separate deb, with a
     different name, so that there is no 'upgrade' per se.

Often, upstream developers don't always fully consider the issues that can
occur from upgrading from several different old version(2.2 -> 3.0, 2.4 ->
3.0, 2.4.3 -> 3.0) to the latest.  Quite often, there only exists support for
upgrading from the last released version.  It is the Debian maintainer's job
to make sure that a package installed in Debian stable, can be upgraded to the
next Debian stable, 2 iterations later.  It's not always appropriate for
upstream to consider this, as upstream is concerned about producing the best
possible piece of software.  It's Debian's concern about upgrading.  Each
entity knows their respective field.

> The only way I can see that this will fly at all would be if
>
>  1) the building of jboss .deb's was integrated into the jboss build system
>     (removing the dependency on you or any other .deb packager to build them)

This is an eventual goal.

>  2) proving that there are active/reliable maintainers of packages
>     for ALL the thirdparty libs required or generating those libs from the
>     jboss thirdparty repository

Debian has facilities for handling MIA maintainers.

>  3) ensureing that any FHS or anyother debian specific changes that need to
>     be made to the release do not have ANY effect on the servers operation
>     and do not make the administration and support of the server any
>     different than the .tar.gz/.zip release.

This is the role of the Debian maintainer.  If the maintainer does modify the
source, then he is committing 'bad mojo'.


_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to