add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
f

��_�Lc@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)rrrr	Z_OSX_SUPPORT_INITIAL_cCs�|durtjd}|�tj�}tj�|�\}}tjdkrH|dkrH|d}tj�|�s�|D]$}tj�	||�}tj�|�rX|SdS|S)NZPATHZwin32z.exe)
�os�environ�splitZpathsep�pathZsplitext�sysZplatformZisfile�join)Z
executabler
ZpathsZbaseZextZp�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�tempfileZNamedTemporaryFileZImportError�openr
ZgetpidZclosingZname�system�readZdecode�strip)Z
commandstringrrZfpZcmdrrr�_read_output7s��
rcCst|�ptd|f�pdS)Nz/usr/bin/xcrun -find %s�)rr)Ztoolnamerrr�_find_build_toolJs
��rcCs~tdurzdaztd�}Wnty*YnP0zt�d|���}W|��n
|��0|durzd�|�d��	d�dd��atS)Nrz0/System/Library/CoreServices/SystemVersion.plistz=<key>ProductUserVisibleVersion</key>\s*<string>(.*?)</string>�.��)
�_SYSTEM_VERSIONrZOSError�re�searchrZcloser�groupr)r�mrrr�_get_system_versionSs
�r%cCs"t|�D]}|�t�r||=qdS�N)�list�
startswith�_INITPRE)�_config_varsZkrrr�_remove_original_valuesqs
r+cCs8|�|d�}||kr,t||vr,||t|<|||<dS)Nr)�getr))r*�cvZnewvalueZoldvaluerrr�_save_modified_valuexsr.cCsRt�}|r>ztdd�|�d�D��}Wnty<d}Yn0|rNt|dk�SdS)Ncs�|]}t|�VqdSr&�Zint��.0�irrr�	<genexpr>��z-_supports_universal_builds.<locals>.<genexpr>rr��
iF)r%�tupler�
ValueErrorZbool)Zosx_versionrrr�_supports_universal_builds�s
r:cCs�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)
NrrZclangZgccz'%s' --version�'�'"'"'zllvm-gcczCannot locate working compilerr	z++� )r
rrrrr
Zbasenamer(r�replaceZSystemError�_COMPILER_CONFIG_VARSr.r)r*ZccZoldccZdatar-Zcv_splitrrr�_find_appropriate_compiler�s,

��r@cCsVtD]L}||vr|tjvr||}tjdd|tjd�}t�dd|�}t|||�q|S)N�
-arch\s+\w+\sr=)�flagsz-isysroot\s*\S+)�_UNIVERSAL_CONFIG_VARSr
rr!�subZASCIIr.)r*r-rBrrr�_remove_universal_flags�srEcCs�dtjvr|St�d|d�dur�t�d|d�dd�f�}|r�tD]8}||vrF|tjvrF||}t�dd|�}t|||�qF|S)	Nrz-arch\s+ppcrzNecho 'int main{};' | '%s' -c -arch ppc -x c -o /dev/null /dev/null 2>/dev/nullr;r<z-arch\s+ppc\w*\sr=)	r
rr!r"rr>rCrDr.)r*Zstatusr-rBrrr�_remove_unsupported_archs�s
��	rFcCsddtjvr`tjd}tD]F}||vrd||vr||}t�dd|�}|d|}t|||�q|S)N�	ARCHFLAGS�-archrAr=)r
rrCr!rDr.)r*Zarchr-rBrrr�_override_all_archss

rIcCsx|�dd�}t�d|�}|durt|�d�}tj�|�sttD]8}||vr:|tjvr:||}t�	dd|�}t
|||�q:|S)Nrrz-isysroot\s*(\S+)rz-isysroot\s*\S+(?:\s|$)r=)r,r!r"r#r
r
ZexistsrCrrDr.)r*�cflagsr$Zsdkr-rBrrr�_check_for_unavailable_sdks
rKc
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)NFTrHcss|]}|�d�r|VqdS)�	-isysrootN�r()r2Zargrrrr4Cr5z!compiler_fixup.<locals>.<genexpr>rGrcS�g|]\}}|�d�r|�qS�rLrM�r2r3Zxrrr�
<listcomp>Ur5z"compiler_fixup.<locals>.<listcomp>rrLrcSrNrOrMrPrrrrQer5cSrNrOrMrPrrrrQhr5)�logz4Compiling with an SDK that doesn't seem to exist: %sz$Please check your Xcode installation)r'r:Zanyr
r�indexr9rZ	enumerate�lenr
ZisdirZ	distutilsrRZwarn)
Zcompiler_soZcc_argsZ	stripArchZstripSysrootrSZindicesZsysrootZargvarZidxrRrrrr0sR	




�
rcCs"t�st|�t|�t|�|Sr&)r:rErIrK�r*rrrr{s
rcCst|�t|�t|�|Sr&)r@rFrIrUrrrr�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_TARGETrZmacosxrcsr/r&r0r1rrrr4�r5z#get_platform_osx.<locals>.<genexpr>rrr)r7rr6rHZfatz
-arch\s+(\S+)r)�i386�ppc)rV�x86_64Zintel)rVrWrXZfat3)�ppc64rXZfat64)rVrWrYrXZ	universalz%Don't know machine value for archs=%rrVlrX)ZPowerPCZPower_MacintoshrYrW)r,r%r)r8rr9rr!ZfindallZsortedZsetrTrZmaxsize)r*ZosnameZreleaseZmachineZmacverZ
macreleaserJZarchsrrrr�sT



�$




�

rr&)r
r!rZ__all__rCr?r)rrrr r%r+r.r:r@rErFrIrKrrrrrrrrZ<module>s.

>(K)