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@sddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z m Z m Z defdYZdefd YZd efd YZd efd YZdS(iN(tucd(tmisci(tGroupPersistortEnvironmentPersistortRPMTransactiontRPMTransactionItemWrappercBsdeZdZdZdZdZdZdZedZ edZ edZ ed Z ed Z ed Zed Zejd ZedZedZedZedZejdZedZdZedZdZedZedZedZRS(cCs||_||_dS(N(t_swdbt_item(tselftswdbtitem((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__init__"s cCs|jjjS(N(RtgetItemttoStr(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__str__'scCs|j|jkS(N(R(Rtother((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__lt__*scCs|j|jkS(N(R(RR((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__eq__-scCs |jjS(N(Rt__hash__(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR0scCstS(N(tTrue(Rtpattern((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytmatch3scCs|jjjS(N(Rt getRPMItemtgetName(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytname6scCs|jjjS(N(RRtgetEpoch(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytepoch:scCs|jjjS(N(RRt getVersion(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytversion>scCs|jjjS(N(RRt getRelease(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytreleaseBscCs|jjjS(N(RRtgetArch(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytarchFscCs;|jr%dj|j|j|jSdj|j|jS(Ns{}:{}-{}s{}-{}(RtformatRR(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytevrJs cCs |jjS(N(Rt getAction(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytactionPscCs|jj|dS(N(Rt setAction(Rtvalue((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR$TscCs |jjS(N(Rt getReason(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytreasonXscCs*y|jjSWntk r%dSXdS(Nt(Rt getActionNametAttributeError(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt action_name\s cCs*y|jjSWntk r%dSXdS(NR)(RtgetActionShortR+(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt action_shortcs cCs |jjS(N(RtgetState(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytstatejscCs|jj|dS(N(RtsetState(RR&((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR0nscCs |jjS(N(Rt getRepoid(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt from_reporscCs$|jjsdSd|jjS(NR)t@(RR2(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt ui_from_repovscCsdS(N(tNone(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt obsoleting{scCs|jjj|S(N(Rtrpmt get_reason(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR9scCs|jjj|jS(N(RR8t _swdb_ti_pkgR(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytpkgscCs |jjS(N(R;tfiles(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR<scCs|jS(N(R;(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt_actives(t__name__t __module__R RRRRRtpropertyRRRRR R"R$tsetterR(R,R.R0R3R5R7R9R;R<R=(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR!s4        tTransactionWrappercBseZeZeZdZedZedZedZ edZ edZ edZ edZ edZed Zed Zed Zd Zd ZdZdZdZdZRS(cCs ||_dS(N(t_trans(Rttrans((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR scCs |jjS(N(RCtgetId(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyttidscCs |jjS(N(RCt getCmdline(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytcmdlinescCs |jjS(N(RCt getReleasever(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt releaseverscCs |jjS(N(RCt getDtBegin(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt beg_timestampscCs |jjS(N(RCtgetDtEnd(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt end_timestampscCs |jjS(N(RCtgetRpmdbVersionBegin(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytbeg_rpmdb_versionscCs |jjS(N(RCtgetRpmdbVersionEnd(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytend_rpmdb_versionscCst|jjtjjkS(N(tintRCR/tlibdnft transactiontTransactionItemState_DONE(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt return_codescCs |jjS(N(RCt getUserId(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytloginuidscCs|jS(N(tpackages(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytdatascCs|jj}t|S(N(RCtgetConsoleOutputtbool(Rtoutput((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt is_outputscCs|jjgS(N(RCRE(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyttidsscCsgS(N((R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytperformed_withscCs/|jj}g|D]}t||^qS(N(RCtgetItemsR(Rtresultti((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRZscCs$g|jjD]}|d^qS(Ni(RCR\(RRd((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR^scCsgS(N((R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyterrorscCs|jj|k|_dS(N(RCRQtaltered_gt_rpmdb(Rtrpmdbv((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytcompare_rpmdbvs(R>R?tFalsetaltered_lt_rpmdbRfR R@RFRHRJRLRNRPRRRWRYR[R_R`RaRZR^ReRh(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRBs(      tMergedTransactionWrappercBsheZdZdZedZdZedZedZedZ dZ RS(cCstjj|j|_dS(N(RTRUtMergedTransactionRC(RRD((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR scCs|jj|jdS(N(RCtmerge(RRD((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRmscCs |jjS(N(RCt listUserIds(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRYscCs |jjS(N(RCtlistIds(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR`scCs2g|jjD]}t|tjjk^qS(N(RCt listStatesRSRTRURV(RRd((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRWscCs |jjS(N(RCt listCmdlines(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRHscCs |jjS(N(RCtlistReleasevers(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRJscCs$g|jjD]}|d^qS(Ni(RCR\(RRd((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR^s( R>R?R RmR@RYR`RWRHRJR^(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRks   t SwdbInterfacecBseZddZdZedZedZedZedZedZ dZ d Z ed Z d Z ed Zdd edZdZdZdZddZdZdZdd ddZedZdZdZRS(R)cCsRt||_d|_d|_d|_d|_d|_||_g|_ dS(N( tstrRJR6t_rpmt_groupt_envt _addon_dataRt_db_dirt_output(Rtdb_dirRJ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR s      cCs|jdS(N(tclose(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__del__scCs(|jdkr!t||_n|jS(N(RuR6R(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR8scCs(|jdkr!t||_n|jS(N(RvR6R(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytgroupscCs(|jdkr!t||_n|jS(N(RwR6R(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytenvscCstjj|jtjjjS(N(tostpathtjoinRyRTRUtSwdbtdefaultDatabaseName(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytdbpathscCs8|js1tjj|j|_|jjn|jS(s Lazy initialize Swdb object (RRTRURRtinitTransaction(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR s cCs&tjj||j}|jdS(N(RTRUt TransformerRt transform(Rt input_dirt transformer((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR(scCsuy |`Wntk rnX|jjd|_d|_d|_|jr_|jj nd|_g|_ dS(N( t_tidR+R tcloseTransactionR6RuRvRwRt closeDatabaseRz(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR|,s        cCs |jjS(N(R tgetPath(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR:scCs |jjS(N(R t resetDatabase(R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytreset_db>scCs#|jj}|sdSt|S(N(R tgetLastTransactionR6RB(Rtcomplete_transactions_onlytt((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytlastBsicCs |p g}g|D]}t|^q}|jj}g|D]}t|^qA}|rg|D]}|j|krf|^qf}nxmt|D]_\}}|dkrqn||d}|jj|jjkrt |_ t |_ qqW|dddS(Niii( RSR tlistTransactionsRBRFt enumerateRCRORQRRjRf(RR`tlimitRRdRcRDt prev_trans((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytoldJs +  cCsk|jj|}|j|}tjj}|}d}|jj||||}|j tjj |S(sSet reason for packageN( R8t_pkg_to_swdb_rpm_itemtrepoRTRUt#TransactionItemAction_REASON_CHANGER6R taddItemR1RV(RR;R(trpm_itemtrepoidR$t replaced_bytti((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt set_reason]s cCs|jjt|S(sGet repository of package(R t getRPMRepoRt(RR;((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRnscCs;|jjt|}|dkr(|St||}|S(sGet package data for packageN(R tgetRPMTransactionItemRtR6R(RR;Rc((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt package_datars  cCs}y|jjWnnX|jrxxt|jjjD]^\}}d}tjj}tjj } d} |jj |||| } | j tjj q=Wxxt|jjjD]^\}}d}tjj}tjj } d} |jj |||| } | j tjj qWx{t|jjjD]^\}}d}tjj}tjj } d} |jj |||| } | j tjj q3Wn|jrxxt|jjjD]^\} } d}tjj}tjj } d} |jj | ||| } | j tjj qWxxt|jjjD]^\} } d}tjj}tjj } d} |jj | ||| } | j tjj q5Wx{t|jjjD]^\} } d}tjj}tjj } d} |jj | ||| } | j tjj qWn|jjttjtjt||pHdttj}|jj|j||_|S(NR)(R RR~tsortedt _installedtitemsRTRUtTransactionItemAction_INSTALLtTransactionItemReason_USERR6RR1RVt _upgradedtTransactionItemAction_UPGRADEt_removedtTransactionItemAction_REMOVERtbeginTransactionRStcalendarttimegmttimetgmtimeRtRt getloginuidt setReleaseverRJR(Rt rpmdb_versiont using_pkgsttsisRHtgroup_idt group_itemRR$R(RRtenv_idtenv_itemRF((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytbegsp %  %  %   %  %  %      cCsi|jj}|j|j|j|jp1d|j|j|j|j |j |j |S(Ni( R t createRPMItemtsetNameRtsetEpochRt setVersionRt setReleaseRtsetArchR (RtpoR((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytpkg_to_swdb_rpm_itemscCsZt|dsdS|sdSx6|jD](}t|}|jjd|fq*WdS(NRi(thasattrt splitlinesRRztappend(Rtmsgtline((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytlog_scriptlet_outputs cCst| }t|ds dSx*|jD]\}}|jj||q*Wg|_|jjttjt|t|dS(NR( R]RRzR taddConsoleOutputLinetendTransactionRSRRt(RRRRWterrorstfile_descriptorR((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytends    cCs|jj|S(s{ Search for history transactions which contain specified packages al. la. "yum list". Returns transaction ids. (R tsearchTransactionsByRPM(Rtpatternst ignore_case((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytsearchscCs8|jj|j|jd}|tjjkr4tStS(s)Returns True if package is user installedi( R tresolveRPMTransactionItemReasonRR RTRURRRi(RR;R(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytuser_installedscCsj|r'|jj|j|j|}n|jj|j|jd}|tjjkrftjj}n|S(s2Get reason of package before transaction being undone. If package is already installed in the system, keep his reason. :param pkg: package being installed :param first_trans: id of first transaction being undone :param rollback: True if transaction is performing a rollbacki(R RRR RTRUtTransactionItemReason_UNKNOWNR(RR;t first_transtrollbackRc((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytget_erased_reason s !N(R>R?R R}R@R8R~RRR RR|RRRRR6RiRRRRRRRRRRR(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRss.         N   (RRRtlibdnf.transactionRTt libdnf.utilstdnf.i18nRtdnf.yumRR~RRRtobjectRRBRkRs(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyts     oI