Ñò ¾[c@s2ddkZeZhd=d6d>d6d?d6d@d 6dAd 6ZeodBed R-tmultilibArches(R0((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyR*€s    c Csjt|ƒdjodS|djo t}nt|ƒ}t|ƒ}||jo2t||ƒ}|djo|djo|Sn|d}x²|dD]¦}t||ƒ}t||ƒ}|djo|djoq›n||jo|djo |}qn||jo|djo |}q0n||joq›q›Wt||ƒ} | djodS|S(s™ return the best arch from the list for myarch if - myarch is not given, then return the best arch from the list for the canonArch. iRiN(tlenR@R>R)tgetBestArchFromListR;( tarchlistR(t mybestarchtbestarchtbestarchchoicetthisarchR0tval1tval2tval((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyRCs:              cCs¤|p t}n|g}x)|tjot|}|i|ƒqW|ddjo|iddƒnt|ƒdjo"|d|jo|idƒn|S(NiRiRR(R>R-R/tinsertRB(RHRD((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyR6¼s    $cCs,ytddƒiƒ}|SWngSXdS(sY Try to read /proc/cpuinfo ... if we can't ignore errors (ie. proc not mounted). s /proc/cpuinfotrN(topent readlines(tlines((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyt_try_read_cpuinfoÐs cCsÑ|djoDx<tƒD]1}|idƒo|idƒdjodSqW|S|djo|SxgtƒD]\}|idƒo|idƒdjod S|id ƒo|id ƒdjodSqmW|S( NR s model names Geode(TM)iÿÿÿÿR R tvendort AuthenticAMDRtflagstcmov(RQR,tfind(R0tline((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pytgetCanonX86ArchÙs  &   && cCs¦|djo|Sd}x?tƒD]4}|idƒdjo|idƒd}Pq"q"W|djo|S|idƒdjodS|idƒdjod S|S( NRtmachineiÿÿÿÿt:isCHRP IBMRtiSeriesR(R@RQRVtsplit(R0RYRW((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pytgetCanonPPCArchîs    cCsÙd}x9tƒD].}|idƒo|idƒd}PqqW|djo|S|idƒdjo|idƒodSdSn|id ƒdjo|idƒodSd Sn|id ƒdjod S|S( NttypeRZitsun4viÿÿÿÿRRRtsun4uRtsun4mR(R@RQR,R\RV(R0t SPARCtypeRW((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pytgetCanonSPARCArchs&   cCs¶|djo|Sd}x9tƒD].}|idƒo|idƒd}Pq"q"W|djo|S|idƒdjp|idƒdjodS|id ƒdjod S|S( NRt vendor_idRZis Authentic AMDiÿÿÿÿRSRt GenuineIntelR(R@RQR,R\RV(R0RRRW((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pytgetCanonX86_64Archs    ,icCs| oltidtiƒoVyHtddƒ}|iƒ}|iƒ|iddƒ\}}}|SWqtqtXntiƒd}t|ƒdjo0|ddjo|dd!djo t |ƒS|i d ƒo t |ƒS|i d ƒo t |ƒS|d jo t |ƒS|S( Ns/etc/rpm/platformRMt-iiitit86RRR(tostaccesstR_OKRNtreadlinetcloseR\tunameRBRXR,R]RcRf(tskipRpmPlatformtfRWR0RRtopersys((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyt getCanonArch+s&  8     cCsJ|tjo t|S|tjo#t|djotdt|ƒSdS(NRR0(RAR-tgetMultiArchInfoR@(R0((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyRtGs   cCs_|o |}nt}|idƒot|d}n|idƒot o d}n|S(NRiRR(R>R,RAt_ppc64_native_is_best(R(R0((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyR)Qs  cCsÎ|p t}n|tjo|S|idƒodS|idƒo t odStd|ƒo|tjo|St|Sn|tjo:|}t|}x"|djo|}t|}q£W|SdS(sµreturns 'base' arch for myarch, if specified, or canonArch if not. base arch is the arch before noarch in the arches dict if myarch is not a key in the multilibArches.RRRRR0RN(R>R-R,RuR*RA(R(tbasearchtvalue((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyR+_s(       t ArchStoragecBsDeZdZd„Zded„Zdd„Zd„Zd„Z RS(scclass for keeping track of what arch we have set and doing various permutations based on itcCsDd|_d|_d|_g|_g|_t|_|iƒdS(N( R@t canonarchRvRFt compatarchesRDR5tmultilibt setup_arch(tself((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyt__init__‚s      cCsû|o ||_n tƒ|_td|iƒ|_td|iƒ|_|pRg}x<|iD]1}t|ƒp |djo|i|ƒqaqaW||_ntd|iƒ|_ t d|iƒ|_ td|iƒ|_ t d|iƒ|_dS(NR(RHRR0(RyRsR+RvR6RDR*R/R)RFRtRzR{R4tlegit_multi_arches(R}R0tarchlist_includes_compat_archtlimit_archlistta((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyR|‹s     cCs$|p |i}nt|d|ƒS(NR((RyRC(R}RDtfromarch((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pytget_best_arch_from_list s cCst|i|ƒS(N(R;Ry(R}R0((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyR?¥scCs|p|iStd|ƒS(NRH(RDR6(R}R0((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyt get_arch_list¨sN( t__name__t __module__t__doc__R~R@R7R|R„R?R…(((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyRxs    (sathlonsx86_64sathlon(ssparcv9vssparcv9vssparc64v(ssparcv9ssparcv9ssparc64(sppcsppcsppc64(RR R(sppcsppc64sppc64(RjR7RuRAR-R@R4R:R;R?R*RCR6RQRXR]RcRfRsR>RtR)R+tobjectRx(((s1/usr/lib/python2.6/site-packages/rpmUtils/arch.pyts„         ,