Your IP : 18.117.231.160


Current Path : /opt/alt/python34/lib64/python3.4/distutils/command/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/distutils/command/__pycache__/bdist_rpm.cpython-34.pyc

�
h f�T�@s�dZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZddlTddl
mZdd	lmZGd
d�de�ZdS)zwdistutils.command.bdist_rpm

Implements the Distutils 'bdist_rpm' command (create RPM source and binary
distributions).�N)�Command)�DEBUG)�get_platform)�
write_file)�*)�get_python_version)�logc+@seZdZdZdfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd�d�d�d�d�d�d�d�d�d�d�d�d�d�d�g)Zd4d9d=d2dUgZid4d76d9d;6d=d?6ZdXdY�ZdZd[�Zd\d]�Z	d^d_�Z
d`da�Zdbdc�Zddde�Z
dS)��	bdist_rpmzcreate an RPM distribution�bdist-base=N�/base directory for creating built distributions�	rpm-base=�dbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2)�	dist-dir=�d�Ddirectory to put final RPM files in (and .spec files if --spec-only)�python=�Mpath to Python interpreter to hard-code in the .spec file (default: "python")�
fix-python�Lhard-code the exact path to the current Python interpreter in the .spec file�	spec-only�only regenerate spec file�source-only�only generate source RPM�binary-only�only generate binary RPM�	use-bzip2�7use bzip2 instead of gzip to create source distribution�distribution-name=�gname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)�group=�9package classification [default: "Development/Libraries"]�release=�RPM release number�serial=�RPM serial number�vendor=�aRPM "vendor" (eg. "Joe Blow <joe@example.com>") [default: maintainer or author from setup script]�	packager=�ARPM packager (eg. "Jane Doe <jane@example.net>")[default: vendor]�
doc-files=�6list of documentation files (space or comma-separated)�
changelog=�
RPM changelog�icon=�name of icon file�	provides=�%capabilities provided by this package�	requires=�%capabilities required by this package�
conflicts=�-capabilities which conflict with this package�build-requires=�+capabilities required to build this package�
obsoletes=�*capabilities made obsolete by this package�
no-autoreq�+do not automatically calculate dependencies�	keep-temp�k�"don't clean up RPM build directory�no-keep-temp�&clean up RPM build directory [default]�use-rpm-opt-flags�8compile with RPM_OPT_FLAGS when building from source RPM�no-rpm-opt-flags�&do not pass any RPM CFLAGS to compiler�	rpm3-mode�"RPM 3 compatibility mode (default)�	rpm2-mode�RPM 2 compatibility mode�prep-script=�3Specify a script for the PREP phase of RPM building�
build-script=�4Specify a script for the BUILD phase of RPM building�pre-install=�:Specify a script for the pre-INSTALL phase of RPM building�install-script=�6Specify a script for the INSTALL phase of RPM building�
post-install=�;Specify a script for the post-INSTALL phase of RPM building�pre-uninstall=�<Specify a script for the pre-UNINSTALL phase of RPM building�post-uninstall=�=Specify a script for the post-UNINSTALL phase of RPM building�
clean-script=�4Specify a script for the CLEAN phase of RPM building�verify-script=�6Specify a script for the VERIFY phase of the RPM build�force-arch=�0Force an architecture onto the RPM build process�quiet�q�3Run the INSTALL phase of RPM building in quiet modecCscd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_
d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_!d|_"d|_#d|_$d|_%d|_&dS)Nr�)'�
bdist_base�rpm_base�dist_dir�python�
fix_python�	spec_only�binary_only�source_only�	use_bzip2�distribution_name�group�release�serial�vendor�packager�	doc_files�	changelog�icon�prep_script�build_script�install_script�clean_script�
verify_script�pre_install�post_install�
pre_uninstall�post_uninstall�prep�provides�requires�	conflicts�build_requires�	obsoletes�	keep_temp�use_rpm_opt_flags�	rpm3_mode�
no_autoreq�
force_archr\)�self�r��@/opt/alt/python34/lib64/python3.4/distutils/command/bdist_rpm.py�initialize_options�sN																																						zbdist_rpm.initialize_optionscCs|jdd�|jdkrU|js7td��ntjj|jd�|_n|jdkr�|j	r|t
j|_q�d|_n|j	r�td��ntjdkr�t
dtj��n|jr�|jr�td	��n|jj�sd
|_n|jdd
�|j�dS)NZbdistr`z)you must specify --rpm-base in RPM 2 mode�rpmZpython3z8--python and --fix-python are mutually exclusive options�posixz9don't know how to create RPM distributions on platform %sz6cannot supply both '--source-only' and '--binary-only'rrb)�
bdist_baser�)�dist_dirr�)Zset_undefined_optionsrar�ZDistutilsOptionError�os�path�joinr`rcrd�sys�
executable�nameZDistutilsPlatformErrorrfrg�distribution�has_ext_modulesr��finalize_package_data)r�r�r�r��finalize_options�s.			zbdist_rpm.finalize_optionscCs�|jdd�|jdd|jj�|jj�f�|jd�|jd�t|jt�r�xEdD]:}tj	j
|�ro||jkro|jj|�qoqoWn|jd	d
�|jd�|jd�|jd
�|j|j
�|_
|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�|jd�dS)NrjzDevelopment/Librariesrmz%s <%s>rnro�README�
README.txtrk�1rlrirprqrrrsrtrurvrwrxryrzr|r}r~rr�r�)r�r�)Z
ensure_stringr�Zget_contactZget_contact_emailZensure_string_list�
isinstancero�listr�r��exists�append�_format_changelogrpZensure_filename)r�Zreadmer�r�r�r��s>	


!

















zbdist_rpm.finalize_package_datac
CsUtrStd�td|j�td|j�td|j�td|j�n|jru|j}|j|�nNi}x;d)D]3}t	j
j|j|�||<|j||�q�W|d}t	j
j|d|j
j��}|jt||j�fd|�|jrdS|j
jdd�}|jd
�}|jrRdg|_ndg|_|jd
�||j
_|j�d}|d}|j||�|jr�t	j
j|j�r�|j|j|�q�td|j��ntjd�dg}	t	j
jd�s%t	j
jd�r1dg}	n|jrJ|	jd�n&|j rc|	jd�n
|	jd�|	j!dd|j"g�|j#r�|	j!ddt	j
j$|j�g�n|j%s�|	jd�n|j&r�|	jd�n|	j|�d}
|
d }d!|
d"}d#|||f}
t	j'|
�}z�g}d}xn|j(�}|scPn|j)�j*�}t+|�d$ks�t,�|j|d%�|dkrM|d}qMqMW|j-�}|r�t.d&t/|
���nWd|j-�X|j0|	�|j1sQ|j
j2�r&t3�}nd'}|j s�t	j
j|d
|�}t	j
j|�sft,�|j4||j�t	j
j|j|�}|j
jjd(||f�n|jsQx�|D]�}t	j
j|d	|�}t	j
j|�r�|j4||j�t	j
j|jt	j
j5|��}|j
jjd(||f�q�q�WqQndS)*Nzbefore _get_package_data():zvendor =z
packager =zdoc_files =zchangelog =�SOURCES�SPECS�BUILD�RPMS�SRPMSz%s.speczwriting '%s'�sdistZbztarZgztarrzicon file '%s' does not existz
building RPMsr�z/usr/bin/rpmbuildz
/bin/rpmbuildZrpmbuildz-bsz-bbz-baz--definez__python %sz
_topdir %sz--cleanz--quietz%{name}-%{version}-%{release}z.src.rpmz%{arch}/z.%{arch}.rpmz%rpm -q --qf '%s %s\n' --specfile '%s'�r_zFailed to execute: %s�anyr	)r�r�r�r�r�)6r�printrmrnrorprerbZmkpathr�r�r�rar��get_nameZexecuter�_make_spec_fileZ
dist_filesZreinitialize_commandrhZformatsZrun_commandZget_archive_filesZ	copy_filerqr�ZDistutilsFileErrorr�inforgr�rf�extendrcr��abspathr�r\�popen�readline�strip�split�len�AssertionError�closeZDistutilsExecError�reprZspawnZdry_runr�rZ	move_file�basename)r�Zspec_dirZrpm_dirrZ	spec_pathZsaved_dist_filesr��sourceZ
source_dirZrpm_cmdZ
nvr_stringZsrc_rpmZnon_src_rpmZq_cmd�outZbinary_rpmsZ
source_rpm�line�lZstatusZ	pyversionZsrpm�filenamer�r�r�r��runs�
		

			

	
			
		 		


			
z
bdist_rpm.runcCs"tjj|jtjj|��S)N)r�r�r�rbr�)r�r�r�r�r��
_dist_path�szbdist_rpm._dist_pathcCsod|jj�d|jj�jdd�d|jj�d|jjdd�dd|jj�g}tjd	�}d
jdd�|j	�D��}d
}d}|j||�}||kr�|j
d�|j
d|d
�n|jdddg�|jr|j
d�n
|j
d�|jd|jj
�d|jddg�|js|jj�s�|j
d�q�n|j
d|j�x{dKD]s}t||j��}t|t�r�|j
d"|d#j|�f�q�|d$k	r�|j
d"||f�q�q�W|jj�d%krC|j
d&|jj��n|jrc|j
d'|j�n|jr�|j
d(d#j|j��n|jr�|j
d)tjj|j��n|jr�|j
d*�n|jdd+|jj�g�d,|jtjjtj d-�f}d.|}	|j!r6d/|	}	nd0|}
dLd4d5|	fd6d7|
fdMdNdOdPdQdRg	}x�|D]\}}
}t||
�}|s�|rz|jddE|g�|r�|jt"|dF�j#�j$d
��q�|j
|�qzqzW|jddGdHg�|j%r<|j
dId#j|j%��n|j&rk|jddJg�|j|j&�n|S)SziGenerate the text of an RPM spec file and return it as a
        list of strings (one per line).
        z
%define name z%define version �-�_z%define unmangled_version z%define release �z	Summary: zrpm --eval %{__os_install_post}�
cSs g|]}d|j��qS)z  %s \)r�)�.0r�r�r�r��
<listcomp>�s	z-bdist_rpm._make_spec_file.<locals>.<listcomp>zbrp-python-bytecompile \
z%brp-python-bytecompile %{__python} \
z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post z
Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz	License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz
BuildArch: %s�Vendor�Packager�Provides�Requires�	Conflicts�	Obsoletesz%s: %s� NZUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z
AutoReq: 0z%descriptionz%s %srz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESr{rr�&%setup -n %{name}-%{unmangled_version}ZbuildrsZinstallrt�cleanru�rm -rf $RPM_BUILD_ROOT�verifyscriptrv�prerw�postrx�preunry�postunrz�%�rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z
%changelog)r�r�r�r�r�r�)zprepzprep_scriptr�)r�zclean_scriptr�)r�z
verify_scriptN)r�zpre_installN)r�zpost_installN)r�z
pre_uninstallN)r�zpost_uninstallN)'r�r�Zget_version�replacerkZget_description�
subprocessZ	getoutputr��
splitlinesr�r�rhZget_licenserjr�r��getattr�lowerr�r�Zget_urlrirrqr�r�r�r�Zget_long_descriptionrcr��argvr��open�readr�rorp)r�Z	spec_fileZvendor_hookZproblemZfixedZ
fixed_hookZfield�valZdef_setup_callZ	def_buildZinstall_cmdZscript_optionsZrpm_opt�attr�defaultr�r�r�r��s�
	
	


	
#				#	&
	
	(
	 	
zbdist_rpm._make_spec_filecCs�|s
|Sg}x�|j�jd�D]i}|j�}|ddkr^|jd|g�q&|ddkr~|j|�q&|jd|�q&W|ds�|d=n|S)zKFormat the changelog correctly and convert it to a list of strings
        r�rrr�r�z  )r�r�r�r�)r�rpZ
new_changelogr�r�r�r�r�3s

zbdist_rpm._format_changelog)r
Nr)rNr
)rrr)rNr)rNr)rNr)rNr)rNr)rNr)rNr)rNr )r!Nr")r#Nr$)r%Nr&)r'Nr()r)Nr*)r+Nr,)r-Nr.)r/Nr0)r1Nr2)r3Nr4)r5Nr6)r7Nr8)r9Nr:)r;r<r=)r>Nr?)r@NrA)rBNrC)rDNrE)rFNrG)rHNrI)rJNrK)rLNrM)rNNrO)rPNrQ)rRNrS)rTNrU)rVNrW)rXNrY)rZNr[)zquietr]r^)�__name__�
__module__�__qualname__ZdescriptionZuser_optionsZboolean_optionsZnegative_optr�r�r�r�r�r�r�r�r�r�r�r	s�		

--��r	)�__doc__r�r�r�Zdistutils.corerZdistutils.debugrZdistutils.utilrZdistutils.file_utilrZdistutils.errorsZdistutils.sysconfigrZ	distutilsrr	r�r�r�r��<module>s$


?>