[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 Z d d k Z d d k Z d Z d Z d Z d Z d Z d Z d Z d Z d Z e i d d Z d Z d Z d Z d Z d Z d S( iNc C s* t | t i j o t | } n | S( N( t typet typest StringTypet str( t arg( ( s6 /usr/lib/python2.6/site-packages/rpmUtils/miscutils.pyt rpmOutToStr s c C s | \ } } } | \ } } } | d j o d } n t | } t | } t | } | d j o d } n t | } t | } t | } t i | | | f | | | f } | S( Nt 0( t NoneR t rpmt labelCompare( t .0t .1t e1t v1t r1t e2t v2t r2t rc( ( s6 /usr/lib/python2.6/site-packages/rpmUtils/miscutils.pyt compareEVR$ s $c C sB d } | i d } t i | t i } y | i | } Wn t i j o} } t | d j o d } n t | d j o d } n t | d j o d } n t | d j o d } qn> Xt | \ } } | d j o t i | ~ d } n ~ y t i | Wn t j o } n X| i | | S( s Takes a transaction set and a package, check it's sigs, return 0 if they are all fine return 1 if the gpg key can't be found return 2 if the header is in someway damaged return 3 if the key is not trusted return 4 if the pkg is not gpg or pgp signedi s public key not availaiablei s public key not availables public key not trustedi s error reading package headeri ie i ( t setVSFlagst ost opent O_RDONLYt hdrFromFdnoR t errorR t getSigInfot closet OSError( t tst packaget valuet currentflagst fdnot hdrt eR t siginfo( ( s6 /usr/lib/python2.6/site-packages/rpmUtils/miscutils.pyt checkSig9 s4 c C s t i t i d d } | i | } | d j o" d } | i d \ } } } n d } d } d } d } | | | f } | | f S( sX checks signature from an hdr hand back signature information and/or an error codet Cs %|DSAHEADER?{%{DSAHEADER:pgpsig}}:{%|RSAHEADER?{%{RSAHEADER:pgpsig}}:{%|SIGGPG?{%{SIGGPG:pgpsig}}:{%|SIGPGP?{%{SIGPGP:pgpsig}}:{(none)}|}|}|}|s (none)i t ,ie t MD5R ( t localet setlocalet LC_ALLt sprintft split( R" t stringR$ R t sigtypet sigdatet sigidt infotuple( ( s6 /usr/lib/python2.6/site-packages/rpmUtils/miscutils.pyR ` s c C s | d } | t i p | t i d j o | d } n d } | d } | d } | d } | d j o d } n | | | | | f } | S( s^ return a pkgtuple (n, a, e, v, r) from a hdr object, converts None epoch to 0, as well.t namei t archt srct versiont releaset epochR N( R t RPMTAG_SOURCERPMt RPMTAG_SOURCEPACKAGER ( R" R3 R4 t vert relR8 t pkgtuple( ( s6 /usr/lib/python2.6/site-packages/rpmUtils/miscutils.pyt pkgTupleFromHeaders s " c C s4 | \ } } } } } t | | d | | | f f S( su returns true if the package epoch-ver-rel satisfy the range requested in the reqtuple: ex: foo >= 2.1-1t EQ( t rangeCompare( t reqtupleR= t nt aR# t vt r( ( s6 /usr/lib/python2.6/site-packages/rpmUtils/miscutils.pyt rangeCheck s c C sG | \ } } \ } } } | \ } } \ } } } | | j o d S| p | o d S| d j o d } n | d j o d } n | d j o d } n | d j o d } n t | | | f | | | f } | d j o\ | d j o d S| d j o | d j o d Sn | d j o | d j o d Sq=n | d j o | d j o | d j o d Sn | d j o | d j o d Sn | d j o | d j o d Sn | d j o | d j o d Sn | d! j o | d" j o d Sqn | d j o9 | d# j o | d$ j o d Sn | d% j o d Sn d S(&