Spade

Mini Shell

Directory:~$ /proc/self/root/usr/lib/python2.7/site-packages/yum/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/usr/lib/python2.7/site-packages/yum/packages.pyc

�
8M�bc@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZmZddl
mZddlZ
ddlmZmZmZddlZddlZddlZddlTddlmZddlZddlZejjd�dd	lmZmZy)ddl
Z e!e d
�rde"Z nWne#k
r~e"Z
nXddl$Z$ddl%Z%d�Z&d�Z'e(d
�Z)dde"d�Z*dfd��YZ+dfd��YZ,de-fd��YZ.e,d�Z/de/_0de.fd��YZ1de-fd��YZ2dfd��YZ3de.e2fd��YZ4d
�Z5d!e4fd"��YZ6d#fd$��YZ7d%fd&��YZ8d'd>Z9d'd'>Z:d'd(>Z;d'd)>Z<d'd*>Z=d'd+>Z>d'd,>Z?d'd->Z@d'd.>ZAd'd/>ZBd0e-fd1��YZCd2eCfd3��YZDd4fd5��YZEiaFd6eEfd7��YZGe,d8�ZHdeH_0d9e6fd:��YZId;e6fd<��YZJd=eJfd>��YZKdS(?sA
Classes and functions dealing with rpm package representations.
i����N(tPopentPIPE(t
RpmUtilsError(tflagToStringtstringToVersiontcompareVerOnly(t*(t
itemgettertmedia(t
URLGrabbertURLGrabErrortgetcCs_|j|j|j}}}|j|j|j}}}tjj|||f|||f�S(s4
    Compare two Package or PackageEVR objects.
    (tepochtversiontreleasetrpmUtilst	miscutilst
compareEVR(tpo1tpo2te1tv1tr1te2tv2tr2((s0/usr/lib/python2.7/site-packages/yum/packages.pytcomparePoEVR9scCsn|j|j|j}}}|j|j|j}}}||krJtS||krZtS||krjtStS(sA
    Compare two Package or PackageEVR objects for equality.
   
(RR
RtFalsetTrue(RRRRRRRR((s0/usr/lib/python2.7/site-packages/yum/packages.pytcomparePoEVREQ@scCsIi}x<|D]4}|j\}}}}}|sp|j�}|j�}|j�}|j�}|j�}n|}	d||f}
d||||f}d||f}d|||f}
d|||||f}d|||||f}xM|	|
|||
||gD]0}||kr,g||<n||j|�q
Wq
W|S(s�take a
list of pkg objects and return a dict the contains all the possible
       naming conventions for them eg: for (name,i386,0,1,1)
       dict[name] = (name, i386, 0, 1, 1)
       dict[name.i386] = (name, i386, 0, 1, 1)
       dict[name-1-1.i386] = (name, i386, 0, 1, 1)       
       dict[name-1] = (name, i386, 0, 1, 1)       
       dict[name-1-1] = (name, i386, 0, 1, 1)
       dict[0:name-1-1.i386] = (name, i386, 0, 1, 1)
       dict[name-0:1-1.i386] = (name, i386, 0, 1, 1)
      
s%s.%ss%s-%s-%s.%ss%s-%ss%s-%s-%ss%s:%s-%s-%s.%ss%s-%s:%s-%s.%s(tpkgtuptlowertappend(tpkgst	casematchtpkgdicttpkgtntatetvtrtnametnameArchtnameVerRelArchtnameVert
nameVerReltenvratnevratitem((s0/usr/lib/python2.7/site-packages/yum/packages.pytbuildPkgRefDictKs*
"
is$repo-epoch-name-version-release-archcCs�|dkr$t|t|��}ng}g}g}x�|D]�}|sX|j�}n||kr|j||�||=q=tj|�r|j�}	tj|�}
d}x;|	D]3}|
|�r�|j||�||=d}q�q�W|s|j	|�qq=|j	|�q=Wtj
|�}|dkrStj
|�}tj
|�}n=|dkr�d�}
|
|�}|
|�}n
td|�|||fS(s,matches
up the user request versus a pkg list:
       for installs/updates available pkgs should be the 'others
list' 
       for removes it should be the installed list of pkgs
       takes an optional casematch option to determine if case should be
matched
       exactly. Defaults to not
matching.iis$repo-epoch-name-version-release-archsrepo-pkgkeycSsDi}x1|D])}d|jj|jf}|||<q
W|j�S(Ns%s%s(trepotidtpkgKeytvalues(R!tuR$tmark((s0/usr/lib/python2.7/site-packages/yum/packages.pyt	pkgunique�s

sBad value for unique:
%sN(tNoneR2tboolRtextendtmisctre_globtkeystcompile_patternR
tuniquet
ValueError(R!tusercommandsR"RAR#t
exactmatchtmatchedt	unmatchedtcommandttrylisttregextfounditR1R9((s0/usr/lib/python2.7/site-packages/yum/packages.pyt
parsePackagesmsB	



	
tFakeSackcBs)eZdZd�Zd�Zd�ZRS(s,
Fake PackageSack to use with
FakeRepositorycCsdS(N((tself((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__init__�scCstS(sb
Is calling pkg.returnFileEntries(primary_only=True) faster than
            using searchFiles().
(R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pythave_fastReturnFileEntries�scCsdS(sNdelete
a pkgobject, do nothing, but make localpackages work with
--skip-brokenN((RMtobj((s0/usr/lib/python2.7/site-packages/yum/packages.pyt
delPackage�s(t__name__t
__module__t__doc__RNRORQ(((s0/usr/lib/python2.7/site-packages/yum/packages.pyRL�s		tFakeRepositorycBsVeZdZd�Zd�Zd�Zd�Zd�Zd�Ze	dd��Z
RS(	s8Fake repository class for use in rpmsack package
objectscCs�t}d|kr-tjj|�}t}n|jd�rO|d
}t}ng}|rk|jd�nx6|D].}t|�dkr�d}n|j|�qrWdj|�|_	dS(s?
Set the repoid, but because it can be random ... clean it up.
t/s.rpmi����i�t?tN(
RtostpathtbasenameRtendswithR
tordtjoinR4(RMtrepoidt	pathbasedtbytestbyte((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_set_cleanup_repoid�s	
	
	cCs)|j|�|j|_t�|_dS(N(RcR4R*RLtsack(RMR_((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN�s
cCs4|j|jkrdS|j|jkr,dSdSdS(Nii����i(R4(RMtother((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__cmp__�s
cCs
t|j�S(N(thashR4(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__hash__�scCs|jS(N(R4(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__str__�scCs|jS(N(R4(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_ui_id�stfgetcCs
|j�S(N(Rj(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt<lambda>�s(RRRSRTRcRNRfRhRiRjtpropertytui_id(((s0/usr/lib/python2.7/site-packages/yum/packages.pyRU�s						t
PackageObjectcBsreZdZd�Zd�Zedd��Zd�Zedd��Zd�Z	edd��Z
d	�Zedd
��Zd�Z
edd��Zd
�Zedd��Zd�Zedd��Zd�Zedd��Zd�Zedd��Zd�Zedd��Zd�Zedd��Zd�Zedd��Zd�Zedd��Zd�Zedd��Z
d�Z!edd
��Z"d!�Z#edd"��Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4edd3��Z5d4�Z6RS(5sZBase
Package Object - sets up the default storage dicts and the
       most common
returnscCs:d|_d|_d|_d|_d|_g|_dS(N(R:R*R
RRtarcht
_checksums(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN�s					cCs!|jdkr|jS|jSdS(Nt0(RtnvraR/(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt	_ui_envra�sRkcCs
|j�S(N(Rt(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs!|jdkr|jS|jSdS(NRr(RRsR0(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt	_ui_nevrascCs
|j�S(N(Ru(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlscCs!|jdkr|jS|jSdS(NRr(Rtvrtevr(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_ui_evrscCs
|j�S(N(Rx(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl
scCs!|jdkr|jS|jSdS(NRr(Rtvratevra(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_ui_evrascCs
|j�S(N(R{(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlscCs!|jdkr|jS|jSdS(NRr(Rtnvrtnevr(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_ui_nevrscCs
|j�S(N(R~(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlscCsd|j|jfS(Ns%s.%s(R*Rp(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_nascCs
|j�S(N(R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlscCsd|j|jfS(Ns%s-%s(R
R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_vr!scCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl#scCsd|j|j|jfS(Ns%s-%s.%s(R
RRp(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_vra%scCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl'scCsd|j|j|jfS(Ns%s:%s-%s(RR
R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_evr)scCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl+scCs
d|j|j|j|jfS(Ns%s:%s-%s.%s(RR
RRp(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_evra-scCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl/scCsd|j|j|jfS(Ns%s-%s-%s(R*R
R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_nvr1scCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl3scCs
d|j|j|j|jfS(Ns%s-%s-%s.%s(R*R
RRp(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_nvra5scCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl7scCs
d|j|j|j|jfS(Ns%s-%s:%s-%s(R*RR
R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_nevr9scCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl;scCs&d|j|j|j|j|jfS(Ns%s-%s:%s-%s.%s(R*RR
RRp(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_nevra=s	cCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlAscCs
d|j|j|j|jfS(Ns%s:%s-%s-%s(RR*R
R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_envrCscCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlEscCs&d|j|j|j|j|jfS(Ns%s:%s-%s-%s.%s(RR*R
RRp(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_envraGscCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlKscCs|jS(N(tui_envra(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRiMscCsH|jdkr.d|j|j|jf}nd|j|jf}|S(sAreturns
a printable version string - including epoch, if it's
setRrs%s:%s-%ss%s-%s(RR
R(RMtver((s0/usr/lib/python2.7/site-packages/yum/packages.pytprintVerPscCsA|s
dSt|j|j�}|dkr=t||�}n|S(s< Compare package to another
one, only rpm-version ordering.
ii(tcmpR*R(RMRetret((s0/usr/lib/python2.7/site-packages/yum/packages.pytverCMPYscCs�|j|�}|dkr3t|j|j�}n|dkr�t|d�r�t|d�r�t|j|j�}|r�|jdkr�dS|r�|jdkr�dSn|S(s4
Compare packages, this is just for UI/consistency.
iR_t	installedii����(R�R�RpthasattrR_(RMReR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyRfbs*cCs[|s
tS|j|jkr tSt|d�rWt|d�rW|j|jkrWtSntS(se Compare
packages for yes/no equality, includes everything in the
            UI package comparison.
R_(RRR�R_R(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__eq__oscCs||kstStS(N(RR(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__ne__zscCs
t||�S(N(tgetattr(RMtkey((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__getitem__scCs<|s
dSt|j|j�}|dkr/tSt||�S(s< Compare package to another
one, only rpm-version equality.
iN(R:R�R*RR(RMReR�((s0/usr/lib/python2.7/site-packages/yum/packages.pytverEQ�scCs|s
dS|j|�S(s> Compare package to another one, only rpm-version
inequality.
N(R:R�(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pytverNE�scCs|j|�dkS(s;
Uses verCMP, tests if the other _rpm-version_ is <  ours.
i(R�(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pytverLT�scCs|j|�dkS(s;
Uses verCMP, tests if the other _rpm-version_ is <= ours.
i(R�(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pytverLE�scCs|j|�dkS(s;
Uses verCMP, tests if the other _rpm-version_ is >  ours.
i(R�(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pytverGT�scCs|j|�dkS(s;
Uses verCMP, tests if the other _rpm-version_ is >= ours.
i(R�(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pytverGE�scCs)d|jjt|�tt|��fS(Ns<%s
: %s
(%s)>(t	__class__RRtstrthexR4(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__repr__�scCs&tjdtjdd�t||�S(Ns8returnSimple()
will go away in a future version of Yum.
t
stackleveli(twarningstwarntErrorstYumFutureDeprecationWarningR�(RMtvarname((s0/usr/lib/python2.7/site-packages/yum/packages.pytreturnSimple�s	cCs|jS(N(Rq(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pytreturnChecksums�scCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs1x*|jD]\}}}|r
||fSq
WdS(N(t	checksums(RMtcsumtypetcsumtcsumid((s0/usr/lib/python2.7/site-packages/yum/packages.pytreturnIdSum�s(7RRRSRTRNRtRmR�Rutui_nevraRxtui_evrR{tui_evraR~tui_nevrRtnaR�RvR�RyR�RwR�RzR�R|R�RsR�R}R�R0R�tenvrR�R/RiR�R�RfR�R�R�R�R�R�R�R�R�R�R�R�R�R�(((s0/usr/lib/python2.7/site-packages/yum/packages.pyRo�sh																								
												t-tYumNotFoundPackagecBs5eZd�Zd�Zedd��Zd�ZRS(cCsu|d|_|d|_|d|_|d|_|d|_||_d|_g|_t|_	tj
|_dS(Niiiii(R*RpRR
RRtsizeRqt_not_found_repoR3R4R_(RMR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN�s




				cCs|jS(s
This just returns '-'
(R_(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt
_ui_from_repo�sRkcCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCstS(s^check
the package checksum vs the localPkg
           return True if pkg is good, False if
not(R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pytverifyLocalPkg�s(RRRSRNR�Rmtui_from_repoR�(((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��s		tRpmBasecBsEeZdZd�Zd�Zd�Zd�Zd�Zed�Z	d�Z
d�Zd	�Zd
�Z
d�Zded
�Zed�Zd�Zd�Zdd�Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Z
edd
��Z!edd!��Z"edd"��Z#edd#��Z$edd$��Z%edd%��Z&edd&��Z'edd'��Z(d(�Z)edd)��Z*d*�Z+d+d,�Z,RS(-s2return
functions and storage for rpm-specific
datacCs�i|_g|jd<g|jd<g|jd<g|jd<i|_g|jd<g|jd<g|jd<g|_g|_d|_dS(Nt	obsoletest	conflictstrequirestprovidestfiletdirtghost(tprcotfilest
_changelogtlicensesR:t_hash(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN�s	



	


		cCs:|s
tS|j|jkr
tS|j|jkr6tStS(N(RRR_R(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��scCs||kstStS(N(RR(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��scCst|j|j|j�S(N(t
PackageEVRRR
R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt	returnEVR�scCsY|jdkrRd|jj|j|j|j|j|jf}t	|�|_n|jS(Ns%s
- %s:%s-%s-%s.%s(
R�R:R3R4RR*R
RRpRg(RMtmystr((s0/usr/lib/python2.7/site-packages/yum/packages.pyRh�s
cCs`|jj|g�}|r\g}x4|D],}|ds>q(n|jtj|��q(W|S|S(s9return
list of provides, requires, conflicts or obsoletesi(R�RR
R=tprco_tuple_to_string(RMtprcotypet	printabletprcostresultsR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt
returnPrco�s

c
Cs>||jkrdSt|j|�dkrF||j|kr�dSn~t|d�s}id	d6d	d6d	d6d	d6|_n|j|d	kr�t|j|�|j|<n||j|kr�dS|\}}\}}}|d	k	r�|j||�Sx?|j|�D].\}}	\}
}}tj	||�rdSqWdS(
sBreturns 1 or 0 if the pkg contains the requested tuple/tuple
rangeiiit_prco_lookupR�R�R�R�N(
R�tlenR�R:R�tsettinPrcoRangeR�ti18ntstr_eq(
RMR�t	prcotupletreqntreqftreqetreqvtreqrR%tfR'R(R)((s0/usr/lib/python2.7/site-packages/yum/packages.pyt	checkPrco	s&(cCst|j||��S(s�returns
true if the package has a the prco that satisfies 
           the reqtuple range, assume false.
           Takes: prcotype, requested prco
tuple(R;t
matchingPrcos(RMR�treqtuple((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�*sc	Cs-|\}}\}}}g}x|j|�D]�\}	}
\}}}
tj||	�s^q.n|
dkrsd}
n|
dkr�|dkr�|dkr�|j}n|dkr�|j}n|
dkr�|j}
q�ntjj	||	|
|||
ff�}|r.|j
|	|
|||
ff�q.q.W|S(Nt=tEQR�(R�R�R�R:RR�trelRRtrangeCompareR
(RMR�R�R�R�R�R�R�tresultR%R�R'R(R)RE((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�0s&(		&cCs�|jd|�rtS|djd�rtj|d�rEt}nt}x1dD]&}|d|j||�krRtSqRWntS(s�check
to see if the package object provides for the requirement
           passed, including searching filelists if the requirement is a
file
           depR�iRVR�R�R�(sfilesdirsghost(R�Rt
startswithR=tre_primary_filenameRtreturnFileEntries(RMR�tpri_onlytftype((s0/usr/lib/python2.7/site-packages/yum/packages.pytprovides_forMs	
cCs|jS(sreturn
changelog
entries(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pytreturnChangelogasR�cCs{|jrw||jkrw|ri|dkr6tj}n	tj}g|j|D]}||�rM|^qMS|j|SngS(s}return
list of files based on type, you can pass primary_only=True
           to limit to those files in the primary
repodataR�(R�R=tre_primary_dirnameR�(RMR�tprimary_onlytmatchtfn((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�es		*cCs�|r�g}xp|jj�D]_}|dkr:tj}n	tj}x(|j|D]}||�rQPqQqQWq|j|�qW|S|jj�S(s�return
list of types of files in the package, you can pass
           primary_only=True to limit to those files in the primary
repodataR�(R�R?R=R�R�R
(RMR�R�R�R�R�((s0/usr/lib/python2.7/site-packages/yum/packages.pytreturnFileTypesss	cCsft|d|�sUg|j|�D]\}}}|^q#}t|d||�nt|d|�S(Nt_cache_prco_names_(R�R�tsetattrR�(RMR�R%R�R(tdata((s0/usr/lib/python2.7/site-packages/yum/packages.pytreturnPrcoNames�s+cCs
tjdtjdd�|jS(Ns<getProvidesNames() will go away in a future
version of Yum.
R�i(R�R�R�tYumDeprecationWarningtprovides_names(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pytgetProvidesNames�s	R�cCs@tjdtjdd�|jr<||jkr<|j|SgS(Ns_simpleFiles()
will go away in a future version of Yum.Use
returnFileEntries(primary_only=True)
R�i(R�R�R�R�R�(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pytsimpleFiles�s
	RkcCs|jdd�S(NR�R�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs|jdd�S(NR�R�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs|jdd�S(NR�R�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|jd�S(NR�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|jd�S(Ntstrong_requires(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|jd�S(NR�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|jd�S(NR�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|jd�S(NR�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|jd�S(NR�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|jd�S(NR�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|jd�S(NR�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|jd�S(NR�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|jd�S(NR�(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs|jdt�S(NR�(R�R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs|jdt�S(NR�(R�R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs|jdt�S(NR�(R�R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs|jdt�S(NR�(R�R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs|jdt�S(NR�(R�R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs�t|d�r|jSt|d�rq|jrqtjj|j�\}}}}}||jkrq||_|Sn|j|_|jS(s\
Return the "base name" of the package, atm. we can only look at
            the sourcerpm.
t_base_package_name_rett	sourcerpm(R�R�R�RRt
splitFilenameR*(RMR%R(R)R'R&((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_getBaseName�s$	cCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs|jjj�S(sb
Is calling pkg.returnFileEntries(primary_only=True) faster than
            using searchFiles().
(R3RdRO(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRO�sicCs}|jd|j|j|jff}g}xL|D]D}|jd|�r1|j|�|rut|�|kruPquq1q1W|S(s�
Returns list of obsoleters that obsolete this package. Note that we
            don't do obsoleting loops. If limit is != 0, then we stop
after
            finding that many. R�R�(R*RR
RR�R R�(RMt
obsoleterstlimittprovtupR�tobspo((s0/usr/lib/python2.7/site-packages/yum/packages.pytobsoletedBy�s$

(-RRRSRTRNR�R�R�RhRR�R�R�R�R�R�R�R�R�R�R�Rmtfilelisttdirlistt	ghostlistR�R�R�R�R�R�trequires_nameststrong_requires_namestconflicts_namestobsoletes_namestprovides_printtrequires_printtstrong_requires_printtconflicts_printtobsoletes_printt	changelogtEVRR�tbase_package_nameROR(((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��sR						!								R�cBsVeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	s�
    A comparable epoch, version, and release representation. Note that you
    almost certainly want to use pkg.verEQ() or pkg.verGT() etc. instead.
   
cCs1||_||_||_||_||_dS(N(RR�R
R�R(RMR'R(R)((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN�s
				cCs7tjj|j|j|jf|j|j|jf�S(N(RRRRR�R�(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pytcompare�scCs|j|�dkrtStS(Ni(RRR(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__lt__�scCs|j|�dkrtStS(Ni(RRR(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__gt__�scCs|j|�dkrtStS(Ni(RRR(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__le__�scCs|j|�dkrtStS(Ni(RRR(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__ge__�scCs
t||�S(N(R(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��scCs||kstStS(N(RR(RMRe((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�s(RRRSRTRNRRRRRR�R�(((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��s							tYumAvailablePackagecBs�eZdZd(d�Zd�Zedd��Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
edd��Zee�Zed��Zd
�Zee�Zd�Zee�Zd�Zee�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zed��Zd�Zd�Z
d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&e'd
�Z(d!�Z)d"�Z*d#�Z+d$�Z,d%�Z-d&d'�Z.RS()s}derived
class for the  packageobject and RpmBase packageobject yum
       uses this for dealing with packages in a
repositorycCs�tj|�tj|�|j|_||_d|_t|_	d|_
|dkr~|j|�|j|_
|j|_n|j|j|j|j|jf|_dS(N(RoRNR�R4R_R3R:tstateRt_loadedfilest_verify_local_pkg_cachetimportFromDictR
R�RR�R*RpRR(RMR3R#((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN
s

				
cCs�|jdkr�d|jkr�d}|jjdk	rpd|jkrp|jj|jjkrpd|jj}nd|jj|S|jS(s
This reports the repo the package is from, we integrate YUMDB info.
            for RPM packages so a package from "fedora" that is
installed has a
            ui_from_repo of "@fedora". Note that, esp. with the
--releasever
            option, "fedora" or "rawhide" isn't
authoritative.
            So we also check against the current releasever and if it is
            different we also print the YUMDB releasever. This means that
            installing from F12 fedora, while running F12, would report as
            "@fedora/13". R�t	from_repoRXt
releaseverRVt@N(R_t
yumdb_infotrpmdbRR:R(RMtend((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�s	RkcCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl.scCs|jjj|�dS(sremove
self from package
sackN(R3RdRQ(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pytexclude0scCsH|jdkr.d|j|j|jf}nd|j|jf}|S(sAreturns
a printable version string - including epoch, if it's
setRrs%s:%s-%ss%s-%s(RR
R(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�4scCs#|j�}d|j|j|fS(Ns%s.%s
%s(R�R*Rp(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pytcompactPrint=scCs|jS(N(tpackagesize(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_sizeAscCs|jS(N(trelativepath(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_remote_pathDscCs\|j}|r?|ddkr,|d}ntj||j�Stj|jjd|j�S(s�returns
a URL that can be used for downloading the package.
        Note that if you're going to download the package in your
tool,
        you should use
self.repo.getPackage.i����RVi(tbasepathturlparseturljointremote_pathR3turls(RMtbase((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_remote_urlGs	
cCs
|j�S(N(R&(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlSscCs
|j�S(N(R/(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlUscCs�t|d�r|jSt|j�s8|j|_|jS|jdd}tj|dd�}|jdd�}|jd�}|dkr�|d|d!}n||_|jS(	sDReturns
the name of the last person to do a commit to the
changelog.t_committer_retiiterrorstreplacetasciis>
i����(	R�R0R�RtpackagerR=t
to_unicodetencodetfind(RMtvaltix((s0/usr/lib/python2.7/site-packages/yum/packages.pyt
_committerWs	cCsSt|d�r|jSt|j�s8|j|_|jS|jdd|_|jS(s5Returns
the time of the last commit to the
changelog.t_committime_reti(R�R;R�Rt	buildtime(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_committimenscCs|jddS(sReturns
the 'default'
checksumii(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt	_checksum~scCsd|jdkrdStj|j�\}}}}}|dkr`t|�dkrVdSt|�SdS(NRi(R)R:R*turlsplitR�tint(RMtschemetnetlocRZtquerytfragid((s0/usr/lib/python2.7/site-packages/yum/packages.pyt
getDiscNum�s!
cCs_|j�}tjj�}ytjj||�}Wn$tjk
rZtjd|�nX|S(Ns"Package Header %s: RPM Cannot
open(	tlocalPkgRttransactiontinitReadOnlyTransactionRthdrFromPackageRR�t	RepoError(RMtrpmfilettsthdr((s0/usr/lib/python2.7/site-packages/yum/packages.pytreturnHeaderFromPackage�scCstjj|j��rky#tj|j��}|d}Wq{tjtfk
rgtj	d|�q{Xntj	d|�|S(sTreturns an rpm header object from
the package object's local
           header cacheisPackage Header %s: Cannot opens Package Header
%s: Not Available(
RYRZtexiststlocalHdrtrpmtreadHeaderListFromFileterrort
IndexErrorR�RJ(RMthlistRM((s0/usr/lib/python2.7/site-packages/yum/packages.pytreturnLocalHeader�scCsEt|d�s>tjj|j�}|jjd||_n|jS(sBreturn
path to local package (whether it is present there, or
not)t	localpathRV(R�RYRZR[R,R3tpkgdirRW(RMtrpmfn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRF�scCsSt|d�sLtjj|j�}|d
d}|jjd||_n|jS(sWreturn path to local cached Header file
downloaded from package 
           byte
rangesthdrpathi����s.hdrRV(R�RYRZR[R,R3thdrdirRZ(RMtpkgnamethdrname((s0/usr/lib/python2.7/site-packages/yum/packages.pyRP�s
c	Csytj|j��}Wntk
r/}tSXt|d�r�|jr�|j}|j|jkr�|j|jkr�|j	|j	kr�|j
|j
kr�tSn|j�\}}y%t
j||j�d|j�}Wntjk
r�tSX||kr�tS||_tS(s^check the package checksum vs the
localPkg
           return True if pkg is good, False if
notRtdatasize(RYtstatRFtOSErrorRR�Rtst_inotst_devtst_mtimetst_sizeRR�R=tchecksumR%R�t	MiscError(RMtnstR'tostt	csum_typeR�tfilesum((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��s,			cCswtdkrdSt|d�r,t|d�S|j�s<dSytj|j�d�}WndSXt|d|�|S(s�
Get the user.xdg.origin.url value from the local pkg. ... if it's
            present. We cache this so we can access it after the file has
been
            deleted (keepcache=False).
t__cached_localXattrUrlsuser.xdg.origin.urlN(txattrR:R�R�R�RRFR�(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_localXattrUrl�s
cCs
|j�S(N(Rm(tx((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs&tjdtjdd�tj|�S(s1convert
the prco tuples into a nicer human strings9prcoPrintable() will go away in
a future version of Yum.
R�i(R�R�R�R�R=R�(RMt	prcoTuple((s0/usr/lib/python2.7/site-packages/yum/packages.pyt
prcoPrintable�s	cCs|jS(s.return
a list of requires in normal rpm
format(R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pytrequiresList�scCs|j|jdfgS(Ni(t
checksum_typetpkgId(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��scCs�t|d�rW|j\}}}}}||_||_||_||_||_nt|d�r�|jd|_|jd|_	nt|d�r�|j
d|_|j
d|_|j
d|_
nt|d	�r|jjd
�}|dkrd-}n||_|jd|_nt|d
�rO|jd|_|jd|_nt|d�r�x=ddddddddgD]}t|||j|�q}W|jjdd�|_|jj|jd�nt|d�r6xT|jD]F}	|j|	}
|
|jkrg|j|
<n|j|
j|	�q�Wnt|d�r�x�|jD]�}x�|j|D]r}|d}
|jd�}|jd�}|jd
�}|jd!�}|j|j|
||||ff�qcWqOWnt|d"�rLxZ|jD]L}|jd#�}|jd$�}|jd%�}|jj|||f�q�Wnt|d&�r�|j
d'}|j d$}|j
d(}|d-ks�|j!�d)kr�d*}n!|j!�d+kr�d,}nd*}|j"j|||f�nd-S(.s^handles
an mdCache package dictionary item to populate out 
           the package
informationR0ttimetbuildR�R�tpackagetarchiveR�tlocationR.RXthrefthdrangetstartR"tinfotsummarytdescriptionR4tgroupt	buildhostR�turltvendors
tlicenseR�R�R*tflagsRR�R�RtdatetvaluetauthorRettypetpkgidtNOitYESiN(#R�R0R*RR
RpRRtR<tfiletimeR�R%tarchivesizet
installedsizeRxRR:R)R'RzthdrstartthdrendR�R|R}R2R�R
R�R�RR�RetupperRq(RMR#R%R'R(R)R&R�R1R�R�trtypetrdictR*R�tcdictR�ttextR�tctypeR�R�((s0/usr/lib/python2.7/site-packages/yum/packages.pyRsx						

1



		cCs\tjj|j�}tjj|j�}dtj|dt�tj|dt�f}|S(Ns$<location
xml:base="%s" href="%s"/>
tattrib(RYRZtdirnamet
remote_urlR[R=tto_xmlR(RMR.Rytmsg((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_return_remote_locationSs
+cCs�d}}|jr(tj|j�}n|jrFtj|j�}n|jd\}}}d|j|j|j|j|j	||tj|j
�tj|j�|||j|j
|j|j|jf}||j�7}|S(NRXis3
  <name>%s</name>
  <arch>%s</arch>
  <version epoch="%s" ver="%s"
rel="%s"/>
  <checksum type="%s"
pkgid="YES">%s</checksum>
  <summary>%s</summary>
  <description>%s</description>
  <packager>%s</packager>
  <url>%s</url>
  <time file="%s" build="%s"/>
  <size package="%s" installed="%s"
archive="%s"/>
(R4R=R�R�R�R*RpRR�R�R}R~R�R<R%R�R�R�(RMR4R�RiR�R�R�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_dump_base_items[s
			cCs�d}|jr,|dtj|j�7}n
|d7}|jr\|dtj|j�7}n
|d7}|jr�|dtj|j�7}n
|d7}|jr�|dtj|j�7}n
|d	7}|jr�|d
tj|j�7}n
|d7}|d|j|jf7}||j	d
�7}||j
�7}||j	d�7}||j	d�7}||jt�7}|ddkr�|d7}n|d7}|S(Ns
 <format>
s"    <rpm:license>%s</rpm:license>
s    <rpm:license/>
s     <rpm:vendor>%s</rpm:vendor>
s    <rpm:vendor/>
s    <rpm:group>%s</rpm:group>
s    <rpm:group/>
s&    <rpm:buildhost>%s</rpm:buildhost>
s    <rpm:buildhost/>
s&    <rpm:sourcerpm>%s</rpm:sourcerpm>
s    <rpm:sourcerpm/>
s+    <rpm:header-range start="%s"
end="%s"/>R�R�R�i����s
s 
</format>(
R�R=R�R�RR�R�R�R�t	_dump_pcot_dump_requirest_dump_filesR(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_dump_format_itemsxs6	
	
	
	
	


c
Cs1d}t||�}|r(d|}nx�t|�D]�\}}\}}}dtj|dt�}	|r�|	dtj|dt�7}	|r�|	dtj|dt�7}	n|r�|	dtj|dt�7}	n|r�|	dtj|dt�7}	q�n|	d	7}	||	7}q5W|r-|d
|7}n|S(NRXs
    <rpm:%s>
s      <rpm:entry name="%s"R�s flags="%s"s
epoch="%s"s	 ver="%s"s	 rel="%s"s/>
s
    </rpm:%s>(R�tsortedR=R�R(
RMtpcotypeR�tmylistR*R�R'R(R)t	pcostring((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��s&
%
 #
cCs�g}x:t|jd|��D]
}|jdtj|��qWx:t|jd|��D]
}|jdtj|��q\Wx:t|jd|��D]
}|jdtj|��q�Wdj|�S(NR�s
  <file>%s</file>R�s
  <file type="dir">%s</file>R�s
  <file type="ghost">%s</file>RX(R�R�R
R=R�R^(RMtprimaryR�R�((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��scCs
t��dS(N(tNotImplementedError(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_requires_with_pre�scCs�|j�}d}|r!d}nt|d�r|jrtd�|�}|rt|dtdtd��}|j�}t|�dkr�|dj	d�r�|j�}ng}x@|D]8}|dj	d	�r�||kr�q�n|j
|�q�W|}qnd}x�t|�D]�\}	}
\}}}
}|	j	d
�rGqn|	|jks�|	j	d�r�|	|jks�|	|j
ks�|	|jkr�|
s�qq�|jd|	|
|||
ff�r�qq�nd
tj|	dt�}|
r||dtj|
dt�7}|r-|dtj|dt�7}n|rS|dtj|dt�7}n|
r||dtj|
dt�7}q|n|dkr�|d|7}n|d7}||7}|d7}qW|r�|d7}n|dkr�dS|S(sreturns
deps in XML formatRXs
    <rpm:requires>
t_collapse_libc_requirescSs|djd�S(Nis	libc.so.6(R�(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�sR�R�islibc.so.6()s	libc.so.6srpmlib(RVR�s
     <rpm:entry name="%s"R�s flags="%s"s
epoch="%s"s	 ver="%s"s	 rel="%s"Rrs	
pre="%s"s/>
is   
</rpm:requires>(Rri(R�R�R�tfilterR�RRtpopR�R�R
R�RRRR�R=R�R(RMR�R�t
libc_requirestresttbesttnewlisttitusedR*R�R'R(R)tpret
prcostring((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��s`	%
($	
 #


c	Cs�|js
dSg}|s%|j}n
|j|
}d}d}x�t|�D]\}}}||krod}n
|d7}|}||7}|jdtj|dt�tjt|��tj|�f�qKWdj|�S(NRXiis2
  <changelog author="%s"
date="%s">%s</changelog>R�(RtreversedR
R=R�RR�R^(	RMt
clog_limitR�tclogstlast_tsthack_tsRLR�tcontent((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_dump_changelog�s$	
	

	$cCsLd}||j�7}||j�7}|d7}t|�tksHt�|S(Ns
<package type="rpm">s
</package>(R�R�R�R�tAssertionError(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pytxml_dump_primary_metadatas
cCsSd|j|j|j|j|j|j|j�f}t|�tksOt	�|S(Ns`
<package pkgid="%s" name="%s"
arch="%s">
  <version epoch="%s" ver="%s"
rel="%s"/>%s
</package>(
ReR*RpRR�R�R�R�R�R�(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pytxml_dump_filelists_metadatas
ic	CsVd|j|j|j|j|j|j|j|�f}t|�tksRt	�|S(Ns`
<package pkgid="%s" name="%s"
arch="%s">
  <version epoch="%s" ver="%s"
rel="%s"/>%s
</package>(
ReR*RpRR�R�R�R�R�R�(RMR�R�((s0/usr/lib/python2.7/site-packages/yum/packages.pytxml_dump_other_metadata#s
N(/RRRSRTR:RNR�RmR�R#R�R$R&R(R/R�R,R�R:t	committerR=t
committimeR>ReRERNRVRFRPR�Rmtxattr_origin_urlRpRqR�RR�R�R�R�RR�R�R�R�R�R�R�(((s0/usr/lib/python2.7/site-packages/yum/packages.pyR	sT										
		
						#					S			(	
		7			
cCs||p|d|S(sX Rpm returns None, for certain sizes. And has a
"longsize" for the real
        values.
tlong((RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_rpm_long_size_hack0stYumHeaderPackagecBs�eZdZd�Zd�Zd�Zed��Zd�Zed��Z	d�Z
ed�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zded�Zd�Zd�Zd�Zd�Zd�ZRS(s'Package
object built from an rpm
headercCs{tj||�||_tj|jd�|_|jd}|sNd}ntj|�|_tj|j��|_tj|jd�|_	tj|jd�|_
|j	|_|j
|_|j|j|j|j	|j
f|_
d
|_d
|_|jtj|_|js;d|jd|jdf|_nt|jd�|_t|jd	�|_i|_t|_d
S(sGhand in an rpm header, we'll assume it's installed and query
from thereR*RptnoarchR
Rs%s.%sR<R�R�N(RRNRMR=t
share_dataR*RptdoepochRR
RR�R�RR:t_loaded_summaryt_loaded_descriptionRQtRPMTAG_SHA1HEADERR�R�R%R�t_YumHeaderPackage__mode_cacheRt
_YumHeaderPackage__prcoPopulated(RMR3RMtthis_a((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN9s,	
	'			$	cCs#dtjtjj|j���S(Nsfile://(turllibtquoteRYRZtabspathRF(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyR/TscCsS|jdkrL|j�dp"d}tj|jdd��}||_n|jS(NR}RXs
(R�R:t_get_hdrR=R�R2(RMR}((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_loadSummaryWs
cCs
|j�S(N(R�(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl^scCsG|jdkr@|j�dp"d}tj|�}||_n|jS(NR~RX(R�R:R�R=R�(RMR~((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_loadDescription`s
cCs
|j�S(N(R�(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlfscCs`|jdkr4d|j|j|j|jf}n(d|j|j|j|j|jf}|S(NRrs%s-%s-%s.%ss%s:%s-%s-%s.%s(RR*R
RRp(RMR8((s0/usr/lib/python2.7/site-packages/yum/packages.pyRihscCs2|js|j�t|_ntj|||�S(N(R�t
_populatePrcoRRR�(RMR�R�((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�qs	
cCs|jS(N(RM(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�wsc
Cs�itjd�d6tjd�d6tjd�d6tjd�d6}|j�}x�|D]�}|ttd	|�}ttj|�}|s�qYn|ttd
|�}|dkr�tjtjB}g|D]}t||@�^q�}ntt	j
j|�}ttj|�}|ttd|�}tt	j
j|�}	td�|	�}	||}
ttjt
|||	��|j|
<|dkrYt
||j|
�}g|D]}|d
s�|d^q�}||jd<qYqYWdS(s;Populate the
package object with the needed PRCO
interface.R�tOBSOLETER�tCONFLICTR�tREQUIRER�tPROVIDEs
RPMTAG_%sNAMEsRPMTAG_%sFLAGSsRPMTAG_%sVERSIONcSs4tj|d�tj|d�tj|d�fS(Niii(R=R�(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�s
iiR�N(R=R�R�R�RQtmaptRPMSENSE_SCRIPT_PREtRPMSENSE_SCRIPT_POSTR;RRRRtzipR�(
RMttag2prcoRMttagR*tlsttbitstflagtweakreqstversR�twreqt
strongreqs((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�zs4
&		
%'cCsRtjdtjdd�yt||�SWn!tk
rMtjd|�nXdS(Ns6tagByName() will go away in a furture version
of Yum.
R�isUnknown header tag
%s(R�R�R�R�R�tAttributeErrorRf(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt	tagByName�s	
cCs�|jd�r4|jd�r4td||f�ny|j|SWnGtk
ritd||f�n$tk
r�td||f�nXdS(Nt__s%s has no attribute
%s(R�R\R�RMtKeyErrorRB(RMtthing((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__getattr__�s

cCs2|jd}|dkr"d}nt|�}|S(NRRr(RMR:R�(RMttmpepochR((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��s

	cCs|jS(N(RM(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRV�sc	Cs<|jd}|jd}|jd}t|||�}|js8x�|D]�\}}}|dksp|dkr�d|jkr�g|jd<n|jdj|�qIn||jkr�tj|�|j|<nd}|j|r�d}n|dk	r|d@rd}n|jj	|g�j|�qIWt
|_ndS(	Nt	filenamest	fileflagst	filemodesRXR�R�i@R�(RMR�RR:R�R
R�R_tS_ISDIRt
setdefaultR(	RMR�R�R�t	filetupleR�tmodeR�tfkey((s0/usr/lib/python2.7/site-packages/yum/packages.pyt
_loadFiles�s(


	
		
R�cCs|j�tj|||�S(s"return list of files based on
type(R�RR�(RMR�R�((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��s
cCsBt|jd�dkr>t|jd|jd|jd�SgS(Nt
changelognameit
changelogtimet
changelogtext(R�RMR�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��s


cCs
t��dS(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��scCst|jd�S(NR�(R�RM(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyR&�scCs2|dk	r.|tjtjBtjB@r.dSndS(sncheck
the flags for a requirement, return 1 or 0 whether or not requires
           is a pre-requires or a
notiiN(R:RQtRPMSENSE_PREREQR�R�(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_is_pre_req�s
cCs�|jtj}|jtj}tt|�}t|j|�}|jtj}tt|�}|dk	r�t
||||�}ntj|�}|S(s%returns requires with pre-require
bitN(
RMRQtRPMTAG_REQUIRENAMEtRPMTAG_REQUIREFLAGSR�RR�tRPMTAG_REQUIREVERSIONRR:R�R=RA(RMR*R�R�R�R�R�((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�s(RRRSRTRNR/R�RmR}R�R~RiRR�R�R�R�R�R�RVR�R�R�R�R&R�R�(((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�7s,								$							
			
t_CountedReadFilecBs eZdZd�Zd�ZRS(s� Has just a read()
method, and keeps a count so we can find out how much
        has been read. Implemented so we can get the real size of the file
from
        prelink.
cCs||_d|_dS(Ni(tfpt	read_size(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyRNs	cCs+|jj|�}|jt|�7_|S(N(R�treadRR�(RMR�R�((s0/usr/lib/python2.7/site-packages/yum/packages.pyRs(RRRSRTRNR(((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�
s	t_PkgVerifyProbcBs#eZdZed�Zd�ZRS(s8
Holder for each "problem" we find with a pkg.verify().
cCs:||_||_d|_d|_||_||_dS(N(R�tmessageR:tdatabase_valuet
disk_valuet
file_typestfake(RMR�R�tftypesR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRNs					cCs|dkrdSidd6dd6dd6dd6dd	6d
d6dd
6dd6dd6dd6dd6dd6dd6dd6}t||j||j�}|sxudddgD]a}t||�}t||�}|dkr�|dks�t�q�nt||�}|r�Pq�q�Wn|S(NiR�itsymlinkiReiR�tuseriRiR�itgenchecksumitmtimei	tmissingi
spermissions-missingiRit	missingoki
R�RRR(R:R�R�R�R�(RMRet	type2sortR�tattrRnty((s0/usr/lib/python2.7/site-packages/yum/packages.pyRf&s$(RRRSRTRRNRf(((s0/usr/lib/python2.7/site-packages/yum/packages.pyRsiiiiiiiiitYUMVerifyPackageFilecBsgeZd�Zd
d�Zedd�dd�dd��Zedd�dd	�dd
��Zedd�dd�dd
��Zedd�dd�dd��Z	edd�dd�dd��Z
edd�dd�dd��Zedd�dd�dd��Zd�Z
edd�dd�dd��Zed��Zedd��ZRS(!cCss||_d|_d|_d|_d|_d|_d|_d|_d|_	t
|_t�|_
d|_dS(N(tfilenameR:treadlinkRtdevR
RR�tdigestR�Rtverify_ftypeR�trpmfile_typet
rpmfile_state(RMR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRNGs										cCsM|dkrd|}nd|}t|||�t|||dk	�dS(Ntverify_t_(R:R�(RMRR8tvattr((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_setVerifiedAttrXs


RkcCs|jS(N(t	_readlink(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl_stfdelcCst|dd�S(NR(R�R:(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl`stfsetcCs|jd|�S(NR(R(RnR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlascCs|jS(N(t_mtime(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlbscCst|dd�S(NR(R�R:(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlcscCs|jd|�S(NR(R(RnR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRldscCs|jS(N(t_dev(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlescCst|dd�S(NR(R�R:(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlfscCs|jd|�S(NR(R(RnR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlgscCs|jS(N(t_user(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlhscCst|dd�S(NR
(R�R:(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRliscCs|jd|�S(NR
(R(RnR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRljscCs|jS(N(t_group(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlkscCst|dd�S(NR(R�R:(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRllscCs|jd|�S(NR(R(RnR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlmscCs|jS(N(t_digest(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRloscCst|dd�S(NR(R�R:(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlpscCs|jd|�S(NR(R(RnR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlqscCs|jS(N(R&(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlrscCst|dd�S(NR�(R�R:(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRlsscCs|jd|�S(NR�(R(RnR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRltscCs<|dk	|_|dk	|_d|}t|||�dS(NR(R:tverify_modeRR�(RMRR8((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_setVerifiedModevs
cCs|jS(N(t_mode(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl|scCst|dd�S(NR�(R�R:(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl}scCs|jd|�S(NR�(R'(RnR((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl~scCsvtj|�rdStj|�r&dStj|�r9dStj|�rLdStj|�r_dStj|�rrdSdS(s5
Given a "mode" return the name of the type of file.
R�t	directoryR	tfifoscharacter devicesblock
devices	<unknown>(R_tS_ISREGR�tS_ISLNKtS_ISFIFOtS_ISCHRtS_ISBLK(R�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_ftype�scCs|j|j�S(N(R0R�(Rn((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�sN(RRRSRNR:RRmRRRR
RRR�R'R�tstaticmethodR0R�(((s0/usr/lib/python2.7/site-packages/yum/packages.pyRFs:										t_RPMVerifyPackageFilecBseZed�ZRS(cCs�tj||d�|d}|r-d}n
|d}|t@rQ|d|_n|t@tBr�|d}|dkr�|d@}n||_|t@s�t|_n|t@s�t|_	q�n|t
@r�|d|_n|t@r�|d	|_nt
�|_}|tj@r|jd
�n|tj@r8|jd�n|tj@rU|jd�n|tj@rr|jd
�n|tj@r�|jd�n|tj@r�|jd�n|tj@r�|jd�n|d}	idtj6dtj6dtj6dtj6dtj6}
|	|
kr'|
|	|_n	d|_|t@rJ|d|_n|t
@rd|d|_!n|t"@r�||df|_#n|j$dkr�|t%@r�|j&�|_'n|t%@r�d|_'ndS(Niii����i	iii��iit
configurationt
documentationR�R�s
public keytREADMEs
missing okitnormaltreplaceds
not installedswrong
colort	netshareds	<unknown>i
iiR	RX((RRNt_RPMVERIFY_FILESIZER�t_RPMVERIFY_RDEVt_RPMVERIFY_MODER�RR&Rt_RPMVERIFY_MTIMERRR�t
rpmfile_typesRQtRPMFILE_CONFIGtaddtRPMFILE_DOCt
RPMFILE_GHOSTtRPMFILE_LICENSEtRPMFILE_PUBKEYtRPMFILE_READMEtRPMFILE_MISSINGOKtRPMFILE_STATE_NORMALtRPMFILE_STATE_REPLACEDtRPMFILE_STATE_NOTINSTALLEDtRPMFILE_STATE_WRONGCOLORtRPMFILE_STATE_NETSHAREDRt_RPMVERIFY_USERR
t_RPMVERIFY_GROUPRt_RPMVERIFY_DIGESTRR�t_RPMVERIFY_LINKTOtFLinkR(RMtfiR�Ritoverride_vflagsR�tvflagsR�R=Rtstatemap((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN�sl
	



	
















	



(RRRSRRN(((s0/usr/lib/python2.7/site-packages/yum/packages.pyR2�stYUMVerifyPackagecBsMeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(s,
A holder for YUMVerifyPackageFile objects.
cCs||_i|_dS(N(tpot_files(RMRU((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN�s	cCs
||jkS(sp
Note that this checks if a filename is part of the package, and
            not a full YUMVerifyPackageFile().
(RV(RMtfname((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__contains__�sccs$x|jD]}|j|Vq
WdS(N(RV(RMR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt__iter__�scCs||j|j<dS(N(RVR(RMtvpf((s0/usr/lib/python2.7/site-packages/yum/packages.pyR?�scCs|j|j=dS(N(RVR(RMRZ((s0/usr/lib/python2.7/site-packages/yum/packages.pytremove�scCs$|j|krdS|j|�dS(N(RR[(RMRZ((s0/usr/lib/python2.7/site-packages/yum/packages.pytdiscard�scCs
i|_dS(N(RV(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pytclear�s(
RRRSRTRNRXRYR?R[R\R](((s0/usr/lib/python2.7/site-packages/yum/packages.pyRT�s						t_RPMVerifyPackagecBsGeZd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs)tj||�||||f|_dS(N(RTRNt	_presetup(RMRURPt
def_csum_typetpatternstall((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN�scCst|d�sdS|j\}}}}|`i}x�|D]�}|d}|r�t}xo|D]g}	|	tkr}t|	}
n(|	|kr�||	}
ntj|	�}
|
||	<|
|�r^t}Pq^q^W|s�q;q�n|jt||||��q;W|r|andS(NR_i(	R�R_Rt
_last_fnmatchR=R@RR?R2(RMRPR`RaRbt
_this_fnmatchtftR�REtpR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_setup�s0





	
cOs|j�tj|||�S(N(RgRTRX(RMtargstkwargs((s0/usr/lib/python2.7/site-packages/yum/packages.pyRXs
cOs|j�tj|||�S(N(RgRTRY(RMRhRi((s0/usr/lib/python2.7/site-packages/yum/packages.pyRYs
cOs|j�tj|||�S(N(RgRTR?(RMRhRi((s0/usr/lib/python2.7/site-packages/yum/packages.pyR?"s
cOs|j�tj|||�S(N(RgRTR[(RMRhRi((s0/usr/lib/python2.7/site-packages/yum/packages.pyR[%s
cOs+t|d�r|`ntj|||�S(NR_(R�R_RTR](RMRhRi((s0/usr/lib/python2.7/site-packages/yum/packages.pyR])s	(	RRRSRNRgRXRYR?R[R](((s0/usr/lib/python2.7/site-packages/yum/packages.pyR^�s		
				R�tYumInstalledPackagec	Bs;eZdZdd�Zgeeeeeded�ZRS(s2super
class for dealing with packages in the
rpmdbcCs2tj|t|�|r.|j|�|_ndS(N(R�RNt_installed_repotget_packageR
(RMRMtyumdb((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN4sc	,%Csr	|jj�}	i}
d}tjj|�}d}
ttd�rw|jtj}|rw|tkrtt|}
qtqwnt	||	|
||�}|d6k	r�||�}nx�|D]�}|j}t|j
�}|jdkr
|jd|j�|r�tdd|dt�g|
|<q�q�nd	|j
krW|rWtd
d|dt�g|
|<nd	|j
krs|rsq�nd|j
kr�|r�tdd
|dt�g|
|<nd|j
kr�|r�q�ng}tjj|j�r�tj|j�}|j}ytj|tj�d}Wn$tk
r@}d|tj}nXytj|tj�d}Wn$tk
r�}d|tj}nXtj|j�}t
}|j!r�|j"j#d�s�|j#d�r�t}n|r�|j"|krtdd|�}|j"|_$||_%|j|�q�|j&d@|j'd@kr�tdd|�}t(|j&d@�|_$t(|j'd@�|_%|j|�q�n|j)rd}|dkr�tj*|j�}n||j*krtdd|�}|j*|_$||_%|j|�qnt}d|krt
}n|dkrO|j"dkrOtj|j�j}n|dkrdt }nt}|dkrt
}n|r�|j+r�t,|j-�t,|j.�kr�tdd|�}|j.|_$t,|j-�|_%|j|�n|rA|j/rA||j0krAtdd|�}|j0|_$||_%|j|�n|r�|j1r�||j2kr�tdd|�}|j2|_$||_%|j|�n|j}|j3}
d }!d|kr�||!M}| |!M} n|r#|j4r#|| kr#td!d"|�}|
|_$|j|_%|j|�n|j5}"|rQ|rQ||j6krQt
}"n|rf|rft }"n|j7sxt
}"n|rq|"s�|j8rq|rq||j6krq|j7r�|j7d}#|j7dd#|j7d$}$n|
}#d}$y't9j:|#|j�}%|#d#|%}%Wnt;j<k
r&d6}%nX|j5rp|%d6krptd%d&|�}|$|_$d6|_%|j|�n|%|$kr|rt=|d'|jgd(d)d*t>d+t>d,t>d-t�}&|&j?|&j@|&jA}'}(})tB|(�}(t9j:|#|(�}*|(jCr|*}%|#d#|%}%|(jC}qn|j5rq|%|$krq|%rqtd.d/|�}|$|_$|%|_%|j|�qqn|rT	|j8rT	||j6krT	td0d1|�}|j6|_$||_%|j|�qT	n�ytj|j�t}+Wn4tDk
r	}t}+|jEtEjFkr	t
}+q	nX|+r5	td2d3|�}ntd4d5|�}|j|�|r�||
|j<q�q�W|
S(7s�verify that the installed files match the packaged checksum
           optionally verify they match only if they are in the
'pattern' list
           returns a tuple
s/usr/sbin/prelinktmd5tRPMTAG_FILEDIGESTALGOR6sstate=Rsstate is not
normalRs
missing okRsmissing but okR�s
ghost fileisuid %s not foundsgid %s not foundtdeviceR�sfile type
does not matchi��sdev does not matchRXR	ssymlink does not
matchR�Rsmtime does not matchR
suser does not matchRsgroup does not matchi�R�smode does not
matcht:iRschecksum not
availables-ytbufsizei����tstdintstdouttstderrt	close_fdsReschecksum
does not matchR�ssize does not matchR
sfile is
missingspermissions-missings#file is missing (Permission
denied)N(GRMtfiFromHeaderRYRZROR�RQRotRPM_CHECKSUM_TYPESR^R:RtlistR=RR
RRtlexiststlstatRdtpwdtgetpwuidR_tST_UIDR�tgrptgetgrgidtST_GIDRR0tst_modeRt
verify_devR�R\RRRRbR�tverify_readlinkRtverify_mtimeR@RcRtverify_userR
tverify_groupRR�R&t
verify_digestR�Rtverify_sizeR=ReR�RfRRRsRtRuR�RR`terrnotEACCES(,RMRatdepstscriptt
fake_problemsRbtfasttcallbacktfailfastRPR�tprelink_cmdthave_prelinkRitcsum_numtpfstpfR�Rtproblemstmy_stt
my_st_sizetmy_userR'tmy_grouptmy_ftypeR�tprobtmy_fnlt
check_contenttcheck_permstmy_modetpf_modet	perm_maskR�tdigest_typeR�tmy_csumRftigR�terttcsumtperms_ok((s0/usr/lib/python2.7/site-packages/yum/packages.pytverify9s^
																				

							

						

	
N(RRRSRTR:RNRRR�(((s0/usr/lib/python2.7/site-packages/yum/packages.pyRj2s
	tYumLocalPackagecBs�eZdZd
d
d�Zd�Zd�Zd
d�Zedd��Z	d�Z
d�Zd	�Zedd
��Z
edd��Zd�ZRS(sClass to handle an arbitrary package
from a file path
       this inherits most things from YumInstalledPackage because
       installed packages and an arbitrary package on disk act very
       much alike. init takes a ts instance and a filename/path 
       to the
package.cCs�|dkrtjj�}n|dkr9tjd�nd|_||_d|_ytj	j
||j�}Wn,tk
r�}tjd|j|f�nXt|�}d|_
tj|||�|j|_tj|j�|_t|jd�|_t|jd�|_|j�|_|j|j|j|j|jf|_d|_d|_
t!j"d|_#d|_$d|_%dS(Ns;No Filename specified for YumLocalPackage
instance creationtlocals%Could not open local rpm file: %s:
%sii����iRX(&R:RRGRHR�RftpkgtypeRWR>RRIRRUtcostR�RNR�R4RYR_t_statR�R�R%tisSrpmRpR*RR�R�Rt	_hdrstartt_hdrendR=t_default_checksumsRrt_reldirt_baseurl(RMRLRRMR'tfakerepo((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN$s6					'			cCs:|jd�dks%|jd�r)dS|jd�SdS(Nt
sourcepackageiR�tsrcRp(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�Ls%cCs|jS(N(RW(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRFRscCs_|dkrtjd}n|jsXtj||j�|_||jdfg|_n|jS(Nii(R:R=R�R>ReRWRq(RMRr((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_do_checksumUs	RkcCs
|j�S(N(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl^scCs|j�|jS(N(R�Rq(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�`s
cCstS(s5 don't bother "checking" the package matches
itself.
(R(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�dscCs{|jr"|jr"|j|jfSt|jd�}|jd�|jd�}tjd|�\}|jd�}tjd|�\}|d}||}|d}|dkr�d|}nd||}	|j|	�|jdd	�|jd�}tjd|�\}
|jd�}tjd|�\}|
d}||d}
|	|
}|j�|	|_||_|	|fS(
sQtakes an rpm file or fileobject and returns byteranges for location of
the
headerR)ihis>Iiiiipi(	R�R�topenRWtseekRtstructtunpacktclose(RMtfotbinindextsigindextbindatatsigdatatsigindexsizetsigsizetdisttoboundaryR�thdrindexthdrdatathdrindexsizethdrsizeR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyt_get_header_byte_rangehs6








		cCs|j�dS(Ni(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs|j�dS(Ni(R�(RM((s0/usr/lib/python2.7/site-packages/yum/packages.pyRl�scCs�|jrV|jj|j�rV|jj|jd�}|ddkr_|d}q_n	|j}|jr�dtj|jdt�tj|dt�f}ndtj|dt�}|S(NRXiRVis&
 <location xml:base="%s" href="%s"/>
R�s  <location href="%s"/>
(R�RWR�R2R�R=R�R(RMtrelpathR�((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��s		N(RRRSRTR:RNR�RFR�RmReR�R�R�R�R�R�(((s0/usr/lib/python2.7/site-packages/yum/packages.pyR�s(						0t
YumUrlPackagecBs#eZdZddddd�ZRS(s�Class
to handle an arbitrary package from a URL
       this inherits most things from YumLocalPackage, but will download a
       remote package to make it local.
       init takes a YumBase, a ts instance and a url to the
package.c
Cs�|j�jd�r(|td�}n|tj|�s@|}ndd}i}xl|jj�D][}|j}|j	|j
j	kr\|j|j
jkr\|j|j
jkr\|j
}Pq\q\Wtjj|�}	tj�}
|
dkr�d|j}
nd|
|	f}
yptd|j
jd|j
jd|j
jd|d|�}|dk	r\||j_n|j||
d	|	�}Wn,tk
r�}tjd
||f��nXtj|||�dS(Nsfile:s%s/../s%s/%st	bandwidthtretrytthrottletprogress_objtproxiesR�sCannot
download %s:
%s(RR�R�R=t
re_remote_urlR:trepostlistEnabledR�tproxytconftproxy_usernametproxy_passwordt
proxy_dictRYRZR[tgetCacheDirtcachedirR	R�tretriesR�toptst
user_agentturlgrabR
R�RfR�RN(
RMtybRLR�tuaR�tcbtpdR3RWR�tugR'((s0/usr/lib/python2.7/site-packages/yum/packages.pyRN�s<				N(RRRSRTR:RN(((s0/usr/lib/python2.7/site-packages/yum/packages.pyR��s(LRTRQRYtos.pathR=R�tretfnmatchR_R�t
subprocessRRRRtrpmUtils.miscutilsRRRR�R�R�t	constantstoperatorRR�R*t
uses_fragmentR
turlgrabber.grabberR	R
RlR�R:tImportErrorR|RRRRR2RKRLRUtobjectRoR�R�R�R�R�RR�R�R�RRMR9RNRKRLR<R;R:t_RPMVERIFY_CAPSt_RPMVERIFY_CONTEXTSRR2RTRcR^RkRjR�R�(((s0/usr/lib/python2.7/site-packages/yum/packages.pyt<module>s�



		"88�	�	1��)	� 









HJ8	��