Ticket #1233 (closed defect: fixed)

Opened 7 years ago

Last modified 7 years ago

Resolver unable to cope with || conditional of same package

Reported by: azaghal Owned by:
Priority: Sometime Milestone:
Component: clients/cave Version: 0.72.2
Keywords: Cc:
Blocked By: Blocking:
Distribution: Gentoo

Description

In the steps described below, I'll assume that the local repository is located in /usr/local/portage/ and that its name is "local". The ebuilds provided bellow also assume that the target architecture is x86 or amd64 (no testing - ~amd64 and ~x86 - enabled by default).

Steps to reproduce:

  1. Create directories /usr/local/portage/virtual/{testlib,testapp}.
  2. Place the ebuilds into respective directories.
  3. Run the digests.
  4. Install virtual/testapp (this should automatically pull in thestlib-0.1).
  5. Unmask the testlib-0.2. Remove testlib-0.1.
  6. Run the digests.
  7. Try updating the two packages with cave resolve testlib testapp _or_ cave resolve testlib --with testapp.

Expected results:

The resolver has successfully figured out that it needs to install the testlib followed by reinstallation of testapp.

Actual results:


# cave resolve testlib testapp Done: 1231 steps

These are the actions I will take, in order:

r virtual/testapp:0::marks_local_repository 0.1 to ::installed replacing 0.1

xml build_options: symbols=split -optional_tests -trace -preserve_work Reasons: target

Total: 1 reinstalls

I encountered the following errors:

! virtual/testlib

Reasons: target, virtual/testapp Unsuitable candidates:

  • virtual/testlib-0.1:0::installed Did not meet virtual/testlib, never using existing, installing to / from target
  • virtual/testlib-0.2:0::marks_local_repository Did not meet <virtual/testlib-0.2:0[xml?], use existing if possible, installing to / from virtual/testapp

# cave resolve testlib --with testapp Done: 1229 steps

These are the actions I will take, in order:

u virtual/testlib:0::marks_local_repository 0.2 to ::installed replacing 0.1

build_options: symbols=split -optional_tests -trace -preserve_work Reasons: target

Total: 1 upgrades

I cannot proceed without being permitted to do the following:

X virtual/testapp 0.1:0::installed

Will be broken by uninstalls: Reasons: dependent upon virtual/testlib-0.1:0::installed (DEPEND), dependent upon virtual/testlib-0.1:0::installed (RDEPEND) Cannot proceed without: --uninstalls-may-break or --remove-if-dependent

Executing pretend actions: 1 of 1

  • No unread news items found

Additional notes:

As a variation on step 5, you may also want to keep the testlib-0.1 ebuild around - the resolver will still choke, just with different message.

The original problem I had was with the raptor/redland packages (raptor being the equivalent of the testlib package, redland being the equivalent of the testapp package).

A slight difference was that redland's ebuild was changed without bumping from an entry "media-libs/raptor:2[xml?]" to "
(>=media-libs/raptor-2.0.7:2 <media-libs/raptor-2.0.7:2[xml?] )".

This difference doesn't result in different behaviour in case of libtest/libapp (i.e. if I manually change the libapp in similar way from first to second), though.

Attachments

testapp-0.1.ebuild Download (357 bytes) - added by azaghal 7 years ago.
testlib-0.1.ebuild Download (288 bytes) - added by azaghal 7 years ago.
testlib-0.2.ebuild Download (287 bytes) - added by azaghal 7 years ago.

Change History

Changed 7 years ago by azaghal

Changed 7 years ago by azaghal

Changed 7 years ago by azaghal

comment:1 in reply to: ↑ description Changed 7 years ago by zaufi

Replying to azaghal:

Additional notes:

As a variation on step 5, you may also want to keep the testlib-0.1 ebuild around - the resolver will still choke, just with different message.

The original problem I had was with the raptor/redland packages (raptor being the equivalent of the testlib package, redland being the equivalent of the testapp package).

A slight difference was that redland's ebuild was changed without bumping from an entry "media-libs/raptor:2[xml?]" to "
(>=media-libs/raptor-2.0.7:2 <media-libs/raptor-2.0.7:2[xml?] )".

confirm! I was intended to add a bug w/ raptor-2.0.7 and redland (which are in the portage tree nowadays) but found this report. Unfortunately this bug tracker doesn't allow to vote -- this bug leads to inability to install updates now :(

comment:2 Changed 7 years ago by ciaranm

Haaaang on. testlib 2 is ~arch, and testlib 1 is stable. Are you accepting ~arch for it?

comment:3 Changed 7 years ago by ciaranm

The issue is that we prefer "already installed" to "could install", even if the "could install" is an upgrade of an "already installed" that would be carried out.

comment:4 Changed 7 years ago by ciaranm

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