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( cCsXt|tjjjs0ttt|||_i|_i|_ i|_ dS(N( t isinstancetdnftdbthistoryt SwdbInterfacetAssertionErrortstrttypet _installedt_removedt _upgraded(tselfR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt__init__s 0   cCs't|jt|jt|jS(N(tlenR R R (R ((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt__len__$scCsi|_i|_i|_dS(N(R R R (R ((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytclean's  cCs tdS(N(tNotImplementedError(R tobj((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt _get_obj_id,scCs||j|j|s( t__name__t __module__RRRRRRRRRR(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs         tGroupPersistorcBsGeZdZdZdZdZdZdZdZRS(cCsA|jjj}g|D]}|jr|^q}t|S(N(RtswdbtgetItemstgetCompsGroupItemtiter(R titemsti((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt__iter__Ds%cCs |jS(N(t getGroupId(R R((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRIscCsJ|jjj}|j||j||j||j||S(N(RR#tcreateCompsGroupItemt setGroupIdtsetNametsetTranslatedNametsetPackageTypes(R RRRRt swdb_group((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRLs     cCs/|jjj|}|sdS|j}|S(N(RR#R%tNone(R RR0((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRTs  cCs|jjj|S(N(RR#tgetCompsGroupItemsByPattern(R R((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR[scCs|jjj|S(N(RR#tgetPackageCompsGroups(R tpkg_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(RR#tresolveRPMTransactionItemReasontlibdnft transactiontTransactionItemReason_GROUPtFalsetsetR5R R't getPackagestgetNamet getInstalledRR taddtTrue(R R4treasontpackage_groupstgroup_idtgrouptpkg((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytis_removable_pkgas*  ( R R!R)RRRRR5RG(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR"Bs      tEnvironmentPersistorcBsGeZdZdZdZdZdZdZdZRS(cCsA|jjj}g|D]}|jr|^q}t|S(N(RR#R$tgetCompsEnvironmentItemR&(R R'R(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR)~s%cCs |jS(N(tgetEnvironmentId(R R((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRscCsJ|jjj}|j||j||j||j||S(N(RR#tcreateCompsEnvironmentItemtsetEnvironmentIdR-R.R/(R RRRRtswdb_env((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs     cCs/|jjj|}|sdS|j}|S(N(RR#RIR1(R RRM((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs  cCs|jjj|S(N(RR#t!getCompsEnvironmentItemsByPattern(R R((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRscCs|jjj|S(N(RR#tgetCompsGroupEnvironments(R RD((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(RRERR;R<RPR R't getGroupsR*R?RR R@RA(R RDR0tgroup_environmentstenv_idtenvRE((s0/usr/lib/python2.7/site-packages/dnf/db/group.pytis_removable_groups*  ( R R!R)RRRRRPRU(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRH|s      tRPMTransactioncBseZddZdZdZdZdddZdZdZ ddZ ddZ dd Z ddd Z dd Zdd Zdd ZdZedZedZdZdZRS(cCsI||_||_|js<y|jjjWq<q<Xni|_dS(N(RR9R#tinitTransactiont _swdb_ti_pkg(R RR9((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs   cCsq|jr|jj}n|jjj}g|D]-}|jr4tjjj|j|^q4}t|S(N( R9R$RR#t getRPMItemRRtRPMTransactionItemWrapperR&(R R'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( R9R$RR#RYRRRZR(R R'R(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs  :cCsl|jjj}|j|j|j|jp4d|j|j|j |j |j |j |S(Ni( RR#t createRPMItemR-RtsetEpochtepocht setVersiontversiont setReleasetreleasetsetArchtarch(R RFtrpm_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( Ret get_repoidR1t get_reasonRR#taddItemt addReplacedByRX(R RFtactionRBt replaced_byRdtrepoidtresult((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRs  cCs#t|dd}|r|S|jS(Nt_force_swdb_repoid(tgetattrR1treponame(R RFRm((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRfscCs|jjj|j|jdS(sGet reason for packagei(RR#R7RRc(R RF((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRgscCsO|p g}x<|D]4}|j|tjj}|r|j|qqWdS(N(RR8R9tTransactionItemAction_OBSOLETEDRi(R t obsoletedRktobstti((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt_add_obsoleteds   cCsM|j|tjj}|j|tjjd|}|j|d|dS(NRk(RR8R9tTransactionItemAction_DOWNGRADEt TransactionItemAction_DOWNGRADEDRu(R RtoldRrtti_newtti_old((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_downgradescCs|j||dS(N(t add_remove(R RxRB((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_erasescCsD|ptjj}|j|tjj|}|j|d|dS(NRk(R8R9tTransactionItemReason_USERRtTransactionItemAction_INSTALLRu(R RRrRBRy((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_installscCsM|j|tjj}|j|tjjd|}|j|d|dS(NRk(RR8R9tTransactionItemAction_REINSTALLt!TransactionItemAction_REINSTALLEDRu(R RRxRrRyRz((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt add_reinstallscCs1|ptjj}|j|tjj|}dS(N(R8R9R~RtTransactionItemAction_REMOVE(R RxRBRz((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyR| scCsM|j|tjj}|j|tjjd|}|j|d|dS(NRk(RR8R9tTransactionItemAction_UPGRADEtTransactionItemAction_UPGRADEDRu(R RRxRrRyRz((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(RjR8R9RvRFt_headert addInstallRwtaddErasetidxRtTransactionItemAction_OBSOLETERqRt addReinstallRRRRt#TransactionItemAction_REASON_CHANGEt RuntimeError(R ttsttsithdr((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( R<RjRR9tFORWARD_ACTIONSR@RFtKeyErrorR(R RmR((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( R<RjRR9tBACKWARD_ACTIONSR8RR@RFRR(R RmR((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(RRcRRR1(R RFt src_installs((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt_rpm_limitationsRs +   cCs&g|D]}|j|kr|^qS(N(Rj(R RjR((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyt _get_items\sN(R R!R1RR)RReRRfRgRuR{R}RRR|RRtpropertyRRRR(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyRVs&           &  ( tlibdnf.transactionR8tdnf.db.historyRtdnf.transactiontdnf.i18nRtobjectRR"RHRV(((s0/usr/lib/python2.7/site-packages/dnf/db/group.pyts   &::