Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
ó ð v_c@sddlZddlZddlZddlZddlZddlmZddlmZm Z m Z ddl j Z ddl Zddl TddlmZmZmZddlmZmZddlmZdZid e6d e6d e6d e6d e6de6de6Z i ed 6ed 6ed 6ed 6ed 6ed6ed6ed6ed6ed6ed6Z!e"e#d„Z$dfd„ƒYZ%defd„ƒYZ&de&fd„ƒYZ'dfd„ƒYZ(dfd„ƒYZ)de)fd „ƒYZ*d!fd"„ƒYZ+d#Z,dS($iÿÿÿÿN(tproxy(tsqlitet executeSQLt sql_esc_glob(t*(tYumInstalledPackagetYumAvailablePackaget PackageObject(t to_unicodetto_utf8(t getBaseArchs/var/lib/yum/historytUpdatetUpdatedtErasetInstalls True-Installt Obsoletedt Obsoletings Dep-Installt Reinstallt Downgradet DowngradedcCsF|d krg}ndddddddg}t}x*|D]"}tjj|ƒr=t}Pq=q=Wt}|s�dg}t}nt|ƒ|krœg}n|r±t |ƒ}n…g}t}xL|D]D}tj |ƒrõ|j |dfƒt}qÄ|j |d fƒqÄW| r0| r0|r0|||tfS|}|||tfS( svSetup need_full and patterns for _yieldSQLDataList, also see if we can get away with just using searchNames(). tnamet sql_nameArchtsql_nameVerRelArcht sql_nameVertsql_nameVerRelt sql_envrat sql_nevratglobt=N( tNonetFalsetyumtmisctre_full_search_neededtTruet PATTERNS_MAXtPATTERNS_INDEXED_MAXtlenRtre_globtappend(tpatternst ignore_casetfieldst need_fulltpattpat_maxttmpt need_glob((s//usr/lib/python2.7/site-packages/yum/history.pyt_setupHistorySearchSQL>s:          t_YumHistPackageYumDBc BsYeZdZd„Zedddddddd gƒZd „Zd „Zd d „Z RS(s9 Class to pretend to be yumdb_info for history packages. cCs ||_dS(N(t_pkg(tselftpkg((s//usr/lib/python2.7/site-packages/yum/history.pyt__init__hst command_linet from_repotfrom_repo_revisiontfrom_repo_timestampt installed_byt changed_bytreasont releasevercCsÆ|j}|jdƒr.td||f‚n||jkrStd||f‚n|jj||ƒ}tr�|dkr�td||f‚n|dkr dSt|ƒp¯d}t |||ƒ|S(s0 Load yumdb attributes from the history sqlite. t_s%s has no yum attribute %stN( R2t startswithtAttributeErrort_valid_yumdb_keyst_historyt_load_yumdb_keyRRtstrtsetattr(R3tattrR4tval((s//usr/lib/python2.7/site-packages/yum/history.pyt __getattr__ps  cCs|j|ƒ}|dk S(N(tgetR(R3RGtx((s//usr/lib/python2.7/site-packages/yum/history.pyt __contains__…scCs,yt||ƒ}Wntk r'|SX|S(sretrieve an add'l data obj(tgetattrRA(R3RGtdefaulttres((s//usr/lib/python2.7/site-packages/yum/history.pyRJ‹s  N( t__name__t __module__t__doc__R5tsetRBRIRLRRJ(((s//usr/lib/python2.7/site-packages/yum/history.pyR1es   tYumHistoryPackagec BseeZddd„Zeddddddddd d g ƒZd „Zd „Zed d„ƒZ RS(c Cs½||_||_||_||_||_|j|j|j|j|jf|_|dkrlg|_n,|jdƒ}|d|ddfg|_d|_ ||_ t |ƒ|_ dS(Nt:iis ( RtversiontreleasetepochtarchtpkgtupRt _checksumstsplittrepoidRCR1t yumdb_info( R3RRYRXRVRWtchecksumthistorytchk((s//usr/lib/python2.7/site-packages/yum/history.pyR5—s          t buildtimet buildhosttlicensetpackagertsizet sourcerpmturltvendort committert committimecCs½|jdƒr%td||f‚n||jkrJtd||f‚n|jj||ƒ}tr‡|dkr‡td||f‚n|dkr—dSt|ƒp¦d}t|||ƒ|S(s0 Load rpmdb attributes from the history sqlite. R>s%s has no attribute %sR?N( R@RAt_valid_rpmdb_keysRCt_load_rpmdb_keyRRRERF(R3RGRH((s//usr/lib/python2.7/site-packages/yum/history.pyRI°s cCs„d|jkr}|jjd}|jjdk rkd|jkrk|jj|jjkrkd|jj}nd|jj|S|jS(s This reports the repo the package is from, we integrate YUMDB info. for RPM packages so a package from "fedora" that is installed has a ui_from_repo of "@fedora". Note that, esp. with the --releasever option, "fedora" or "rawhide" isn't authoritative. So we also check against the current releasever and if it is different we also print the YUMDB releasever. This means that installing from F12 fedora, while running F12, would report as "@fedora/13". R7R?R=t/t@N(R^RCR=RR7R](R3tend((s//usr/lib/python2.7/site-packages/yum/history.pyt _ui_from_repoÄs  tfgetcCs |jƒS(N(Rq(R3((s//usr/lib/python2.7/site-packages/yum/history.pytÖsN( RPRQRR5RSRlRIRqtpropertyt ui_from_repo(((s//usr/lib/python2.7/site-packages/yum/history.pyRT•s     tYumHistoryPackageStatecBseZddd„ZRS(c Cs8tj||||||||ƒd|_||_dS(N(RTR5Rtdonetstate( R3RRYRXRVRWRxR_R`((s//usr/lib/python2.7/site-packages/yum/history.pyR5Ús  N(RPRQRR5(((s//usr/lib/python2.7/site-packages/yum/history.pyRvÙstYumHistoryRpmdbProblemcBsDeZdZd„Zd„Zd„Zd„Zedd„ƒZRS(sZ Class representing an rpmdb problem that existed at the time of the transaction. cCs7t|ƒ|_||_||_||_d|_dS(N(tweakrefRCtrpidtproblemttextRt _loaded_P(R3R`R{R|R}((s//usr/lib/python2.7/site-packages/yum/history.pyR5æs    cCsI|dkrdSt|j|jƒ}|r0| St|j|jƒ}|S(Ni(RtcmpR|R{(R3tothertret((s//usr/lib/python2.7/site-packages/yum/history.pyt__cmp__ïs cCs t|jƒS(N(thashR{(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt__hash__÷scCs7|jdkr0t|jj|jƒƒ|_n|jS(N(R~RtsortedRCt_old_prob_pkgsR{(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _getProbPkgsús!RrcCs |jƒS(N(R‡(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRsÿs( RPRQRRR5R‚R„R‡Rttpackages(((s//usr/lib/python2.7/site-packages/yum/history.pyRyâs    tYumHistoryTransactioncBsÝeZdZd„Zd„Zd„Zd„Zd„Zedd„ƒZ edd„ƒZ edd „ƒZ d „Z edd „ƒZ d „Zedd „ƒZd„Zd„Zedd„ƒZedd„ƒZRS(s# Holder for a history transaction. cCsÈt|ƒ|_|d|_|d|_|d|_|d|_|d|_|d|_|d|_d|_ d|_ d|_ d|_ t|_d|_d|_d|_d|_d|_dS(Niiiiiii(RzRCttidt beg_timestamptbeg_rpmdbversiont end_timestamptend_rpmdbversiontloginuidt return_codeRt _loaded_TWt _loaded_TDt _loaded_TSt _loaded_PROBRt_have_loaded_CMDt _loaded_CMDt _loaded_ERt _loaded_OTtaltered_lt_rpmdbtaltered_gt_rpmdb(R3R`trow((s//usr/lib/python2.7/site-packages/yum/history.pyR5s$                cCsi|dkrdSt|j|jƒ}|r0| St|j|jƒ}|rO|St|j|jƒ}| S(Ni(RRR‹R�RŠ(R3R€R�((s//usr/lib/python2.7/site-packages/yum/history.pyR‚s cCs7|jdkr0t|jj|jƒƒ|_n|jS(N(R‘RR…RCt_old_with_pkgsRŠ(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _getTransWith)s!cCs7|jdkr0t|jj|jƒƒ|_n|jS(N(R’RR…RCt_old_data_pkgsRŠ(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _getTransData-s!cCs7|jdkr0t|jj|jƒƒ|_n|jS(N(R“RR…RCt_old_skip_pkgsRŠ(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _getTransSkip1s!RrcCs |jƒS(N(R�(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRs6scCs |jƒS(N(RŸ(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRs7scCs |jƒS(N(R¡(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRs8scCs7|jdkr0t|jj|jƒƒ|_n|jS(N(R”RR…RCt _old_problemsRŠ(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _getProblems:s!cCs |jƒS(N(R£(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRs?scCs4|js-t|_|jj|jƒ|_n|jS(N(R•R"RCt _old_cmdlineRŠR–(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _getCmdlineAs  cCs |jƒS(N(R¥(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRsGscCs1|jdkr*|jj|jƒ|_n|jS(N(R—RRCt _load_errorsRŠ(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _getErrorsIscCs1|jdkr*|jj|jƒ|_n|jS(N(R˜RRCt _load_outputRŠ(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _getOutputMscCs |jƒS(N(R§(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRsRscCs |jƒS(N(R©(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRsSs(RPRQRRR5R‚R�RŸR¡Rtt trans_witht trans_datat trans_skipR£trpmdb_problemsR¥tcmdlineR§R©terrorstoutput(((s//usr/lib/python2.7/site-packages/yum/history.pyR‰s"        tYumMergedHistoryTransactioncBséeZd„Zd„Zedd„ƒZd„Zedd„ƒZd„Zedd„ƒZ d„Z e dd „ƒZ e d „ƒZe d „ƒZe d „ƒZd „Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCs¯t|jgƒ|_|g|_|j|_|j|_|j|_|j|_d|_ d|_ g|_ d|_ t |_d|_d|_d|_d|_d|_dS(N(RSRŠt _merged_tidst _merged_objsR‹RŒR�RŽRR‘R’R“R”RR•R–R—R˜R™Rš(R3tobj((s//usr/lib/python2.7/site-packages/yum/history.pyR5Vs               cCs t|jƒS(N(R…R²(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _getAllTidsqsRrcCs |jƒS(N(Rµ(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRssscCsCtd„|jDƒƒ}t|ƒdkr9t|ƒdSt|ƒS(Ncss|]}|jVqdS(N(R�(t.0RŠ((s//usr/lib/python2.7/site-packages/yum/history.pys vsii(RSR³R%tlistR…(R3R�((s//usr/lib/python2.7/site-packages/yum/history.pyt _getLoginUIDsuscCs |jƒS(N(R¸(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRszscCsatd„|jDƒƒ}t|ƒdkr;d|kr;dSd|krW|jdƒnt|ƒS(Ncss|]}|jVqdS(N(R�(R¶RŠ((s//usr/lib/python2.7/site-packages/yum/history.pys }sii(RSR³R%tremoveR…(R3t ret_codes((s//usr/lib/python2.7/site-packages/yum/history.pyt_getReturnCodes|s  cCs |jƒS(N(R»(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRsƒscCssg}tƒ}xW|jD]L}xC|jD]8}|j|krDq)n|j|jƒ|j|ƒq)WqWt|ƒS(N(RSR³RªRZtaddR'R…(R3R�tfiltR´R4((s//usr/lib/python2.7/site-packages/yum/history.pyR�…s cCs1|dkr|j}n|jt|jƒ|fS(s6 Take a pkg and return the key for it's state lookup. N(RRxRR RY(R4Rx((s//usr/lib/python2.7/site-packages/yum/history.pyt_p2sk›s  cCsMi}i}x4|D],}tj|ƒ}|||j<|||„Z:d?„Z;RS(As, API for accessing the history sqlite data. Rnc CsÀd|_tjjƒ|_tjj|ƒj |ƒsYtjj|d|ƒ|j_ ntjjd|ƒ|j_ t |j_ t |j_||_d|_tjj|jj ƒsúytj|jj ƒWnttfk rê}dSXt |j_ n*tj|jj tjƒr$t |j_ ntjd|jj ƒ}xÄtt|ƒƒD]°}tjj|ƒ}|tdƒtdƒ !}|jddƒ}t|ƒdkr¬qPnytt|ƒWntk rÓqPnXd|d |d |d f|_ ||_PqPW|jdkr&|j!ƒs&dSn|jj d|j |j_"tjj|jj"ƒs’ytj|jj"ƒWq¼ttfk rŽ}dSXn*tj|jj"tjƒr¼t |j_ ndS( NRns%s/history-*-*-*.sqliteshistory-s.sqlitet-iis%s-%s-%siii(#Rt_connRR t GenericHoldertconftostpathtnormpathR@tdb_pathRtwritableR"treadableR=t_db_filetexiststmakedirstIOErrortOSErrortaccesstW_OKRtreversedR…tbasenameR%R\tmaptintt ValueErrort_db_datet_create_db_filet addon_path( R3trootR÷R=tetDBstdtfnametpieces((s//usr/lib/python2.7/site-packages/yum/history.pyR5–sT #     "  cCs|jƒdS(N(tclose(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt__del__ÒscCs‹|jdkr~|jjsdSytj|jƒ|_Wn*tjtjfk rdt |j_dSXt |jj ƒdƒn|jj ƒS(NsPRAGMA locking_mode = EXCLUSIVE( RñRRóRùRtconnectRútOperationalErrort DatabaseErrorRRtcursor(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _get_cursorÕs  cCs |jjƒS(N(Rñtcommit(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt_commitéscCs |jjƒS(N(Rñtrollback(R3((s//usr/lib/python2.7/site-packages/yum/history.pyt _rollbackëscCs,|jdk r(|jjƒd|_ndS(N(RñRR(R3((s//usr/lib/python2.7/site-packages/yum/history.pyRîs c Cs?|jƒ}t|d|ƒxd|D]\\}}|dkrK|dkrK|S|dkr]q#n|dkroq#n||kr#|Sq#W|s�dS|\}}} } } t|ƒt|ƒt| ƒt| ƒt| ƒf\}}} } } |dk rt|d||| | | |fƒ} n!t|d||| | | fƒ} |jS(Ns¢SELECT pkgtupid, checksum FROM pkgtups WHERE name=? AND arch=? AND epoch=? AND version=? AND release=?s�INSERT INTO pkgtups (name, arch, epoch, version, release, checksum) VALUES (?, ?, ?, ?, ?, ?)s�INSERT INTO pkgtups (name, arch, epoch, version, release) VALUES (?, ?, ?, ?, ?)(RRRRt lastrowid( R3RZR_tcreatetcurt sql_pkgtupidt sql_checksumtntaR tvtrRO((s//usr/lib/python2.7/site-packages/yum/history.pyt _pkgtup2pidós0     0 cCsU|jƒ}|dk r?dt|dƒt|dƒf}n|j|j||ƒS(Ns%s:%sii(t returnIdSumRRER#RZ(R3tpoRtcsum((s//usr/lib/python2.7/site-packages/yum/history.pyt _apkg2pids  'cCsVd}|j}d|kr@d|kr@d|j|jf}n|j|j||ƒS(Nt checksum_typet checksum_datas%s:%s(RR^R(R)R#RZ(R3R%RR&tyumdb((s//usr/lib/python2.7/site-packages/yum/history.pyt _ipkg2pids  cCs|j||ƒS(N(R'(R3R%R((s//usr/lib/python2.7/site-packages/yum/history.pyt _hpkg2pidscCsst|tƒr|j||ƒSt|tƒr>|j||ƒSt|tƒr]|j||ƒS|j|jd|ƒS(N( t isinstanceRR+RR'RTR,R#RZR(R3R%R((s//usr/lib/python2.7/site-packages/yum/history.pytpkg2pid"scCs©d}|jttfkrB|jr-d}qB|jrBd}qBn|jtkrf|jrfd}qfn|dkr¥tj |jƒ}|dkr¥|j r¥d}q¥n|S(NRRRRs Dep-Install( Rt output_statet TS_INSTALLtTS_TRUEINSTALLt reinstallt downgradestTS_ERASEt downgraded_byt _stcode2sttxtRJtisDep(ttxmbrRx((s//usr/lib/python2.7/site-packages/yum/history.pyt txmbr2state+s        cCs>|jƒ}|dkrdSt|d|j|fƒ}|jS(NskINSERT INTO trans_with_pkgs (tid, pkgtupid) VALUES (?, ?)(RRRt_tidR(R3tpidRRO((s//usr/lib/python2.7/site-packages/yum/history.pyttrans_with_pid<s   cCsK|jƒ}|dks%|jƒ r)dSt|d|j|fƒ}|jS(NskINSERT INTO trans_skip_pkgs (tid, pkgtupid) VALUES (?, ?)(RRt_update_db_file_2RR:R(R3R;RRO((s//usr/lib/python2.7/site-packages/yum/history.pyttrans_skip_pidFs  cCss|dk st‚t|dƒ s.|dkr2dS|jƒ}|dkrNdSt|d|j||fƒ}|jS(NR:suINSERT INTO trans_data_pkgs (tid, pkgtupid, state) VALUES (?, ?, ?)(RRÚthasattrRRR:R(R3R;RxRRO((s//usr/lib/python2.7/site-packages/yum/history.pyttrans_data_pid_begQs  cCskt|dƒ s|dkr dS|jƒ}|dkr<dSt|dd|j||fƒ}|jƒdS(NR:sƒUPDATE trans_data_pkgs SET done = ? WHERE tid = ? AND pkgtupid = ? AND state = ? tTRUE(R?RRRR:R(R3R;RxRRO((s//usr/lib/python2.7/site-packages/yum/history.pyttrans_data_pid_end]s  c Cs_t|dƒsdS|jƒ}|dks8|jƒ r<dSt|jƒƒ}t|d|j|j|fƒ}|j }|s‚|Si}|j }|||j <|jdkrÑx!|j D]}|||j RJRKR(R3t rpmdb_versiont using_pkgsttxmbrst skip_packagesR­R®RROR4R;R8RxR|((s//usr/lib/python2.7/site-packages/yum/history.pytbeg¡s.        cCs`|jƒ}|dkrdSx3|D]+}t|ƒ}t|d|j|fƒq#W|jƒdS(NsJINSERT INTO trans_error (tid, msg) VALUES (?, ?)(RRRRR:R(R3R¯Rterror((s//usr/lib/python2.7/site-packages/yum/history.pyt _log_errorsÃs    cCs†|dkst|dƒ r dS|jƒ}|dkr<dSx9|jƒD]+}t|ƒ}t|d|j|fƒqIW|jƒdS(s6 Note that data can be either a real pkg. ... or not. R:NsSINSERT INTO trans_script_stdout (tid, line) VALUES (?, ?)(RR?Rt splitlinesRRR:R(R3tdatatmsgRRS((s//usr/lib/python2.7/site-packages/yum/history.pytlog_scriptlet_outputÎs   cCsK|jƒ}t|d|fƒg}x|D]}|j|dƒq,W|S(NsfSELECT msg FROM trans_error WHERE tid = ? ORDER BY mid ASCi(RRR'(R3RŠRR�R›((s//usr/lib/python2.7/site-packages/yum/history.pyR¦Ýs   cCsK|jƒ}t|d|fƒg}x|D]}|j|dƒq,W|S(NsoSELECT line FROM trans_script_stdout WHERE tid = ? ORDER BY lid ASCi(RRR'(R3RŠRR�R›((s//usr/lib/python2.7/site-packages/yum/history.pyR¨ès   cCsÑ|s| st‚t|dƒs&dS|jƒ}|dkrBdSt|d|jttjƒƒt|ƒ|fƒ}|j ƒ|s«t|dd|jfƒ|j ƒn|dk rÇ|j |ƒn|`dS(NR:sŽINSERT INTO trans_end (tid, timestamp, rpmdb_version, return_code) VALUES (?, ?, ?, ?)sKUPDATE trans_data_pkgs SET done = ? WHERE tid = ?RA( RÚR?RRRR:RRLRERRT(R3RNR�R¯RRO((s//usr/lib/python2.7/site-packages/yum/history.pyRpós$       cCst|dƒstS|stS|s'tS|jjdt|jƒ}|jjrštjj |ƒ ršytj |ddƒWqšt t fk r–}tSXn|j ddƒ}|d|}y:t|dƒ}|jt|ƒƒ|jƒ|jƒWnt t fk r}tSXtS(sžappend data to an arbitrary-named file in the history addon_path/transaction id location, returns True if write succeeded, False if notR:RntmodeiÀR>sw+(R?RRóRRER:RøRôRõRûRüRýRþtreplacetopentwriteR tflushRR"(R3tdatanameRVttid_dirR tsafenametdata_fntfo((s//usr/lib/python2.7/site-packages/yum/history.pytwrite_addon_data s, c Cs�|jjdt|ƒd}tj|dƒ}g|D]}|j|dƒ^q8}|s`|S||krpdSt||dƒ}|jƒ}|jƒ|S(NRnRR?R"( RóRRERRZRR[treadR( R3RŠtitemt hist_and_tidt addon_infotit addon_namesRbRV((s//usr/lib/python2.7/site-packages/yum/history.pytreturn_addon_data6s%   c Cs€|jƒ}t|d|fƒg}xT|D]L}t|d|d|d|d|d|dd|ƒ}|j|ƒq,W|S( NsÓSELECT name, arch, epoch, version, release, checksum FROM trans_with_pkgs JOIN pkgtups USING(pkgtupid) WHERE tid = ? ORDER BY name ASC, epoch ASCiiiiiiR`(RRRTR'(R3RŠRR�R›R´((s//usr/lib/python2.7/site-packages/yum/history.pyRœFs   0 c Csá|jƒ}t|d|fƒg}xµ|D]­}t|d|d|d|d|d|d|dd |ƒ}|d d k|_d|_t|jtkr­t |_nt|jt krÌt |_n|j |ƒq,W|S( Ns SELECT name, arch, epoch, version, release, checksum, done, state FROM trans_data_pkgs JOIN pkgtups USING(pkgtupid) WHERE tid = ? ORDER BY name ASC, epoch ASC, state DESCiiiiiiiR`iRA( RRRvRwRRÆRÄRxRÅR"RÇRR'(R3RŠRR�R›R´((s//usr/lib/python2.7/site-packages/yum/history.pyRžSs   &   c Cs�|jƒ}|dks%|jƒ r)gSt|d|fƒg}xT|D]L}t|d|d|d|d|d|dd|ƒ}|j|ƒqIW|S( NsÓSELECT name, arch, epoch, version, release, checksum FROM trans_skip_pkgs JOIN pkgtups USING(pkgtupid) WHERE tid = ? ORDER BY name ASC, epoch ASCiiiiiiR`(RRR=RRTR'(R3RŠRR�R›R´((s//usr/lib/python2.7/site-packages/yum/history.pyR gs   0 c Cs°|jƒ}|dks%|jƒ r)gSt|d|fƒg}xg|D]_}t|d|d|d|d|d|dd|ƒ}|d d k|_|j|ƒqIW|S( NsÚSELECT name, arch, epoch, version, release, checksum, main FROM trans_prob_pkgs JOIN pkgtups USING(pkgtupid) WHERE rpid = ? ORDER BY name ASC, epoch ASCiiiiiiR`iRA(RRR=RRTRIR'(R3R{RR�R›R´((s//usr/lib/python2.7/site-packages/yum/history.pyR†vs   0 cCs…|jƒ}|dks%|jƒ r)gSt|d|fƒg}x<|D]4}t||d|d|dƒ}|j|ƒqIW|S(Ns¢SELECT rpid, problem, msg FROM trans_rpmdb_problems WHERE tid = ? ORDER BY problem ASC, rpid ASCiii(RRR=RRyR'(R3RŠRR�R›R´((s//usr/lib/python2.7/site-packages/yum/history.pyR¢‡s   !cCs\|jƒ}|dks%|jƒ r)dSt|d|fƒg}x|D] }|dSWdS(Ns[SELECT cmdline FROM trans_cmdline WHERE tid = ?i(RRR=R(R3RŠRR�R›((s//usr/lib/python2.7/site-packages/yum/history.pyR¤–s    cCsÓ|jƒ}|d krgSd}|s1d}nd }|r’t|ƒtjjkr’tt|ƒƒ}}|ddjdgt|ƒƒ7}n|d7}|d k r¿|dt |ƒ7}nt |||ƒg}i}xo|D]g} |rt|ƒtjjkr| d|krqâqnt || ƒ} | || d<|j | ƒqâWd }|j ƒ}t|ƒtjjkr‡t ||ƒn4|ddjdgt|ƒƒ7}t |||ƒxc|D][} | d|krÞqÂn| d || d_| d || d_| d || d_qÂWd } x¥t|ƒD]—} | j} d } | d k ra| j} n| d ksÅ| d ksÅ| jd | jkr’n3| | kr³t| _t| _nt| _t| _| } q4W|S(s… Return a list of the last transactions, note that this includes partial transactions (ones without an end transaction). s]SELECT tid, trans_beg.timestamp AS beg_ts, trans_beg.rpmdb_version AS beg_rv, trans_end.timestamp AS end_ts, trans_end.rpmdb_version AS end_rv, loginuid, return_code FROM trans_beg JOIN trans_end USING(tid)sSELECT tid, trans_beg.timestamp AS beg_ts, trans_beg.rpmdb_version AS beg_rv, NULL, NULL, loginuid, NULL FROM trans_begs WHERE tid IN (%s)s, t?s ORDER BY tid DESCs LIMIT isÅSELECT tid, trans_end.timestamp AS end_ts, trans_end.rpmdb_version AS end_rv, return_code FROM trans_endiiiN(RRR%Rt constantsR$R·RStjoinRERR‰R'RÝR�RŽR�RRŒRŠR"R™RšR(R3ttidstlimittcomplete_transactions_onlyRtsqltparamsR�ttid2objR›R´tlastcur_rvtlas_rv((s//usr/lib/python2.7/site-packages/yum/history.pytold£sd   '     $    .      cCs?|jgd|ƒ}|sdSt|ƒdks7t‚|dS(si This is the last full transaction. So any incomplete transactions do not count, by default. iiN(RwRR%RÚ(R3RpR�((s//usr/lib/python2.7/site-packages/yum/history.pytlastôs cCs�|jƒ}|dks%|jƒ r)dS|j|dtƒ}|dkrNdSdi|d6}t||||fƒx|D] }|dSWdS(NRs\SELECT %(db)sdb_val FROM pkg_%(db)sdb WHERE pkgtupid=? and %(db)sdb_key=? tdbi(RRt_update_db_file_3R.RR(R3R4RyRGRR;RqR›((s//usr/lib/python2.7/site-packages/yum/history.pyt_load_anydb_keyýs    cCs|j|d|ƒS(Ntrpm(R{(R3R4RG((s//usr/lib/python2.7/site-packages/yum/history.pyRmscCs|j|d|ƒS(NR(R{(R3R4RG((s//usr/lib/python2.7/site-packages/yum/history.pyRDscCs…|jƒ}|dks%|jƒ r)dS|j|dtƒ}|dkrNdSdi|d6}t||||t|ƒfƒ|jS(NRshINSERT INTO pkg_%(db)sdb (pkgtupid, %(db)sdb_key, %(db)sdb_val) VALUES (?, ?, ?)Ry(RRRzR.RRRR(R3R4RyRGRHRR;Rq((s//usr/lib/python2.7/site-packages/yum/history.pyt_save_anydb_keys  cCs|j|d||ƒS(NR|(R}(R3R4RGRH((s//usr/lib/python2.7/site-packages/yum/history.pyt_save_rpmdb_key"scCs|j|d||ƒS(NR(R}(R3R4RGRH((s//usr/lib/python2.7/site-packages/yum/history.pyt_save_yumdb_key$scCsXxQtjD]F}t||dƒ}|dkr4q n|j|d||ƒs tSq WtS(se Save all the data for rpmdb for this installed pkg, assumes there is no data currently. R|N(RTRlRMRR}RR"(R3tipkgRGRH((s//usr/lib/python2.7/site-packages/yum/history.pyt _save_rpmdb's cCsXxQtjD]F}|jj|ƒ}|dkr4q n|j|d||ƒs tSq WtS(se Save all the data for yumdb for this installed pkg, assumes there is no data currently. RN(R1RBR^RJRR}RR"(R3R€RGRH((s//usr/lib/python2.7/site-packages/yum/history.pyt _save_yumdb2s cCsv|jƒ}|dks%|jƒ r)tS|j|dtƒ}|dkrNtSdi|d6}t|||fƒtS(s= Delete all the data for rpmdb/yumdb for this installed pkg. Rs)DELETE FROM pkg_%(db)sdb WHERE pkgtupid=?RyN(RRRzRR.RR"(R3R4RyRR;Rq((s//usr/lib/python2.7/site-packages/yum/history.pyt _wipe_anydb=s  cCsb|j|dƒstS|j|dƒoC|j|ƒoC|j|ƒsT|jƒtS|jƒtS(s< Sync. all the data for rpmdb/yumdb for this installed pkg. R|R(RƒRR�R‚RRR"(R3R€((s//usr/lib/python2.7/site-packages/yum/history.pyt sync_alldbLs  c CsÅidd6dd6dd6dd6dd6dd6}|jƒ}|dksU|jƒ rYtSddddddf}xM|D]E\}}}t|d||fƒx|D]}|d||R@RBRJRKRRRTRXR¦R¨RpRcRjRœRžR R†R¢R¤RwRxR{RmRDR}R~RR�R‚RƒR„R�R—R¢R¤RzR©R=R(((s//usr/lib/python2.7/site-packages/yum/history.pyRï“s€<     !      * !   )      Q          @     sØ SELECT pkgtupid,name,epoch,version,release,arch, name || "." || arch AS sql_nameArch, name || "-" || version || "-" || release || "." || arch AS sql_nameVerRelArch, name || "-" || version AS sql_nameVer, name || "-" || version || "-" || release AS sql_nameVerRel, epoch || ":" || name || "-" || version || "-" || release || "." || arch AS sql_envra, name || "-" || epoch || ":" || version || "-" || release || "." || arch AS sql_nevra FROM pkgtups WHERE (-RLRôtos.pathRR›RzRtsqlutilsRRRtyum.miscR t yum.constantsRt yum.packagesRRRtyum.i18nRR t rpmUtils.archR R®t TS_UPDATEt TS_UPDATEDR4R0R1t TS_OBSOLETEDt TS_OBSOLETINGR6RÄRRR0R1RTRvRyR‰R±RïR�(((s//usr/lib/python2.7/site-packages/yum/history.pytsX         '0D  Sÿ?ÿÿÿÿ