;ò
wþs=c           @   sý   d  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 a	 d „  Z
 d „  Z d d „ Z d d d d d d d d	 „ Z d d d d
 „ Z e d „ Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   sU   Generic module of utility functions to help in detererming how
to install bootloadersNi    c         C   s
   |  a d  S(   N(   s   amounts   memoryOverhead(   s   amount(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   setMemoryOverhead   s     c          C   sq   t  i ƒ  d }  t |  ƒ d j o" |  d d j o |  d d !d j o
 d }  n |  d j o
 d }  n |  Sd  S(	   Ni   i    s   ii   s   86s   i386s   sparc64s   sparc(   s   oss   unames   archs   len(   s   arch(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   getArch   s    8

c         C   sm   t  |  ƒ t i j o |  Sn |  t j o
 d }  n t i t i B} | o t i
 } n t i |  | ƒ Sd  S(   Ns	   /dev/null(   s   types   filespecs   typess   IntTypes   Nones   oss   O_RDWRs   O_CREATs   flagss   readOnlys   O_RDONLYs   open(   s   filespecs   readOnlys   flags(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   getfd!   s    
i   i   s   /c	         C   sþ  t  | ƒ } | | j o t  | ƒ } | } n t  | ƒ } t  | ƒ } t i | |  t i ƒ o2 t i |  t i ƒ o t	 |  d ‚ q” d } n t i
 ƒ  } | o¬| o0 t i t i t i ƒ t i t i t i ƒ n t | ƒ t d ƒ j o | t i | t i ƒ j n t | ƒ t d ƒ j o | t i | t i ƒ j n t | ƒ t d ƒ j o t i | t i ƒ } n | d j o! t i | d ƒ t i | ƒ n | d j o2 t i | d ƒ | | j o t i | ƒ qên | d j o! t i | d ƒ t i | ƒ n | o t i |  | ƒ n t i |  | ƒ t i d ƒ n | o3 t i | | ƒ t i d ƒ } t i! d | ƒ n d } y t i# | d ƒ \ }	 } Wn( t% j
 o \ }
 } t( Gd G| GHn X| o t i! d | ƒ n | Sd  S(	   Ns    can not be runs    s   ai    i   i   iÿÿÿÿs   waitpid:()   s   getfds   stdins   stdouts   stderrs   oss   accesss   roots   commands   X_OKs   RuntimeErrors   forks   childpids   ignoreTermSigss   signals   SIGTSTPs   SIG_IGNs   SIGINTs   types   opens   O_RDONLYs   O_RDWRs   dup2s   closes
   searchPaths   execvps   argvs   execvs   syss   exits   newPgrps   setpgids	   tcgetpgrps   oldPgrps	   tcsetpgrps   statuss   waitpids   pids   OSErrors   errnos   msgs   __name__(   s   commands   argvs   stdins   stdouts   stderrs
   searchPaths   roots   newPgrps   ignoreTermSigss   pids   errnos   msgs   statuss   childpids   oldPgrp(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   execWithRedirect,   s^    

c         C   s…  t  i | |  t  i ƒ o2 t  i |  t  i ƒ o t |  d ‚ qM d } n t  i ƒ  \ } } t  i	 ƒ  } | od | o! t  i | d ƒ t  i | ƒ n | o t  i |  | ƒ n t  i |  | ƒ t i d ƒ n t  i | ƒ d }	 d } x> | o6 t i | g g  g  ƒ t  i | d ƒ } |	 | }	 qó Wt  i | ƒ y t  i | d ƒ Wn( t j
 o \ } }
 t Gd G|
 GHn X|	 Sd  S(   Ns    can not be runs    i    i   s   1iè  s   waitpid:(   s   oss   accesss   roots   commands   X_OKs   RuntimeErrors   pipes   reads   writes   forks   childpids   stdins   dup2s   closes
   searchPaths   execvps   argvs   execvs   syss   exits   rcs   ss   selects   waitpids   OSErrors   errnos   msgs   __name__(   s   commands   argvs
   searchPaths   roots   stdins   reads   errnos   writes   ss   rcs   msgs   childpid(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   execWithCapturep   s8    
 c         C   s"  t  i |  t  i ƒ } t  i | t  i t  i Bt  i Bƒ } | o7 | \ }	 } } t  i i |  ƒ }
 |	 | | |
 ƒ } n zu t  i | d ƒ } d }
 xV | oN t  i | | ƒ |
 t | ƒ }
 | o | i |
 ƒ n t  i | d ƒ } q” WWd  t  i | ƒ t  i | ƒ | o | i ƒ  n Xd  S(   Ni   i    i @  (   s   oss   opens   sources   O_RDONLYs   fs   tos   O_RDWRs   O_TRUNCs   O_CREATs   ts   pws   fns   titles   texts   paths   getsizes   totals   wins   reads   counts   writes   lens   sets   closes   pop(   s   sources   tos   pws   counts   fs   texts   titles   ts   wins   fns   total(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   copyFileœ   s*    #  c         C   sv   t  d d ƒ } | i ƒ  d } ~ t i | ƒ } y t | d ƒ d } Wn d } n X|  o | t	 } n | Sd  S(   Ns   /proc/meminfos   ri   i   iÿÿ (
   s   opens   fs	   readliness   mems   strings   splits   fieldss   ints	   correcteds   memoryOverhead(   s	   correcteds   fs   mems   fields(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   memInstalled¶   s     
c         C   sñ   t  i i |  ƒ o d  Sn t i |  d ƒ } t | d ƒ o d } | d } n d } d | d } t  i i | ƒ o t  i	 | d ƒ n x\ | t | ƒ j  oH | d | | } | d } t  i i | ƒ o t  i	 | d ƒ q‘ q‘ Wd  S(   Ns   /i    i   i   ií  (
   s   oss   paths   isdirs   dirs   strings   splitfieldss   elementss   lens   whichs   mkdir(   s   dirs   elementss   whichs   path(    (    s&   /usr/share/rhn/up2date_client/iutil.pys
   mkdirChainË   s       
c          C   s€   t  d d ƒ } | i ƒ  }  | i ƒ  xP |  D]H } t | ƒ d j o | d  d j o t i | d ƒ } | d Sq, q, Wt
 Sd  S(   Ns   /etc/inittabs   ri   s   id:s   :i   (   s   opens   inittabs	   readliness   liness   closes   lines   lens   strings   splits   fieldss   None(   s   liness   inittabs   fieldss   line(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   getDefaultRunlevelã   s    
 $c         C   s%   |  d j o |  d | Sn | Sd  S(   Ns    s   /(   s   relpaths   filename(   s   relpaths   filename(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   makerelnameî   s    c   	      C   sT  g  } xCt i |  d | ƒ D]*} t | | ƒ } | d j o | d | } n | } t i |  d | ƒ } | d  \ } t i | ƒ p t i | ƒ p t i | ƒ o q nS | d  d j o | d  d j o0 t i | ƒ o t |  | ƒ } q| g } n x5 | D]- } | g  j o | g } q| i | ƒ qW| i ƒ  q W| Sd  S(   Ns   /s    i   s   As   Z(   s   tzdatas   oss   listdirs   basepaths   relpaths   ns   makerelnames   timezones   lstats   filestats   filemodes   stats   S_ISLNKs   S_ISREGs   S_ISDIRs   findtzs	   tmptzdatas   ms   appends   sort(	   s   basepaths   relpaths	   tmptzdatas   filestats   ms   ns   tzdatas   filemodes   timezone(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   findtzõ   s,     1" c         C   sw   t  i |  ƒ } xT | D]L } t  i i |  d | ƒ o t |  d | ƒ q t  i |  d | ƒ q Wt  i |  ƒ d  S(   Ns   /(	   s   oss   listdirs   paths   filess   files   isdirs   rmrfs   unlinks   rmdir(   s   paths   filess   file(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   rmrf  s     c         C   s“   t  |  ƒ d j o d Sn |  d t i j o d Sn xP |  D]H } | d j p* | d j p | d j p t | ƒ d j  o d Sq? q? Wd Sd  S(   Ni   i    s   :s   ,s   
i!   i   (   s   lens   users   strings   letterss   letters   ord(   s   users   letter(    (    s&   /usr/share/rhn/up2date_client/iutil.pys	   validUser  s     :c         C   s8   d d d f } t d | d t d t d t d |  ƒd  S(	   Ns   bashs   -cs  
if [ -f /etc/sysconfig/clock ]; then
   . /etc/sysconfig/clock
   
   # convert old style clock config to new values
   if [ "${CLOCKMODE}" = "GMT" ]; then
      UTC=true
   elif [ "${CLOCKMODE}" = "ARC" ]; then
      ARC=true
   fi
fi

CLOCKFLAGS="--hctosys"

case "$UTC" in
   yes|true)
    CLOCKFLAGS="$CLOCKFLAGS -u";
     ;;
esac

case "$ARC" in
     yes|true)
        CLOCKFLAGS="$CLOCKFLAGS -A";
     ;;
esac
case "$SRM" in
     yes|true)
        CLOCKFLAGS="$CLOCKFLAGS -S";
     ;;
esac
/sbin/hwclock $CLOCKFLAGS
s   /bin/shs   stdins   stdouts   stderrs   root(   s   argss   execWithRedirects   Nones   root(   s   roots   args(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   setClock/  s     (   s   __doc__s   typess   oss   syss   selects   strings   stats   signals   os.paths   memoryOverheads   setMemoryOverheads   getArchs   getfds   execWithRedirects   execWithCaptures   Nones   copyFiles   memInstalleds
   mkdirChains   getDefaultRunlevels   makerelnames   findtzs   rmrfs	   validUsers   setClock(   s   rmrfs   setClocks	   validUsers   selects   getfds   execWithRedirects   memInstalleds   findtzs   stats   strings   syss   setMemoryOverheads   execWithCaptures   typess   copyFiles   getArchs   signals   makerelnames   getDefaultRunlevels
   mkdirChains   os(    (    s&   /usr/share/rhn/up2date_client/iutil.pys   ?   s"   ?			D,				 	
	