ok

Mini Shell

Direktori : /lib/python2.7/site-packages/rpmUtils/
Upload File :
Current File : //lib/python2.7/site-packages/rpmUtils/arch.pyc

�
8M�bc@s�ddlZddlZddlZddlZeZidHd6dId6dJd6dKd	6dLd6ZerrdMed	<ni-dd6d
d6dd6dd
6dd6dd6dd6dd6dd6dd6d	d6d	d6d	d6dd	6dd6d
d6dd
6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d6d!d 6d"d!6d#d"6dd#6d$d%6d&d$6d'd&6dd'6d(d)6dd(6dd*6dd+6d,d-6dd,6dd.6dd/6Zid0d16d2d36Zdd4�Z
d5�Zd6�Zd7�Z
dd8�Zdd9�Zdd:�Zd;�Zd<�Zd=�Zd>�Zd?�Zd@�ZdA�Zd2dB�Ze�ZedC�ZddD�ZddE�ZdFefdG��YZdS(Ni����Ntathlontx86_64tsparcv9vtsparc64vtsparcv9tsparc64tppctppc64ts390ts390xti686ti586tgeodeti486ti386tnoarchtamd64tia32etppc64letppc64p7tppc64pseriestppc64iseriestsparcv8tsparct	alphaev68talphaev7t	alphaev67talphaev6t
alphapca56t	alphaev56talphaev5t	alphaev45talphaev4talphatarmv6ltarmv7lt	armv5tejltarmv5teltarmv7hltarmv7hnltarm64taarch64tsh4tsh4atsh3tia64ttplatformithwcapcCs�t|�}t|�r*td|�}n|g}|dksN|jd�r�x9tj�D](\}}||kr[|j|�q[q[Wn|S(NtmyarchRRR(RR(tgetBestArchtisMultiLibArchtgetBaseArcht
startswithtarchestitemstappend(tarchtresultstktv((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pytlegitMultiArchesInSameLibes	cCsdd||gkrtStd|�td|�kr8tS|t|�ks\|t|�kr`tStS(sbTake two arches and return True if it is possible that they can be
       installed together with the same nevr. Ex: arch1=i386 and arch2=i686 then
       it will return False. arch1=i386 and arch2=x86_64 will return True.
       It does not determine whether or not the arches make any sense. Just whether
       they could possibly install w/o conflictRR9(tFalseR3tgetArchListtTrue(tarch1tarch2((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pytcanCoinstallvs
$cCsK||krdS|tkrGtt||�}|dkrC|dSdSdS(Nii(R6tarchDifference(R1t
targetarchtret((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyRD�scCs
tt|�S(N(RDt	canonArch(R9((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pytscore�scCsM|dkrt}n|tkr%dS|tkr5dSt|tkrIdSdS(s5returns true if arch is a multilib arch, false if notiiN(tNoneRGR6tmultilibArches(R9((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyR3�s	c
CsRt|�dkrdS|dkr+t}nt|�}t|�}||kr}t||�}|dkr}|dkr}|Sn|d}x�|dD]�}t||�}t||�}|dkr�|dkr�q�n||kr�|dkr�|}q�n||kr|dkr|}qn||kr�q�q�Wt||�}	|	dkrNdS|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(tlenRIRGR2tgetBestArchFromListRD(
tarchlistR1t
mybestarchtbestarchtbestarchchoicetthisarchR9tval1tval2tval((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyRL�s8	
cCs�|st}n|g}x'|tkrAt|}|j|�qW|ddkre|jdd�nt|�dkr�|d|kr�|jd�n|S(NiRiRR(RGR6R8tinsertRK(RQRM((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyR?�s		
"cCs ytdd�SWngSXdS(sY Try to read /proc/cpuinfo ... if we can't ignore errors (ie. proc not
        mounted). s
/proc/cpuinfotrN(topen(((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyt_try_read_cpuinfo�scCs�ytdd�j�}WndSXd}d}tjd�}d}tj�}x}|t|�|kr�tjd||�\}}||kr�||_|jt	d<n||kr�|t	d	<n||}qTWdS(
sw Read /proc/self/auxv and parse it into global dict for easier access
        later on, very similar to what rpm does. s/proc/self/auxvtrbNiitLLiR/R0(
RWtreadtstructtcalcsizetctypestc_char_pRKtunpack_fromtvaluet_aux_vector(tdatatAT_PLATFORMtAT_HWCAPtfmtlentoffsetR/tat_typetat_val((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyt_parse_auxv�s"	
cCs�|dkrPx=t�D]2}|jd�r|jd�dkrDdSPqqW|S|dkr`|Sxet�D]Z}|jd�r�|jd�dkr�d	S|jd
�rj|jd�dkr�dSPqjqjW|S(NRs
model names	Geode(TM)i����RR
tvendortAuthenticAMDRtflagstcmov(RXR5tfind(R9tline((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pytgetCanonX86Arch
s"$cCs&tjd�}|jd�r"|S|S(Ns%{_target_cpu}tarmv7h(trpmtexpandMacroR5(R9ttarget((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pytgetCanonARMArch#scCs�|dkr|Sd}x=t�D]2}|jd�dkr |jd�d}Pq q Wtd}|dkrw|rw|Sy6|jd�r�t|djd	��d
kr�dSWnnX|dkr�|S|jd�dkr�d
S|jd�dkr�dS|S(NRtmachinei����t:iR/tpowerit+iRsCHRP IBMRtiSeriesR(RIRXRotsplitRbR5tinttrstrip(R9RwRpR/((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pytgetCanonPPCArch*s,
.cCs�d}x7t�D],}|jd�r|jd�d}PqqW|dkrP|S|jd�dkr|jd�rxdSdSn|jd	�dkr�|jd�r�dSd
Sn|jd�dkr�dS|S(
NttypeRxitsun4vi����RRRtsun4uRtsun4mR(RIRXR5R|Ro(R9t	SPARCtypeRp((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pytgetCanonSPARCArchHs$cCs�|dkr|Sd}x7t�D],}|jd�r |jd�d}Pq q W|dkr`|S|jd�dks�|jd�dkr�dS|jd	�dkr�d
S|S(NRt	vendor_idRxis
Authentic AMDi����RlRtGenuineIntelR(RIRXR5R|Ro(R9RkRp((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pytgetCanonX86_64Arch`s*cCs,|rqtjdtj�rqyHtdd�}|j�}|j�|jdd�\}}}|SWqqqqXntj�d}t�t	|�dkr�|ddkr�|dd!dkr�t
|�S|jd	�r�t|�S|jd
�r�t
|�S|jd�rt|�S|dkr(t|�S|S(
Ns/etc/rpm/platformRVt-iiitit86tarmRRR(tostaccesstR_OKRWtreadlinetcloseR|tunameRjRKRqR5RvRR�R�(tskipRpmPlatformtfRpR9Rktopersys((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pytgetCanonArchrs,
5




cCsE|tkrt|S|tkrAt|dkrAtdt|�SdS(NRR9(RJR6tgetMultiArchInfoRI(R9((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyR��s
cCsd|r|}nt}|jd�r5t|d}n|jd�r`tr`|dkr`d}n|S(NRiRRR(RGR5RJt_ppc64_native_is_best(R1R9((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyR2�s	"	cCs|st}n|tkr|S|jd�r2dS|dkrBdS|jd�r\tr\dS|jd�rodS|jd�r�dS|jd	�r�d	Std
|�r�|tkr�|St|Sn|tkr|}t|}x |dkr�|}t|}q�W|SdS(
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.RRRRRR(RrtarmhfpR�R9RN(RGR6R5R�R3RJ(R1tbasearchRa((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyR4�s6	
tArchStoragecBsDeZdZd�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|_|j�dS(N(	RIt	canonarchR�ROtcompatarchesRMR>tmultilibt
setup_arch(tself((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyt__init__�s						cCs�|r||_n	t|_td|j�|_td|j�|_|s�g}x9|jD].}t|�sy|dkr[|j|�q[q[W||_ntd|j�|_	t
d|j�|_td|j�|_t
d|j�|_dS(NR1RQRR9(R�RGR4R�R?RMR3R8R2ROR�R�R�R=tlegit_multi_arches(R�R9tarchlist_includes_compat_archtlimit_archlistta((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyR��s	cCs"|s|j}nt|d|�S(NR1(R�RL(R�RMtfromarch((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pytget_best_arch_from_list�scCst|j|�S(N(RDR�(R�R9((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyRH�scCs|s
|jStd|�S(NRQ(RMR?(R�R9((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyt
get_arch_list�sN(
t__name__t
__module__t__doc__R�RIR@R�R�RHR�(((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyR��s			(sathlonsx86_64sathlon(ssparcv9vssparcv9vssparc64v(ssparcv9ssparcv9ssparc64(sppcsppcsppc64(RR	R(sppcsppc64sppc64(R�RsR^R\R@R�RJR6RbRIR=RCRDRHR3RLR?RXRjRqRvRR�R�R�RGR�R2R4tobjectR�(((s1/usr/lib/python2.7/site-packages/rpmUtils/arch.pyt<module>s�




		
	,								
(

Zerion Mini Shell 1.0