CasperSecurity

Current Path : /lib/python3.10/distutils/command/__pycache__/
Upload File :
Current File : //lib/python3.10/distutils/command/__pycache__/bdist_rpm.cpython-310.pyc

o

��bc!T�@stdZddlZddlZddlZddlmZddlmZddlm	Z	ddl
TddlmZddl
mZGd	d
�d
e�ZdS)zwdistutils.command.bdist_rpm

Implements the Distutils 'bdist_rpm' command (create RPM source and binary
distributions).�N)�Command)�DEBUG)�
write_file)�*)�get_python_version)�logc@sdeZdZdZgd�Zgd�Zdddd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�	bdist_rpmzcreate an RPM distribution)))zbdist-base=Nz/base directory for creating built distributions)z	rpm-base=Nzdbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2))z	dist-dir=�dzDdirectory to put final RPM files in (and .spec files if --spec-only))zpython=NzMpath to Python interpreter to hard-code in the .spec file (default: "python"))z
fix-pythonNzLhard-code the exact path to the current Python interpreter in the .spec file)z	spec-onlyNzonly regenerate spec file)zsource-onlyNzonly generate source RPM)zbinary-onlyNzonly generate binary RPM)z	use-bzip2Nz7use bzip2 instead of gzip to create source distribution)zdistribution-name=Nzgname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!))zgroup=Nz9package classification [default: "Development/Libraries"])zrelease=NzRPM release number)zserial=NzRPM serial number)zvendor=NzaRPM "vendor" (eg. "Joe Blow <joe@example.com>") [default: maintainer or author from setup script])z	packager=NzBRPM packager (eg. "Jane Doe <jane@example.net>") [default: vendor])z
doc-files=Nz6list of documentation files (space or comma-separated))z
changelog=Nz
RPM changelog)zicon=Nzname of icon file)z	provides=Nz%capabilities provided by this package)z	requires=Nz%capabilities required by this package)z
conflicts=Nz-capabilities which conflict with this package)zbuild-requires=Nz+capabilities required to build this package)z
obsoletes=Nz*capabilities made obsolete by this package)�
no-autoreqNz+do not automatically calculate dependencies)�	keep-temp�kz"don't clean up RPM build directory)�no-keep-tempNz&clean up RPM build directory [default])�use-rpm-opt-flagsNz8compile with RPM_OPT_FLAGS when building from source RPM)�no-rpm-opt-flagsNz&do not pass any RPM CFLAGS to compiler)�	rpm3-modeNz"RPM 3 compatibility mode (default))�	rpm2-modeNzRPM 2 compatibility mode)zprep-script=Nz3Specify a script for the PREP phase of RPM building)z
build-script=Nz4Specify a script for the BUILD phase of RPM building)zpre-install=Nz:Specify a script for the pre-INSTALL phase of RPM building)zinstall-script=Nz6Specify a script for the INSTALL phase of RPM building)z
post-install=Nz;Specify a script for the post-INSTALL phase of RPM building)zpre-uninstall=Nz<Specify a script for the pre-UNINSTALL phase of RPM building)zpost-uninstall=Nz=Specify a script for the post-UNINSTALL phase of RPM building)z
clean-script=Nz4Specify a script for the CLEAN phase of RPM building)zverify-script=Nz6Specify a script for the VERIFY phase of the RPM build)zforce-arch=Nz0Force an architecture onto the RPM build process)�quiet�qz3Run the INSTALL phase of RPM building in quiet mode)rrrr
rrrr)r
rrcCs�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|_%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=�2/usr/lib/python3.10/distutils/command/bdist_rpm.py�initialize_options�sN
zbdist_rpm.initialize_optionscCs�|�dd�|jdur|jstd��tj�|jd�|_|jdur,|j	r(t
j|_nd|_n|j	r3td��tjdkr?t
dtj��|jrI|jrItd	��|j��sQd
|_|�dd�|��dS)N�bdist)rrz)you must specify --rpm-base in RPM 2 mode�rpm�python3z8--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'r)rr)�set_undefined_optionsrr8�DistutilsOptionError�os�path�joinrrr�sys�
executable�name�DistutilsPlatformErrorrr�distribution�has_ext_modulesr7�finalize_package_datar;r=r=r>�finalize_options�s6
�

�
��
zbdist_rpm.finalize_optionscCsT|�dd�|�dd|j��|j��f�|�d�|�d�t|jt�r<dD]}tj	�
|�r;||jvr;|j�|�q(|�dd	�|�d
�|�d�|�d�|�|j
�|_
|�d
�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�|�d�dS)NrzDevelopment/Librariesr"z%s <%s>r#r$)�READMEz
README.txtr �1r!rr%r&r'r(r)r*r+r,r-r.r/r1r2r3r4r5r:)�
ensure_stringrM�get_contact�get_contact_email�ensure_string_list�
isinstancer$�listrFrG�exists�append�_format_changelogr%�ensure_filename)r<�readmer=r=r>rO�sD
��

�

















zbdist_rpm.finalize_package_datacCs�trtd�td|j�td|j�td|j�td|j�|jr*|j}|�|�ni}dD]}t	j
�|j|�||<|�||�q.|d}t	j
�|d|j
���}|�t||��fd	|�|jrddS|j
jdd�}|�d
�}|jrydg|_ndg|_|�d
�||j
_|��d
}|d}|�||�|jr�t	j
�|j�r�|�|j|�ntd|j��t�d�dg}	|jr�|	�d�n|j r�|	�d�n|	�d�|	�!dd|j"g�|j#r�|	�!ddt	j
�$|j�g�|j%s�|	�d�|j&r�|	�d�|	�|�d}
|
d}d|
d}d|||f}
t	�'|
�}zCg}d}	|�(�}|�s$n!|�)��*�}t+|�d k�s3J�|�|d!�|du�rC|d
}�q|�,�}|�rTt-d"t.|
���W|�,�n|�,�w|�/|	�|j0�s�|j
�1��rrt2�}nd#}|j �s�t	j
�|d$|�}t	j
�|��s�J�|�3||j�t	j
�|j|�}|j
j�d%||f�|j�s�|D]4}t	j
�|d&|�}t	j
�|��r�|�3||j�t	j
�|jt	j
�4|��}|j
j�d%||f��q�dSdSdS)'Nzbefore _get_package_data():zvendor =z
packager =zdoc_files =zchangelog =)�SOURCES�SPECS�BUILD�RPMS�SRPMSr_z%s.speczwriting '%s'�sdist�bztar�gztarrr^zicon file '%s' does not existz
building RPMs�rpmbuildz-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'T�rzFailed to execute: %s�anyrbrra)5r�printr"r#r$r%rr�mkpathrFrGrHrrM�get_name�executer�_make_spec_file�
dist_files�reinitialize_commandr�formats�run_command�get_archive_files�	copy_filer&rY�DistutilsFileErrorr�inforrZr�extendrr8�abspathr6r�popen�readline�strip�split�len�close�DistutilsExecError�repr�spawn�dry_runrNr�	move_file�basename)r<�spec_dir�rpm_dirr	�	spec_path�saved_dist_filesrc�source�
source_dir�rpm_cmd�
nvr_string�src_rpm�non_src_rpm�q_cmd�out�binary_rpms�
source_rpm�line�l�status�	pyversion�srpm�filenamerAr=r=r>�runs����


�

�


�

��
�

����z
bdist_rpm.runcCstj�|jtj�|��S)N)rFrGrHrr�)r<rGr=r=r>�
_dist_path�szbdist_rpm._dist_pathc	CsJd|j��d|j���dd�d|j��d|j�dd�dd|j��g}t�d	�}d
�dd�|�	�D��}d
}d}|�||�}||krT|�
d�|�
d|d
�|�gd��|jrd|�
d�n|�
d�|�d|j�
�d|jddg�|js�|j��s�|�
d�n|�
d|j�dD](}t||���}t|t�r�|�
d|d�|�f�q�|dur�|�
d||f�q�|j��dkr�|�
d|j���|jr�|�
d |j�|jr�|�
d!d�|j��|jr�|�
d"tj�|j��|jr�|�
d#�|�dd$|j��g�d%|jtj�tj d&�f}d'|}	|j!�r!d(|	}	d)|}
d*d+d,|	fd-d.|
fd/d0d1d2d3d4g	}|D]C\}}
}t||
�}|�sH|�rz|�dd5|g�|�rut"|��}|�|�#��$d
��Wd�n	1�snwY�q8|�
|��q8|�gd6��|j%�r�|�
d7d�|j%��|j&�r�|�dd8g�|�|j&�|S)9ziGenerate 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}�
cSsg|]}d|���qS)z  %s \)rz)�.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� N�UNKNOWNzUrl: 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_FILES)r0r'z&%setup -n %{name}-%{unmangled_version}�buildr(�installr))�cleanr*zrm -rf $RPM_BUILD_ROOT)�verifyscriptr+N)�prer,N)�postr-N)�preunr.N)�postunr/N�%)r�z%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z
%changelog)'rMrk�get_version�replacer �get_description�
subprocess�	getoutputrH�
splitlinesrZrvr�get_licenserr:rN�getattr�lowerrWrX�get_urlrr4r&rFrGr�r9�get_long_descriptionrrI�argvr7�open�readr{r$r%)r<�	spec_file�vendor_hook�problem�fixed�
fixed_hook�field�val�def_setup_call�	def_build�install_cmd�script_options�rpm_opt�attr�default�fr=r=r>rm�s��

�
	
�

�
�
�
���
�
��
��zbdist_rpm._make_spec_filecCs||s|Sg}|���d�D]'}|��}|ddkr!|�d|g�q
|ddkr-|�|�q
|�d|�q
|ds<|d=|S)zKFormat the changelog correctly and convert it to a list of strings
        r�rrr�r�z  )rzr{rvrZ)r<r%�
new_changelogr�r=r=r>r[0szbdist_rpm._format_changelogN)�__name__�
__module__�__qualname__�description�user_options�boolean_options�negative_optr?rPrOr�r�rmr[r=r=r=r>rs"m�--*r)�__doc__r�rIrF�distutils.corer�distutils.debugr�distutils.file_utilr�distutils.errors�distutils.sysconfigr�	distutilsrrr=r=r=r>�<module>s
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY