PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  [/\c@sddlZddlZddlZddlmZdefdYZdefdYZ defdYZ d efd YZ dS( iN(t_t PersistorBasecBsbeZdZdZdZdZdZdZdZdZ dZ d Z RS( cCs(||_i|_i|_i|_dS(N(thistoryt _installedt_removedt _upgraded(tselfR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt__init__s   cCs't|jt|jt|jS(N(tlenRRR(R((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt__len__$scCsi|_i|_i|_dS(N(RRR(R((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytclean's  cCs tdS(N(tNotImplementedError(Rtobj((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt _get_obj_id,scCs||j|j|s( t__name__t __module__RR R R RRRRRR(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs         tGroupPersistorcBsGeZdZdZdZdZdZdZdZRS(cCsA|jjj}g|D]}|jr|^q}t|S(N(RtswdbtgetItemstgetCompsGroupItemtiter(Rtitemsti((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt__iter__Ds%cCs |jS(N(t getGroupId(RR ((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR IscCsJ|jjj}|j||j||j||j||S(N(RRtcreateCompsGroupItemt setGroupIdtsetNametsetTranslatedNametsetPackageTypes(RRRRRt swdb_group((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRLs     cCs/|jjj|}|sdS|j}|S(N(RRRtNone(RRR)((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRTs  cCs|jjj|S(N(RRtgetCompsGroupItemsByPattern(RR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR[scCs|jjj|S(N(RRtgetPackageCompsGroups(Rtpkg_name((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytget_package_groups^scCs0|jjj|dd}|tjjkr1tSt|j|}xk|j j D]Z\}}xK|j D]=}|j |krqon|j sqon|j|qoWqVWxk|jj D]Z\}}xK|j D]=}|j |krqn|j s qn|j|qWqW|r,tStS(Nti(RRtresolveRPMTransactionItemReasontlibdnft transactiontTransactionItemReason_GROUPtFalsetsetR.RR t getPackagestgetNamet getInstalledRRtaddtTrue(RR-treasontpackage_groupstgroup_idtgrouptpkg((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytis_removable_pkgas*  ( RRR"R RRRR.R@(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRBs      tEnvironmentPersistorcBsGeZdZdZdZdZdZdZdZRS(cCsA|jjj}g|D]}|jr|^q}t|S(N(RRRtgetCompsEnvironmentItemR(RR R!((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR"~s%cCs |jS(N(tgetEnvironmentId(RR ((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR scCsJ|jjj}|j||j||j||j||S(N(RRtcreateCompsEnvironmentItemtsetEnvironmentIdR&R'R((RRRRRtswdb_env((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs     cCs/|jjj|}|sdS|j}|S(N(RRRBR*(RRRF((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs  cCs|jjj|S(N(RRt!getCompsEnvironmentItemsByPattern(RR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRscCs|jjj|S(N(RRtgetCompsGroupEnvironments(RR=((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytget_group_environmentsscCs|jjj|}|stSt|j|}xk|jjD]Z\}}xK|jD]=}|j |kr{q]n|j sq]n|j |q]WqDWxk|j jD]Z\}}xK|jD]=}|j |krqn|j sqn|j |qWqW|rtStS(N(RR>RR4R5RIRR t getGroupsR#R8RRR9R:(RR=R)tgroup_environmentstenv_idtenvR>((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytis_removable_groups*  ( RRR"R RRRRIRN(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRA|s      tRPMTransactioncBseZddZdZdZdZdddZdZdZ ddZ ddZ dd Z ddd Z dd Zdd Zdd ZdZedZedZdZdZRS(cCsI||_||_|js<y|jjjWq<q<Xni|_dS(N(RR2RtinitTransactiont _swdb_ti_pkg(RRR2((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs   cCsq|jr|jj}n|jjj}g|D]-}|jr4tjjj|j|^q4}t|S(N( R2RRRt getRPMItemtdnftdbtRPMTransactionItemWrapperR(RR R!((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR"s  :cCsq|jr|jj}n|jjj}g|D]-}|jr4tjjj|j|^q4}t|S(N( R2RRRRRRSRTRUR(RR R!((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR s  :cCsl|jjj}|j|j|j|jp4d|j|j|j |j |j |j |S(Ni( RRt createRPMItemR&RtsetEpochtepocht setVersiontversiont setReleasetreleasetsetArchtarch(RR?trpm_item((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt_pkg_to_swdb_rpm_itemscCs|j|}|j|}|dkr<|j|}n|jjj||||}|rp|j|n||j|<|S(N( R`t get_repoidR*t get_reasonRRtaddItemt addReplacedByRQ(RR?tactionR;t replaced_byR_trepoidtresult((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs  cCs#t|dd}|r|S|jS(Nt_force_swdb_repoid(tgetattrR*treponame(RR?Rh((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRascCs|jjj|j|jdS(sGet reason for packagei(RRR0RR^(RR?((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRbscCsO|p g}x<|D]4}|j|tjj}|r|j|qqWdS(N(RR1R2tTransactionItemAction_OBSOLETEDRd(Rt obsoletedRftobstti((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt_add_obsoleteds   cCsM|j|tjj}|j|tjjd|}|j|d|dS(NRf(RR1R2tTransactionItemAction_DOWNGRADEt TransactionItemAction_DOWNGRADEDRp(RRtoldRmtti_newtti_old((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_downgradescCs|j||dS(N(t add_remove(RRsR;((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_erasescCsD|ptjj}|j|tjj|}|j|d|dS(NRf(R1R2tTransactionItemReason_USERRtTransactionItemAction_INSTALLRp(RRRmR;Rt((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_installscCsM|j|tjj}|j|tjjd|}|j|d|dS(NRf(RR1R2tTransactionItemAction_REINSTALLt!TransactionItemAction_REINSTALLEDRp(RRRsRmRtRu((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_reinstallscCs1|ptjj}|j|tjj|}dS(N(R1R2RyRtTransactionItemAction_REMOVE(RRsR;Ru((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRw scCsM|j|tjj}|j|tjjd|}|j|d|dS(NRf(RR1R2tTransactionItemAction_UPGRADEtTransactionItemAction_UPGRADEDRp(RRRsRmRtRu((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_upgradescCsx |D]}|jtjjkrD|jj}|j||dq|jtjjkro|j|jj q|jtjj kr|jj}|j||dq|jtjj kr|jj}|j||dq|jtjj kr|j|jj q|jtjj kr<|jj}|j||q|jtjjkrTq|jtjjkr|j|jj q|jtjjkr|jj}|j||dq|jtjjkr|j|jj q|jtjjkrqtd|jqW|S(s!Populate the RPM transaction set.tuR!s%TransactionItemAction not handled: %s(ReR1R2RqR?t_headert addInstallRrtaddErasetidxRztTransactionItemAction_OBSOLETERlR|t addReinstallR}RRRt#TransactionItemAction_REASON_CHANGEt RuntimeError(Rttsttsithdr((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt_populate_rpm_tss<      cCsnt}x^|D]V}|jtjjkry|j|jWqftk rbtd|qfXqqW|S(Ns*TransactionItem is has no RPM attached: %s( R5ReRSR2tFORWARD_ACTIONSR9R?tKeyErrorR(RRhR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt install_set:s   cCs{t}xk|D]c}|jtjjtjjgkry|j|jWqst k rot d|qsXqqW|S(Ns*TransactionItem is has no RPM attached: %s( R5ReRSR2tBACKWARD_ACTIONSR1R}R9R?RR(RRhR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt remove_setFs  " cCsMg|jD]}|jdkr |^q }t|rItd|dSdS(sj Ensures all the members can be passed to rpm as they are to perform the transaction. tsrcs+Will not install a source rpm package (%s).iN(RR^RRR*(RR?t src_installs((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt_rpm_limitationsRs +   cCs&g|D]}|j|kr|^qS(N(Re(RReR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt _get_items\sN(RRR*RR"R R`RRaRbRpRvRxR{R~RwRRtpropertyRRRR(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyROs&           &  ( tlibdnf.transactionR1tdnf.db.historyRStdnf.transactiontdnf.i18nRtobjectRRRARO(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyts   &::