<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>143908</bug_id>
          
          <creation_ts>2006-08-14 11:21 0000</creation_ts>
          <short_desc>|| ( a b ) in DEPEND with &apos;a&apos; p.masked causes portage to &quot;die&quot; saying &apos;a&apos; is masked</short_desc>
          <delta_ts>2006-11-19 15:01:55 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Portage Development</product>
          <component>Core - Dependencies</component>
          <version>2.1</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <keywords>InSVN</keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>136244</blocked>
    
    <blocked>155723</blocked>
          
          <everconfirmed>1</everconfirmed>
          <reporter>agaffney@gentoo.org</reporter>
          <assigned_to>dev-portage@gentoo.org</assigned_to>
          <cc>gentoo-bugzilla@lists.diesedomainwarnochfrei.de</cc>
    
    <cc>ikelos@gentoo.org</cc>
    
    <cc>jakub@gentoo.org</cc>
    
    <cc>Ristioja@gmail.com</cc>
    
    <cc>slucy@uchicago.edu</cc>
    
    <cc>truedfx@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>agaffney@gentoo.org</who>
            <bug_when>2006-08-14 11:21:20 0000</bug_when>
            <thetext>!!! All ebuilds that could satisfy &quot;app-admin/eselect-compiler&quot; have been masked.
!!! One of the following masked packages is required to complete your request:
- app-admin/eselect-compiler-2.0.0_rc1-r6 (masked by: package.mask)
# Ned Ludd &lt;solar/gentoo.org&gt; (Aug 14 2006)
# This this breaks working systems and eradicator
# has gone MIA yet again. Bug 137917

- app-admin/eselect-compiler-2.0.0_rc2 (masked by: package.mask)
- app-admin/eselect-compiler-2.0.0_rc2-r1 (masked by: package.mask)

For more information, see MASKED PACKAGES section in the emerge man page or
refer to the Gentoo Handbook.
(dependency required by &quot;sys-libs/glibc-2.4-r3&quot; [ebuild])</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2006-08-14 13:28:49 0000</bug_when>
            <thetext>*** Bug 143921 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2006-08-14 14:30:48 0000</bug_when>
            <thetext>The problem seems to be that gcc-config-2.0.0_rc1 also needs to be masked in order to prevent eselect-compliler from being selected as a candidate.  Intially, eselect-compiler was masked, but gcc-config-2.0.0_rc1 was still unmasked as shown here:

http://sources.gentoo.org/viewcvs.py/gentoo-x86/profiles/package.mask?r1=1.5735&amp;r2=1.5736

Portage&apos;s resolver needs hints in order to make the correct choices.  Once it starts down the wrong path, it&apos;s unable to backtrack.  A more robust resolver is certainly needed, but it is not a small undertaking.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>truedfx@gentoo.org</who>
            <bug_when>2006-08-16 03:52:16 0000</bug_when>
            <thetext>(In reply to comment #2)
&gt; The problem seems to be that gcc-config-2.0.0_rc1 also needs to be masked in
&gt; order to prevent eselect-compliler from being selected as a candidate. 
&gt; Intially, eselect-compiler was masked, but gcc-config-2.0.0_rc1 was still
&gt; unmasked as shown here:

Sorry, but that&apos;s only one of the reasons you can get this error, and the other is not fixed. I can still get the original error message, and an extremely simple test shows this:

$ emerge -pv testa testb

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] test/testa-1.0  0 kB [1] 
[ebuild   R   ] test/testb-1.0  0 kB [1] 

Total size of downloads: 0 kB
Portage overlays:
 [1] /etc/portage/overlay
 [2] /etc/portage/overlay/enlightenment
$ cd /etc/portage/overlay
$ cat test/testa/testa-1.0.ebuild
KEYWORDS=&quot;~x86&quot;
$ cat test/testb/testb-1.0.ebuild
KEYWORDS=&quot;~x86&quot;
DEPEND=&quot;|| ( test/testa sys-apps/portage )&quot;
$ echo test/testa &gt;&gt;/etc/portage/package.mask
$ emerge -pDuv test/testb

These are the packages that would be merged, in order:

Calculating dependencies -
!!! All ebuilds that could satisfy &quot;test/testa&quot; have been masked.
!!! One of the following masked packages is required to complete your request:
- test/testa-1.0 (masked by: package.mask)

For more information, see MASKED PACKAGES section in the emerge man page or 
refer to the Gentoo Handbook.
(dependency required by &quot;test/testb-1.0&quot; [ebuild])

In other words, portage continues to prefer test/testa since it&apos;s installed already, even though it&apos;s now hardmasked.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>truedfx@gentoo.org</who>
            <bug_when>2006-08-16 03:52:51 0000</bug_when>
            <thetext>Probably better to reopen too, then :)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jstubbs@gentoo.org</who>
            <bug_when>2006-08-16 07:31:57 0000</bug_when>
            <thetext>Created an attachment (id=94397)
Rewrite of || () handling in dep_zapdeps

I went to try and fix this bug but couldn&apos;t figure out what was going on in that function (and I wrote that code!) so I rewrote it to be a bit more readable and added comments as well.

I do know what the previous code was written to do though and this patch changes it slightly. One change of course is that the availablity of masked packages is checked, fixing this bug. The other change however...

I&apos;m sure everybody knows of kde&apos;s DEPEND=&quot;|| ( =qt-3.3* =qt-3.2* =qt-3.1* )&quot;. Yep, versions are different and correct atoms are used, but that&apos;s the spirit. Previous to the unintelligable code that is now in dep_zapdeps the above DEPEND wouldn&apos;t upgrade qt-3.1 if it was installed. The current code will look for the atom that matches the highest version that shares the key of an installed package.

This patch however will just choose the first atom that shares the key of an installed package. Hence if there are any constructs such as &quot;|| ( =qt-3.2* =qt-3.3* =qt-3.1* )&quot;, it will actually cause qt-3.3 to be downgraded to qt-3.2 when --upgrade is specified. So the question is whether this is preferred behaviour or whether a check should be put in to circumvent it?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jstubbs@gentoo.org</who>
            <bug_when>2006-08-16 07:49:51 0000</bug_when>
            <thetext>Created an attachment (id=94398)
Same but doesn&apos;t downgrade

Partially addresses the behaviour change stated in my last comment. The behaviour with this patch would be:

DEPEND=&quot;|| ( some-pkg =qt-3.2* =qt-3.3* =qt-3.1* )&quot;
qt-3.1 installed? Choose qt-3.2
qt-3.2 installed? Choose qt-3.2
qt-3.3 installed? Choose qt-3.3
None installed? Choose some-pkg

Current behaviour would be to choose qt-3.3 in all cases but the last.
Behaviour of the last patch would be to choose qt-3.2 in all cases but the last.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>antarus@gentoo.org</who>
            <bug_when>2006-08-16 09:31:48 0000</bug_when>
            <thetext>(In reply to comment #5)
&gt; Created an attachment (id=94397) [edit]
&gt; Rewrite of || () handling in dep_zapdeps
&gt; 
&gt; I went to try and fix this bug but couldn&apos;t figure out what was going on in
&gt; that function (and I wrote that code!) so I rewrote it to be a bit more
&gt; readable and added comments as well.
&gt; 
&gt; I do know what the previous code was written to do though and this patch
&gt; changes it slightly. One change of course is that the availablity of masked
&gt; packages is checked, fixing this bug. The other change however...
&gt; 
&gt; I&apos;m sure everybody knows of kde&apos;s DEPEND=&quot;|| ( =qt-3.3* =qt-3.2* =qt-3.1* )&quot;.
&gt; Yep, versions are different and correct atoms are used, but that&apos;s the spirit.
&gt; Previous to the unintelligable code that is now in dep_zapdeps the above DEPEND
&gt; wouldn&apos;t upgrade qt-3.1 if it was installed. The current code will look for the
&gt; atom that matches the highest version that shares the key of an installed
&gt; package.
&gt; 
&gt; This patch however will just choose the first atom that shares the key of an
&gt; installed package. Hence if there are any constructs such as &quot;|| ( =qt-3.2*
&gt; =qt-3.3* =qt-3.1* )&quot;, it will actually cause qt-3.3 to be downgraded to qt-3.2
&gt; when --upgrade is specified. So the question is whether this is preferred
&gt; behaviour or whether a check should be put in to circumvent it?
&gt; 

IMHO thats proper, the point of || deps is &quot;find the first available working dep&quot;, if as an ebuild developer you want the highest dep to be the first selected, then put it first.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2006-08-16 19:07:37 0000</bug_when>
            <thetext>I&apos;ve committed the second patch in svn r4271.  Technically, || deps should be satisfied by any one of the choices.  Thus, I think it&apos;s good do avoid a downgrade if it can be done while keeping the dep satisfied.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2006-08-17 00:14:47 0000</bug_when>
            <thetext>This has been released in 2.1.1_pre5-r2.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2006-08-25 15:25:41 0000</bug_when>
            <thetext>*** Bug 136311 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jakub@gentoo.org</who>
            <bug_when>2006-09-10 15:08:44 0000</bug_when>
            <thetext>*** Bug 147108 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94397</attachid>
            <date>2006-08-16 07:31 0000</date>
            <desc>Rewrite of || () handling in dep_zapdeps</desc>
            <filename>ordeps-rewrite.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIHBvcnRhZ2UucHkub3JpZwkyMDA2LTA4LTE3IDIyOjQyOjU3LjAwMDAwMDAwMCArMDAwMAor
KysgcG9ydGFnZS5weQkyMDA2LTA4LTE3IDIzOjE4OjA3LjAwMDAwMDAwMCArMDAwMApAQCAtMzMy
Myw2NyArMzMyMyw2NCBAQAogCQkJCXVucmVzb2x2ZWQuYXBwZW5kKGRlcCkKIAkJcmV0dXJuIHVu
cmVzb2x2ZWQKIAotCSMgV2UncmUgYXQgYSAoIHx8IGF0b20gLi4uICkgdHlwZSBsZXZlbAorCSMg
V2UncmUgYXQgYSAoIHx8IGF0b20gLi4uICkgdHlwZSBsZXZlbCBhbmQgbmVlZCB0byBtYWtlIGEg
Y2hvaWNlCiAJZGVwcyA9IHVucmVkdWNlZFsxOl0KIAlzYXRpc2ZpZWRzID0gcmVkdWNlZFsxOl0K
IAotCXRhcmdldCA9IE5vbmUKKwkjIE91ciBwcmVmZXJlbmNlIG9yZGVyIGlzIGZvciBhbiB0aGUg
Zmlyc3QgaXRlbSB0aGF0OgorCSMgYSkgY29udGFpbnMgYWxsIHVubWFza2VkIHBhY2thZ2VzIHdp
dGggdGhlIHNhbWUga2V5IGFzIGluc3RhbGxlZCBwYWNrYWdlcworCSMgYikgY29udGFpbnMgYWxs
IHVubWFza2VkIHBhY2thZ2VzCisJIyBjKSBjb250YWlucyBtYXNrZWQgaW5zdGFsbGVkIHBhY2th
Z2VzCisJIyBkKSBpcyB0aGUgZmlyc3QgaXRlbQorCisJcHJlZmVycmVkID0gW10KKwlvdGhlciA9
IFtdCisKKwkjIEFsaWFzIHRoZSB0cmVlIHdlJ2xsIGJlIGNoZWNraW5nIGF2YWlsYWJpbGl0eSBh
Z2FpbnN0CisJaWYgdXNlX2JpbmFyaWVzOgorCQlteWRiYXBpID0gdHJlZXNbbXlyb290XVsiYmlu
dHJlZSJdLmRiYXBpCisJZWxzZToKKwkJbXlkYmFwaSA9IHRyZWVzW215cm9vdF1bInBvcnR0cmVl
Il0uZGJhcGkKKworCSMgU29ydCB0aGUgZGVwcyBpbnRvIHByZWZlcnJlZCAoaW5zdGFsbGVkKSBh
bmQgb3RoZXIKKwkjIHdpdGggdmFsdWVzIG9mIFtbcmVxdWlyZWRfYXRvbV0sIGF2YWlsYWJsaWxp
dHldCiAJZm9yIChkZXAsIHNhdGlzZmllZCkgaW4gemlwKGRlcHMsIHNhdGlzZmllZHMpOgogCQlp
ZiBpc2luc3RhbmNlKGRlcCwgbGlzdCk6CiAJCQlhdG9tcyA9IGRlcF96YXBkZXBzKGRlcCwgc2F0
aXNmaWVkLCBteXJvb3QsCiAJCQkJdXNlX2JpbmFyaWVzPXVzZV9iaW5hcmllcywgdHJlZXM9dHJl
ZXMpCiAJCWVsc2U6CiAJCQlhdG9tcyA9IFtkZXBdCi0JCW1pc3NpbmdfYXRvbXMgPSBbYXRvbSBm
b3IgYXRvbSBpbiBhdG9tcyBpZiBub3QgdHJlZXNbbXlyb290XVsidmFydHJlZSJdLmRiYXBpLm1h
dGNoKGF0b20pXQogCi0JCWlmIG5vdCBtaXNzaW5nX2F0b21zOgotCQkJaWYgaXNpbnN0YW5jZShk
ZXAsIGxpc3QpOgotCQkJCXJldHVybiBhdG9tcyAgIyBTb3J0ZWQgb3V0IGJ5IHRoZSByZWN1cnNl
ZCBkZXBfemFwZGVwcyBjYWxsCi0JCQllbHNlOgotCQkJCXRhcmdldCA9IGRlcF9nZXRrZXkoZGVw
KSAjIEFuIGluc3RhbGxlZCBwYWNrYWdlIHRoYXQncyBub3QgeWV0IGluIHRoZSBncmFwaAorCQlh
bGxfaW5zdGFsbGVkID0gVHJ1ZQorCQlmb3IgYXRvbSBpbiBhdG9tczoKKwkJCWlmIG5vdCB0cmVl
c1tteXJvb3RdWyJ2YXJ0cmVlIl0uZGJhcGkubWF0Y2goZGVwX2dldGtleShhdG9tKSk6CisJCQkJ
YWxsX2luc3RhbGxlZCA9IEZhbHNlCiAJCQkJYnJlYWsKIAotCQlpZiBub3QgdGFyZ2V0OgotCQkJ
aWYgdXNlX2JpbmFyaWVzOgotCQkJCW1pc3NpbmdfYXRvbXMgPSBbYXRvbSBmb3IgYXRvbSBpbiBh
dG9tcyBpZiBub3QgdHJlZXNbbXlyb290XVsiYmludHJlZSJdLmRiYXBpLm1hdGNoKGF0b20pXQot
CQkJZWxzZToKLQkJCQltaXNzaW5nX2F0b21zID0gW2F0b20gZm9yIGF0b20gaW4gYXRvbXMgaWYg
bm90IHRyZWVzW215cm9vdF1bInBvcnR0cmVlIl0uZGJhcGkueG1hdGNoKCJtYXRjaC12aXNpYmxl
IiwgYXRvbSldCi0JCQlpZiBub3QgbWlzc2luZ19hdG9tczoKLQkJCQl0YXJnZXQgPSAoZGVwLCBz
YXRpc2ZpZWQpCi0KLQlpZiBub3QgdGFyZ2V0OgotCQlpZiBpc2luc3RhbmNlKGRlcHNbMF0sIGxp
c3QpOgotCQkJcmV0dXJuIGRlcF96YXBkZXBzKGRlcHNbMF0sIHNhdGlzZmllZHNbMF0sIG15cm9v
dCwKLQkJCQl1c2VfYmluYXJpZXM9dXNlX2JpbmFyaWVzLCB0cmVlcz10cmVlcykKKwkJYWxsX2F2
YWlsYWJsZSA9IFRydWUKKwkJZm9yIGF0b20gaW4gYXRvbXM6CisJCQlpZiBub3QgbXlkYmFwaS5t
YXRjaChhdG9tKToKKwkJCQlhbGxfYXZhaWxhYmxlID0gRmFsc2UKKwkJCQlicmVhaworCisJCWlm
IGFsbF9pbnN0YWxsZWQ6CisJCQlwcmVmZXJyZWQuYXBwZW5kKFthdG9tcywgYWxsX2F2YWlsYWJs
ZV0pCiAJCWVsc2U6Ci0JCQlyZXR1cm4gW2RlcHNbMF1dCisJCQlvdGhlci5hcHBlbmQoW2F0b21z
LCBhbGxfYXZhaWxhYmxlXSkKIAotCWlmIGlzaW5zdGFuY2UodGFyZ2V0LCB0dXBsZSk6ICMgTm90
aGluZyBtYXRjaGluZyBpbnN0YWxsZWQKLQkJaWYgaXNpbnN0YW5jZSh0YXJnZXRbMF0sIGxpc3Qp
OiAjIC4uLiBhbmQgdGhlIGZpcnN0IGF2YWlsYWJsZSB3YXMgYSBzdWJsaXN0Ci0JCQlyZXR1cm4g
ZGVwX3phcGRlcHModGFyZ2V0WzBdLCB0YXJnZXRbMV0sIG15cm9vdCwKLQkJCQl1c2VfYmluYXJp
ZXM9dXNlX2JpbmFyaWVzLCB0cmVlcz10cmVlcykKLQkJZWxzZTogIyAuLi4gYW5kIHRoZSBmaXJz
dCBhdmFpbGFibGUgd2FzIGEgc2luZ2xlIGF0b20KLQkJCXRhcmdldCA9IGRlcF9nZXRrZXkodGFy
Z2V0WzBdKQorCSMgcHJlZmVycmVkIG5vdyBjb250YWlucyBhKSBhbmQgYykgZnJvbSB0aGUgb3Jk
ZXIgYWJvdmUgd2l0aAorCSMgdGhlIG1hc2tlZCBmbGFnIGRpZmZlcmVudGlhdGluZyB0aGUgdHdv
LiBvdGhlciBjb250YWlucyBiKQorCSMgYW5kIGQpIHNvIGFkZGluZyBvdGhlciB0byBwcmVmZXJy
ZWQgd2lsbCBnaXZlIHVzIGEgc3VpdGFibGUKKwkjIGxpc3QgdG8gaXRlcmF0ZSBvdmVyLgorCXBy
ZWZlcnJlZC5leHRlbmQob3RoZXIpCisKKwlmb3IgYWxsb3dfbWFza2VkIGluIChGYWxzZSwgVHJ1
ZSk6CisJCWZvciAoYXRvbXMsIGFsbF9hdmFpbGFibGUpIGluIHByZWZlcnJlZDoKKwkJCWlmIGFs
bF9hdmFpbGFibGUgb3IgYWxsb3dfbWFza2VkOgorCQkJCXJldHVybiBhdG9tcwogCi0JcmVsZXZh
bnRfYXRvbXMgPSBbZGVwIGZvciBkZXAgaW4gZGVwcyBpZiBub3QgaXNpbnN0YW5jZShkZXAsIGxp
c3QpIGFuZCBkZXBfZ2V0a2V5KGRlcCkgPT0gdGFyZ2V0XQorCWFzc2VydChGYWxzZSkgIyBUaGlz
IHBvaW50IHNob3VsZCBub3QgYmUgcmVhY2hhYmxlCiAKLQlhdmFpbGFibGVfcGtncyA9IHt9Ci0J
Zm9yIGF0b20gaW4gcmVsZXZhbnRfYXRvbXM6Ci0JCWlmIHVzZV9iaW5hcmllczoKLQkJCXBrZ19s
aXN0ID0gdHJlZXNbbXlyb290XVsiYmludHJlZSJdLmRiYXBpLm1hdGNoKGF0b20pCi0JCWVsc2U6
Ci0JCQlwa2dfbGlzdCA9IHRyZWVzW215cm9vdF1bInBvcnR0cmVlIl0uZGJhcGkueG1hdGNoKCJt
YXRjaC12aXNpYmxlIiwgYXRvbSkKLQkJaWYgbm90IHBrZ19saXN0OgotCQkJY29udGludWUKLQkJ
cGtnID0gYmVzdChwa2dfbGlzdCkKLQkJYXZhaWxhYmxlX3BrZ3NbcGtnXSA9IGF0b20KLQotCWlm
IG5vdCBhdmFpbGFibGVfcGtnczoKLQkJcmV0dXJuIFtyZWxldmFudF9hdG9tc1swXV0gIyBBbGwg
bWFza2VkCi0KLQl0YXJnZXRfcGtnID0gYmVzdChhdmFpbGFibGVfcGtncy5rZXlzKCkpCi0Jc3Vp
dGFibGVfYXRvbSA9IGF2YWlsYWJsZV9wa2dzW3RhcmdldF9wa2ddCi0JcmV0dXJuIFtzdWl0YWJs
ZV9hdG9tXQogCiBkZWYgZGVwX2V4cGFuZChteWRlcCwgbXlkYj1Ob25lLCB1c2VfY2FjaGU9MSwg
c2V0dGluZ3M9Tm9uZSk6CiAJaWYgbm90IGxlbihteWRlcCk6Cg==
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94398</attachid>
            <date>2006-08-16 07:49 0000</date>
            <desc>Same but doesn&apos;t downgrade</desc>
            <filename>ordeps-rewrite-nodowngrade.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIHBvcnRhZ2UucHkub3JpZwkyMDA2LTA4LTE3IDIyOjQyOjU3LjAwMDAwMDAwMCArMDAwMAor
KysgcG9ydGFnZS5weQkyMDA2LTA4LTE3IDIzOjQ3OjM0LjAwMDAwMDAwMCArMDAwMApAQCAtMzMy
Myw2NyArMzMyMyw4NyBAQAogCQkJCXVucmVzb2x2ZWQuYXBwZW5kKGRlcCkKIAkJcmV0dXJuIHVu
cmVzb2x2ZWQKIAotCSMgV2UncmUgYXQgYSAoIHx8IGF0b20gLi4uICkgdHlwZSBsZXZlbAorCSMg
V2UncmUgYXQgYSAoIHx8IGF0b20gLi4uICkgdHlwZSBsZXZlbCBhbmQgbmVlZCB0byBtYWtlIGEg
Y2hvaWNlCiAJZGVwcyA9IHVucmVkdWNlZFsxOl0KIAlzYXRpc2ZpZWRzID0gcmVkdWNlZFsxOl0K
IAotCXRhcmdldCA9IE5vbmUKKwkjIE91ciBwcmVmZXJlbmNlIG9yZGVyIGlzIGZvciBhbiB0aGUg
Zmlyc3QgaXRlbSB0aGF0OgorCSMgYSkgY29udGFpbnMgYWxsIHVubWFza2VkIHBhY2thZ2VzIHdp
dGggdGhlIHNhbWUga2V5IGFzIGluc3RhbGxlZCBwYWNrYWdlcworCSMgYikgY29udGFpbnMgYWxs
IHVubWFza2VkIHBhY2thZ2VzCisJIyBjKSBjb250YWlucyBtYXNrZWQgaW5zdGFsbGVkIHBhY2th
Z2VzCisJIyBkKSBpcyB0aGUgZmlyc3QgaXRlbQorCisJcHJlZmVycmVkID0gW10KKwlvdGhlciA9
IFtdCisKKwkjIEFsaWFzIHRoZSB0cmVlcyB3ZSdsbCBiZSBjaGVja2luZyBhdmFpbGFiaWxpdHkg
YWdhaW5zdAorCXZhcmRiID0gdHJlZXNbbXlyb290XVsidmFydHJlZSJdLmRiYXBpCisJaWYgdXNl
X2JpbmFyaWVzOgorCQlteWRiYXBpID0gdHJlZXNbbXlyb290XVsiYmludHJlZSJdLmRiYXBpCisJ
ZWxzZToKKwkJbXlkYmFwaSA9IHRyZWVzW215cm9vdF1bInBvcnR0cmVlIl0uZGJhcGkKKworCSMg
U29ydCB0aGUgZGVwcyBpbnRvIHByZWZlcnJlZCAoaW5zdGFsbGVkKSBhbmQgb3RoZXIKKwkjIHdp
dGggdmFsdWVzIG9mIFtbcmVxdWlyZWRfYXRvbV0sIGF2YWlsYWJsaWxpdHldCiAJZm9yIChkZXAs
IHNhdGlzZmllZCkgaW4gemlwKGRlcHMsIHNhdGlzZmllZHMpOgogCQlpZiBpc2luc3RhbmNlKGRl
cCwgbGlzdCk6CiAJCQlhdG9tcyA9IGRlcF96YXBkZXBzKGRlcCwgc2F0aXNmaWVkLCBteXJvb3Qs
CiAJCQkJdXNlX2JpbmFyaWVzPXVzZV9iaW5hcmllcywgdHJlZXM9dHJlZXMpCiAJCWVsc2U6CiAJ
CQlhdG9tcyA9IFtkZXBdCi0JCW1pc3NpbmdfYXRvbXMgPSBbYXRvbSBmb3IgYXRvbSBpbiBhdG9t
cyBpZiBub3QgdHJlZXNbbXlyb290XVsidmFydHJlZSJdLmRiYXBpLm1hdGNoKGF0b20pXQogCi0J
CWlmIG5vdCBtaXNzaW5nX2F0b21zOgotCQkJaWYgaXNpbnN0YW5jZShkZXAsIGxpc3QpOgotCQkJ
CXJldHVybiBhdG9tcyAgIyBTb3J0ZWQgb3V0IGJ5IHRoZSByZWN1cnNlZCBkZXBfemFwZGVwcyBj
YWxsCi0JCQllbHNlOgotCQkJCXRhcmdldCA9IGRlcF9nZXRrZXkoZGVwKSAjIEFuIGluc3RhbGxl
ZCBwYWNrYWdlIHRoYXQncyBub3QgeWV0IGluIHRoZSBncmFwaAorCQlhbGxfaW5zdGFsbGVkID0g
VHJ1ZQorCQlmb3IgYXRvbSBpbiBhdG9tczoKKwkJCWlmIG5vdCB2YXJkYi5tYXRjaChkZXBfZ2V0
a2V5KGF0b20pKToKKwkJCQlhbGxfaW5zdGFsbGVkID0gRmFsc2UKIAkJCQlicmVhawogCi0JCWlm
IG5vdCB0YXJnZXQ6Ci0JCQlpZiB1c2VfYmluYXJpZXM6Ci0JCQkJbWlzc2luZ19hdG9tcyA9IFth
dG9tIGZvciBhdG9tIGluIGF0b21zIGlmIG5vdCB0cmVlc1tteXJvb3RdWyJiaW50cmVlIl0uZGJh
cGkubWF0Y2goYXRvbSldCi0JCQllbHNlOgotCQkJCW1pc3NpbmdfYXRvbXMgPSBbYXRvbSBmb3Ig
YXRvbSBpbiBhdG9tcyBpZiBub3QgdHJlZXNbbXlyb290XVsicG9ydHRyZWUiXS5kYmFwaS54bWF0
Y2goIm1hdGNoLXZpc2libGUiLCBhdG9tKV0KLQkJCWlmIG5vdCBtaXNzaW5nX2F0b21zOgotCQkJ
CXRhcmdldCA9IChkZXAsIHNhdGlzZmllZCkKLQotCWlmIG5vdCB0YXJnZXQ6Ci0JCWlmIGlzaW5z
dGFuY2UoZGVwc1swXSwgbGlzdCk6Ci0JCQlyZXR1cm4gZGVwX3phcGRlcHMoZGVwc1swXSwgc2F0
aXNmaWVkc1swXSwgbXlyb290LAotCQkJCXVzZV9iaW5hcmllcz11c2VfYmluYXJpZXMsIHRyZWVz
PXRyZWVzKQorCQlhbGxfYXZhaWxhYmxlID0gVHJ1ZQorCQlmb3IgYXRvbSBpbiBhdG9tczoKKwkJ
CWlmIG5vdCBteWRiYXBpLm1hdGNoKGF0b20pOgorCQkJCWFsbF9hdmFpbGFibGUgPSBGYWxzZQor
CQkJCWJyZWFrCisKKwkJIyBDaGVjayBpZiB0aGUgc2V0IG9mIGF0b21zIHdpbGwgcmVzdWx0IGlu
IGEgZG93bmdyYWRlIG9mCisJCSMgYW4gaW5zdGFsbGVkIHBhY2thZ2UuIElmIHRoZXkgd2lsbCB0
aGVuIGRvbid0IHByZWZlciB0aGVtCisJCSMgb3ZlciBvdGhlciBhdG9tcy4KKwkJaWYgYWxsX2lu
c3RhbGxlZCBhbmQgYWxsX2F2YWlsYWJsZToKKwkJCWZvciBhdG9tIGluIGF0b21zOgorCQkJCWlu
c3RfcGtncyA9IHZhcmRiLm1hdGNoKGRlcF9nZXRrZXkoYXRvbSkpCisJCQkJYXZhaWxfcGtnID0g
YmVzdChteWRiYXBpLm1hdGNoKGF0b20pKQorCQkJCWF2YWlsX3Nsb3QgPSBteWRiYXBpLmF1eF9n
ZXQoYXZhaWxfcGtnLCBbIlNMT1QiXSlbMF0KKwkJCQlhdmFpbF9zcGxpdCA9IHBrZ3NwbGl0KGF2
YWlsX3BrZy5zcGxpdCgiLyIpWzFdKQorCQkJCWlzX29rYXkgPSBGYWxzZQorCQkJCWZvciBwa2cg
aW4gaW5zdF9wa2dzOgorCQkJCQlpbnN0X3NwbGl0ID0gcGtnc3BsaXQocGtnLnNwbGl0KCIvIilb
MV0pCisJCQkJCWluc3Rfc2xvdCA9IHZhcmRiLmF1eF9nZXQocGtnLCBbIlNMT1QiXSlbMF0KKwkJ
CQkJaWYgaW5zdF9zbG90ICE9IGF2YWlsX3Nsb3Q6CisJCQkJCQljb250aW51ZQorCQkJCQlpZiBw
a2djbXAoYXZhaWxfc3BsaXQsIGluc3Rfc3BsaXQpID49IDA6CisJCQkJCQlpc19va2F5ID0gVHJ1
ZQorCQkJCQkJYnJlYWsKKwkJCQlpZiBub3QgaXNfb2theToKKwkJCQkJYWxsX2luc3RhbGxlZCA9
IEZhbHNlCisJCQkJCWJyZWFrCisKKwkJaWYgYWxsX2luc3RhbGxlZDoKKwkJCXByZWZlcnJlZC5h
cHBlbmQoW2F0b21zLCBhbGxfYXZhaWxhYmxlXSkKIAkJZWxzZToKLQkJCXJldHVybiBbZGVwc1sw
XV0KKwkJCW90aGVyLmFwcGVuZChbYXRvbXMsIGFsbF9hdmFpbGFibGVdKQogCi0JaWYgaXNpbnN0
YW5jZSh0YXJnZXQsIHR1cGxlKTogIyBOb3RoaW5nIG1hdGNoaW5nIGluc3RhbGxlZAotCQlpZiBp
c2luc3RhbmNlKHRhcmdldFswXSwgbGlzdCk6ICMgLi4uIGFuZCB0aGUgZmlyc3QgYXZhaWxhYmxl
IHdhcyBhIHN1Ymxpc3QKLQkJCXJldHVybiBkZXBfemFwZGVwcyh0YXJnZXRbMF0sIHRhcmdldFsx
XSwgbXlyb290LAotCQkJCXVzZV9iaW5hcmllcz11c2VfYmluYXJpZXMsIHRyZWVzPXRyZWVzKQot
CQllbHNlOiAjIC4uLiBhbmQgdGhlIGZpcnN0IGF2YWlsYWJsZSB3YXMgYSBzaW5nbGUgYXRvbQot
CQkJdGFyZ2V0ID0gZGVwX2dldGtleSh0YXJnZXRbMF0pCisJIyBwcmVmZXJyZWQgbm93IGNvbnRh
aW5zIGEpIGFuZCBjKSBmcm9tIHRoZSBvcmRlciBhYm92ZSB3aXRoCisJIyB0aGUgbWFza2VkIGZs
YWcgZGlmZmVyZW50aWF0aW5nIHRoZSB0d28uIG90aGVyIGNvbnRhaW5zIGIpCisJIyBhbmQgZCkg
c28gYWRkaW5nIG90aGVyIHRvIHByZWZlcnJlZCB3aWxsIGdpdmUgdXMgYSBzdWl0YWJsZQorCSMg
bGlzdCB0byBpdGVyYXRlIG92ZXIuCisJcHJlZmVycmVkLmV4dGVuZChvdGhlcikKKworCWZvciBh
bGxvd19tYXNrZWQgaW4gKEZhbHNlLCBUcnVlKToKKwkJZm9yIChhdG9tcywgYWxsX2F2YWlsYWJs
ZSkgaW4gcHJlZmVycmVkOgorCQkJaWYgYWxsX2F2YWlsYWJsZSBvciBhbGxvd19tYXNrZWQ6CisJ
CQkJcmV0dXJuIGF0b21zCiAKLQlyZWxldmFudF9hdG9tcyA9IFtkZXAgZm9yIGRlcCBpbiBkZXBz
IGlmIG5vdCBpc2luc3RhbmNlKGRlcCwgbGlzdCkgYW5kIGRlcF9nZXRrZXkoZGVwKSA9PSB0YXJn
ZXRdCisJYXNzZXJ0KEZhbHNlKSAjIFRoaXMgcG9pbnQgc2hvdWxkIG5vdCBiZSByZWFjaGFibGUK
IAotCWF2YWlsYWJsZV9wa2dzID0ge30KLQlmb3IgYXRvbSBpbiByZWxldmFudF9hdG9tczoKLQkJ
aWYgdXNlX2JpbmFyaWVzOgotCQkJcGtnX2xpc3QgPSB0cmVlc1tteXJvb3RdWyJiaW50cmVlIl0u
ZGJhcGkubWF0Y2goYXRvbSkKLQkJZWxzZToKLQkJCXBrZ19saXN0ID0gdHJlZXNbbXlyb290XVsi
cG9ydHRyZWUiXS5kYmFwaS54bWF0Y2goIm1hdGNoLXZpc2libGUiLCBhdG9tKQotCQlpZiBub3Qg
cGtnX2xpc3Q6Ci0JCQljb250aW51ZQotCQlwa2cgPSBiZXN0KHBrZ19saXN0KQotCQlhdmFpbGFi
bGVfcGtnc1twa2ddID0gYXRvbQotCi0JaWYgbm90IGF2YWlsYWJsZV9wa2dzOgotCQlyZXR1cm4g
W3JlbGV2YW50X2F0b21zWzBdXSAjIEFsbCBtYXNrZWQKLQotCXRhcmdldF9wa2cgPSBiZXN0KGF2
YWlsYWJsZV9wa2dzLmtleXMoKSkKLQlzdWl0YWJsZV9hdG9tID0gYXZhaWxhYmxlX3BrZ3NbdGFy
Z2V0X3BrZ10KLQlyZXR1cm4gW3N1aXRhYmxlX2F0b21dCiAKIGRlZiBkZXBfZXhwYW5kKG15ZGVw
LCBteWRiPU5vbmUsIHVzZV9jYWNoZT0xLCBzZXR0aW5ncz1Ob25lKToKIAlpZiBub3QgbGVuKG15
ZGVwKToK
</data>        

          </attachment>
    </bug>

</bugzilla>