Ńņ ¾[c @ s_ d d k Z d d k Z d d k Z d d k Z d d k Z d d k l Z l Z d d k l Z d d k l Z d Z e Z d Z d Z d d Z d Z d Z d Z d Z d Z d Z d d g Z d e i f d YZ d d d Z d d d YZ d e f d YZ d e f d YZ d d d YZ d S( i’’’’N( t write32ut FNAME( t URLGrabError( t errorc C s t i | IJd S( N( t syst stderr( t numt msg( ( s5 /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.pyt log s c C s | S( N( ( R ( ( s5 /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.pyt _ s c C s t | } d } | i d j o d } n1 | | i j p | | i j o d } n | o# t d t d | | f n d S( s check a header by opening it and comparing the results to the name and arch we believe it to be for. if it fails raise URLGrabError(-1)i i i’’’’s1 Header cannot be opened or does not match %s, %s.N( t Header_Workt hdrt Nonet namet archR R ( t headerfileR R t ht fail( ( s5 /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.pyt checkheader s & #i c C sÆ t i d t i | t i } y t i | Wn t i j o } d } n Xd } t i | t i d | o, | p t d t d | q« d Sn | Sd S( sd take a package, check it out by trying to open it, return 1 if it's good return 0 if it's nott md5i i t defaulti’’’’s RPM %s fails md5 checkN( t tst sigCheckingt ost opent O_RDONLYt hdrFromFdnot rpmR t closeR R ( t packaget urlgraberrort fdnot et good( ( s5 /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.pyt checkRpmMD5% s c C sų t i d t i | t i } y t i | } Wnx t i j oi } t | d j o d St | d j o d St | d j o d St | d j o d Sn9 Xt | \ } } | d j o t i | ~ d S~ t i | d S( sÜ take a package, check it's sigs, return 0 if they are all fine, return 1 if the gpg key can't be found, 2 if the header is in someway damaged, 3 if the key is not trusted, 4 if the pkg is not gpg or pgp signedR s public key not availaiablei s public key not availables public key not trustedi s error reading package headeri ie i i ( R R R R R R R R t strt getSigInfoR ( R R R R R t siginfo( ( s5 /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.pyt checkSig; s* c C su d } | i | } | d j o" d } | i d \ } } } n d } d } d } d } | | | f } | | f S( sE checks if a computerhand back signature information and an error codes %|DSAHEADER?{%{DSAHEADER:pgpsig}}:{%|RSAHEADER?{%{RSAHEADER:pgpsig}}:{%|SIGGPG?{%{SIGGPG:pgpsig}}:{%|SIGPGP?{%{SIGPGP:pgpsig}}:{(none)}|}|}|}|s (none)i t ,ie t MD5R ( t sprintft split( R t stringR% R t sigtypet sigdatet sigidt infotuple( ( s5 /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.pyR$ W s c C s\ g } | t i } | d j o n5 t | t i j o | i | n | i | | S( N( R t RPMTAG_PROVIDENAMER t typet typest ListTypet extendt append( t headert provnamest provides( ( s5 /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.pyt getProvidesg s c C s½ | \ } } } | \ } } } d } | | } | | } | | } | | } | | } | | } t i | | | f | | | f } t d d | | | | | | | f | S( Nc S s7 t | t i j o | d j o t | } n | S( N( R1 R2 t StringTypeR R# ( t arg( ( s5 /usr/lib/python2.6/site-packages/rpmUtils/oldUtils.pyt rpmOutToStrv s #i s %s, %s, %s vs %s, %s, %s = %s( R t labelCompareR ( t .0t .1t e1t v1t r1t e2t v2t r2R<