Ticket #1189 (closed defect: fixed)

Opened 7 years ago

Last modified 7 years ago

Optional dependency on itself makes package not installable

Reported by: eeight Owned by:
Priority: Sometime Milestone:
Component: core/paludis/resolver Version: 0.64.3
Keywords: Cc:
Blocked By: Blocking:
Distribution: Gentoo

Description

icedtea has not optional dependency on itself. Although at least one of other alternatives is satisfied, paludis reports it as

I cannot provide a legal ordering for the following:

n   dev-java/icedtea:6::java-overlay 6.1.10.3 to ::installed [cycle 2]
    "A harness to build the OpenJDK using Free Software build tools and dependencies"
    -cacao -debug -doc -examples hs20 -jamvm -javascript -nio2 nsplugin nss -pulseaudio -systemtap webstart xrender -zero build_options: (-optional_tests) symbols=split -trace -preserve_work
    Reasons: target, dev-java/icedtea, dev-java/icedtea-web, virtual/jdk
    In dependency cycle with existing packages: sys-apps/lsb-release:0, dev-java/icedtea:6; Self dependent (unsolvable)

These are the dependencies cave show -c icedtea shows (icedtea6-bin is already installed):

    Build dependencies        
                              >=net-print/cups-1.2.12
                              >=x11-libs/libX11-1.1.3
                              >=media-libs/freetype-2.3.5
                              >=media-libs/alsa-lib-1.0
                              >=x11-libs/gtk+-2.8:2
                              >=x11-libs/libXinerama-1.0.2
                              >=x11-libs/libXp-1.0.0
                              >=x11-libs/libXi-1.1.3
                              >=x11-libs/libXau-1.0.3
                              >=x11-libs/libXdmcp-1.0.2
                              >=x11-libs/libXtst-1.0.3
                              virtual/jpeg
                              >=media-libs/libpng-1.2
                              >=media-libs/giflib-4.1.6
                              >=sys-libs/zlib-1.2.3
                              x11-proto/inputproto
                              x11-proto/xineramaproto
                              pulseaudio? (
                                  >=media-sound/pulseaudio-0.9.11
                              )
                              javascript? (
                                  dev-java/rhino:1.6
                              )
                              zero? (
                                  virtual/libffi
                              )
                              xrender? (
                                  >=x11-libs/libXrender-0.9.4
                              )
                              systemtap? (
                                  >=dev-util/systemtap-1
                              )
                              !dev-java/icedtea6
                              nss? (
                                  >=dev-libs/nss-3.12.5-r1
                              )
                              || (
                                  (
                                      >=dev-java/gcj-jdk-4.3
                                      >=app-admin/eselect-ecj-0.5-r1
                                  )
                                  (
                                      >=dev-java/cacao-0.99.2
                                      >=app-admin/eselect-ecj-0.5-r1
                                  )
                                  dev-java/icedtea6-bin
                                  dev-java/icedtea:6
                              )
                              app-arch/zip
                              >=dev-java/xalan-2.7.0:0
                              >=dev-java/xerces-2.9.1:2
                              >=dev-java/ant-core-1.7.1-r2
                              dev-java/ant-nodeps
                              app-misc/ca-certificates
                              dev-lang/perl
                              dev-libs/openssl
                              || (
                                  (
                                      >=x11-libs/libXext-1.1.1
                                      >=x11-proto/xextproto-7.1.1
                                      x11-proto/xproto
                                  )
                                  <x11-libs/libXext-1.1.1
                              )
                              sys-apps/lsb-release
                              >=dev-java/java-config-2.1.9-r1
                              =dev-java/java-config-2*
    Post dependencies         
                              webstart? (
                                  dev-java/icedtea-web:6
                              )
                              nsplugin? (
                                  dev-java/icedtea-web:6[nsplugin]
                              )
    Run dependencies          
                              >=net-print/cups-1.2.12
                              >=x11-libs/libX11-1.1.3
                              >=media-libs/freetype-2.3.5
                              >=media-libs/alsa-lib-1.0
                              >=x11-libs/gtk+-2.8:2
                              >=x11-libs/libXinerama-1.0.2
                              >=x11-libs/libXp-1.0.0
                              >=x11-libs/libXi-1.1.3
                              >=x11-libs/libXau-1.0.3
                              >=x11-libs/libXdmcp-1.0.2
                              >=x11-libs/libXtst-1.0.3
                              virtual/jpeg
                              >=media-libs/libpng-1.2
                              >=media-libs/giflib-4.1.6
                              >=sys-libs/zlib-1.2.3
                              x11-proto/inputproto
                              x11-proto/xineramaproto
                              pulseaudio? (
                                  >=media-sound/pulseaudio-0.9.11
                              )
                              javascript? (
                                  dev-java/rhino:1.6
                              )
                              zero? (
                                  virtual/libffi
                              )
                              xrender? (
                                  >=x11-libs/libXrender-0.9.4
                              )
                              systemtap? (
                                  >=dev-util/systemtap-1
                              )
                              !dev-java/icedtea6
                              nss? (
                                  >=dev-libs/nss-3.12.5-r1
                              )
                              >=dev-java/java-config-2.1.9-r1
                              =dev-java/java-config-2*

Change History

comment:1 Changed 7 years ago by eeight

The trac would not let me to attach the ebuild, so here is the link:  http://overlays.gentoo.org/proj/java/browser/java-overlay/dev-java/icedtea/icedtea-6.1.10.3.ebuild

comment:2 Changed 7 years ago by ciaranm

There's something funky going on with the dependencies there. Note the run dependency:

                              !dev-java/icedtea6

What's that doing?

comment:3 Changed 7 years ago by eeight

Maybe this is blocking previous version of the ebuild? icedtea:6 vs icedtea6?

comment:4 Changed 7 years ago by ciaranm

Oh, right.

There's a sense in which I'm not entirely sure we can legally order this. The thing is, || ( a b ) doesn't exactly mean "a or b". If a and b are both installed, || ( a b ) means "a and b", or possibly "a or b and I'm not telling you which"... This is very fiddly.

comment:5 Changed 7 years ago by eeight

Well, I agree when a and b are both installed it makes sense to treat the dependency like that. The situation described is a bit different, it is "a installed, b is not". And b depends on || (a b) must be giving the b the green light to build. Why is paludis enforcing self-dependency in this case?

comment:6 Changed 7 years ago by ciaranm

It's enforcing it because || ( ) dependencies are squished down to a ( ) block early on (leaving alternatives in place for ordering leads to all sorts of crazy problems). The actual issue here is that the values being selected for that ( ) block aren't the ones you want...

comment:7 Changed 7 years ago by eeight

So whose problem is that? The ebuild's or paludis'?

comment:8 Changed 7 years ago by ciaranm

You could argue it either way.

comment:9 Changed 7 years ago by ciaranm

  • Status changed from new to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.