ó ¾[/\c@@sïddlmZddlmZddlmZddlmZddlmZddl Z ddl Z ddl Z ddl Z ddlZddlZddlZdZejdƒZd e jjfd „ƒYZd efd „ƒYZdS( i(tabsolute_import(tunicode_literals(thexlify(tunlink_f(t_Nu/usr/bin/applydeltarpmudnft DeltaPayloadcB@sSeZd„Zd„Zd„Zd„Zed„ƒZed„ƒZd„Z RS(cC@s/tt|ƒj||ƒ||_||_dS(N(tsuperRt__init__t delta_infotdelta(tselfRR tpkgtprogress((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyR)s cC@stjj|jjƒS(N(tostpathtbasenameR tlocation(R ((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyt__str__.scC@sHtt|ƒj|||ƒ|tjjjkrD|jj|ƒndS(N( RRt_end_cbtlibdnftrepotPackageTargetCBtTransferStatus_ERRORRtenqueue(R tcbdatat lr_statustmsg((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyR1scC@s¬|j}|j\}}tj|ƒ}t|ƒjƒ}tjjj |ƒ}|tjjj kr|t j t dƒ|ƒni|jd6|d6|d6|jd6|jd6S(Nuunsupported checksum type: %su relative_urlu checksum_typeuchecksumu expectedsizeubase_url(R tchksumthawkeyt chksum_nameRtdecodeRRt PackageTargett checksumTypetChecksumType_UNKNOWNtloggertwarningRRt downloadsizetbaseurl(R R tctypetcsumRt ctype_code((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyt_target_params6s   cC@s |jjS(N(R R$(R ((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyt download_sizeHscC@s |jjS(N(R R$(R ((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyt _full_sizeLscC@s4|jj}tjj|jjjtjj|ƒƒS(N( R RR RtjoinR RtpkgdirR(R R((s,/usr/lib/python2.7/site-packages/dnf/drpm.pytlocalPkgPs ( t__name__t __module__RRRR)tpropertyR*R+R.(((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyR(s    t DeltaInfocB@sAeZdd„Zd„Zd„Zd„Zd„Zd„ZRS(cC@sÁt|_tjttjƒr*t|_nytjdƒ|_Wn t t fk rbd|_nX|dkr‡t j jƒj|_n ||_||_||_g|_i|_i|_dS(u·A delta lookup and rebuild context query -- installed packages to use when looking up deltas progress -- progress obj to display finished delta rebuilds uSC_NPROCESSORS_ONLNiN(tFalsetdeltarpm_installedR taccesst APPLYDELTAtX_OKtTruetsysconft deltarpm_jobst TypeErrort ValueErrortNonetdnftconftConftdeltarpm_percentagetqueryR tqueuetjobsterr(R RBR RA((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyRVs         cC@sð|js dS|jj s$|j r(dS|jƒr8dStjj|j ƒƒrTdS|j |jd}d}xb|j j d|j d|jƒD]?}|j|jƒ}|r|j|kr|j}|}qqW|rìt||||ƒSdS(u&Turn a po to Delta RPM po, if possibleidtnametarchN(R4R=RtdeltarpmRAt _is_local_pkgR RtexistsR.t_sizeRBtfilterRFRGtget_delta_from_evrtevrR$R(R tpoR tbestt best_deltatipoR ((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyt delta_factoryms$  (  cC@sÛtjtjjd||d?|d@ƒ|jj|ƒ}|j}|dkrzt|jj ƒƒt dƒg|j |tloggingtSUBDEBUGRDtpopR RR.RREtverifyLocalPkgR tunlinkR tendtcallbackt STATUS_DRPM(R tpidtcodetploadR ((s,/usr/lib/python2.7/site-packages/dnf/drpm.pytjob_done‡s  cC@s|ttd|jj|jƒ|jjƒg}tjtj|Œ}tjt j j d|dj |dƒƒ||j |RURVR,RD(R R_t spawn_argsR]((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyt start_job—s cC@sžxB|jrDtjdtjƒ\}}|s1Pn|j||ƒqW|jj|ƒxBt|jƒ|jkr™|j |jj dƒƒ|jsXPqXqXWdS(Niÿÿÿÿi( RDR twaitpidtWNOHANGR`RCtappendtlenR:RdRW(R R_R]R^((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyR¡s  cC@s[xT|jrVtjƒ\}}|j||ƒ|jr|j|jjdƒƒqqWdS(u!Wait until all jobs have finishediN(RDR twaitR`RCRdRW(R R]R^((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyRi®s   N( R/R0R=RRSR`RdRRi(((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyR2Us     (t __future__RRtbinasciiRt dnf.yum.miscRtdnf.i18nRt dnf.callbackR>t dnf.loggingtdnf.repoRRUt libdnf.repoRR R6t getLoggerR"RtPackagePayloadRtobjectR2(((s,/usr/lib/python2.7/site-packages/dnf/drpm.pyts       -