libecj-java shouldn't recommend java2-runtime

Bug #249178 reported by Thierry Carrez
Affects Status Importance Assigned to Milestone
ecj (Ubuntu)
Fix Released
gcj-4.3 (Ubuntu)
Fix Released

Bug Description

Binary package hint: ecj

libecj-java recommends java2-runtime, now that apt-get pulls "Recommends" packages by default this results in pulling full JREs where java-2-runtime-headless would be sufficient.

The easy solution is either to change that to java2-runtime-headless, or transfer it to "Suggests".

Related branches

Revision history for this message
Thierry Carrez (ttx) wrote :

Note that this asks the general question of what we should put in Depends/Recommends/Suggests for Java library packages :

- A "Depends" on the minimal virtual package (most of the time the -headless one) needed to make use of it ?
- A "Recommends" on the same ?
- Nothing, and let the package that runs it pull the necessary runtime ?

Currently in main we can find a combination of those solutions, usually resulting in too much being pulled in for server platforms.

Note that a discussion of this issue is on the agenda of the java community meeting of Jul 17.

Revision history for this message
Thierry Carrez (ttx) wrote :

Proposed debdiff to fix runtime dependencies.

ecj (3.3.0+0728-9ubuntu1) intrepid; urgency=low

  * Fix libecj-java runtime deps to use -headless virtuals (LP: #249178)
  * libecj-java-gcj is now suggested rather than recommended for libecj-java

Changed in ecj:
assignee: nobody → tcarrez
importance: Undecided → Low
status: New → Triaged
Revision history for this message
Thierry Carrez (ttx) wrote :

There was a recent ubuntu-devel post by Matthias Klose on why we should keep -gcj recommends for now.

However keeping it here means a server installation of (for example) tomcat6 will pull in lots of unwanted X libraries through libecj-java-gcj -> libgcj-bc -> libgcj9-0 -> libgcj9-0-awt.

So I still think we have a good reason to downgrade it to "Suggests" here. Furthermore, I don't think libecj-java needs libecj-java-gcj in "all but unusual installations"...

Another way around this might be to drop the libgcj9-0-awt "Recommends" in libgcj9-0. Let me know if that would be a preferred way to fix this.

Changed in ecj:
assignee: tcarrez → nobody
status: Triaged → Confirmed
Revision history for this message
Thierry Carrez (ttx) wrote :

Following Matthias' advice in his email, here is a better fix :
- depend on default-jre-headless | java2-runtime-headless
- recommend libecj-java-gcj | openjdk-6-jre-headless [amd64 i386 lpia] | cacao-oj6-jre-headless [powerpc]

This way it works optimally in all cases but having GCJ together with another runtime...

Revision history for this message
Colin Watson (cjwatson) wrote :

23:22 <doko> well, yes, maybe we could drop this recommend, now that we have java-gcj-compat and java-gcj-compat-hl. I'll do this next week
23:22 <doko> I mean: dropping the recomend of libgcj9-0-awt in libgcj9-0

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gcj-4.3 - 4.3.2-1ubuntu1

gcj-4.3 (4.3.2-1ubuntu1) intrepid; urgency=medium

  * Merge with Debian; remaining changes:
    - Regenerate the control file.
  * gij-4.3, libgcj9-0: Make libgcj9-0-awt a suggestion, instead of a
    recommendation. LP: #249178.
  * Upload as gcj-4.3.

gcc-4.3 (4.3.2-1) unstable; urgency=medium

  [Matthias Klose]
  * Final gcc-4.3.2 release (regression fixes).
    - Remove the generated install docs from the tarball (GFDL licensed).
    - C++ regression fixes: PR debug/37156.
    - general regression fixes: PR debug/37156, PR target/37101.
    - Java regression fixes: PR libgcj/8995.
  * Update to SVN 20080905 from the gcc-4_3-branch.
    - C++ regression fixes: PR c++/36741 (wrong diagnostic),
    - general regression fixes: PR target/37184 (ice on valid code),
      PR target/37191 (ice on valid code), PR target/37197 (ice on valid code),
      PR middle-end/36817 (ice on valid code), PR middle-end/36548 (wrong code),
      PR middle-end/37125 (wrong code), PR c/37261 (wrong diagnostic),
      PR target/37168 (ice on valid code), PR middle-end/36449 (wrong code),
      PR middle-end/37248 (missed optimization), PR target/36332 (wrong code).
    - Fortran regression fixes: PR fortran/37193 (rejects valid code).
  * Move symlinks in gcc_lib_dir from cpp-4.3 to gcc-4.3-base. Closes: #497369.
  * Don't build-depend on autogen on architectures where it is not installable
    (needed for the fixincludes testsuite only); don't build-depend on it for
    source packages not running the fixincludes testsuite.

  [Ludovic Brenta]
  * Add to libgnatprj4.3-dev. Fixes: #492866.
  * turn gnatvsn.gpr and gnatprj.gpr into proper library project files.
  * Unconditionally build-depend on gnat when building gnat-4.3.
    Fixes: #487564.
  * (debian/rules.d/ Add a symlink to
    /usr/lib/ in the adalib directory. Fixes: #493814.
  * (debian/patches/ada-sjlj.dpatch): remove dangling symlinks from all
    adalib directories.
  * debian/patches/ada-alpha.dpatch: remove, applied upstream.

  [Samuel Tardieu, Ludovic Brenta]
  * debian/patches/pr16086.dpatch: new; backport from GCC 4.4.
    Closes: #248172.
  * debian/patches/pr35792.dpatch: new; backport from GCC 4.4.
  * debian/patches/pr15808.dpatch (fixes: #246392),
    debian/patches/pr30827.dpatch: new; backport from the trunk.

 -- Matthias Klose <email address hidden> Sat, 06 Sep 2008 12:25:41 +0200

Changed in gcj-4.3:
status: New → Fix Released
Revision history for this message
Matthias Klose (doko) wrote :

ubuntu-archive, please sync from unstable, and close this report:

ecj (3.3.0+0728-10) unstable; urgency=low

  * libecj-java: Recommend default-jre-headless | java2-runtime-headless
    instead of java2-runtime.

Revision history for this message
Steve Langasek (vorlon) wrote :

[Updating] ecj (3.3.0+0728-9 [Ubuntu] < 3.3.0+0728-10 [Debian])
 * Trying to add ecj...
  - <ecj_3.3.0+0728.orig.tar.gz: already in distro - downloading from librarian>
  - <ecj_3.3.0+0728-10.diff.gz: downloading from>
  - <ecj_3.3.0+0728-10.dsc: downloading from>
I: ecj [main] -> ecj_3.3.0+0728-9 [main].
I: ecj [main] -> libecj-java_3.3.0+0728-9 [main].
I: ecj [main] -> libecj-java-gcj_3.3.0+0728-9 [main].
I: ecj [main] -> ecj-gcj_3.3.0+0728-9 [main].

Changed in ecj:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.