Trouble resolving dependencies/conflicts using YU M’s python API

Dan Muey <[email protected]> Wed, 24 Jun 2015 18:24:37 -0500
Newsgroups gmane.linux.rpm.yum
Message-ID <[email protected]>
--===============3771596353889029334==
Content-Type: multipart/alternative; boundary="Apple-Mail=_186F0D4E-8EF6-474D-958D-796D3E3B842B"


--Apple-Mail=_186F0D4E-8EF6-474D-958D-796D3E3B842B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Greetings Yum folks!

Thanks in advance for any info, I really appreciate it!

We are trying to have yum resolve dependencies using the yum python API =
given the current state of the repo and a list of packages we want =
installed, updated, and removed.

I have been trying to use =
http://yum.baseurl.org/api/yum/yum/depsolve.html =
<http://yum.baseurl.org/api/yum/yum/depsolve.html> and while my simple =
test does return conflicts (in the form of error strings, ick) it is not =
finding dependencies:

import yum
import sys

yb =3D yum.YumBase()
yb.conf.cache =3D True

resolution_data =3D []

for package_name in sys.argv[1:]:
    yb.install(name=3Dpackage_name)

res =3D yb.resolveDeps()
(result, resultmsgs) =3D yb.buildTransaction()
print "Result:"
print result

print "Result MSGs:"
print resultmsgs

if (res[0] =3D=3D 1):
    for item in res[1]:
        if item not in resolution_data:
            resolution_data.append(item)

print "Res Data:"
print resolution_data

example output:

Loaded plugins: fastestmirror, post-transaction-actions, presto, =
refresh-
              : packagekit
Result:
1
Result MSGs:
['XYZ conflicts with ABC', 'ABC conflicts with XYZ']
Res Data:
['XYZ conflicts with ABC', 'ABC conflicts with XYZ']

So my questions are:
Is http://yum.baseurl.org/api/yum/yum/depsolve.html =
<http://yum.baseurl.org/api/yum/yum/depsolve.html> the right thing to =
use for this?
Is there a way to have it return conflicts as a data structure instead =
of a string?
Is there a way to have it also do dependencies that would need installed =
and updated?
Will it calculate the dependencies when I add in some yb.remove() and =
yb.upgrade() calls before the yb.resolveDeps() call?
The examples I can find all call yb.buildTransaction() which would =
actually do the install/etc correct? If so is there a way to make it a =
dry run (i.e. on;y do the derp resolution)?
This Given/When/Then may illustrate the goal also.

GIVEN the current state of my RPMs

foo : installed
bar : not_installed
baz : updatable

WHEN I want to explicitly install, update, or uninstall packages

install : [bar,ler]
uninstall : [foo]
upgrade : [baz]

THEN I want to be able know [what would need/will be] implicitly =
installed, updated, or uninstalled (recursively)

resolved : {
    install : [baz] # because bar depends on it
    uninstall : [wop,jib] # because wop conflicts with bar && jib =
conflicts with ler
    upgrade : [zig] # because newer baz requires a newer version of zig
}


Then we can highlight/deal with the case where a package exists in more =
than one install/uninstall/upgrade slot :)

Thanks in advance!

--
Dan Muey - cPanel Developer
[email protected]


--Apple-Mail=_186F0D4E-8EF6-474D-958D-796D3E3B842B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Greetings Yum folks!</div><div class=3D""><span=
 class=3D""><br class=3D""></span></div><div class=3D""><span =
class=3D"">Thanks in&nbsp;advance&nbsp;for any info, I really appreciate =
it!</span></div><div class=3D""><span class=3D""><br =
class=3D""></span></div><div class=3D""><span class=3D"">We are trying =
to have yum resolve dependencies using the yum&nbsp;python API given the =
current state of the repo and a list of packages we want installed, =
updated, and removed.</span></div><div class=3D""><span class=3D""><br =
class=3D""></span></div><div class=3D""><span class=3D"">I have been =
trying to use&nbsp;</span><a =
href=3D"http://yum.baseurl.org/api/yum/yum/depsolve.html" =
class=3D"">http://yum.baseurl.org/api/yum/yum/depsolve.html</a>&nbsp;and =
while my simple test does return conflicts (in the form of error =
strings, ick) it is not finding dependencies:</div><div class=3D""><br =
class=3D""></div><blockquote style=3D"margin: 0 0 0 40px; border: none; =
padding: 0px;" class=3D""><div class=3D""><div style=3D"margin: 0px; =
font-size: 11px; font-family: Monaco; color: rgb(213, 59, 211); =
background-color: rgb(0, 0, 0);" class=3D"">import<span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #f5f5f5" =
class=3D""> yum</span></div><div style=3D"margin: 0px; font-size: 11px; =
font-family: Monaco; color: rgb(213, 59, 211); background-color: rgb(0, =
0, 0);" class=3D"">import<span style=3D"font-variant-ligatures: =
no-common-ligatures; color: #f5f5f5" class=3D""> sys</span></div><div =
style=3D"margin: 0px; font-size: 11px; font-family: Monaco; color: =
rgb(245, 245, 245); background-color: rgb(0, 0, 0); min-height: 15px;" =
class=3D""><br class=3D""></div><div style=3D"margin: 0px; font-size: =
11px; font-family: Monaco; color: rgb(245, 245, 245); background-color: =
rgb(0, 0, 0);" class=3D"">yb =3D yum.YumBase()</div><div style=3D"margin: =
0px; font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D"">yb.conf.cache =3D =
True</div><div style=3D"margin: 0px; font-size: 11px; font-family: =
Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0); =
min-height: 15px;" class=3D""><br class=3D""></div><div style=3D"margin: =
0px; font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D"">resolution_data =3D =
[]</div><div style=3D"margin: 0px; font-size: 11px; font-family: Monaco; =
color: rgb(245, 245, 245); background-color: rgb(0, 0, 0); min-height: =
15px;" class=3D""><br class=3D""></div><div style=3D"margin: 0px; =
font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D""><span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #ce7924" =
class=3D"">for</span> package_name <span style=3D"font-variant-ligatures: =
no-common-ligatures; color: #ce7924" class=3D"">in</span> =
sys.argv[1:]:</div><div style=3D"margin: 0px; font-size: 11px; =
font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, =
0, 0);" class=3D"">&nbsp; &nbsp; yb.install(name=3Dpackage_name)</div><div=
 style=3D"margin: 0px; font-size: 11px; font-family: Monaco; color: =
rgb(245, 245, 245); background-color: rgb(0, 0, 0); min-height: 15px;" =
class=3D""><br class=3D""></div><div style=3D"margin: 0px; font-size: =
11px; font-family: Monaco; color: rgb(245, 245, 245); background-color: =
rgb(0, 0, 0);" class=3D"">res =3D yb.resolveDeps()</div><div =
style=3D"margin: 0px; font-size: 11px; font-family: Monaco; color: =
rgb(245, 245, 245); background-color: rgb(0, 0, 0);" class=3D"">(result, =
resultmsgs) =3D yb.buildTransaction()</div><div style=3D"margin: 0px; =
font-size: 11px; font-family: Monaco; color: rgb(195, 55, 32); =
background-color: rgb(0, 0, 0);" class=3D""><span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #ce7924" =
class=3D"">print</span><span style=3D"font-variant-ligatures: =
no-common-ligatures; color: #f5f5f5" class=3D""> "</span>Result:<span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #f5f5f5" =
class=3D"">"</span></div><div style=3D"margin: 0px; font-size: 11px; =
font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, =
0, 0);" class=3D""><span style=3D"font-variant-ligatures: =
no-common-ligatures; color: #ce7924" class=3D"">print</span> =
result</div><div style=3D"margin: 0px; font-size: 11px; font-family: =
Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0); =
min-height: 15px;" class=3D""><br class=3D""></div><div style=3D"margin: =
0px; font-size: 11px; font-family: Monaco; color: rgb(195, 55, 32); =
background-color: rgb(0, 0, 0);" class=3D""><span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #ce7924" =
class=3D"">print</span><span style=3D"font-variant-ligatures: =
no-common-ligatures; color: #f5f5f5" class=3D""> "</span>Result =
MSGs:<span style=3D"font-variant-ligatures: no-common-ligatures; color: =
#f5f5f5" class=3D"">"</span></div><div style=3D"margin: 0px; font-size: =
11px; font-family: Monaco; color: rgb(245, 245, 245); background-color: =
rgb(0, 0, 0);" class=3D""><span style=3D"font-variant-ligatures: =
no-common-ligatures; color: #ce7924" class=3D"">print</span> =
resultmsgs</div><div style=3D"margin: 0px; font-size: 11px; font-family: =
Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0); =
min-height: 15px;" class=3D""><br class=3D""></div><div style=3D"margin: =
0px; font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D""><span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #ce7924" =
class=3D"">if</span> (res[0] =3D=3D 1):</div><div style=3D"margin: 0px; =
font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D"">&nbsp; &nbsp; <span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #ce7924" =
class=3D"">for</span> item <span style=3D"font-variant-ligatures: =
no-common-ligatures; color: #ce7924" class=3D"">in</span> =
res[1]:</div><div style=3D"margin: 0px; font-size: 11px; font-family: =
Monaco; color: rgb(245, 245, 245); background-color: rgb(0, 0, 0);" =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; <span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #ce7924" =
class=3D"">if</span> item <span style=3D"font-variant-ligatures: =
no-common-ligatures; color: #ce7924" class=3D"">not</span> <span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #ce7924" =
class=3D"">in</span> resolution_data:</div><div style=3D"margin: 0px; =
font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; resolution_data.append(item)</div><div style=3D"margin: =
0px; font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0); min-height: 15px;" class=3D""><br =
class=3D""></div><div style=3D"margin: 0px; font-size: 11px; =
font-family: Monaco; color: rgb(195, 55, 32); background-color: rgb(0, =
0, 0);" class=3D""><span style=3D"font-variant-ligatures: =
no-common-ligatures; color: #ce7924" class=3D"">print</span><span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #f5f5f5" =
class=3D""> "</span>Res Data:<span style=3D"font-variant-ligatures: =
no-common-ligatures; color: #f5f5f5" class=3D"">"</span></div><div =
style=3D"margin: 0px; font-size: 11px; font-family: Monaco; color: =
rgb(245, 245, 245); background-color: rgb(0, 0, 0);" class=3D""><span =
style=3D"font-variant-ligatures: no-common-ligatures; color: #ce7924" =
class=3D"">print</span> resolution_data</div></div><div class=3D""><br =
class=3D""></div><div class=3D"">example output:</div><div class=3D""><br =
class=3D""></div><div class=3D""><div style=3D"margin: 0px; font-size: =
11px; font-family: Monaco; color: rgb(245, 245, 245); background-color: =
rgb(0, 0, 0);" class=3D"">Loaded plugins: fastestmirror, =
post-transaction-actions, presto, refresh-</div><div style=3D"margin: =
0px; font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; : packagekit</div><div style=3D"margin: 0px; =
font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D"">Result:</div><div =
style=3D"margin: 0px; font-size: 11px; font-family: Monaco; color: =
rgb(245, 245, 245); background-color: rgb(0, 0, 0);" =
class=3D"">1</div><div style=3D"margin: 0px; font-size: 11px; =
font-family: Monaco; color: rgb(245, 245, 245); background-color: rgb(0, =
0, 0);" class=3D"">Result MSGs:</div><div style=3D"margin: 0px; =
font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D"">['XYZ conflicts with ABC', =
'ABC conflicts with XYZ']</div><div style=3D"margin: 0px; font-size: =
11px; font-family: Monaco; color: rgb(245, 245, 245); background-color: =
rgb(0, 0, 0);" class=3D"">Res Data:</div><div style=3D"margin: 0px; =
font-size: 11px; font-family: Monaco; color: rgb(245, 245, 245); =
background-color: rgb(0, 0, 0);" class=3D"">['XYZ conflicts with ABC', =
'ABC conflicts with XYZ']</div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">So my questions are:</div><div =
class=3D""><ol class=3D""><li class=3D"">Is&nbsp;<a =
href=3D"http://yum.baseurl.org/api/yum/yum/depsolve.html" =
class=3D"">http://yum.baseurl.org/api/yum/yum/depsolve.html</a>&nbsp;the =
right thing to use for this?</li><li class=3D"">Is there a way to have =
it return conflicts as a data structure instead of a string?</li><li =
class=3D"">Is there a way to have it also do dependencies that would =
need installed and updated?</li><li class=3D"">Will it calculate the =
dependencies when I add in some yb.remove() and yb.upgrade() calls =
before the yb.resolveDeps() call?</li><li class=3D"">The examples I can =
find all call yb.buildTransaction() which would actually do the =
install/etc correct? If so is there a way to make it a dry run (i.e. =
on;y do the derp resolution)?</li></ol></div><div class=3D""><b =
class=3D"">This Given/When/Then may illustrate the =
goal&nbsp;also</b>.<br class=3D""><br class=3D""></div><blockquote =
style=3D"margin: 0 0 0 40px; border: none; padding: 0px;" class=3D""><div =
class=3D""><span class=3D"">GIVEN the current state of my =
RPMs</span></div><div class=3D""><span class=3D""><br =
class=3D""></span></div><div class=3D""><div id=3D"syntaxplugin" =
class=3D"syntaxplugin" style=3D"margin: 0px; padding: 0px; color: =
rgb(51, 51, 51); font-family: Arial, sans-serif; font-size: 14px; =
line-height: 18.1818180084229px; widows: 1; border: 1px dashed rgb(187, =
187, 187); overflow: auto; max-height: 30em; background-color: rgb(245, =
245, 245); border-top-left-radius: 5px !important; =
border-top-right-radius: 5px !important; border-bottom-right-radius: 5px =
!important; border-bottom-left-radius: 5px !important;"><table =
cellspacing=3D"0" cellpadding=3D"0" border=3D"0" width=3D"100%" =
style=3D"font-size: 1em; color: black; line-height: 1.4em !important;" =
class=3D""><tbody class=3D""><tr id=3D"syntaxplugin_code_and_gutter" =
class=3D""><td style=3D"padding: 0em; vertical-align: top; line-height: =
1.4em !important;" class=3D""><pre style=3D"margin: 10px 10px 0px; =
padding: 0px; font-size: 1em; width: auto;" class=3D""><span =
style=3D"font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier =
New', Courier, monospace !important;" class=3D"">foo : =
installed</span></pre></td></tr><tr id=3D"syntaxplugin_code_and_gutter" =
class=3D""><td style=3D"padding: 0em; vertical-align: top; line-height: =
1.4em !important;" class=3D""><pre style=3D"margin: 0px 10px; padding: =
0px; font-size: 1em; width: auto;" class=3D""><span style=3D"font-family: =
Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace =
!important;" class=3D"">bar : not_installed</span></pre></td></tr><tr =
id=3D"syntaxplugin_code_and_gutter" class=3D""><td style=3D"padding: =
0em; vertical-align: top; line-height: 1.4em !important;" class=3D""><pre =
style=3D"margin: 0px 10px 10px; padding: 0px; font-size: 1em; width: =
auto;" class=3D""><span style=3D"font-family: Consolas, 'Bitstream Vera =
Sans Mono', 'Courier New', Courier, monospace !important;" class=3D"">baz =
: updatable
</span></pre></td></tr></tbody></table></div></div><div class=3D""><span =
class=3D""><br class=3D""></span></div><div class=3D""><span =
class=3D"">WHEN I want to explicitly install, update, or uninstall =
packages</span></div><div class=3D""><span class=3D""><br =
class=3D""></span></div><div class=3D""><div id=3D"syntaxplugin" =
class=3D"syntaxplugin" style=3D"margin: 0px; padding: 0px; color: =
rgb(51, 51, 51); font-family: Arial, sans-serif; font-size: 14px; =
line-height: 18.1818180084229px; widows: 1; border: 1px dashed rgb(187, =
187, 187); overflow: auto; max-height: 30em; background-color: rgb(245, =
245, 245); border-top-left-radius: 5px !important; =
border-top-right-radius: 5px !important; border-bottom-right-radius: 5px =
!important; border-bottom-left-radius: 5px !important;"><table =
cellspacing=3D"0" cellpadding=3D"0" border=3D"0" width=3D"100%" =
style=3D"font-size: 1em; color: black; line-height: 1.4em !important;" =
class=3D""><tbody class=3D""><tr id=3D"syntaxplugin_code_and_gutter" =
class=3D""><td style=3D"padding: 0em; vertical-align: top; line-height: =
1.4em !important;" class=3D""><pre style=3D"margin: 10px 10px 0px; =
padding: 0px; font-size: 1em; width: auto;" class=3D""><span =
style=3D"font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier =
New', Courier, monospace !important;" class=3D"">install : =
[bar,ler]</span></pre></td></tr><tr id=3D"syntaxplugin_code_and_gutter" =
class=3D""><td style=3D"padding: 0em; vertical-align: top; line-height: =
1.4em !important;" class=3D""><pre style=3D"margin: 0px 10px; padding: =
0px; font-size: 1em; width: auto;" class=3D""><span style=3D"font-family: =
Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace =
!important;" class=3D"">uninstall : [foo]</span></pre></td></tr><tr =
id=3D"syntaxplugin_code_and_gutter" class=3D""><td style=3D"padding: =
0em; vertical-align: top; line-height: 1.4em !important;" class=3D""><pre =
style=3D"margin: 0px 10px 10px; padding: 0px; font-size: 1em; width: =
auto;" class=3D""><span style=3D"font-family: Consolas, 'Bitstream Vera =
Sans Mono', 'Courier New', Courier, monospace !important;" =
class=3D"">upgrade : [baz]
</span></pre></td></tr></tbody></table></div></div><div class=3D""><span =
class=3D""><br class=3D""></span></div><div class=3D""><span =
class=3D"">THEN I want to be able know&nbsp;[what would need/will =
be]&nbsp;implicitly installed, updated, or =
uninstalled&nbsp;(recursively)</span></div><div class=3D""><span =
class=3D""><br class=3D""></span></div><div class=3D""><div =
id=3D"syntaxplugin" class=3D"syntaxplugin" style=3D"margin: 0px; =
padding: 0px; color: rgb(51, 51, 51); font-family: Arial, sans-serif; =
font-size: 14px; line-height: 18.1818180084229px; widows: 1; border: 1px =
dashed rgb(187, 187, 187); overflow: auto; max-height: 30em; =
background-color: rgb(245, 245, 245); border-top-left-radius: 5px =
!important; border-top-right-radius: 5px !important; =
border-bottom-right-radius: 5px !important; border-bottom-left-radius: =
5px !important;"><table cellspacing=3D"0" cellpadding=3D"0" border=3D"0" =
width=3D"100%" style=3D"font-size: 1em; color: black; line-height: 1.4em =
!important;" class=3D""><tbody class=3D""><tr =
id=3D"syntaxplugin_code_and_gutter" class=3D""><td style=3D"padding: =
0em; vertical-align: top; line-height: 1.4em !important;" class=3D""><pre =
style=3D"margin: 10px 10px 0px; padding: 0px; font-size: 1em; width: =
auto;" class=3D""><span style=3D"font-family: Consolas, 'Bitstream Vera =
Sans Mono', 'Courier New', Courier, monospace !important;" =
class=3D"">resolved : {</span></pre></td></tr><tr =
id=3D"syntaxplugin_code_and_gutter" class=3D""><td style=3D"padding: =
0em; vertical-align: top; line-height: 1.4em !important;" class=3D""><pre =
style=3D"margin: 0px 10px; padding: 0px; font-size: 1em; width: auto;" =
class=3D""><span style=3D"font-family: Consolas, 'Bitstream Vera Sans =
Mono', 'Courier New', Courier, monospace !important;" class=3D"">    =
install : [baz] # because bar depends on it</span></pre></td></tr><tr =
id=3D"syntaxplugin_code_and_gutter" class=3D""><td style=3D"padding: =
0em; vertical-align: top; line-height: 1.4em !important;" class=3D""><pre =
style=3D"margin: 0px 10px; padding: 0px; font-size: 1em; width: auto;" =
class=3D""><span style=3D"font-family: Consolas, 'Bitstream Vera Sans =
Mono', 'Courier New', Courier, monospace !important;" class=3D"">    =
uninstall : [wop,jib] # because wop conflicts with bar &amp;&amp; jib =
conflicts with ler</span></pre></td></tr><tr =
id=3D"syntaxplugin_code_and_gutter" class=3D""><td style=3D"padding: =
0em; vertical-align: top; line-height: 1.4em !important;" class=3D""><pre =
style=3D"margin: 0px 10px; padding: 0px; font-size: 1em; width: auto;" =
class=3D""><span style=3D"font-family: Consolas, 'Bitstream Vera Sans =
Mono', 'Courier New', Courier, monospace !important;" class=3D"">    =
upgrade : [zig] # because newer baz requires a newer version of =
zig</span></pre></td></tr><tr id=3D"syntaxplugin_code_and_gutter" =
class=3D""><td style=3D"padding: 0em; vertical-align: top; line-height: =
1.4em !important;" class=3D""><pre style=3D"margin: 0px 10px 10px; =
padding: 0px; font-size: 1em; width: auto;" class=3D""><span =
style=3D"font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier =
New', Courier, monospace !important;" =
class=3D"">}</span></pre></td></tr></tbody></table></div></div><div =
class=3D""><div class=3D""><br class=3D""></div></div><div class=3D""><div=
 class=3D""><br class=3D"webkit-block-placeholder"></div></div><div =
class=3D""><div class=3D"">Then we can highlight/deal with the case =
where a package exists in more than one install/uninstall/upgrade slot =
:)</div></div></blockquote><div class=3D""><div class=3D""><br =
class=3D""></div><div class=3D"">Thanks in advance!</div><div =
class=3D""><br class=3D""></div><div apple-content-edited=3D"true" =
class=3D"">
<div style=3D"color: rgb(0, 0, 0); letter-spacing: normal; orphans: =
auto; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">--<br class=3D"">Dan Muey - cPanel Developer<br class=3D""><a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a></div>

</div>
<br class=3D""></div></body></html>=

--Apple-Mail=_186F0D4E-8EF6-474D-958D-796D3E3B842B--

--===============3771596353889029334==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Yum mailing list
[email protected]
http://lists.baseurl.org/mailman/listinfo/yum

--===============3771596353889029334==--