Bug#641298: libmaven-scm-java: circular dependency hell

Bill Allombert Bill.Allombert at math.u-bordeaux1.fr
Mon Sep 26 22:54:53 UTC 2011


On Tue, Sep 13, 2011 at 10:25:24PM +0200, Torsten Werner wrote:
> On Tue, Sep 13, 2011 at 8:31 PM, Bill Allombert
> <Bill.Allombert at math.u-bordeaux1.fr> wrote:
> > Symptoms include 'apt-get dist-upgrade' from stable to next-stable trying to
> > remove a lot of packages by failure to find a better upgrade path, to
> > maintainer scripts failing because they assume the Dependent package to be
> > configured.
> 
> I see. But I am not convinced that we currently have a real problem
> that can be reproduced. I must admit that i do not have time to hunt
> unreproducible bugs.

Neither I am.  Problems tend to occurs when a set of circularly-depending
packages are upgraded from a stable release to the next, which happens years
after the circularly-dependency was introduced, and too late to be fixed.

So instead I am working toward fixing the issue preemptively by removing
circular dependencies. So far more than 120 circular dependencies has been
removed, a number of them due to the work of the Java team. Seeing 3 new ones
in a short interval is not good news.

> > Indeed. Given that this circular dependency was introduced yesterday, it could not have
> > caused problem with previous upgrade.
> 
> I do not mind splitting one of those binary packages into two packages
> as long as we do not have to split the jar files. But I am expecting
> some proposal from your side. I simply do not know what kind of
> splitting would resolve the issue.

In the case at hand, there is also a circular Build-Depends, so it is not
possible to build the three packages from scratch in any order. How people are
supposed to build the package from upstream source ?

At first glance, if you move 
/usr/share/java/wagon-scm-1.0.jar and /usr/share/java/wagon-scm.jar
to a separate package libwagon-scm-java
then we should have the following dependencies

libwagon-scm-java ----------------------------------------------> libwagon-java
                  \-> libmaven-scm-java ->  libmaven2-core-java ----^

alternatively you can add a libwagon-core-java with everything but /usr/share/java/wagon-scm.jar and /usr/share/java/wagon-scm-1.0.jar:

libwagon-java ----------------------------------------------> libwagon-core-java
             \-> libmaven-scm-java ->  libmaven2-core-java ----^

This way libwagon-java is still the full version.

But I have never used any of these libraries so there might be a more natural way
to split the packages.

Cheers,
-- 
Bill. <ballombe at debian.org>

Imagine a large red swirl here. 





More information about the pkg-java-maintainers mailing list