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@s¦ddlZddlZddlZddlZddlZejjdƒddlZddlZddl m Z ddl m Z ddl m Z ddlZddl mZddlZddlZddlmZddlZddlZddlZddlmZdd lmZdd lmZdd lmZdd lTddlZddlZddl Z ddl!Z!ddl"Z"ddl#Z#ddl$Z$ddl%Z%ddl&Z&e'Z(y9ddl)Z)e*e)d ƒ päe*e)dƒ rðe+Z)nWne,k r e+Z)nXd„Z-d„Z.e!j/dej0ƒej1dƒZ2ej1dƒZ3dej4fd„ƒYZ5deej6fd„ƒYZ7e+d„Z8dfd„ƒYZ9dS(iÿÿÿÿNtmedia(t URLGrabber(tdefault_grabber(t format_number(t URLGrabError(t Repository(tconfig(tmisc(tcomps(t_(t*tgettsetcCs3ts dSytj|d|ƒ}WndSX|S(Nsuser.yum.checksum.(txattrtNoneR (tfilenametchktypetret((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_xattr_get_chksumQscCs4ts dSytj|d||ƒWntSXtS(Nsuser.yum.checksum.(R RR tFalsetTrue(RRtchksum((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_xattr_set_chksum\stignores yum.Repossyum.verbose.RepostYumPackageSackcBsteZdZd„Zd„Zd„Zd d„Zd„Zdd dd„Z d „Z d „Z d „Z d „Z RS(s;imports/handles package objects from an mdcache dict objectcCs&tjj|ƒ||_i|_dS(N(t packageSackt PackageSackt__init__tpctadded(tselft packageClass((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRos cCsTy|jƒWn?tjk rO}tjdt|ƒt|ƒ|jfƒnXdS(NsException %s %s in %s ignored(tclosetErrorst RepoErrortverbose_loggertdebugtreprtstrt__del__(Rte((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR'tscCs i|_dS(N(R(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR zsc Csô||jkr)||j|kr)dSnt|ƒ}|dkrd}x||D]t}|d7}|rz|j|||ƒn||}|j||ƒ} || _|j|j|| ƒ|j| ƒqNW||jkråg|j|sN(t__name__t __module__t__doc__RR'R RR?RKRsRFR]R{RE(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRms    , T  t YumRepositoryc Bs eZdZd„Zd„Zd„ZeeƒZd„ZeeƒZ d„Z d„Z d„Z ee ƒZ d„Zd „Zd „Zd „Zdyedzd„Zd„Zd„Zd„Zd„Zd„Zed„Zd„Zd„Zed„Zd„Zd„Z ed„ƒZ!ed„ƒZ"d„Z#d„Z$d„Z%d„Z&ed „ƒZ'ed!„ƒZ(ed"„d#„ƒZ)ed$„d%„ƒZ*ed&„d'„ƒZ+ed(„d)„ƒZ,ed*„ƒZ-d+„Z.d,„Z/d-„Z0d.„Z1d/„Z2ed0d1„d2d3„d4d5„ƒZ3d6„Z4ed0d7„d2d8„d4d9„ƒZ5d:„Z6dzdzdzdzdzdzdzdzd;edzd<„ Z7e7Z8dzdzed=„Z9dzd;ed>„Z:d?„Z;d@„Z<dA„Z=edB„Z>dC„Z?dzdzdzdzdD„Z@dE„ZAdzdzdF„ZBdzdG„ZCdH„ZDdI„ZEdJ„ZFdzdK„ZGedL„ZHdM„ZIeJdN„ƒZKdzdzdO„ZLdP„ZMdzdQ„ZNdzdR„ZOedS„ZPdzdT„ZQdU„ZRdV„ZSdzdzdW„ZTdX„ZUdzdY„ZVdZ„ZWed0d[„d2d\„d4d]„ƒZXd^„ZYd_„ZZed`„Z[edzeda„Z\db„Z]edc„Z^dd„Z_de„Z`df„Zadg„Zbdzdh„Zcdi„Zddj„Zedk„Zfdzdl„Zgdm„Zhdn„Zidodzdp„Zjdq„Zkdr„Zlds„Zmdt„Zndu„Zodvdwgdx„ZpRS({so This is an actual repository object Configuration attributes are pulled in from config.RepoConf. cCs¶tjj|ƒtj||ƒd|_g|_g|_d|_d|_ d|_ d|_ i|_ d|_ t|_d|_i|_i|_d|_d|_d|_t|_i|_d|_d|_d|_d|_d|_idd6dd6dd 6dd 6dd 6dd 6|_t|_d|_d|_ d|_!d|_"d|_#t|_$d|_%d|_&d|_'d|_(t)|_*d|_+d|_,d|_-t|_.dS( Nis yumgroups.xmlsrepodata/repomd.xmlt cachecookietièRPR*RQtgroupt updateinfot prestodelta(/RtRepoConfRRRtrepofilet mirrorurlst_urlst enablegroupstgroupsfilenamet repoMDFilet_repoXMLt_oldRepoMDDataRbRt_retry_no_cachetmirrorlistparsedtyumvart _proxy_dicttmetadata_cookie_fnt_metadataCurrentt _metalinkt groups_addedt http_headerstrepo_config_aget basecachedirtbase_persistdirtcostt copy_localt retrievedt_preloaded_repomdR9tmulti_callbackt failure_objtmirror_failure_objtinterrupt_callbackt_callbacks_changedt mediafunctgpg_import_functgpgca_import_funct confirm_funcRttimestamp_checkt_sackt _grabfunct_grabt_async(RRO((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRHsV                                      cCs`|dkrdSt|dƒr+|j}nd}t|j|ƒ}|rM|St|j|jƒS(s@ Sort yum repos. by cost, and then by alphanumeric on their id. iR¥ièN(RRSR¥tcmpR.(RRQtocostR((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt__cmp__…s  cCs.|jdkr'tjtjƒ|_n|jS(N(R³Rt sqlitesacktYumSqlitePackageSacktYumAvailablePackageSqlite(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_getSack’scCst|dƒrt|dƒStj|ƒ}|s:d}ng|\}}||}d|kri|d}n8d|kr‚|d}nd|kr›|d}nd}|j}xE|jD]:}d||kr´|d7}|t|j|ƒ7}q´q´Wt|d|ƒ|S(s@ Show self.id, but include any $releasever/$basearch/etc. data. t__cached_ui_idRŒtmetalinkt mirrorlisttbaseurlt$Rt( RStgetattrRt_readRawRepoFileR.tui_repoid_varsR&R›tsetattr(Rtvaltinit section_idRtvar((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_ui_idžs*            cCs0|jdk r|jjƒntj|ƒdS(N(R³RtsackR R(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR ¼scCs d|_dS(N(RR³(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt _resetSackÁscCs|jƒ|jr|jSdS(N(t doProxyDictRœR(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt__getProxyDictÄs  cCs|jS(s7Returns the instance of this repository's package sack.(RÌ(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytgetPackageSackÎscCs t|dƒr|jdk StS(s;Returns true if this repository is setup and ready for use.tmetadata_cookieN(RSRcRR(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytreadyÓs cCsCd|jjƒkr*|jjdƒ}n|jjdƒ}|jS(s"Returns the location of the group.tgroup_gzR�(Rct fileTypesRdRv(Rtthisdata((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytgetGroupLocationÚscCs|jS(N(R.(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt__str__âsiicCs�ytj||||ƒSWn`tjtfk r|}|r?dSd|}t|tjƒrjt|ƒ}ntj |ƒ‚nXdS(sŽtakes filename, hand back Checksum of it sumtype = md5 or sha filename = /path/to/file CHUNK=65536 by defaults#Error opening file for checksum: %sN( RReR!t MiscErrortEnvironmentErrorRt isinstancetFIPSNonCompliantErrorR&R"(RtsumtypetfiletCHUNKtchecksum_can_failtdatasizeR(tmsg((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt _checksumés c!Csôd|j}d(}xÚt|ƒD]Ì}|jd#ƒr;q n||krMq ntt||ƒtjƒrnq nt||ƒ}| r±t|ƒttƒtd$ƒfkr±d%}nt|ƒtj krØd&j |ƒ}n|d'||f}q W|S()Ns[%s] R®RÌt metalink_datatgrabtgrabfuncRctcfgR§RšR¯R°RªR9R±R R¬R.R«R¢R•R¦R£R¡RÑR�tquick_enable_disableR–R²turlsR’R›R‘R©R iRŒs, s%s = %s (!s mediafuncssacks metalink_datasgrabsgrabfuncsrepoXMLRæs retrievedsmirrorlistparsedsgpg_import_funcsgpgca_import_funcs failure_objscallbacks confirm_funcs groups_addedsinterrupt_callbacksidsmirror_failure_objsrepo_config_agesgroupsfilenames copy_locals basecachedirs http_headerssmetadata_cookiesmetadata_cookie_fnRçs repoMDFilestimestamp_checksurlss mirrorurlssyumvarsrepofilesmulti_callback( R.tdirt startswithRÚRÃttypest MethodTypettypeRtListTypetjoin(Rtoutputt excluded_varstattrtres((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytdumpùs4  + cCso|jƒytj|ddgƒWnDtk rj}|jtjkrXtj|ƒqktt|ƒ‚nXdS(s%Persistently enables this repository.tonlytenabledN( tenableRtwriteRawRepoFiletIOErrorterrnotEACCEStloggertwarningR&(RR(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytenablePersistents cCso|jƒytj|ddgƒWnDtk rj}|jtjkrXtj|ƒqktt|ƒ‚nXdS(s&Persistently disables this repository.RõRöN( tdisableRRøRùRúRûRüRýR&(RR(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytdisablePersistent"s cCs9t|jƒdkr5|j r5tjd|j‚ndS(shself-check the repo information - if we don't have enough to move on then raise a repo erroris(Cannot find a valid baseurl for repo: %sN(R,R“tmediaidR!R"R4(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytcheck-scCs|jr dSi|_d}d }|j|kr:d}nš|jrÔd|j}|j|krÔtj|jƒ}|j|kr�|dtj|jƒ7}ntjd|ƒj ƒ\}}d|||f}qÔn|dk r ||jd<||jd<||jd ¾scCs |jƒS(N(Rg(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRh¿scCs{tjj|ƒr(tjj|ƒr(dSytj|ddƒWn5tk rv}dd|d|f}tj|‚nXdS(s@make the necessary directory path, if possible, raise on failureNtmodeiís %s: %s %s: %ssError making cache directorys error was(RwRxR„tisdirtmakedirstOSErrorR!R"(RtdpathR(Rá((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_dirSetupMkdir_pÁs$c CsÐtjj|j|jƒ}tjj|j|jƒ}tjj|dƒ}tjj|dƒ}|jd|ƒ|jd|ƒ|jd|ƒ|jd|ƒd}tjƒdkrÁd }n|jd |d |ƒ|jd |d |ƒ|jd|j }|jd|ƒx1|j|jd|j gD]}|j |ƒq2Wx>|j gD]0}y|j |ƒWqVt jk r…}qVXqVW|jdƒr¥t|_n|jdƒ|jdƒ|jdƒdS(s6make the necessary dirs, if possible, raise on failuretpackagesRt_dir_setup_cachedirt_dir_setup_pkgdirt_dir_setup_hdrdirt_dir_setup_persistdirRŒis-rot_dir_setup_gpgdirs/gpgdirt_dir_setup_gpgcadirs /gpgcadirRtt_dir_setup_metadata_cookies/gens repomd.xmlR‹smirrorlist.txts metalink.xmlN(RwRxRïR£R.R¤t setAttributetgeteuidRVR�tpkgdirRnt persistdirR!R"t_preload_md_from_system_cacheRR¨( RRVRzRythdrdirtexttcookieRéR(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytdirSetupÍs6 #   cCs3d|}t||ƒs&|jƒnt||ƒS(s; Make the directory attributes call .dirSetup() if needed. t _dir_setup_(RSRRÃ(RRò((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt _dirGetAttrôs  cCs›d|}t||ƒs&|jƒn|dkrit|dƒsMg|_n|jjt||ƒƒnt|||ƒ}|dkr—|j|ƒn|S(s; Make the directory attributes call .dirSetup() if needed. R€Rqt _old_pkgdirs(s_dir_setup_pkgdir(RSRR‚R2RÃRÆRn(RRòRÇR((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt _dirSetAttrús     cCs |jdƒS(NRV(R�(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRh scCs |jdƒS(NRz(R�(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRh scCs |jdƒS(NRy(R�(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRh scCs|jd|ƒS(NRy(Rƒ(Rtx((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRh scCs |jdƒS(NR|(R�(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhscCs|jd|ƒS(NR|(Rƒ(RR„((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhscCs |jdƒS(Ntgpgdir(R�(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhscCs|jd|ƒS(NR…(Rƒ(RR„((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhscCs |jdƒS(Ntgpgcadir(R�(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhscCs|jd|ƒS(NR†(Rƒ(RR„((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhscCs |jdƒS(NRÑ(R�(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhscCs'tjdtjddƒ|jƒdS(Ns8baseurlSetup() will go away in a future version of Yum. Ri(RRR!Rt _baseurlSetup(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt baseurlSetups cCsF|jr dS|jsdS|jjdƒdkr6dS|j|_dS(NR¿iÿÿÿÿ(R¿RÀtfind(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_hack_mirrorlist_for_anacondas  c Cs†|j|jƒ|_|j|_g}|jƒ|jrl|j rl|jt|jj ƒƒƒt |_n|j rž|j rž|j|j ƒƒt |_n|j|ƒ|_ |j|j |_t|jƒdkrlt|dƒrltjj|jƒrl|jsiytj|jƒWn3ttfk rN}tjd|j|fƒqfXtjd|jƒqiqln|j|_|jƒdS(sŽgo through the baseurls and mirrorlists and populate self.urls with valid ones, run self.check() at the end to make sure it workeditmirrorlist_files-Could not delete bad mirrorlist file: %s - %ss-removing mirrorlist with no valid mirrors: %sN(t_replace_and_check_urlRÁt _orig_baseurlRŠR¿RštextendtlistRãRèRRÀt_getMirrorListR’R“R,RSRwRxR„R‹RbRR^RùRlRüterrorRýR(RR’R(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR‡*s,    $  c Cs g}d}xÁ|D]¹}|d kr+qntj||jƒ}|ddkr]|d}ny%tj|ƒ\}}}}} } Wn"tttfk r¦} d}nX|d kr¿|}qq|j|ƒqW|dk r|rÿt j d t j |ƒƒqt j d t j |ƒƒn|S( NRŒiÿÿÿÿRttblahRRRÝRsMYumRepo Warning: Some mirror URLs are not using ftp, http[s] or file. Eg. %ssJYumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. %s(RŒN(shttpsftpsfileshttps(Rtparsert varReplaceR›R+t ValueErrort IndexErrortKeyErrorR2RüRýRR0R‘( Rturl_listtgoodurlstskippedR1tstbtptqtftoR(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRŒNs*   %   cCs|js|jƒn|jS(N(R“R‡(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_geturlsls  tfgetcCs |jƒS(N(R¡(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhqstfsetcCst|d|ƒS(NR“(RÆ(Rtvalue((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhrstfdelcCst|ddƒS(NR“(RÆR(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhsscCsÅ|js¾|jdd|_|jd}|jƒstj|jƒ}|jd|jdkƒ}y8t d|j |�}|j ||dd|j ƒ}Wqt k r}tjj|jƒsÞd |j }tj|‚ntjd ||jd tj|jd ƒfƒt|_qXn|jsšy)tj|ƒ|_tj||jƒWqštjk r–}tjd ||fƒt|_tj|ƒqšXn|jr¾tj|jƒ|_q¾n|jS(NRts metalink.xmls.tmpRbRLR ttexts %s/metalinksQCannot retrieve metalink for repository: %s. Please verify its path and try agains*Could not get metalink %s error was %s: %siis)Could not parse metalink %s error was %s(RŸRVtmetalink_filenamet_metalinkCurrentRR0R¿RHt http_cachingRR9turlgrabR4RRwRxR„R!R"RüR‘targst to_unicodeRRžtMetaLinkRepoMDtshutiltmovetMetaLinkRepoErrorParseFailR^(RtlocalR1RKtugR†R(Rá((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt _getMetalinkus6   # 1   cCs |jƒS(N(R³(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRh™scCst|d|ƒS(NRŸ(RÆ(RR¤((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhšs cCst|ddƒS(NRŸ(RÆR(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRhœscCsZ|r"|jdƒp!|jdƒS|js/tSx$|jD]}|j|ƒs9tSq9WtS(NRtsfile:(RêRèRt_all_urls_are_filesR(RR1((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR´žs R$c Ks|dkr|j}n|dks0|dkrFtjd|j‚n|jdkr‡tjj|ƒrk|Stjd||jf‚n|r®t j |ƒ\} }}}}n|j r‚|j r‚d}|rð| dkrð|rðt |ƒ}qðny\|j d|d|d|d|d |d |d |j d |jd |d||fƒ }|SWq‚tjk r~}tjtjd|fƒq‚Xn| r|sž|j|ƒ rtjtjj|ƒƒ}|j|j}|t| ƒkrtjtdƒtjj|ƒt|ƒtt| ƒƒf‚qn|r,| dkr,|jd| ƒ}td|jd |d| d|jd|j d|d| d|j!|�}|d|}y:|j"t#j$|ƒ|dt#j$|ƒd||fƒ}Wqt%k r(}|j&|| ƒd|||f}tj|ƒ}||_'|‚qXnët(|j)d| ƒƒ}yg|j*j"t#j$|ƒ|dt#j$|ƒd||fd |d| d|d|d| d|j!| �}Wnit%k r}|j&|| ƒd|||f}t+|ddƒ}tj,||ƒ}||_'|‚nX|S(s±retrieve file from the mirrorgroup for the repo relative to local, optionally get range from start to end, also optionally retrieve from a specific baseurls/get request for Repo %s, gave no source or destis0Caching enabled but no local cache of %s from %sRR±t checkfunctrelativeR¦R¦R1Rtnametdiscnumtranges8Error getting package from media; falling back to url %ssKInsufficient space in download directory %s * free %s * needed %sRbR R#R"R¬tsizetretry_no_cacheRts*failed to retrieve %s from %s error was %sR¡sfailure: %s from %s: %sterrorsN(-RR¦R!R"R4RbRwRxR„R+R,RR®tintR·t MediaErrorR#tlogt logginglevelstDEBUG_2R´tstatvfstdirnametf_bavailtf_bsizetlongR RRHRR9RªR¬R™RªRR0Rt _del_dl_fileR6R^R_RäRÃtNoMoreMirrorsRepoError(RR1R¶R±tstarttendR¦RµR¦R#RbRºR*tschemeR-RxtquerytfragidR¸R†R(tdirstattavailRKR²R~terrstrRR¼((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_getFile«s�  !T! 4         c  sˆj}ˆjƒ‰ˆj}|jˆƒrMˆjƒr=ˆStjˆƒn|dkrn‡‡fd†}n|jdk|_ z@|j d|d|dˆd|d|d|d ˆj |�}Wdt |_ X|j d ƒ rˆjƒ rd } | ˆˆjjf} tj| ‚n|S( Ncs5ˆjƒs1tjˆƒtdtdƒƒ‚ndS(Niÿÿÿÿs)Package does not match intended download.(tverifyLocalPkgRR^RR (R=(R±tpackage(s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRµ"s  s lazy:packagesR1R¶R±RµR¦RbRºRCs3Downloaded package %s, from %s, but it was invalid.(t relativepathtlocalPkgtbasepatht_preload_pkg_from_system_cacheRÒRR^RR©R™RÑRºRR R6R.R!R"( RRÓRµR¦RbR*R~RÖRRá((R±RÓs//usr/lib/python2.7/site-packages/yum/yumRepo.pyt getPackages2       c Cs¨|j}|jƒ}|j}|j}||} |j} tjj|jƒsbtj |jƒn|j d| d|d|d|ddd|d|dd d |d | ƒ S( NR1R¶R±RÉR#RÊRµR¦iRbRº( RÔtlocalHdrthdrstartthdrendRÖRwRxR„R|RkRÑR( RRÓRµR#RbR~R±RÉRÊRºRÖ((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt getHeader@s      !cCs§|jdk r|jS|j|j|jƒ}|s8|S|jdd}tjj|ƒs_t S|j ƒ|jdd}|j rštjj|ƒ ršt St |_t S(sòCheck if there is a metadata_cookie and check its age. If the age of the cookie is less than metadata_expire time then return true else return False. This result is cached, so that metalink/repomd.xml are synchronized.Rts repomd.xmls metalink.xmlN( RžRtwithinCacheAgeRÑtmetadata_expireRVRwRxR„RRŠR¿R(RtmC_deftrepomdfntmlfn((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytmetadataCurrentRs  cCs²|jdk r|jS|jrHtjj|jƒ rHtjd|‚n|jr]t |_nNtjj|jƒs~t |_n-|j |j |j ƒr¢t |_n t |_|jS(Ns$Cannot find metalink.xml file for %s(RžRRbRwRxR„R§R!R"RRRÝRÑRÞ(R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR¨os     cCsÀt|dƒr¼|jjdƒr¼|jjdƒr¼|jtdƒ}|jtdƒ}|dkr{|dkswt‚tS|dkrš|dkrštSn|dkr¼|dkr¹tSq¼ntS(s8Return whether cache_req matches metadata_expire_filter.t_metadata_cache_reqs read-only:tfuturetpasttpresent(RåRæRä(RåRæ(RSRãRêtmetadata_expire_filterR,tAssertionErrorRR(Rt cache_filtt cache_req((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_matchExpireFilter€s      cCsÜ|r|jƒrd}n|dkr=tjj|ƒr=tSt}tjj|ƒrØtj|ƒ}|d|tjƒkr‡t}n|dtjƒkr¦t}n|js³|S|dt |j ƒkrØt}qØn|S(sxcheck if any file is older than a certain amount of time. Used for the cachecookie and the mirrorlist return True if w/i the expiration time limit false if the time limit has expired Additionally compare the file to age of the newest .repo or yum.conf file. If any of them are newer then invalidate the cache iÿÿÿÿi( RëRwRxR„RRtstatttimetcheck_config_file_ageR½R¢(Rtmyfiletexpiration_timetexpire_req_filterRÇt cookie_info((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRÝ•s      cCse|j}tjj|jƒs*|j}ntj|tjƒrat|jdƒ}|jƒ~ndS(s/if possible, set touch the metadata_cookie filesw+N( RÑRwRxR„RVtaccesstW_OKtopenR (RRtfo((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytsetMetadataCookie¸s   cCs y1||_||_||_||_||_Wntjk rL}‚nX|j rœ|jrœ|j rœ|j rœt j t j dƒt|_t|_ndS(Ns1Disabling media repo for non-media-aware frontend(RbR®R¯R°R±R!R"RRÀRÁR#R¿RÀRÁRRöRtskip_if_unavailable(RRbR®R¯R±R°R(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytsetupÄs     ' cCsO|jr2tjj|ƒ r2tjd|j‚n|jsG|jƒrKtSt S(s( Should we cache the current repomd.xml s"Cannot find repomd.xml file for %s( RbRwRxR„R!R"R4RâRR(RR±((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_cachingRepoXMLÒs cCsk|jdif}|dkr0d|jk}nd}yvtjdddddtjj|ƒƒ}|jd|j d |d d d |d dd|d|j dkddƒ}Wnmt k rî}t j |ƒ|rÕdStjd||f‚n.tjk rt j |ƒ|rdS‚nXytj||ƒWn4t j |ƒ|rMdStjd||f‚nX|S(s* Call _getFile() for the repomd.xml file. t old_repo_XMLRŒtprefixtrepomdtsuffixstmp.xmlRéR¶R±R¦iR¦R#RµRbRLRºi�sError downloading file %s: %ssError renaming file %s to %s(N(t _checkRepoXMLRR˜ttempfiletmktempRwRxRÃRÑR–R©RRR^R!R"trename(RR±R¦t grab_can_failRµttfnameR†R(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_getFileRepoXMLÚsD      cCsuytj|j|ƒSWnWtjk rp}|dkrJd|jk}n|rTdStjd|j|f‚nXdS(s Parse the repomd.xml file. Rûs&Error importing repomd.xml from %s: %sN( t repoMDObjecttRepoMDR.R!t RepoMDErrorRR˜R"R4(RR±tparse_can_failR(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt _parseRepoXMLs cCs©x+tj|jdƒD]}tj|ƒqWtjj|ƒr¥|d}tj||ƒ|j |t ƒ}|dkr|dSi|d6|d6|d6gd6|_ |SdS(s= If we have an older repomd.xml file available, save it out. s /*.old.tmps.old.tmpRûR±t old_localt new_MD_filesN( tglobRVRR^RwRxR„R®tcopy2R RRR˜(RR±RR Rn((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_saveOldRepoXMLs  cCsã|jstjd|j‚nd|jkr;i|_dSx"|jdD]}tj|ƒqIW|j}i|_d|kr™tj|d|dƒn|d|_ d|kr¶dSx&|dD]}tj|d|ƒqÁWdS( s0 If we have older data available, revert to it. s*Can't download or revert repomd.xml for %sRûNR R R±t old_MD_filess.old.tmp( R²R!R"R4R˜RR^RwRR—(RRtold_datatrevert((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_revertOldRepoXML s        cCsl|j}i|_d|kr2tj|dƒnd|krBdSx#|dD]}tj|dƒqMWdS(s Done with old data, delete it. R RNs.old.tmp(R˜RR^(RRR((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_doneOldRepoXML?s    cCs‡|dkr|j}n|dkr?d|jƒkr?d}n|dkrq|j|dd|ƒrq|d7}n||jj|ƒfS( NR�RÓRQR*RPt_dbRc(sothers filelistssprimary(RRcRÔREtrepoDataR (RRfRc((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_get_mdtype_dataLs     cCsN|j\}}|jdtjj|ƒ}|rJtj|dtƒ}n|S(NRtR�(RvRVRwRxRyRR‚R(RRHt compressedR}R~R±((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_get_mdtype_fnameXs cCs~d|jkrtS|jd}|jrz|j|jjkrztjd|jtj |jƒtj |jjƒfƒt StS(s| We check the timestamps, if any of the timestamps for the "new" data is older than what we have ... we revert. RûskNot using downloaded %s/repomd.xml because it is older than what we have: Current : %s Downloaded: %s( R˜RR²t timestampRcRüRýR.RítctimeR(RRû((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_groupCheckDataMDNewer`s   cCsƒ|j|jkrtS|j|jkr,tSt}xJ|jD]?}||jkrWq<n|j||j|krutSt}q<W|S(s7 Check parsed repomd.xml against metalink.repomd data. (RRtlengthRºt checksumstchksumsR(RcRýtdoneRe((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_checkRepoXMLMetalinkss cCs²|dkr|j}n|dkr0|j}n|j||jƒrItSxb|jjD]T}|j||ƒrVtjt j dt j |jj ƒt j |j ƒfƒtSqVWtS(s@ Check the repomd.xml against the metalink data, if we have it. s/Using older repomd.xml Latest: %s Using: %sN(RR—RãR!RýRt old_repomdsR#R¿RÀRÁRíRRR(RRcRãRý((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_checkRepoMetalink‰s     cCsk|j|ƒ}|stS|jƒ|js0tS|jj}|jr[|j|jkr[tS|j ||ƒS(sx Save the Old Repo XML, and if it exists check to see if it's the latest available given the metalink data. ( RRRŠR¿RãRýR²RRR!(RR±toxmlRý((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_latestRepoXML¢s   cCsN|jd}|jdk r tS|j|ƒr>t}|}n§t}|j|ƒrr|}|j}|d|_ni|j||ƒ}|dkrÛ|j rÍt |dƒrÍ|j dkrÍt j d|j‚n|jƒtS|jƒ|jdkr |j|ƒ|_n|jdkr&|jƒtS|r0tS|jƒsJ|jƒtStS( s` Common LoadRepoXML for instant and group, returns False if you should just return. s /repomd.xmlRûRãtwritesread-only:futures Can't download repomd.xml for %sN(swritesread-only:future(RVR—RRRúRR%R˜RRøRSRãR!R"R4RR÷R R(RR¦tmdtypesR±tcachingR†R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_commonLoadRepoXML¹s<         cCs[|jdkrtS|dkr+|j}n||jkrWt|j|jkrWtSntS(NRn(tmddownloadpolicyRRRcRt DBVERSIONt dbversionR(RRfRc((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyREæs  c Cs¸|dkrdS|s.t}|j|ƒ}nEt}|j|ƒ}tjj|ƒsstj|dtƒ}t}n|j tjj |ƒƒ|j ||d|d|dtƒs´dS|S(s� Check that we already have this data, and that it's valid. Given the DB mdtype and the main mdtype (no _db suffix). R�RƒRHRuN( RRRRwRxR„RR‚RR{RyRz(RRHtdbmdtypetmmdtypet file_checkRR±((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_groupCheckDataMDValidós  cCsZ|j|ƒ}x7|D]/\}}|j|dtƒs|jƒtSqW|j|ƒtS(sû Retrieve any listed mdtypes, and revert if there was a failure. Also put any of the non-valid mdtype files from the old_repo_XML into the delete list, this means metadata can change filename without us leaking it. tretrieve_can_fail(t_commonRetrieveDataMD_listRGRRRt_commonRetrieveDataMD_done(RR't downloadingtndatatnmdtype((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_commonRetrieveDataMDs  cCsd„}|jjƒ}xH|jjƒD]7}||kr@q(n|d krRq(n|j|ƒq(W|d krx|}ng}d|jkr–d }n|jd}||jds+Could not read mirrorlist %s, error was %ss \w+://\S+\s*$s$ARCHs $BASEARCHN( Rt readlinest ExceptionRüR‘R RtrstriptreplaceR2(RRöR1t returnlisttcontentR(tlineR&((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_readMirrorList¦s"      c CsÌ|jdd|_d }t}|j|j|jdtƒrft}t|jdƒ}d|j}n§|j}t j |ƒd}|dkr›d|}n|j ƒ}yt j j ||�}WnJtk r }tjd||jdtj|jd ƒfƒd }nX|j||ƒ\}}|r||j rÈ| rÈt|jd ƒ} x|D]} | j| ƒqUW| jƒqÈnL| rÈtjj|jƒrÈtj|jd ƒ|jt|jdƒƒdS|S( s$retrieve an up2date-style mirrorlist file from our mirrorlist url, also save the file to the local repo dir and use that if cache expiry not expired we also s/$ARCH/$BASEARCH/ and move along return the baseurls from the mirrorlist file Rtsmirrorlist.txtRñtrsfile://iRŒs1Could not retrieve mirrorlist %s error was %s: %sitwN(RVR‹RRRÝtmirrorlist_expireRRõRÀR+RHREtgrabberturlopenRRüR‘R«RR¬RqRbR&R RwRxR„tutime( RRötcacheokR1RËRKR(RnRoRðRp((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR�¼s:     1  cCs~tjj|ƒstStjj|ƒr[tj|ƒtjtj|ƒtjkr[tSnytj||ƒWntSXtS(s&attempts to copy the file, if possible( RwRxR„RRìtST_CTIMER®RR(RR[tdestfn((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt _preload_fileès,RŒcCsàt|dƒstS|jdkr&tStjj|j|jƒ}tjj|ƒsWtStjj|ƒtjj|j ƒkr‚tS|d|tjj |ƒ}|dkrÐ|j d|tjj |ƒ}n|j ||ƒS(sLattempts to copy the file from the system-wide cache, if possibletold_base_cache_dirRŒRtN( RSRR|RwRxRïR.R„tnormpathRVRyRR{(RRtsubdirRztglob_repo_cache_dirR[((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_preload_file_from_system_cache÷s' $cCs |j|ƒS(sUattempts to copy the metadata file from the system-wide cache, if possible(R€(RR((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR{ scCs¥tjj|jƒƒ}tjj|j|ƒ}|j|jƒddd|ƒrUtSt|dƒsht Sx6|j D]+}|j tjj||ƒ|ƒrrtSqrWt S(sOattempts to copy the package from the system-wide cache, if possibleR~s packages/RzR‚( RwRxRyRÕRïRyR€RRSRR‚R{(RtpkgtpnameRztopkgdir((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR×s !cCsÔg}dGHy|jjƒ}Wn<tjk r\}tddt|ƒƒ}|j|ƒ|SXxp|D]h}d|GHy|j|ƒWqdtjk rË}d|}td|t|ƒƒ}|j|ƒqdXqdW|S(Ns verifying mdisfailed to load repomd.xmls verifying %ss.%s metadata missing or does not match checksumi(RcRÔR!R"tRepoVerifyProblemR&R2Ra(Rtproblemstmd_typesR(tprbtmd_typeRá((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt _verify_md"s"    cCsÚdGHg}|jƒ}|dk r5tj|ƒ}nytjƒ}|j|ƒWnJtjtj fk rž}d}t t |t |ƒƒ}|j|ƒn8X|j dkrÖd}t t |dƒ}|j|ƒn|S(Nsverifying compsscomps file failed to addisno groups in compsRŒ(ReRRR‚RtCompstaddR!t GroupsErrortCompsExceptionR„tREPO_PROBLEM_COMPSR&t compscount(RR…tgrpfiletcR(RáR‡((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt _verify_comps7s"   cCsgS(N((R((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt_verify_packagesSstrepodataRcCs|g}d|kr(|j|jƒƒnd|krV|jrV|j|jƒƒqVnd|krx|j|jƒƒn|S(s}download/verify the specified items @items = ['repodata', 'comps'] can include: repodata, comps, packages R”RRo(RŽR‰R”R’R“(RtitemsR…((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytverifyVs    iN(qR‡RˆR‰RR¹R½tpropertyRÌRËR4R RÍt_YumRepository__getProxyDictReRÐRÒRÖR×RRRâRôRþRRRÎRR_RRRHRfRgRåRäRnRR�RƒRVRzRyR|R…R†RÑRˆRŠR‡RŒR¡RèR³RãR´RÑt_YumRepository__getRØRÜRâR¨RëRÝR÷RùRúRR RRRRRRt staticmethodR!R#R%R)RER0R7R2R3RBRKRMRNRcRÿRÇR…RzRaRGRWRYR[ReRfRgRhRiRqR�R{R€R{R×R‰R’R“R–(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyRŠAsô =                 <    '             $     $    h)     #  *      -   S      , 0  Z          ,       c CsRtjdtjddƒg}ttjdƒr=tj}nddl}|}tj|ƒd}|dkr{d|}n|}y|j |d |ƒ}WnBt k rÞ}d ||j dt j |j d ƒfGHd}nX|dk rN|jƒ} xT| D]I} tjd | ƒrqþn| jƒ} | jd dƒ} |j| ƒqþWn|S(Ns9getMirrorList() will go away in a future version of Yum. RiRviÿÿÿÿiRŒsfile://R]s1Could not retrieve mirrorlist %s error was %s: %sis\s*(#|$)s$ARCHs $BASEARCH(RRR!RRSRERuR R+RvRR«RR¬RRjR RRlRmR2( RÀtpdictRnt urlresolverR RËR1RöR(RoRpR&((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyt getMirrorListgs2     )     R„cBseZdZed„ZRS(s9 Holder for each "problem" we find with a repo.verify(). cCs(||_||_||_||_dS(N(Rítmessagetdetailstfake(RRíRáRŸR ((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR�s   (R‡RˆR‰RR(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pyR„Œs(:RwR RíRëR+t uses_fragmentR2R R!turlgrabber.grabberRRturlgrabber.progressRturlgrabber.mirrorRERRRtreposRR“RTRºtyumRRRR t constantsR¿tloggingRÀRR R®RìRúRRtskip_old_DBMD_checkR RSRt ImportErrorRRt simplefilterRt getLoggerRüR#RRR�RŠR�R„(((s//usr/lib/python2.7/site-packages/yum/yumRepo.pytsn                             Ôÿÿÿÿÿÿÿ- %