Bug#728562: libgpars-groovy-java, groovy: error when trying to install together: overwriting /usr/share/groovy/lib/gpars.jar

Russel Winder russel at winder.org.uk
Mon Nov 4 09:18:34 UTC 2013


Andreas,

On Sun, 2013-11-03 at 02:34 +0100, Andreas Beckmann wrote:
> Package: libgpars-groovy-java,groovy
> Version: 2.1.6+dfsg-1
> Severity: serious
> User: treinen at debian.org
> Usertags: edos-file-overwrite
> 
> Architecture: amd64
> Distribution: sid + experimental
> 
> Hi,
> 
> automatic installation tests of packages that share a file and at the
> same time do not conflict by their package dependency relationships has
> detected the following problem:
> 
>   Preparing to replace groovy 1.8.6-1 (using .../groovy_2.1.6+dfsg-1_all.deb) ...
>   Unpacking replacement groovy ...
>   dpkg: error processing /var/cache/apt/archives/groovy_2.1.6+dfsg-1_all.deb (--unpack):
>    trying to overwrite '/usr/share/groovy/lib/gpars.jar', which is also in package libgpars-groovy-java 0.10-1
> 
> This is a serious bug as it makes installation fail, and violates
> sections 7.6.1 and 10.1 of the policy. An optimal solution would
> consist in only one of the packages installing that file, and renaming
> or removing the file in the other package. Depending on the
> circumstances you might also consider Replace relations or file
> diversions. If the conflicting situation cannot be resolved then, as a
> last resort, the two packages have to declare a mutual
> Conflict. Please take into account that Replaces, Conflicts and
> diversions should only be used when packages provide different
> implementations for the same functionality.

Whilst this may a priori be a failure of the Debian packaging rules, the
situation stems from the fact that GPars used to be a totally separate
thing from Groovy, but now the Groovy distribution includes and relies
on GPars even though it is has a separate development line. I argue that
the Debian package strategy may well be the underlying problem here
because it does not allow multiple versions of artefacts as is standard
practice in the JVM-verse.

Whilst libgpars-groovy-java used to be a good idea, the gpars artefact
should be an integral part of the groovy package from Groovy 2.0
onwards.

Also worth noting that GPars 0.10 is ancient, we are now at 1.1 and
wondering when to release 1.2.

> Here is a list of files that are known to be shared by both packages
> (according to the Contents file for sid/amd64, which may be
> slightly out of sync):
> 
>   /usr/share/groovy/lib/gpars.jar

This raises the issue of why Debian has a single unnumbered artefact
when the Java universe works with numbered artefacts so that different
versions can be used in the same system.  In particular, in order to
have Gradle 1.x installed, Groovy 1.8.x must be installed, which means
Groovy 2.1.x cannot be installed unless Gradle is removed. There is a
viscous circle here leading to Debian being unable to support the Groovy
infrastructure.

Debian really needs to change it's Java and Groovy policies to enable
multiple versions of artefacts.

To be honest the current situation means most people ignore the Debian
packaging system for Java and Groovy (and indeed Scala, Ceylon, Kotlin,
Clojure, etc.) and use the language specific installations. For Groovy
this means using GVM, which is a Bash based package installer which just
requires some Java install at JAVA_HOME. Most people use the Oracle
distribution, particularly those of us using Java 8 – which cannot be
packaged by Debian for Unstable for sensible reasons.
 
> This bug is assigned to both packages. If you, the maintainers of
> the two packages in question, have agreed on which of the packages will
> resolve the problem please reassign the bug to that package. You may
> also register in the BTS that the other package is affected by the bug.
> 
> Cheers,
> 
> Andreas
> 
> PS: for more information about the detection of file overwrite errors
> of this kind see http://edos.debian.net/file-overwrites/.

-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder at ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder



More information about the pkg-java-maintainers mailing list