Ticket #1233 (closed defect: fixed)
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:
- Create directories /usr/local/portage/virtual/{testlib,testapp}.
- Place the ebuilds into respective directories.
- Run the digests.
- Install virtual/testapp (this should automatically pull in thestlib-0.1).
- Unmask the testlib-0.2. Remove testlib-0.1.
- Run the digests.
- 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).
| (>=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
Change History
comment:1 in reply to: ↑ description Changed 13 months 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 13 months ago by ciaranm
Haaaang on. testlib 2 is ~arch, and testlib 1 is stable. Are you accepting ~arch for it?

