;
@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 Z d  k Z d k l Z e	 i   Z e i   Z d f  d     YZ d   Z e e e e d  Z e e d  Z e d j og  Z e   Z x1 e d  D]# Z e i d	 e d
 d d d  qWe i e  g  Z  xQ e d  D]C Z x: d d d d d g D]# Z! e  i d	 e d d d e!  qoWqSWe" e  Ge" e   GHe i# e   g  Z$ x- e d  D] Z e$ i d	 d d e  qWd d d d d d d d f d d d d d d d d f g Z% e i& e%  e i' d d g  d  k( Z( e( i(   Z) e i*   Z+ d e( i(   e) GHe" e+  GHe+ GHn d  S(    N(   s   _s   PackageListc           B   s  t  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  RS(    Nc         C   s   t  |  _ t  |  _ t  |  _ h  |  _ g  |  _ h  |  _ h  |  _ g  |  _	 g  |  _
 g  |  _ g  |  _ g  |  _ g  |  _ t  |  _ t  |  _ t  |  _ d |  _ d  S(   Ni   (   s   Nones   selfs   nodepss   forces   justdbs   _PackageList__instPackagesHashs   _PackageList__availPackagesLists   _PackageList__forcePackagesHashs   _PackageList__obsolPackagesHashs   _PackageList__skipPatternLists!   _PackageList__skippedPackagesLists#   _PackageList__obsoletedPackagesLists,   _PackageList__installedObsoletingPackageLists   noMatchesForCompss   noMatchesForGlobss   msgCallbacks   progressCallbacks   refreshCallbacks   ignoreMsgCallback(   s   self(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __init__-   s"    																c   
      C   sM  h  } x | D] }	 |	 d } | i |  o |	 g | | <q n t i | | d d  |	 d   } | d j o q n | d j  o( | i |  o |	 g | | <q q n | d j o9 | i |  o | | i |	  q |	 g | | <q n |	 g | | <q W| i	   } g  } x, | D]$ } x | D] } | i |  q*WqW| Sd  S(   Ni    i   (   s   availPkgsDicts   package_lists   pkgs   pkgNames   has_keys   up2dateUtilss   comparePackagess   rets   appends   valuess   tmplists   values   i(
   s   selfs   package_lists   values   pkgNames   is   rets   tmplists   availPkgsDicts   valuess   pkg(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __findLatestVersionAllArchO   s8     
"  c         C   s   t  i d d  } |  i |  t i |  i |  i  } | o |  i
 |  n t i d |  i d |  i  } |  i |  t d o |  i t d  n d  S(   Ns   getArchi   s   msgCallbacks   progressCallbacks   forceInstalls   pkgSkipList(   s   rpmUtilss   getInstalledPackageLists   installedPackageLists   selfs   addInstalledPackagess   rhnPackageInfos   getAvailableAllArchPackageLists   msgCallbacks   progressCallbacks	   availLists   addAvailablePackagess   obsoletesLists   obsLists   addObsoletePackagess   cfgs   addSkipPatterns(   s   selfs   installedPackageLists	   availLists   obsList(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   runt   s    c         C   sX   xQ | D]I } | d } |  i i |  o g  |  i | <n |  i | i |  q Wd  S(   Ni    (   s   installedPackagess   ps   pNames   selfs   _PackageList__instPackagesHashs   has_keys   append(   s   selfs   installedPackagess   ps   pName(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   addInstalledPackages   s     
c         C   s%   x | D] } |  i i |  q Wd  S(   N(   s   availablePackagess   ps   selfs   _PackageList__availPackagesLists   append(   s   selfs   availablePackagess   p(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   addAvailablePackages   s     c         C   s"   x | D] } t |  i | <q Wd  S(   N(   s   forcePackagess   ps   Nones   selfs   _PackageList__forcePackagesHash(   s   selfs   forcePackagess   p(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   addForcePackages   s     c   
      C   s)  t  i   } t d   |  } g  } t i d  o t d } n
 d g } h  } x | D] } x | D] }	 t i |	 |  oY xu | D]J } t i |	 |  o | i |	  q | i |  o t | | <q q Wqe | i |  o t | | <qe qe WqX W| i   |  _ | o |  i |  n d  S(   Nc         C   s   |  d S(   Ni    (   s   a(   s   a(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   <lambda>   s    s   globStopperss   *-debuginfo(   s   rhnPackageInfos   getAvailablePackageLists	   availLists   maps
   availNamess   matchess   cfgs   has_keys   unglobss	   noMatchess   listOfGlobss   globs   names   fnmatchs   unglobs   appends   Nones   keyss   selfs   noMatchesForGlobss   addForcePackages(
   s   selfs   listOfGlobss
   availNamess   matchess	   noMatchess	   availLists   unglobss   unglobs   globs   name(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   addGlobs   s.    	   c         C   s   t  i   } g  } xK | D]C } y | | i |  } Wq t j
 o |  i	 i
 |  q Xq Wh  } x | D] } | | | <qm W| i   } | i   | o |  i |  n d  S(   N(   s   up2dateCompss	   initCompss   compss   matchess   listOfCompss   comps   pkgTrees   KeyErrors   selfs   noMatchesForCompss   appends   ds   is   keyss   sorts   addForcePackages(   s   selfs   listOfCompss   ds   matchess   comps   compss   i(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   addComps   s       
c         C   s   xW | D]O } t | d   } |  i i |  o g  |  i | <n |  i | i |  q Wh  |  _ xt |  i i	   D]c } xZ |  i | D]K } |  i i | d  o g  |  i | d <n |  i | d i |  q Wqs Wd  S(   Ni   (   s   obsoletePackagess   ps   tuples   keys   selfs   _PackageList__obsolPackagesHashs   has_keys   appends"   _PackageList__obsoletedPackageHashs   keyss   obsInfo(   s   selfs   obsoletePackagess   obsInfos   ps   key(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   addObsoletePackages   s     	  c         C   s%   x | D] } |  i i |  q Wd  S(   N(   s   skipPatternss   ps   selfs   _PackageList__skipPatternLists   append(   s   selfs   skipPatternss   p(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   addSkipPatterns   s     c         C   s   |  i Sd  S(   N(   s   selfs   _PackageList__instPackagesHash(   s   self(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   getInstalledPackages   s    c         C   s   |  i Sd  S(   N(   s   selfs   _PackageList__forcePackagesHash(   s   self(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   getForcedPackages   s    c         C   s   |  i Sd  S(   N(   s   selfs#   _PackageList__obsoletedPackagesList(   s   self(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   getObsoletedPackages   s    c         C   s   |  i Sd  S(   N(   s   selfs,   _PackageList__installedObsoletingPackageList(   s   self(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   getInstalledObsoletingPackages   s    c         C   s   |  i Sd S(   s~   
        Returns a list of packages that have been skipped, together with the
        reason why they've been skipped
        N(   s   selfs!   _PackageList__skippedPackagesList(   s   self(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   getSkippedPackages   s     c         C   sb   xW |  i | d D]D } t i | |  } | d j  o t i d | | f  q d Sq Wd Sd  S(   Ni    s   p: %s is newer than inst: %si   (	   s   selfs   _PackageList__instPackagesHashs   ps   insts   up2dateUtilss   comparePackagess   rets   logs	   log_debug(   s   selfs   ps   rets   inst(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __outdatedByInstalledPackage   s     c   	      C   sW  xP|  i D]E} | d } |  i i |  o"h  } xS |  i | D]D } | i | d  o | | d i |  qA | g | | d <qA Wx | i	   D] } g  } x | | D]x } | | d j o t i | |  } n' | d j o t i | |  } n q | d j  o | i |  q g  } Pq Wx | D] } |  i |  q0Wq Wq
 q
 Wd  S(   Ni    i   s   noarch(   s   selfs   _PackageList__availPackagesLists   ps   pNames   _PackageList__instPackagesHashs   has_keys   archDicts   instPkgs   appends   keyss   archs   packagesToAdds   pkgs   up2dateUtilss   comparePackagess   rets    _PackageList__addPackageToUpdate(	   s   selfs   instPkgs   packagesToAdds   rets   archDicts   ps   pNames   pkgs   arch(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __findOutdatedPackages  s6    
 
    c         C   sb   g  } x3 |  i D]( } | d | j o | i |  q q W| i t i  | i	   | d Sd  S(   Ni    (
   s   pkgVersionss   selfs   _PackageList__availPackagesLists   ps   names   appends   sorts   up2dateUtilss   comparePackagess   reverse(   s   selfs   names   ps   pkgVersions(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __findLatestPackageF  s    
 
c         C   s   g  } x3 |  i D]( } | d | j o | i |  q q W| d } g  } xX | D]P } t	 i
 | |  } | d j  o | g } n | d j o | i |  qS qS W| Sd  S(   Ni    (   s   pkgVersionss   selfs   _PackageList__availPackagesLists   ps   names   appends   latests
   latestlists
   pkgVersions   up2dateUtilss   comparePackagess   ret(   s   selfs   names
   pkgVersions   pkgVersionss
   latestlists   rets   ps   latest(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __findLatestPackagesQ  s    
 
 c         C   s  |  i }	 x|  i D]} | d } |  i i |  o q n |	 i |  oe|  i |  } xS| D]G}
 |  i i |
 d  o x |  i |
 d D] } g  } t i | |
  } t d oA t d } |
 d | j o" | d j  o | i |
  q q<q | d |
 d j o+ | d j  o | i |
  q g  } q q q Wxg | D] } |  i |  qGWqc t d o0 t d } |
 d | j o |  i |
  qqc |  i |
  qc Wq q Wd  S(   Ni    s
   forcedArchi   (   s   selfs   _PackageList__forcePackagesHashs   fpHashs   _PackageList__availPackagesLists   ps   pNames   packagesToUpdates   has_keys    _PackageList__findLatestPackagess
   latestpkgss   latests   _PackageList__instPackagesHashs   instPkgs   packagesToAdds   up2dateUtilss   comparePackagess   rets   cfgs   archess   appends   pkgs    _PackageList__addPackageToUpdate(   s   selfs   instPkgs
   latestpkgss   packagesToAdds   archess   rets   ps   pNames   pkgs   fpHashs   latest(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __findForcedPackagese  sB    	
 
  
 
c         C   sv   | d } |  i i |  o g  |  i | <n t d   |  i |  } | d  | j o |  i | i |  n d  S(   Ni    c         C   s   |  d  S(   Ni   (   s   a(   s   a(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   <lambda>  s    i   (   s   ps   pNames   selfs   packagesToUpdates   has_keys   maps	   pkgsNVREAs   append(   s   selfs   ps   pNames	   pkgsNVREA(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __addPackageToUpdate  s    
c         C   s-  x&|  i D]}	 |	 d } |  i i |  oO d } x4 |  i | D]% } |	 d  | d  j o
 d } qA qA W| o q
 q| n t |	 d   } |  i
 i |  o q
 n x{|  i
 | D]l} | d \ } } } | d j p
 | d j od |  i i |  o q n |  i |	  x2 |  i | D]# } |  i i | |  i | f  qWq n t i |  \ } } } | | | | f } |  i i |  o q n x |  i | D]~ }
 t i |
 |  } t i |  } | t  |  @oF |  i |	  x6 |  i | D]# } |  i i | |  i | f  qWqqWq Wq
 Wd  S(   Ni    i   i   s   0(!   s   selfs   _PackageList__availPackagesLists   ps   pNames   packagesToUpdates   has_keys   founds   packageToUpdates   tuples   keys   _PackageList__obsolPackagesHashs   obss   obsNames
   obsVersions   obsSenses   _PackageList__instPackagesHashs    _PackageList__addPackageToUpdates   obsPs#   _PackageList__obsoletedPackagesLists   appends"   _PackageList__obsoletedPackageHashs   up2dateUtilss   parseObsoleteVersions   vvs   rrs   ees	   candidates   insts   comparePackagess   rets   cmp2rpmSenses   ops   int(   s   selfs   obsSenses   vvs   rrs   packageToUpdates   ees	   candidates   obsNames   obsPs   ps   insts   pNames   rets   keys
   obsVersions   founds   obss   op(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __findObsoletingPackages  sL    
 
   !  c         C   s   t  } xs | D]k } t i | d  } t i d |  | d j o q n | o t i | d  | j o q n | } q W| t  j o t i d |  t  Sn | o | g Sn t  Sd  S(   Ni   s	   archscorei    s:   Could not find an approriate arch for package %s, skipping(	   s   Nones	   bestArchPs   plists   ps   rpms	   archscores   logs	   log_debugs   log_me(   s   selfs   plists	   archscores	   bestArchPs   p(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __findBestArch  s      !
c         C   sA   g  } x0 | D]( } | d | j o | i |  q q W| Sd  S(   Ni   (   s   bestArchPLists   plists   ps   archess   append(   s   selfs   plists   archess   ps   bestArchPList(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __findMatchingArch  s     c         C   s  h  } x|  i i   D]\ } } t d oh t d } g  } x0 | D]( } | d | j o | i
 |  qD qD Wx | D] } | |  i | <qw Wq n d } g  }	 xu | D]m } |  i i t | d    oJ |  i t | d   } x0 | D]$ } | |	 j o |	 i
 |  q q Wq q Wt |	  oy xo |	 D]g } |  i i | d  o g  |  i | d <n | |  i | d j o |  i | d i
 |  q-q-Wq n |  i i |  o|  i | } t |  d j oz g  } x4 | D], } | d | j o | i
 | d  qqWt |  d j o& |  i | |  }
 |
 |  i | <q qqt |  d j oW |  i | | d d g  }
 |
 o |  i |  }
 n |
 o |
 |  i | <q qqn |  i |  }
 |
 o |
 |  i | <q t i d |  |  i | =q Wd  S(   Ns
   forcedArchi   i    i   i   sB   The latest version of %s was not available for this arch. Skipping(   s   hashs   selfs   packagesToUpdates   itemss   pkeys   plists   cfgs   archess   matchess   ps   appends   matchs   addeds   packagesToAdds   _PackageList__obsolPackagesHashs   has_keys   tuples   obsPkgss   obsPkgs   lens   pkgs   _PackageList__instPackagesHashs   pkgss   _PackageList__findMatchingArchs   newps   _PackageList__findBestArchs   logs   log_me(   s   selfs   pkeys   addeds   hashs   pkgss   matchess   ps   archess   obsPkgs   packagesToAdds   newps   obsPkgss   plists   matchs   pkg(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __findBestArchPackages  sp     
       c         C   ss   |  i i   } g  } x, | D]$ } x | D] } | i |  q) Wq W| } t |  o | i	 d    n | Sd  S(   Nc         C   s   t  |  d | d  S(   Ni    (   s   cmps   as   b(   s   as   b(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   <lambda>Q  s    (
   s   selfs   packagesToUpdates   valuess   tmplists   is   js   appends   results   lens   sort(   s   selfs   is   js   tmplists   valuess   result(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __sortPackageListG  s      c         C   sZ   h  } h  |  _ |  i   |  i   |  i   |  i   |  i   } |  i	 |  } | Sd  S(   N(
   s   hashs   selfs   packagesToUpdates"   _PackageList__findOutdatedPackagess    _PackageList__findForcedPackagess$   _PackageList__findObsoletingPackagess"   _PackageList__findBestArchPackagess   _PackageList__sortPackageLists   results   _PackageList__skipPackages(   s   selfs   hashs   result(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   getPackagesToInstallT  s    	



c         C   s   d  S(   N(    (   s   self(    (    s,   /usr/share/rhn/up2date_client/packageList.pys
   failedDepsk  s    c         C   s   d  S(   N(    (   s   self(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   getTransactionp  s    c         C   s   g  |  _ xn t t |   D]Z } xQ |  i D]F } t i | | d |  o% |  i i	 | | t
 d  f  Pq, q, Wq Wx" |  i D] } | i | d  q W|  i |  } | Sd  S(   Ni    s   Pkg name/pattern(   s   selfs!   _PackageList__skippedPackagesLists   ranges   lens   packageLists   p_is   _PackageList__skipPatternLists   patterns   fnmatchs   appends   _s   ps   removes   _PackageList__skipFiles(   s   selfs   packageLists   p_is   patterns   p(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __skipPackagess  s    	 
  
 c   
   
   C   s  g  } t d o | Sn t i   } d } t | d |  i	 d |  i
 d |  i d |  i }	 xL |	 D]D } t } t i | | | |  } | d } | o | | } qb qb Wh  } x" | D] } | | t | d  <q W| i   } x | D] } | i | d  q W|  i | |  _ | Sd  S(   Ns   forceInstalli    s   msgCallbacks   progressCallbacks   refreshCallbacks   ignoreMsgCallbacki   (   s   removedLists   cfgs   packageLists   transactions   initReadOnlyTransactions   tss   p_is   buildHeaderLists   selfs   msgCallbacks   progressCallbacks   refreshCallbacks   ignoreMsgCallbacks   h_lists   is   Nones   tmp_lists   rpmUtilss    checkHeaderForFileConfigExcludess   ds   tuples   valuess   ps   removes!   _PackageList__skippedPackagesList(
   s   selfs   packageLists   ds   p_is   is   tss   removedLists   ps   tmp_lists   h_list(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   __skipFiles  s4    		 
  (!   s   __name__s
   __module__s   __init__s&   _PackageList__findLatestVersionAllArchs   runs   addInstalledPackagess   addAvailablePackagess   addForcePackagess   addGlobss   addCompss   addObsoletePackagess   addSkipPatternss   getInstalledPackagess   getForcedPackagess   getObsoletedPackagess   getInstalledObsoletingPackagess   getSkippedPackagess(   _PackageList__outdatedByInstalledPackages"   _PackageList__findOutdatedPackagess   _PackageList__findLatestPackages    _PackageList__findLatestPackagess    _PackageList__findForcedPackagess    _PackageList__addPackageToUpdates$   _PackageList__findObsoletingPackagess   _PackageList__findBestArchs   _PackageList__findMatchingArchs"   _PackageList__findBestArchPackagess   _PackageList__sortPackageLists   getPackagesToInstalls
   failedDepss   getTransactions   _PackageList__skipPackagess   _PackageList__skipFiles(    (    (    s,   /usr/share/rhn/up2date_client/packageList.pys   PackageList,   s>   	"	%					%											8			0		7			N					c         C   sE   g  } x4 |  D], } | | d j o | i | d  q q W| Sd  S(   Ni    i   (   s   archLists   availablePkgLists   pkgs   pkgNames   append(   s   availablePkgLists   pkgNames   archLists   pkg(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   getArchesOfAvailablePackages  s     c         C   s   t  i   } g  } d } t |   }
 | o | t	 d   n x |  D] }	 | |	 } | o | i |  n | o | o- | t	 d  | d | d | d f  n | o | | |
  n | d } qF W| Sd  S(   Ni   s   Fetching rpm headerss   Fetching rpm header: %s-%s-%ss   names   versions   release(   s   headerss   initHeaderLists
   headerLists   h_lists   counts   lens   pkgLists   totals   msgCallbacks   _s   pkgs   hdrs   appends   ignoreMsgCallbacks   progressCallback(   s   pkgLists   msgCallbacks   progressCallbacks   refreshCallbacks   ignoreMsgCallbacks   counts   hdrs
   headerLists   h_lists   pkgs   total(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   buildHeaderList  s"     
-c   	      C   s  g  } t |   } t d o | Sn | t j o | t d   n t d } t d o
 g  } n x t	 |  D]v } xK | D]C } t i |  | d |  o" | i |  | t d  f  Pq q W| t j o | | d |  qr qr Wx | D] } |  i | d  q W| Sd  S(   Ns   forceInstalls*   Removing packages marked to skip from lists   pkgSkipListi    s   Pkg name/patterni   (   s   removedLists   lens   pkgLists   pkgCounts   cfgs   msgCallbacks   Nones   _s   pkgSkipLists   ranges   indexs   patterns   fnmatchs   appends   progressCallbacks   pkgs   remove(	   s   pkgLists   msgCallbacks   progressCallbacks   indexs   pkgCounts   pkgSkipLists   removedLists   pkgs   pattern(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   removeSkipPackagesFromList  s,    

  	 s   __main__i   s   a%04ds   1.0s   1s    s   noarchi   s   i386s   i586s   i686s   athlons   2.0i
   i   s   a0021s   a0019i    s   a0022s   a0018s   2.0-1i   s   a0017s	   a001[3-5]s   Total time: %f(,   s   oss   fnmatchs   strings   syss   rpms   up2dateUtilss
   up2dateLogs   up2dateErrorss   up2dateCompss   configs   rpmUtilss   headerss   rhnPackageInfos   transactions   rhpl.translates   _s   initUp2dateConfigs   cfgs   initLogs   logs   PackageLists   getArchesOfAvailablePackagess   Nones   buildHeaderLists   removeSkipPackagesFromLists   __name__s   installedPackageLists   pLists   ranges   is   appends   addInstalledPackagess   availablePackageLists   archs   lens   addAvailablePackagess   forcePackageLists   obsLists   addObsoletePackagess   addSkipPatternss   times   starts   getPackagesToInstalls   res(   s   PackageLists   obsLists   cfgs   up2dateErrorss   up2dateCompss   rpms   logs   ress   starts   installedPackageLists   getArchesOfAvailablePackagess   configs   buildHeaderLists   strings   forcePackageLists   syss   up2dateUtilss   availablePackageLists   rhnPackageInfos   archs   _s
   up2dateLogs   transactions   is   removeSkipPackagesFromLists   headerss   times   fnmatchs   rpmUtilss   oss   pList(    (    s,   /usr/share/rhn/up2date_client/packageList.pys   ?   sd   														  	!	 !  % <	