add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
f

��_�L�@s�ddlZddlZddlZgd�ZdZdZdZd&dd�Zdd	�Zd
d�Z	da
dd
�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�ZdS)'�N)�compiler_fixup�customize_config_vars�customize_compiler�get_platform_osx)
�CFLAGSZLDFLAGSZCPPFLAGSZ
BASECFLAGS�	BLDSHARED�LDSHARED�CC�CXXZ	PY_CFLAGSZ
PY_LDFLAGSZPY_CPPFLAGSZPY_CORE_CFLAGSZPY_CORE_LDFLAGS)rrr	r
Z_OSX_SUPPORT_INITIAL_cCs�|durtjd}|�tj�}tj�|�\}}tjdkrH|dkrH|d}tj�|�s�|D]$}tj�	||�}tj�|�rX|SdS|S)N�PATH�win32z.exe)
�os�environ�split�pathsep�path�splitext�sys�platform�isfile�join)�
executabler�paths�base�ext�p�f�r�%/usr/lib64/python3.10/_osx_support.py�_find_executables
rcCs�ddl}zddl}|��}Wn&tyBtdt��fd�}Yn0|�|��>}d||jf}t�	|�sz|�
��d���ndWd�S1s�0YdS)Nrz/tmp/_osx_support.%szw+bz%s 2>/dev/null >'%s'zutf-8)
�
contextlib�tempfile�NamedTemporaryFile�ImportError�openr
�getpid�closing�name�system�read�decode�strip)Z
commandstringr r!�fp�cmdrrr�_read_output7s��
r.cCst|�ptd|f�pdS)Nz/usr/bin/xcrun -find %s�)rr.)Ztoolnamerrr�_find_build_toolJs
��r0cCs~tdurzdaztd�}Wnty*YnP0zt�d|���}W|��n
|��0|durzd�|�d��	d�dd��atS)Nr/z0/System/Library/CoreServices/SystemVersion.plistz=<key>ProductUserVisibleVersion</key>\s*<string>(.*?)</string>�.��)
�_SYSTEM_VERSIONr$�OSError�re�searchr)�closer�groupr)r�mrrr�_get_system_versionSs
�r;cCs"t|�D]}|�t�r||=qdS�N)�list�
startswith�_INITPRE)�_config_vars�krrr�_remove_original_valuesqs
rBcCs8|�|d�}||kr,t||vr,||t|<|||<dS)Nr/)�getr?)r@�cvZnewvalueZoldvaluerrr�_save_modified_valuexsrEcCsRt�}|r>ztdd�|�d�D��}Wnty<d}Yn0|rNt|dk�SdS)Ncss|]}t|�VqdSr<��int��.0�irrr�	<genexpr>��z-_supports_universal_builds.<locals>.<genexpr>r1r/��
�F)r;�tupler�
ValueError�bool)Zosx_versionrrr�_supports_universal_builds�s
rScCs�dtjvr|S|d��d}}t|�s4td�}n<tj�|��d�rptd|�	dd�f�}|rpd|vrptd�}|s|t
d	��||kr�tD]L}||vr�|tjvr�||��}|d
kr�|n|d|d<t||d�
|��q�|S)
Nr	rZclangZgccz'%s' --version�'�'"'"'zllvm-gcczCannot locate working compilerr
z++� )r
rrrr0r�basenamer>r.�replace�SystemError�_COMPILER_CONFIG_VARSrEr)r@ZccZoldcc�datarDZcv_splitrrr�_find_appropriate_compiler�s,

��r\cCsVtD]L}||vr|tjvr||}tjdd|tjd�}t�dd|�}t|||�q|S)N�
-arch\s+\w+\srV)�flagsz-isysroot\s*\S+)�_UNIVERSAL_CONFIG_VARSr
rr6�sub�ASCIIrE)r@rDr^rrr�_remove_universal_flags�srbcCs�dtjvr|St�d|d�dur�t�d|d�dd�f�}|r�tD]8}||vrF|tjvrF||}t�dd|�}t|||�qF|S)	Nr	z-arch\s+ppcrzNecho 'int main{};' | '%s' -c -arch ppc -x c -o /dev/null /dev/null 2>/dev/nullrTrUz-arch\s+ppc\w*\srV)	r
rr6r7r(rXr_r`rE)r@�statusrDr^rrr�_remove_unsupported_archs�s
��	rdcCsddtjvr`tjd}tD]F}||vrd||vr||}t�dd|�}|d|}t|||�q|S)N�	ARCHFLAGS�-archr]rV)r
rr_r6r`rE)r@ZarchrDr^rrr�_override_all_archss

rgcCsx|�dd�}t�d|�}|durt|�d�}tj�|�sttD]8}||vr:|tjvr:||}t�	dd|�}t
|||�q:|S)Nrr/z-isysroot\s*(\S+)r2z-isysroot\s*\S+(?:\s|$)rV)rCr6r7r9r
r�existsr_rr`rE)r@�cflagsr:ZsdkrDr^rrr�_check_for_unavailable_sdks
rjc
Cs�d}}t|�}t�s d}}nd|v}tdd�|D��}|sHdtjvr|z|�d�}|||d�=WqHtyzYq|YqH0dtjvr�|s�|tjd��}|r�dd	�t|�D�}|s�q�|d
}||dkr�|||d�=q�|||d�=q�d}|}d
d	�t|�D�}|�s"|}dd	�t|�D�}|D]D}||dk�rN||d}�ql�q&||t	d�d�}�ql�q&|�r�tj
�|��s�d
dlm
}	|	�d|�|	�d�|S)NFTrfcss|]}|�d�r|VqdS)�	-isysrootN�r>)rI�argrrrrKCrLz!compiler_fixup.<locals>.<genexpr>rer3cSsg|]\}}|�d�r|�qS�rkrl�rIrJ�xrrr�
<listcomp>UrLz"compiler_fixup.<locals>.<listcomp>rrkr2cSsg|]\}}|�d�r|�qSrnrlrorrrrqerLcSsg|]\}}|�d�r|�qSrnrlrorrrrqhrL)�logz4Compiling with an SDK that doesn't seem to exist: %sz$Please check your Xcode installation)r=rS�anyr
r�indexrQr�	enumerate�lenr�isdirZ	distutilsrr�warn)
Zcompiler_soZcc_argsZ	stripArchZstripSysrootrt�indicesZsysrootZargvar�idxrrrrrr0sR	




�
rcCs"t�st|�t|�t|�|Sr<)rSrbrgrj�r@rrrr{s
rcCst|�t|�t|�|Sr<)r\rdrgr{rrrr�s	rcCsx|�dd�}t�p|}|p|}|�rn|}d}|�td|�dd��}|r�z$tdd�|�d�dd	�D��}Wnty�d
}Yn0d
}|dk�r2d|��v�r2d
}t�d|�}tt	t
|���}t|�dkr�|d}n�|dkr�d
}n�|dkr�d}n||dk�rd}nl|dk�rd}n\|dk�r"d}nLtd|f��n<|dk�rNtj
dk�rnd}n |dv�rntj
dk�rjd}nd}|||fS) NZMACOSX_DEPLOYMENT_TARGETr/Zmacosxrcss|]}t|�VqdSr<rFrHrrrrK�rLz#get_platform_osx.<locals>.<genexpr>r1rr3)rNrrMrfZfatz
-arch\s+(\S+)r2)�i386�ppc)r|�x86_64Zintel)r|r}r~Zfat3)�ppc64r~Zfat64)r|r}rr~�	universalz%Don't know machine value for archs=%rr|lr~)ZPowerPCZPower_Macintoshrr})rCr;r?rPrrQr+r6�findall�sorted�setrvr�maxsize)r@Zosname�release�machineZmacverZ
macreleaseriZarchsrrrr�sT



�$




�

r)N)r
r6r�__all__r_rZr?rr.r0r4r;rBrErSr\rbrdrgrjrrrrrrrr�<module>s.

>(K)