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(|dk st||_||_dS(N(tNonetAssertionErrort_swdbt_item(tselftswdbtitem((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__init__"s cCs|jjjS(N(R tgetItemttoStr(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__str__'scCs|j|jkS(N(R (R tother((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__lt__*scCs|j|jkS(N(R (R R((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt__eq__-scCs |jjS(N(R t__hash__(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR0scCstS(N(tTrue(R tpattern((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytmatch3scCs|jjjS(N(R t getRPMItemtgetName(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytname6scCs|jjjS(N(R RtgetEpoch(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytepoch:scCs|jjjS(N(R Rt getVersion(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytversion>scCs|jjjS(N(R Rt getRelease(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytreleaseBscCs|jjjS(N(R RtgetArch(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(R t getAction(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytactionPscCs|jj|dS(N(R t setAction(R tvalue((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR&TscCs |jjS(N(R t getReason(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytreasonXscCs*y|jjSWntk r%dSXdS(Nt(R t getActionNametAttributeError(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt action_name\s cCs*y|jjSWntk r%dSXdS(NR+(R tgetActionShortR-(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt action_shortcs cCs |jjS(N(R tgetState(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytstatejscCs|jj|dS(N(R tsetState(R R(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR2nscCs |jjS(N(R t getRepoid(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt from_reporscCs$|jjsdSd|jjS(NR+t@(R R4(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt ui_from_repovscCsdS(N(R(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.pyR:scCs|jjj|jS(N(RR9t _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 RRRRRtpropertyRRRR R"R$R&tsetterR*R.R0R2R5R7R8R:R<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(R ttrans((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR scCs |jjS(N(RDtgetId(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyttidscCs |jjS(N(RDt getCmdline(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytcmdlinescCs |jjS(N(RDt getReleasever(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt releaseverscCs |jjS(N(RDt getDtBegin(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt beg_timestampscCs |jjS(N(RDtgetDtEnd(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt end_timestampscCs |jjS(N(RDtgetRpmdbVersionBegin(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytbeg_rpmdb_versionscCs |jjS(N(RDtgetRpmdbVersionEnd(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytend_rpmdb_versionscCst|jjtjjkS(N(tintRDR1tlibdnft transactiontTransactionItemState_DONE(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt return_codescCs |jjS(N(RDt 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(RDtgetConsoleOutputtbool(R toutput((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyt is_outputscCs|jjgS(N(RDRF(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(RDtgetItemsR(R tresultti((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR[scCs$g|jjD]}|d^qS(Ni(RDR](R Re((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(RDRRtaltered_gt_rpmdb(R trpmdbv((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytcompare_rpmdbvs(R?R@tFalsetaltered_lt_rpmdbRgR RARGRIRKRMRORQRSRXRZR\R`RaRbR[R_RfRi(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRCs(      tMergedTransactionWrappercBsheZdZdZedZdZedZedZedZ dZ RS(cCstjj|j|_dS(N(RURVtMergedTransactionRD(R RE((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR scCs|jj|jdS(N(RDtmerge(R RE((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRnscCs |jjS(N(RDt listUserIds(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRZscCs |jjS(N(RDtlistIds(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRascCs2g|jjD]}t|tjjk^qS(N(RDt listStatesRTRURVRW(R Re((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRXscCs |jjS(N(RDt listCmdlines(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRIscCs |jjS(N(RDtlistReleasevers(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRKscCs$g|jjD]}|d^qS(Ni(RDR](R Re((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR_s( R?R@R RnRARZRaRXRIRKR_(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRls   t SwdbInterfacecBseZddZdZedZedZedZedZedZ dZ d Z ed Z d Z ed Zdd edZdZdZdZddZdZdZdd ddZedZdZdZRS(R+cCsRt||_d|_d|_d|_d|_d|_||_g|_ dS(N( tstrRKRt_rpmt_groupt_envt _addon_dataRt_db_dirt_output(R tdb_dirRK((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(RvRR(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR9scCs(|jdkr!t||_n|jS(N(RwRR(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytgroupscCs(|jdkr!t||_n|jS(N(RxRR(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytenvscCstjj|jtjjjS(N(tostpathtjoinRzRURVtSwdbtdefaultDatabaseName(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytdbpathscCs8|js1tjj|j|_|jjn|jS(s Lazy initialize Swdb object (RRURVRRtinitTransaction(R ((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyR s cCs&tjj||j}|jdS(N(RURVt TransformerRt transform(R t 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 tcloseTransactionRRvRwRxRt closeDatabaseR{(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 tgetLastTransactionRRC(R tcomplete_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( RTR tlistTransactionsRCRGt enumerateRDRPRRRRkRg(R RatlimitRReRdREt 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( R9t_pkg_to_swdb_rpm_itemtrepoRURVt#TransactionItemAction_REASON_CHANGERR taddItemR3RW(R R<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 getRPMRepoRu(R R<((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRnscCs;|jjt|}|dkr(|St||}|S(sGet package data for packageN(R tgetRPMTransactionItemRuRR(R R<Rd((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 RRtsortedt _installedtitemsRURVtTransactionItemAction_INSTALLtTransactionItemReason_USERRRR3RWt _upgradedtTransactionItemAction_UPGRADEt_removedtTransactionItemAction_REMOVERtbeginTransactionRTtcalendarttimegmttimetgmtimeRuRt getloginuidt setReleaseverRKR(R t rpmdb_versiont using_pkgsttsisRItgroup_idt group_itemRR&R*RRtenv_idtenv_itemRG((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 setReleaseR tsetArchR"(R tpoR((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytpkg_to_swdb_rpm_itemscCsZt|dsdS|sdSx6|jD](}t|}|jjd|fq*WdS(NRi(thasattrt splitlinesRR{tappend(R tmsgtline((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytlog_scriptlet_outputs cCs|s| stt| }t|ds3dSx*|jD]\}}|jj||q=Wg|_|jjttjt |t|dS(NR( RR^RR{R taddConsoleOutputLinetendTransactionRTRRu(R RSRXterrorstfile_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(R tpatternst 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"RURVRRRj(R R<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"RURVtTransactionItemReason_UNKNOWNR(R R<t first_transtrollbackRd((s2/usr/lib/python2.7/site-packages/dnf/db/history.pytget_erased_reason s !N(R?R@R R~RAR9RRRR RR}RRRRRRjRRRRRRRRRRR(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyRts.         N   (RRRtlibdnf.transactionRUt libdnf.utilstdnf.i18nRtdnf.yumRRRRRtobjectRRCRlRt(((s2/usr/lib/python2.7/site-packages/dnf/db/history.pyts     oI