;ò
Oë†@c           @   sˆ  d  k  Z  d  k Z d  k Z d  k Z d  k Z d  k Z d  k Z d  k Z d  k Z d  k	 Z	 d  k
 Z
 d  k Z d k l Z l Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e a e e e d	 „ Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  e e e e d „ Z! e d „ Z" d „  Z# d „  Z$ d „  Z d „  Z d „  Z% e& d j o e% ƒ  n d  S(   N(   s   _s   N_c         C   sJ   | d d j o
 d } n d } x" |  i | | ƒ D]
 } | Sq4 Wt Sd  S(   Ni    s   /s	   Basenamess   Providename(   s   deps   tagNs   tss   dbMatchs   hs   None(   s   tss   deps   hs   tagN(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   findDepLocal%   s    
 c      
   C   s3   t  d |  d d |  d d |  d d |  d ƒ Sd  S(	   Ns   namei    s   versioni   s   releasei   s   archi   (   s   installedHeaderIndexs   pkg(   s   pkg(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   installedHeaderIndexByPkg1   s    

c      
   C   s3   t  d |  d d |  d d |  d d |  d ƒ Sd  S(	   Ns   namei    s   versioni   s   releasei   s   archi   (   s   installedHeaderByKeywords   pkg(   s   pkg(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   installedHeaderByPkg<   s    

c          K   s   t  i ƒ  } | i ƒ  } x. |  i ƒ  D]  } | i | t	 i
 |  | ƒ q% Wg  } x' | D] } | i ƒ  } | i | ƒ qV W| Sd  S(   N(   s   transactions   initReadOnlyTransactions   _tss   dbMatchs   mis   kwargss   keyss   keywords   patterns   rpms   RPMMIRE_GLOBs   instanceLists   hs   instances   append(   s   kwargss   keywords   hs   _tss   mis   instanceLists   instance(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   installedHeaderIndexC   s      c          K   su   t  i ƒ  } | i ƒ  } x. |  i ƒ  D]  } | i | t	 i
 |  | ƒ q% Wg  } x | D] } | i | ƒ qV W| Sd  S(   N(   s   transactions   initReadOnlyTransactions   _tss   dbMatchs   mis   kwargss   keyss   keywords   patterns   rpms   RPMMIRE_GLOBs
   headerLists   hs   append(   s   kwargss   keywords   hs   _tss   mis
   headerList(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   installedHeaderByKeywordR   s      c         C   sP   t  i ƒ  } | i d |  ƒ } x' | D] } | d | j o | Sq% q% Wt Sd  S(   Ns   Names   version(	   s   transactions   initReadOnlyTransactions   _tss   dbMatchs   pkgNames   mis   hs   versions   None(   s   pkgNames   versions   hs   _tss   mi(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   installedHeadersNameVersiond   s     c   	      C   s+  t  |  ƒ t  g  ƒ j o |  d } n |  } | i d | ƒ } | o t Sn xÑ | i d | ƒ D]¹ } | d } | d } | t j o
 d } n | d } | d } t  |  ƒ t  g  ƒ j oI | | j o0 | d | j o | d	 | j o | d
 | j o Pqqb | | j o Pqb qb Wt S| Sd  S(   Ni    s   Names   names   epochs    s   versions   releasei   i   i   (   s   types   someNames   pkgNames   tss   dbMatchs   mis   Nones   hs   names   epochs   versions   release(	   s   someNames   tss   pkgNames   names   hs   mis   epochs   versions   release(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   installedHeaderl   s*     




@		c         C   sv  t  i ƒ  } g  } t o t Sn h  a d } d } x0 | i ƒ  D]" } | t	 j o Pn | d } q@ W| } x§ | i ƒ  D]™ } | t	 j o Pn | d } | d } | d } | d }
 d | | |
 f } | o | i | | f ƒ n | t	 j o | | | ƒ n | d } qy WxU | D]M \ } }	 x> |	 D]6 } t i | ƒ o g  t | <n t | i | ƒ q0WqWt Sd  S(   Ni    i   s	   obsoletess   names   versions   releases   %s-%s-%s(   s   transactions   initReadOnlyTransactions   _tss   lists   obsHashs   counts   totals   dbMatchs   hs   Nones	   obsoletess   names   versions   releases   nvrs   appends   progressCallbacks   obss   obs   has_key(   s   msgCallbacks   progressCallbacks   getArchs   counts   obs   names   hs   _tss   lists   obss   releases   versions	   obsoletess   totals   nvr(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   getInstalledObsoletes‹   sH       



  c         C   s£   d } | |  } xˆ t t | ƒ ƒ D]t } | | | j o] | | | |  j o q# n t
 i i | ƒ o( | | t i | ƒ j o
 d } q’ n Pq# q# W| Sd  S(   Ni    i   (   s   rets	   fileNamess   indexs   fileNames   ranges   lens   installedFileNamess   js   installedFileMD5ss   fileMD5ss   oss   paths   isdirs   up2dateUtilss   md5sum(   s   indexs	   fileNamess   fileMD5ss   installedFileNamess   installedFileMD5ss   js   rets   fileName(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   checkModified»   s    
 
	c         C   s*  d } t i ƒ  } |  d p g  } |  d p g  } |  d p g  } t |  d | ƒ }	 |	 o t Sn |	 d p g  } |	 d p g  } g  } | d o t Sn | o t Sn | o t Sn | d }
 xr t t | ƒ ƒ D]^ } xU |
 D]M } t i | | | ƒ o$ | i | t d ƒ f ƒ d	 } Pn | o Pqí qí Wqà W| d
 p g  } | d } x­ t t | ƒ ƒ D]™ } | o€ | | t i @o | | d	 d >@oV | | | j oA t | | | | | ƒ o$ | i | t d ƒ f ƒ d	 } Pqõqùqýn | o PqpqpWt | ƒ o | Sn t Sd  S(   Ni    s	   filenamess   filemd5ss	   fileflagss   names   forceInstalls   fileSkipLists   File Name/patterni   s   configFilesToIgnores   noReplaceConfigi   s   Config modified(   s   fflags   configs   initUp2dateConfigs   cfgs   hs	   fileNamess   fileMD5ss	   fileFlagss   installedHeaders   tss   installedHdrs   Nones   installedFileNamess   installedFileMD5ss   removedLists   fileSkipLists   ranges   lens   f_is   patterns   fnmatchs   appends   packages   _s   configFilesToIgnores   noReplaceConfigs   rpms   RPMFILE_CONFIGs   checkModified(   s   hs   packages   tss   fileMD5ss   cfgs   configFilesToIgnores   patterns   installedFileMD5ss   installedFileNamess   installedHdrs   fileSkipLists   fflags   noReplaceConfigs   removedLists   f_is	   fileNamess	   fileFlags(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys    checkHeaderForFileConfigExcludesÕ   sZ    
  
 &	c         C   s”   t  i ƒ  } | i t i t i Bƒ t i |  t i
 ƒ } y | i | ƒ } Wn& t i j
 o } | i ƒ  d Sn Xt i | ƒ | i ƒ  d Sd  S(   Ni    i   (   s   transactions   initReadOnlyTransactions   _tss   pushVSFlagss   rpms   RPMVSF_NOMD5s   RPMVSF_NEEDPAYLOADs   oss   opens   fileNames   O_RDONLYs   fdnos   hdrFromFdnos   hs   errors   es
   popVSFlagss   close(   s   fileNames   es   _tss   fdnos   h(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   checkRpmMd5'  s    
	
c          C   s^   t  i ƒ  } xK | i d d ƒ D]( }  d |  d |  d |  d f } | Sq Wt i d ƒ ‚ d  S(   Ns   Providenames   rpms   versions   releases   epochsp   Couldn't determine what version of rpm you are running.
If you get this error, try running 

		rpm --rebuilddb

(   s   transactions   initReadOnlyTransactions   _tss   dbMatchs   hs   versions   up2dateErrorss   RpmError(   s   hs   _tss   version(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   getRpmVersion8  s     c          C   sŒ   t  i ƒ  } d }  t ƒ  } t i | d d d t f ƒ d j o
 d }  n |  o | d o d t	 i
 | d f } n d t	 i
 } | Sd  S(	   Ni    s   rpms   4.0.4s   0i   s
   gpgKeyRings.   --homedir %s --no-default-keyring --keyring %ss   --homedir %s(   s   configs   initUp2dateConfigs   cfgs   keyring_relocatables   getRpmVersions   rpm_versions   up2dateUtilss   comparePackagess   Nones   gpgUtilss   gpg_home_dirs	   gpg_flags(   s   keyring_relocatables   cfgs	   gpg_flagss   rpm_version(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   getGPGflagsC  s    	%
c         C   s,  h  } g  } g  } x	|  D]} | \ } } } } } t
 } }
 } } | d j o
 | } n | d j o
 | }
 n | d j o
 | } n | d j o
 | } n h  } xS d | f d |
 f d | f d | f f D]' \ } } | t
 j o | | | <qÓ qÓ Wt |   } t | ƒ d j o | i | ƒ n xé | D]á } | d }	 |	 t
 j o
 d }	 n | d | d | d |	 | d f } d | d | d	 | d
 | d f } d | } t i | ƒ } | i ƒ  } | i  ƒ  g  } x$ | D] } | i t# i$ | ƒ ƒ qãW| i | | g ƒ q5Wq W| | f Sd  S(   Ns    s   names   versions   releases   archi    s   epochs   %s-%s-%s.%si   i   i   s   /usr/bin/rpmverify -V %s(%   s   datas   missing_packagess   retlists   packagess   packages   ns   vs   rs   es   as   Nones   names   versions   releases   archs   keywordss   tokens   values   installedHeaderByKeywords   headerss   lens   appends   headers   epochs   pkgs   packageLabels   verifystrings   oss   popens   fds	   readliness   ress   closes   reslists   lines   strings   strip(   s   packagess   ress   headers   retlists   pkgs   keywordss   packageLabels   datas   missing_packagess   epochs   versions   verifystrings   fds   lines   archs   as   es   names   packages   values   ns   headerss   tokens   rs   vs   releases   reslist(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   verifyPackagesS  sP     



+  

%&

 c          C   s/   h  } t d d ƒ } t | ƒ \ }  } |  Sd  S(   Ns   getArchi   (   s   datas   getInstalledPackageLists   packagess   verifyPackagess   rets   missing_packages(   s   rets   missing_packagess   packagess   data(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   verifyAllPackages”  s    c         C   s  |  t i j o n– |  t i j o n‚ |  t i j o Hnm |  t i j o2 | o | | | ƒ q© d t	 | ƒ | d Gn+ |  t i
 j o d t	 | ƒ | d Gn t i i d ƒ o_ |  t i j p |  t i j o; d | t i | t i | t i f } t i d | ‚ qn d  S(   Ns   transaction %.5s%% doneid   s   installation %.5s%% dones   RPMCALLBACK_UNPACK_ERRORs   %s-%s-%ss,   There was a fatal error installing a package(   s   whats   rpms   RPMCALLBACK_INST_OPEN_FILEs   RPMCALLBACK_INST_STARTs   RPMCALLBACK_INST_CLOSE_FILEs   RPMCALLBACK_TRANS_PROGRESSs   cbs   amounts   totals   floats   RPMCALLBACK_INST_PROGRESSs   __dict__s   has_keys   RPMCALLBACK_UNPACK_ERRORs   RPMCALLBACK_CPIO_ERRORs   keys   RPMTAG_NAMEs   RPMTAG_VERSIONs   RPMTAG_RELEASEs   pkgs   up2dateErrorss   RpmInstallError(   s   whats   amounts   totals   keys   cbs   pkg(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   rpmCallbackœ  s      (c         C   sÅ  g  } |  t j o |  t d ƒ ƒ n t i ƒ  } d } d } x0 | i	 ƒ  D]" } | t j o Pn | d } qL W| } d } x2| i	 ƒ  D]$} | t j o Pn | d } | d }
 |
 t j o
 d }
 n | d } | d }	 | o5 | d	 } | o  | i | | |	 |
 | g ƒ q‡nj | oI | d	 } | d
 } | o | o# | i | | |	 |
 | | g ƒ q‡n | i | | |	 |
 g ƒ | t j o | | | ƒ n | d } q‹ W| i ƒ  | Sd  S(   Ns0   Getting list of packages installed on the systemi    i   s   names   epochs    s   versions   releases   archs   cookie(   s   lists   msgCallbacks   Nones   _s   transactions   initReadOnlyTransactions   _tss   counts   totals   dbMatchs   hs   names   epochs   versions   releases   getArchs   archs   appends   getInfos   cookies   progressCallbacks   sort(   s   msgCallbacks   progressCallbacks   getArchs   getInfos   counts   names   hs   _tss   lists   releases   epochs   versions   cookies   totals   arch(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   getInstalledPackageList»  sL      





$

'
c         C   sá   t  i ƒ  } | t j o | d } n |  i ƒ  } | o t i	 t
 d ƒ | ƒ ‚ n |  i | | ƒ } | on d } xB | D]: } y | | d d } Wq| | t | ƒ d } q| Xq| Wt i t
 d ƒ | d | ƒ‚ n d  S(   Ns
   storageDirsA   Dependencies should have already been resolved, but they are not.s   
i   s+   Failed running transaction of  packages: %ss   deps(   s   configs   initUp2dateConfigs   cfgs   transdirs   Nones   tss   checks   depss   up2dateErrorss   DependencyErrors   _s   runs   rpmCallbacks   rcs   errorss   es   strs   TransactionError(   s   tss   rpmCallbacks   transdirs   es   cfgs   errorss   depss   rc(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   runTransactioní  s$     c         C   sB   t  i |  t  i ƒ o t Sn t |  d ƒ i ƒ  } t | ƒ Sd  S(   Ns   r(	   s   oss   accesss   filenames   R_OKs   Nones   opens   reads   blobs   readHeaderBlob(   s   filenames   blob(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys
   readHeader  s    c         C   s.   y t  i |  ƒ } Wn d GHt Sn X| Sd  S(   Ns	   exploded!(   s   rpms
   headerLoads   blobs   hdrs   None(   s   blobs   hdr(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   readHeaderBlob  s    c          C   sÉ   t  d t ƒ }  H|  d t j o
 d } n |  d |  d |  d | |  d g } t | ƒ GHd d	 d
 d d g } t | ƒ GHd d	 d d d g } t | ƒ GHt d d ƒ GHt d d ƒ GHt d d ƒ GHd  S(   Ns   zshs   epochs   0s   names   versions   releases   archs   kernels   2.4.18s   7.93s   i686s   3s   up2dates   1s   1.0(	   s   installedHeaders   _tss   hs   Nones   epochs   pkgs   installedHeaderIndexByPkgs   installedHeaderIndexs   installedHeaderByKeyword(   s   hs   epochs   pkg(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   mainm  s    
%s   __main__('   s   oss   syss   res   structs   up2dateErrorss   up2dateUtilss   configs   rpms   fnmatchs   gpgUtilss   transactions   strings   rhpl.translates   _s   N_s   findDepLocals   installedHeaderIndexByPkgs   installedHeaderByPkgs   installedHeaderIndexs   installedHeaderByKeywords   installedHeadersNameVersions   installedHeaders   Nones   obsHashs   getInstalledObsoletess   checkModifieds    checkHeaderForFileConfigExcludess   checkRpmMd5s   getRpmVersions   getGPGflagss   verifyPackagess   verifyAllPackagess   rpmCallbacks   getInstalledPackageLists   runTransactions
   readHeaders   readHeaderBlobs   mains   __name__(#   s   verifyAllPackagess   up2dateErrorss   findDepLocals   gpgUtilss    checkHeaderForFileConfigExcludess   installedHeaderByPkgs   installedHeaderIndexByPkgs   rpms   rpmCallbacks   structs
   readHeaders   getGPGflagss   installedHeaderByKeywords   res   verifyPackagess   N_s   mains   installedHeadersNameVersions   strings   installedHeaders   checkRpmMd5s   getRpmVersions   runTransactions   syss   up2dateUtilss   installedHeaderIndexs   _s   readHeaderBlobs   transactions   configs   checkModifieds   getInstalledPackageLists   fnmatchs   getInstalledObsoletess   os(    (    s)   /usr/share/rhn/up2date_client/rpmUtils.pys   ?   sN   																			 0		R				A		2			A		