ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    e5dIT                     @   s   d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlT ddlmZ dd	lmZ G d
d deZdS )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                )   @   s   e Zd ZdZ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(d)d*g)Zd+d,d-d.d/gZd+d,d-d0Zd1d2 Zd3d4 Zd5d6 Z	d7d8 Z
d9d: Zd;d< Zd=d> Zd?S )@	bdist_rpmzcreate an RPM distribution)zbdist-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))zpython=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-onlyNzonly regenerate spec file)zsource-onlyNzonly generate source RPM)zbinary-onlyNzonly generate binary RPM)z	use-bzip2Nz7use bzip2 instead of gzip to create source distribution)zdistribution-name=Nzgname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!))zgroup=Nz9package classification [default: "Development/Libraries"])zrelease=NzRPM release number)zserial=NzRPM serial number)zvendor=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)zicon=Nzname 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)zbuild-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-modeNzRPM 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)zinstall-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)zpre-uninstall=Nz<Specify a script for the pre-UNINSTALL phase of RPM building)zpost-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)zverify-script=Nz6Specify a script for the VERIFY phase of the RPM build)zforce-arch=Nz0Force an architecture onto the RPM build process)quietqz3Run the INSTALL phase of RPM building in quiet moder   r   r   r   r   )r   r   r   c                 C   s   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| _&d S )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>   3/usr/lib64/python3.8/distutils/command/bdist_rpm.pyinitialize_options   sN    zbdist_rpm.initialize_optionsc                 C   s   |  dd | jd kr6| js$tdtj| jd| _| jd krX| j	rPt
j| _qfd| _n| j	rftdtjdkr~tdtj | jr| jrtd	| j sd
| _|  dd |   d S )NZbdist)r   r   z)you must specify --rpm-base in RPM 2 moderpmZ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   )r   r   )Zset_undefined_optionsr   r9   ZDistutilsOptionErrorospathjoinr   r   r   sys
executablenameZDistutilsPlatformErrorr   r   distributionhas_ext_modulesr8   finalize_package_datar<   r>   r>   r?   finalize_options   s6    




zbdist_rpm.finalize_optionsc                 C   sT  |  dd |  dd| j | j f  |  d | d t| jtrxdD ]&}tj	
|rP|| jkrP| j| qP|  dd	 |  d
 |  d |  d | | j| _| d | d | d | d | d | d | d | d | d | d | d | d | d | d | d |  d d S )Nr    zDevelopment/Librariesr#   z%s <%s>r$   r%   )ZREADMEz
README.txtr!   1r"   r   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r2   r3   r4   r5   r6   r;   )Zensure_stringrI   Zget_contactZget_contact_emailZensure_string_list
isinstancer%   listrC   rD   existsappend_format_changelogr&   Zensure_filename)r=   Zreadmer>   r>   r?   rK      sB    




















zbdist_rpm.finalize_package_datac                 C   s  t r<td td| j td| j td| j td| j | jrT| j}| | n8i }dD ]&}t	j
| j|||< | ||  q\|d }t	j
|d| j  }| t||  fd	|  | jrd S | jjd d  }| d
}| jrdg|_ndg|_| d
 || j_| d }|d }| || | jrbt	j
| jrT| | j| ntd| j td dg}	| jr|	d n| j r|	d n
|	d |	!dd| j" g | j#r|	!ddt	j
$| j g | j%s|	d | j&r |	d |	| d}
|
d }d|
 d }d|||f }t	'|}z~g }d }|) }|sVq|* + }t,|dkstt-||d   |d krD|d }qD|( }|rt.d!t/| W 5 |(  X | 0|	 | j1s| j2 rt3 }nd"}| j sLt	j
|d# |}t	j
|st-| 4|| j t	j
| j|}| jjd$||f | js|D ]`}t	j
|d% |}t	j
|rX| 4|| j t	j
| jt	j
5|}| jjd$||f qXd S )&Nzbefore _get_package_data():zvendor =z
packager =zdoc_files =zchangelog =)SOURCESSPECSZBUILDRPMSSRPMSrT   z%s.speczwriting '%s'sdistZbztarZgztarr   rS   zicon file '%s' does not existzbuilding RPMsZ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'   r   zFailed to execute: %sanyrV   r	   rU   )6r   printr#   r$   r%   r&   r   r   ZmkpathrC   rD   rE   r   rI   get_nameZexecuter   _make_spec_fileZ
dist_filesZreinitialize_commandr   ZformatsZrun_commandZget_archive_filesZ	copy_filer'   rP   ZDistutilsFileErrorr   infor   rQ   r   extendr   r9   abspathr7   r   popenclosereadlinestripsplitlenAssertionErrorZDistutilsExecErrorreprZspawnZdry_runrJ   r   Z	move_filebasename)r=   Zspec_dirZrpm_dirr
   Z	spec_pathZsaved_dist_filesrW   sourceZ
source_dirZrpm_cmdZ
nvr_stringZsrc_rpmZnon_src_rpmZq_cmdoutZbinary_rpmsZ
source_rpmlinelZstatusZ	pyversionZsrpmfilenamerA   r>   r>   r?   run  s    







  





zbdist_rpm.runc                 C   s   t j| jt j|S )N)rC   rD   rE   r   rh   )r=   rD   r>   r>   r?   
_dist_path  s    zbdist_rpm._dist_pathc              
   C   sJ  d| j   d| j  dd d| j   d| jdd dd| j   g}td	}d
dd |	 D }d}d}|||}||kr|
d |
d| d
  |dddg | jr|
d n
|
d |d| j   d| j ddg | js| j  s&|
d n|
d| j  dD ]V}t| | }t|trb|
d|d|f  n|dk	r*|
d||f  q*| j  d kr|
d!| j    | jr|
d"| j  | jr|
d#d| j  | jr|
d$tj| j  | jr|
d% |dd&| j  g d'| jtjtj d( f }d)| }	| j!rXd*|	 }	d+| }
d,d-d.|	fd/d0|
fd1d2d3d4d5d6g	}|D ]n\}}}t| |}|s|r|dd7| g |rt"|}||# $d
 W 5 Q R X n
|
| q|dd8d9g | j%r$|
d:d| j%  | j&rF|dd;g || j& |S )<ziGenerate 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: zrpm --eval %{__os_install_post}
c                 S   s   g | ]}d |   qS )z  %s \)rc   ).0rk   r>   r>   r?   
<listcomp>  s   z-bdist_rpm._make_spec_file.<locals>.<listcomp>zbrp-python-bytecompile \
z%brp-python-bytecompile %{__python} \
z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post zName: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz	License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchzBuildArch: %s)ZVendorZPackagerZProvidesZRequiresZ	ConflictsZ	Obsoletesz%s: %s NZUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z
AutoReq: 0z%descriptionz%s %sr   z%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES)r1   r(   z&%setup -n %{name}-%{unmangled_version}Zbuildr)   Zinstallr*   )Zcleanr+   zrm -rf $RPM_BUILD_ROOT)Zverifyscriptr,   N)Zprer-   N)Zpostr.   N)Zpreunr/   N)Zpostunr0   N%z%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z
%changelog)'rI   r[   Zget_versionreplacer!   Zget_description
subprocessZ	getoutputrE   
splitlinesrQ   r^   r   Zget_licenser    r;   rJ   getattrlowerrN   rO   Zget_urlr   r5   r'   rC   rD   rh   r:   Zget_long_descriptionr   rF   argvr8   openreadrd   r%   r&   )r=   Z	spec_fileZvendor_hookZproblemZfixedZ
fixed_hookZfieldvalZdef_setup_callZ	def_buildZinstall_cmdZscript_optionsZrpm_optattrdefaultfr>   r>   r?   r\     s    


	





 zbdist_rpm._make_spec_filec                 C   s|   |s|S g }|  dD ]N}|  }|d dkrB|d|g q|d dkrZ|| q|d|  q|d sx|d= |S )zKFormat the changelog correctly and convert it to a list of strings
        rs   r   r   rr   rp   z  )rc   rd   r^   rQ   )r=   r&   Znew_changelogrk   r>   r>   r?   rR   1  s    zbdist_rpm._format_changelogN)__name__
__module____qualname__ZdescriptionZuser_optionsZboolean_optionsZnegative_optr@   rL   rK   rn   ro   r\   rR   r>   r>   r>   r?   r	      sx   m --  *r	   )__doc__ry   rF   rC   Zdistutils.corer   Zdistutils.debugr   Zdistutils.utilr   Zdistutils.file_utilr   Zdistutils.errorsZdistutils.sysconfigr   Z	distutilsr   r	   r>   r>   r>   r?   <module>   s   