KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /proc/21573/root/usr/lib/python2.4/site-packages/yum/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/21573/root/usr/lib/python2.4/site-packages/yum/depsolve.pyo
m
Pc@sdZdkZdkZdkZdkZdkZdkZdkl	Z	l
Z
lZlZdk
Z
dk
lZlZdkZdklZdkTdkZdkZdkZdkZeideidklZdklZyWnd	Zd
ZnXhdei <dei!ei B<d
ei"<dei"ei!B<dei!<e#d<Z$de%fdYZ&de%fdYZ'de%fdYZ(de%fdYZ)dS(s&
Depedancy resolution module for yum.
N(sarchDifferencesisMultiLibArchsgetBestArchscanCoinstall(suniquesversion_tuple_to_string(sListPackageSack(t*tignore(s
itemgetter(t_cGs,x%|D]}||jo
|}qqW|S(N(targstytx(RRR((t0/usr/lib/python2.4/site-packages/yum/depsolve.pytmin0s

cGs,x%|D]}||jo
|}qqW|S(N(RRR(RRR((Rtmax4s

tGTtGEtLTtLEtEQitDepsolvecBs=tZdZdZdZedZedZdZdZ	dZ
dZd	Zd
Z
ddd
ZdZedZdZdZdZdZdZdZdZdZedZdZedZdZdZdZ dZ!dZ"e"Z#d Z$RS(!s%
    Dependency resolving class.
    cCsp|t_d|_d|_d|_tid|_	tid|_
g|_g|_d|_
d|_dS(Nsyum.Depsolvesyum.verbose.Depsolve(tselftpackagestbasetNonet_tst_tsInfot
dsCallbacktloggingt	getLoggertloggertverbose_loggertpathtloopstinstalledFileRequirestinstalledUnresolvedFileRequires(R((Rt__init__Es							cCs)titdtidd|iS(Ns5doTsSetup() will go away in a future version of Yum.
t
stackleveli(twarningstwarnRtErrorstYumFutureDeprecationWarningRt_getTs(R((Rt	doTsSetupSscCs|idjoP|idjo@|o0|iidjo|ii|i|indSn|ii	pt
itdn|i
||idS(ssetup all the transaction set storage items we'll need
           This can't happen in __init__ b/c we don't know our installroot
           yetNs4Setting up TransactionSets before config class is up(RRRRtremove_onlytpkgSacktsetDatabasestrpmdbtconftinstallrootR"tYumBaseErrorRt
_getTsInfotinitActionTs(RR&((RR$Xs 

cCs|idjo|i|_|o
d}n
|i}|ii|i||ii	|i_	|i
|i_|i|i_
|i|i_n|iS(s remove_only param. says if we are going to do _only_ remove(s) in
            the transaction. If so we don't need to setup the remote repos. N(RRRt_transactionDataFactoryR&R'R(R)R*tinstallonlypkgstinstalltinstall_methodtupdatet
update_methodtremovet
remove_method(RR&R'((RR-hs
	cCs
||_dS(N(tvalueRR(RR7((Rt
_setTsInfoyscCs
d|_dS(N(RRR(R((Rt
_delTsInfo|scCs|ip|in|iS(N(RRR.(R((Rt_getActionTss
cCstii|ii|_hdti<dti	<dti
<dti<dti<dti
<}|iidxU|iiD]G}|i|o|ii||q|iitd|qWd}x|iiD]}||O}qW|ii|d	S(
s)sets up the ts we'll use for all the workt	noscriptst
notriggerstnodocsttesttjustdbt	repackageis!Invalid tsflag in config file: %sN(trpmUtilsttransactiontTransactionWrapperRR*R+RtrpmtRPMTRANS_FLAG_NOSCRIPTStRPMTRANS_FLAG_NOTRIGGERStRPMTRANS_FLAG_NODOCStRPMTRANS_FLAG_TESTtRPMTRANS_FLAG_JUSTDBtRPMTRANS_FLAG_REPACKAGEtts_flags_to_rpmtsetFlagsttsflagstflagthas_keyt	addTsFlagRtcriticalRt
probfilterttsInfotprobFilterFlagst
setProbFilter(RRKRNRR((RR.sN

c
Cs|iititd||ddjo"ti|p|i	qRn|i
i|}|djo
d}nt|tititifjotii|\}	}}n3t|titifjo|\}	}}nt}x|D]}|iiti td|||ddjo!|djo|i!|qn|i"d|||	||ffo-|i!||ii#td||qqW|S(ssearches the packageSacks for what provides the arguments
           returns a ListPackageSack of providing packages, possibly emptysSearching pkgSack for dep: %sit/sPotential match for %s from %stprovidessMatched %s to require for %sN($RRtlogt
logginglevelstDEBUG_1Rtnametmisctre_primary_filenametdoSackFilelistPopulateR'tsearchProvidestpkgstflagsRttypetversionttypest
StringTypetNoneTypetUnicodeTypeRAt	miscutilststringToVersiontr_etr_vtr_rt	TupleTypetListTypetListPackageSacktdefSacktpotDEBUG_2t
addPackaget	checkPrcotdebug(
RR[RaRcRpRqRlRkR`Rj((RtwhatProvidess2

%	
%
$csI|iiijotSn|i}td|otSnt	S(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|iijS(N(tprovRR*R0(Rw(R(Rt<lambda>sN(
RqR[RR*R0tTruetprovides_namesRWtfiltertFalse(RRqRW((RRtallowedMultipleInstallss	iicCs)|io|iinh}|iidjo|in|ox|iD]}
|
i	}|djo
d}n|
i|
i||
i
|
if}|
idjo
d}	n|
idjo
d}	nd|||	f<qSWnx'|iiD]}|iititd||iddgjoE|i|idfoqn|ii}t i!i"|o|ii#}n |i%|i|ii&}|idjoO|i'|io8|iiti(td|id|_t)|_*qn|ii+|||f|i|iiti,td	|i|i|io|ii-|i|iq!q|idgjo|i|i|ifoqn|ii.|ii/|io|ii-|idn|iiti,td
|iqqWdS(s7take transactionData class and populate transaction sett0itiites
Member: %stus%s converted to installsAdding Package %s in mode %ssRemoving Package %sN(0RRttransactionPopulationtts_elemttsRR.tkeepoldttetEtepochtNtAtVtRtpkginfotTypetmodeRSt
getMembersttxmbrRRXRYtDEBUG_3Rtts_stateROtpkgtupRqtlocalPkgtrpmfiletosRtexiststreturnHeaderFromPackagethdrtdownloadHeadertreturnLocalHeaderR}Rrt
TS_INSTALLtoutput_statet
addInstallRZtpkgAddedtaddErasetidx(RR>RRRRRRRRR((Rt
populateTss`



-

	
!
cCsEg}
|\}}	}tii|||	}|i
iti
td|||io|ii|i|ny||iidjo|i|||
\}}n|i|||
\}}|o$|ii||i|
dfnWnFtij
o7}|ii||it|fd}d}nX|||
fS(sprocesses a Requires dep from the resolveDeps functions, returns a tuple
           of (CheckDeps, missingdep, conflicts, errors) the last item is an array
           of error messagess%s requires: %st	installediiiN( t	errormsgstrequirementtneednameRatneedversionRARht
formatRequiretniceformatneedRRRXRYRZRRqRtprocReqR[trepotidt_requiringFromTransactiont	CheckDepst
missingdept_requiringFromInstalledtpo_with_problemstaddt_working_poR"tDepErrorRtstr(RRqRRRRRRRRaR((Rt_processReq
s$"
("cCs|t|t|fS(N(trnRatrftversion_tuple_to_stringtrv(RRR((Rt_prco_req_nfv2req-scCs|i|d|d|dS(Niii(RRtreq(RR((Rt
_prco_req2req1sc"Csd}d}|ii|ito||fSn|i\}}}}}|\}}}tii|||}d}d}g}|ii|||fo?|iititd|i|||f}	|	g}n|i!i"d|o:|ii#d|}xY|D]}!|i&|!i'qWn8|iititd||i!i(|||}x|D]}d|i}|i\}}
}}
}|iititd||ii0d|d|
d|d	|
d
|}|djo2||i2i3jo|ii0d|d|
}n|djo,||i2i3jo|ii0d|}n|djo9t4d|ii#||
||
|o
d}qn|dj	oF|}||i|||f<|iititd
|||PqmqmW|iititd|||dgjoN|iititd|||ii5|}!|!i6d|d}n|ddgjoyt7|i}|i9d|d|d|d|d||ii|it}t7|i|jo|o|di:t;jo1|iititd||di<dn|iititd|x\|di=D]M}|t?|i@|iAdjo%tB||iC|||dfSqjqjWtB}||fSn|iititd||iC|||Sn|djo|||df} |iFdjo|iC|||Sqd||iGf}td||f}|iiti|d}d}|i&|n||fS(sbprocesses the dependency resolution for a dep where the requiring 
           package is installedis3Needed Require has already been looked up, cheatingR[s4Needed Require is not a package name. Looking up: %ss%s.%s %s:%s-%ssPotential Provider: %starchRtvertrelcCs|iS(N(Rtobsoleted_by(R((RRxmsRs!Mode is %s for provider of %s: %ssMode for pkg providing %s: %sRs/TSINFO: %s package requiring %s marked as eraseRqiRRctreleasetrequiringPos-TSINFO: Obsoleting %s with %s to resolve dep.s#TSINFO: Updating %s to resolve dep.trequiress*Cannot find an update path for dep for: %ss%s (%s)s"Unresolvable requirement %s for %sN(Jt	checkdepsRRRStgetMembersWithStateRRtTS_REMOVE_STATESR[RRRRRRt	needflagsRRARhRRRtneedmodetneedpot	providerst
cheaterlookupRORRXRYRrRt
cheater_poR)tcontainst
matchNaevrttxmbrsRtappendRqtgetProvidestinst_potinst_strti_nti_ati_eti_vti_rtgetModetthismodeR*t
exactarchlistR{RtsetAsDeptlentlengthR3RtTS_OBSOLETEDRt
updated_bytpkgtmapRt
returnPrcoRyRt	errorlisttreqpkgR'trepoidtprob_pkgtmsg("RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR[RRR((RR4s

  
	"

	



")
cCs|idjotSn|djo
d}nt|titi	ti
fjotii
|\}}}n3t|titifjo|\}}}n|i}|id|||||ffo$|iitd||tSntS(NiRWs"Quick matched %s to require for %s(Rt	_last_reqRR|RaRbRcRdReRfRgRARhRiRjRkRlRmRnRqRtR[RRuRRy(RR[RaRcRkRlRqRj((Rt_quickWhatProvidess

%	%c#s|i\}}}}} |\}}}d}d}h}i|||o||fSni|||}"x|"iD]}	iid|	o3iititd|	|"i|	qng}
i|	pWiid|	i}
x|
D]}t!|	i|i"ip|i"i#|	o:td|	}iiti||"i|	qq|i"i%|	o#|i&|	igi'|iqqqWii(d|	i}xs|D]g}|i#|	oQt!|	i|io:td|	}iiti||"i|	qqqWqqWt+|"djo\d}d||i,f}td	t.i/i0||||f}|i'|||fSnx|"iD]}	|	i\}}}}}ii7d|d
|d|d|d
|}|ddgjo6iititd|	|	_9||fSqqWx|"i:D]z}	i;d|d|	id|	id|	id
|	i<}x;|D]3}|	|i"jot?}|	_9||fSqqWq`W|"i@}t+|djo$iB||}|dd}
n"t+|djo|d}
niid|
oPd}d}d||i,f}td	||f}|i'|||fSnii(d|
id
|
i}!t+|!djo_iiFtd|
|fiiG|
|!d}|iHd|d|_I|
_9nyiiFtd|
|iiJ|
}|iHd||
_9|iK|
iotLd||
ind}||fS(skprocesses the dependency resolution for a dep where requiring 
           package is in the transaction setiRqsB%s is in providing packages but it is already installed, removing.R[s8Potential resolving package %s has newer instance in ts.s<Potential resolving package %s has newer instance installed.is%s (%s)s.Missing Dependency: %s is needed by package %sRRRRRRs#%s already in ts, skipping this oneRRcs#TSINFO: Marking %s as update for %stdeps$TSINFO: Marking %s as install for %scsii|S(N(RRSR5R(R(R(RRxQsN(MRRR[RRRcRRRRRRRtupgradedRRRvtprovSacktreturnPackagesRR)RRRXRYRrRt
delPackagettspkgsR}RSRttspkgtcanCoinstallRqtverGTRtverLTt
setdefaultRtsearchNevratdbpkgstdbpkgRRRRARhRRtntaRtvtrRtpkgmodeRtreturnNewestByNameR3RtresultsRRytreturnNewestByNameArchtnewestt_compare_providerst
pkgresultstbesttinstRut	addUpdateRtreasonRROR(#RRRRRRRRRRRRRRRRRcRRRRRRRRRRRR[RRRRRR((RRRs


+'
(

-	
	
! 	
	cCsTt}g}|\}}}
|i\}}}}}	tii||
|}
|io|ii||
nt|i}|ti@oZ|id|i	|ii|it}t|i|jo|o||fSqHnf|ti@oW|id||ii|it}t|i|jo|o||fSqHn|id|i	|ii|it}t|i|jo|o||fSn|id||ii|it}t|i|jo|o||fSnd||i	f}|i!||i"i#t$i%|t&}|i'i(|d|df||fS(s6processes a Conflict dep from the resolveDeps() methodR[s%s conflicts with %siN(*RyRRtconflictRRaRRqRR[RRRRRARhRRRRtprocConflictRRSRRDt
RPMSENSE_LESSR3tconflicting_poRRRtRPMSENSE_GREATERRRRRXRYRZR|RRR(RRqR
R
RRRRRRRRRRRR[RRa((Rt_processConflictXsB

cCs9x2|iD]'}|io|ii|iq
q
WdS(N(RRSRtisDepR5R(RR((Rt_undoDepInstallss

cCsd}dk}dk}|i|}|i|i}|i	dGH|i
i|}|i|i
dd|id|S(Nsanaconda.prof.0sdone running depcheckttimetcallsi(tfnthotshott
hotshot.statstProfiletproftruncallRtresolveDepstrctclosetstatstloadt
strip_dirst
sort_statstprint_stats(RRRRRR((Rtprof_resolveDepss


cCsydk}dk}|i}|i|i}|iddGH|i	d}|i|id|i
d|S(Ntyumprofsdone running depcheckRi(tcProfiletpstatsRRRRRRt
dump_statstStatstpRR R!(RR%R(R$RR((Rtcprof_resolveDepss



cCst|ipdtdgfSnt|_d|_d|_|ii	dt
t}|}|}d}g}|io|iinxtot}x_|oWh|_|io|iin|i|\}}
}}
||
O}||O}qW|ot
}xI|iD];\}}|i||\}}
}||O}||7}qW|o>|io|ii n|i!i"t#i$tdqqn|ot
}xI|i%D];}	|i'|	\}}||O}||7}|oPqqW|o>|io|ii n|i!i"t#i$tdqqGnPqWxr|ii(D]a}|i*|ioH|i+djo8|i!i"t#i,td|id|_+t-|_.q]q]W|io|ii/n|i!i"t#i$tdt
|i_0t|djont1|}xQ|iD]F\}}}|i!i4td	||i5f|i!i4d
|q.Wd|fSnt|idjo>t|ipdtdgfSndtd
gfSndS(NisSuccess - empty transactionthardsRestarting LoopRs%s converted to installRsDependency Process endings"%s from %s has depsolving problemss  --> %siisSuccess - deps resolved(6RRRSRtsetRRRRt
resetResolvedR|RyRt
full_checktCheckRemovest
CheckInstallsRterrorsRtstartRttscheckt_resolveRequirest
checkinstallstcheckremovestmissingt_checkFileRequiresRqRRtcheckdepRtrestartLoopRRXRYRZt_checkConflictsR
RRRR}RRrRRtendtchangedtuniquetwpoterrtinfoR(RR-RRR8RR0R.RqR
R6R>RR4R5R?RR/((RRs		
	







	
#	
	

#cCst}
t}t}t}
xo|iiD]^}|i	o'|i
o|i	i|i|i
n|i
ititd|f|io"|io|idd|_n
|i|_|itj|iidjjo|i|}t}n|i|}t}
t}	xM|D]E\}}|i ||\}}}||O}||7}|	|O}	qW|	p|ii%|n|
|	O}
q(W|||
|
fS(NsChecking deps for %si(&R|tany_missingRR/R.RRStgetUnresolvedMembersRRRRRRRXRYRrRtupdatest	relatedtoRRqRtTS_INSTALL_STATEStstateRt
_checkInstallt	thisneedsRyt_checkRemovetmissing_in_pkgRRR8R6RR0tmarkAsResolved(RR0RR6RRRHRR/RJRAR8RqR.((RR3s:"


cCshdd<dd<dd<dd<d	d
<dd<}|i|dd|i|dd}|o|Snd
}||d||dS(s2 Sort the requires for a package from most "narrow" to least,
            this tries to ensure that if we have two reqs like
            "libfoo = 1.2.3-4" and "foo-api" (which is also provided by
            libxyz-foo) that we'll get just libfoo.
            There are other similar cases this "handles".R
iRiRiR	iR
iici
cCs<|ido(|idp|idodSndS(Ntlibs()s	()(64bit)ici(R[t
startswithtendswith(R[((Rt
_req_name2val<s0iN(Rtmappertgettpkgtup1tpkgtup2tretRO(RRRSRPRTRO((Rt
_sort_reqs$s<*	cCs|iid}t|iid}g}	x'|iD]}|	i	|idq:Wt|	}	g}xAt|d|i
D]*}|didoqn||joqn||	jo|ii|oqn|iititd|||ii|}|p&|i|i|i|fqnxj|D]b}
|i|
ijoqFnx?|iid|
idtD]}|i i|id	fqWqFWqW|S(
NRRWtcmpisrpmlib(s%looking for %s as a requirement of %sRt
output_statest	dependson(!RRqRt
txmbr_reqsR+ttxmbr_provstoldreqsRCtoldpotextendRTtsortedRRURRMR)RRRXRYRrRRStprovsRRR[RRREtmemberRD(RRR\RRTR`R_RZRYR[Rq((RRGCs:

 "%c	Cs|i}
|
id}h}x/|iD]$}x|iD]}d||<q8Wq(Wg}x|D]}|didoq]n|i|oq]nx|ii|iD]e\}
}xV|D]N\}}	}|ii||	|p&|i|
|i||	|fqqWqWq]W|S(NRWiisrpmlib((RRqRR_t
newpoprovsRtnewpoRWR(RTRwRMRORRStgetRequirest	iteritemsRthitsRRRRRR(RRReR(RwRRTRbR_RRRaRRq((RRIgs,	

2c
Cst}h}g}|idjoh|_t|_t}x|i	i
D]}x|iD]\}}
}|idpqcn|ii|gi|||joD|i	i||
|}
|i||
p|ii|qqcqcWqSWnxt|iiD]c\}}|ii|idtp;|i|x+|D]}|i|gi|qNWqqW||i8}x|iidtD]}x|iiD]\}}
}|ido||ijoSt!}	x8|i#D]-}|i%d|ddfot&}	PqqW|	oqq1n|i||i|gi|iqqWqWxk|D]c}|i'i(|oI|i'i)|o5x2||D]"}|i||ddffqWqmqmW|S(NRVRWRit(NNN(*R+tfileRequirest
reverselookupRTRRRRtresolvedR)RRRR[RNtevrRMRRRRRRdRqtfilesRRRRR3tfilenameRERR|talready_brokenRCR\RtRyRStgetOldProvidestgetNewProvides(RRkRhRRTRlRqRiR\RmRNRR[RRgRj((RR7sd			


$
%


	
(((c		Csg}x|iiD]}|ii|idtoqnx|i	dD]}|\}}}x|ii|||D]h}|id|idjo"|id|idjoq}n|i||i||||fq}WqOWqWx|iidtD]}|i}x|ii	dD]}|\}}}x|ii|||D]h}|id|idjo"|id|idjoqWn|i||i||||fqWWq)WqW|S(NRWt	conflictsii(RTRR)RRqRSRRRRR
RtfRRoR
RRRERR(	RRqRTRRRR
RqR
((RR:s261	61cCst}|iid|o
t}n|iid|}x&|D]}|itjotSqBqBW|ot
|djotSn|S(NR[i(R|RRR)RtpkgnameRyRSRtlstRRRER(RRrRRsR((RtisPackageInstalleds
csiititdt|d}dd}d}d}	h}xL|D]D}|i|jo!||ii|ijoq]n|||i<q]W|i}h}h}xs|D]k}d||<iid|i}|o2t|d	}|i|od
||<q/qd||<qW|o|}|i}nh}x|D]}x|D]}
||
joqjn|i|jo$ii|id ||i<n||ip|i ||ido||cd8<nt!}|id
|i#|i$|i%ff}
|
i'd|
o@t(}||cd8<iititd|
|fn|o|i*t+f}n
t+f}x{|D]s}|	||
|}|pqniititd||
||f||jo||cd
7<qqWqjW|||o:iititd||f||cd7<ni/|i0o=iititd|i0|f||cd
7<n|og||i|i}|djoAiititd|||f||c|d7<q'n||ct2|id	7<q]Wt|i3d|}iititdt||S(sotake the list of pkgs and score them based on the requesting package
           return a dictionary of po=scores"Running compare_providers() for %scCs;t|d|d}|o|Snt|d|dS(s~ Compare first by score, and then compare the pkgs if the score
                is the same. Note that this sorts in reverse. iiN(RVRRRT(RRRT((Rt_cmp_best_providerss
icCsett|t|}x:t|D],}||||jot||Sq(q(Wt||S(N(	RRRRtnumtrangetoffRtminlen(RRRyRxRv((Rt_common_prefix_lens
cCs@t|dptSnt|dptSn|i|ijS(Nt	sourcerpm(thasattrRR|RR{(RR((Rt_common_sourcerpms
cst||i}to9|djo(iit	i
td||SqUnt||i}|djo5||jo(iit	i
td||Sn||jodSn|S(Nisbetter arch in po %s(tarchDifferencetreq_compare_archRRtx_disttisMultiLibArchRRRXRYtDEBUG_4RRty_distR(RRRRR(R(Rt_compare_arch_distances


iR[iiiiR
t	obsoletess%s obsoletes %ss-archdist compared %s to %s on %s
  Winner: %sscommon sourcerpm %s and %sis#base package %s is installed for %ss%common prefix of %s between %s and %sRVsBest Order: %sN(5RRRXRYRRRR`RuRzR}Rtunique_nevra_pkgsRRRtvaluesRtipkgresultsR)RR[t	rpmdbpkgsR^RRtkeystlposRqtnextpoR'RtverEQR|t	obsoletedRRRt	poprovtuptinPrcoRangeRytreqpoRtgetBestArchtarchestthisarchtresRttbase_package_nametcplRtitemst	bestorder(RR`RRRRR}RRRRRzRRRqRRRRRuRRR((RRRs		*


$+$

!(%t__name__t
__module__t__doc__RR%R|R$R-R8R9R:R.RvR}RRtstaticmethodRRRRRRRR"R)RyRR3RURGRIR7R:Rtt_isPackageInstalledR(((RR?s@							'	8	#		t			(		
	
X	,	$		7		tDepCheckcBs)tZdZdZdZdZRS(sobject that YumDepsolver uses to see what things are needed to close
       the transaction set. attributes: requires, conflicts are a list of 
       requires are conflicts in the current transaction set. Each item in the
       lists are a requires or conflicts objectcCsg|_g|_dS(N(RRRp(R((RRs	cCs#t||}|ii|dS(N(tRequiresRqtreq_tuple_listtreqobjRRR(RRqRR((RtaddRequiresscCs#t||}|ii|dS(N(t	Conflictstconflict_po_listt
conflict_itemtconfobjRRpR(RRRR((RtaddConflictss(RRRRRR(((RRs		RcBstZdZdZRS(sY
    A pure data class for holding a package and the list of things it
    requires.
    cCs||_||_dS(N(RRR(RRR((RRs	(RRRR(((RRsRcBstZdZdZRS(sZ
    A pure data class for holding a package and the list of things it
    conflicts.
    cCs||_||_dS(N(tpkglistRR
(RRR
((RRs	(RRRR(((RRs(*Rtos.pathRRdRtrpmUtils.transactionRAtrpmUtils.miscutilst
rpmUtils.archR~RRRR\R=RRDtpackageSackRot	constantsRRYR"R tsimplefilterR#toperatort
itemgettertyumRRRRtRPMSENSE_EQUALRRRatobjectRRRR(R"RRR\RoRDR=RRRRYRdRRR RRRRRRR~RaRARR((Rt?sB								
				

	
Y]

Anon7 - 2021