id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	distribution
1233	Resolver unable to cope with || conditional of same package	azaghal		"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."	defect	closed	Sometime		clients/cave	0.72.2	fixed					Gentoo
