aboutsummaryrefslogtreecommitdiff
blob: e71c72934d2f21859bb38216a795accf150423fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<longdescription>
	Test for rebuild slot operator in 'any-of' (or '||') RDEPEND.

	This particular example breaks in the following way:

	Suppose we have Two packages installed:
		- not-broken/pkg1-subslot-0
		- ebuld-test/RDEPEND-any-of-slotop-0

	In this case the
		RDEPEND="|| ( =not-broken/pkg1-subslot-0:= =not-broken/pkg1-subslot-1:= )"
	gets expanded by portage to the following vdb entry:
		RDEPEND="|| ( =not-broken/pkg1-subslot-0:0/0= =not-broken/pkg1-subslot-1:= )"

	Note the second unexpanded alternative.

	Then to trigger a bug we need to try to update depend only:
		emerge -1 not-broken/pkg1-subslot

	Portage can not figure out update path from this case:

	!!! Multiple package instances within a single package slot have been pulled
	!!! into the dependency graph, resulting in a slot conflict:

	not-broken/pkg1-subslot:0

	  (not-broken/pkg1-subslot-1:0/1::test_repo, ebuild scheduled for merge) pulled in by
	    not-broken/pkg1-subslot (Argument)
	    =not-broken/pkg1-subslot-1:= required by (ebuild-test/RDEPEND-any-of-slotop:0/0::test_repo, installed)
	    ^                         ^^

	  (not-broken/pkg1-subslot-0:0/0::test_repo, installed) pulled in by
	    =not-broken/pkg1-subslot-0:0/0= required by (ebuild-test/RDEPEND-any-of-slotop:0/0::test_repo, installed)
	    ^
</longdescription>
</pkgmetadata>