
    n&phU                         S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJrJrJrJr  SS	KJr  SS
KJr   " S S\	5      rg)zwdistutils.command.bdist_rpm

Implements the Distutils 'bdist_rpm' command (create RPM source and binary
distributions).    N)log)ClassVar   )Command)DEBUG)DistutilsExecErrorDistutilsFileErrorDistutilsOptionErrorDistutilsPlatformError)
write_file)get_python_versionc                       \ rS rSr% Sr/ SQr/ SQr\\\	      \
S'   SSSS	.r\\\	\	4      \
S
'   S rSS jrSS jrSS jrS rS rS rSrg)	bdist_rpm   z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 mode)r   r   r   r   r   boolean_optionsr   r   r   )r   r   r   negative_optc                 &   S U l         S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l	        S U l
        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l        S U l         SU l!        SU l"        SU l#        SU l$        S U l%        SU l&        g )NFT)'
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   selfs    Z/var/www/html/venv/lib/python3.13/site-packages/setuptools/_distutils/command/bdist_rpm.pyinitialize_optionsbdist_rpm.initialize_options   s!   !%
	 " ! !"	"!%
    Nc                    U R                  SS5        U R                  cK  U R                  (       d  [        S5      e[        R
                  R                  U R                  S5      U l        U R                  c/  U R                  (       a  [        R                  U l        O$SU l        OU R                  (       a  [        S5      e[        R                  S:w  a  [        S[        R                   35      eU R                  (       a  U R                  (       a  [        S	5      eU R                   R#                  5       (       d  S
U l        U R                  SS5        U R'                  5         g )Nbdist)r   r   z)you must specify --rpm-base in RPM 2 moderpmpython3z8--python and --fix-python are mutually exclusive optionsposixz7don't know how to create RPM distributions on platform z6cannot supply both '--source-only' and '--binary-only'F)r!   r!   )set_undefined_optionsr    rB   r
   ospathjoinr   r"   r#   sys
executablenamer   r%   r&   distributionhas_ext_modulesrA   finalize_package_datarE   s    rG   finalize_optionsbdist_rpm.finalize_options   s   ""7,HI== >>*+VWWGGLL%@DM;;!nn'__&J  77g(I"''S   0 0&H 
   0022%*D"""7,DE""$rJ   c                    U R                  SS5        U R                  SU R                  R                  5        SU R                  R                  5        S35        U R                  S5        U R	                  S5        [        U R                  [        5      (       a[  S HU  n[        R                  R                  U5      (       d  M)  XR                  ;  d  M:  U R                  R                  U5        MW     U R                  S	S
5        U R                  S5        U R                  S5        U R                  S5        U R                  U R                  5      U l        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R	                  S5        U R	                  S5        U R	                  S5        U R	                  S5        U R	                  S5        U R                  S5        g )Nr)   zDevelopment/Librariesr,   z <>r-   r.   )READMEz
README.txtr*   1r+   r(   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r;   r<   r=   r>   r?   rD   )ensure_stringrW   get_contactget_contact_emailensure_string_list
isinstancer.   listrQ   rR   existsappend_format_changelogr/   ensure_filename)rF   readmes     rG   rY   bdist_rpm.finalize_package_data   s   7$;<  ,,./r$2C2C2U2U2W1XXYZ	
 	:&,dnnd++277>>&))fNN.JNN))&1 3 	9c*8$./;'//?V$]+^,-.^,_-]+^,_--. 	
+
+, 01,<(rJ   c                 "   [         (       ac  [        S5        [        SU R                  5        [        SU R                  5        [        SU R                  5        [        SU R
                  5        U R                  (       a  U R                  nU R                  U5        OO0 nS HB  n[        R                  R                  U R                  U5      X#'   U R                  X#   5        MD     US   n[        R                  R                  XR                  R                  5        S35      nU R                  [         X@R#                  5       4S	U S
35        U R                  (       a  g U R                  R$                  S S  nU R'                  S5      nU R(                  (       a	  S/Ul        OS/Ul        U R-                  S5        XPR                  l        UR/                  5       S   nWS   nU R1                  Xx5        U R2                  (       ad  [        R                  R5                  U R2                  5      (       a  U R1                  U R2                  U5        O[7        SU R2                   S35      e[8        R:                  " S5        S/n	U R<                  (       a  U	R?                  S5        O4U R@                  (       a  U	R?                  S5        OU	R?                  S5        U	RC                  SSU RD                   3/5        U RF                  (       a=  U	RC                  SS[        R                  RI                  U R                  5       3/5        U RJ                  (       d  U	R?                  S5        U RL                  (       a  U	R?                  S5        U	R?                  U5        Sn
U
S-   nSU
-   S-   nS U S!U S"U S
3n[        RN                  " U5      n / nS n URQ                  5       nU(       d  OMURS                  5       RU                  5       n[W        U5      S#:X  d   eUR?                  US$   5        Uc  US   nMe  URY                  5       nU(       a  [[        S%U< 35      e URY                  5         U R]                  U	5        U R^                  (       Gd  U R                  Ra                  5       (       a  [c        5       nOS&nU R@                  (       d  [        R                  R                  US'   U5      n[        R                  R5                  U5      (       d   eU Re                  UU R                  5        [        R                  R                  U R                  U5      nU R                  R$                  R?                  S(UU45        U R<                  (       d  U H  n[        R                  R                  US)   U5      n[        R                  R5                  U5      (       d  ML  U Re                  UU R                  5        [        R                  R                  U R                  [        R                  Rg                  U5      5      nU R                  R$                  R?                  S(UU45        M     g g g ! URY                  5         f = f)*Nzbefore _get_package_data():zvendor =z
packager =zdoc_files =zchangelog =)SOURCESSPECSBUILDRPMSSRPMSrn   z.specz	writing ''sdistbztargztarr   rm   zicon file 'z' does not existzbuilding RPMsrpmbuildz-bsz-bbz-baz--definez	__python z_topdir z--cleanz--quietz%{name}-%{version}-%{release}z.src.rpmz%{arch}/z.%{arch}.rpmzrpm -q --qf ' z\n' --specfile 'r      zFailed to execute: anyrq   r   rp   )4r   printr,   r-   r.   r/   r$   r!   mkpathrQ   rR   rS   r    rW   get_nameexecuter   _make_spec_file
dist_filesreinitialize_commandr'   formatsrun_commandget_archive_files	copy_filer0   rf   r	   r   infor&   rg   r%   extendr"   rB   abspathr@   r   popenreadlinestripsplitlencloser   spawndry_runrX   r   	move_filebasename)rF   spec_dirrpm_dirr   	spec_pathsaved_dist_filesrs   source
source_dirrpm_cmd
nvr_stringsrc_rpmnon_src_rpmq_cmdoutbinary_rpms
source_rpmlineellstatus	pyversionsrpmfilenamerM   s                           rG   runbdist_rpm.run  s   5/0*dkk*,.-0-0 >>}}HKK!GCWW\\$--;
GJ' D w'H GGLL.?.?.H.H.J-K5+QR	$8$8$:;yST=U	
 >>  ,,77:))'2>>$IEM$IEM!'7$((*1-Y'
v*99ww~~dii((tyy*5(;tyykAQ)RSS 	!,NN5!NN5!NN5!
i}$=>?>>NNJ(277??4==3Q2R(STU~~NN9%::NN9%y!
 5
z) :-> 	;-7G	{RSThhuo	KJ||~jjl((*3x1}$}""3q6*%!$QJ  YY[F(+>ui)HII  IIK

7|||  0022.0	!	##ww||GG$4jAww~~d++++tT]]377<<zB!!,,33[)X4VW##&C'',,wv<Cww~~c**sDMM:#%77<<rww?O?OPS?T#U))44;;'%$=  ' $ 	 IIKs   BY< <Zc                     [         R                  R                  U R                  [         R                  R	                  U5      5      $ )N)rQ   rR   rS   r!   r   )rF   rR   s     rG   
_dist_pathbdist_rpm._dist_path  s*    ww||DMM277+;+;D+ABBrJ   c           	         SU R                   R                  5       -   SU R                   R                  5       R                  SS5      -   SU R                   R                  5       -   SU R                  R                  SS5      -   SSU R                   R                  5       =(       d    S	-   /n[        R                  " S
5      nSR                  UR                  5        Vs/ s H  nSUR                  5        S3PM     sn5      nSnSnUR                  XE5      nXb:w  a(  UR                  S5        UR                  SU-   S-   5        UR                  / SQ5        U R                  (       a  UR                  S5        OUR                  S5        UR                  SU R                   R                  5       =(       d    S	-   SU R                  -   SS/5        U R                   (       d1  U R                   R#                  5       (       d  UR                  S5        OUR                  SU R                    35        S H~  n[%        XR'                  5       5      n[)        U[*        5      (       a2  UR                  SR-                  USR                  U5      5      5        Mc  Uc  Mh  UR                  U SU 35        M     U R                   R/                  5       (       a,  UR                  S U R                   R/                  5       -   5        U R0                  (       a  UR                  S!U R0                  -   5        U R2                  (       a-  UR                  S"SR                  U R2                  5      -   5        U R4                  (       a;  UR                  S#[6        R8                  R;                  U R4                  5      -   5        U R<                  (       a  UR                  S$5        UR                  SS%U R                   R?                  5       =(       d    S/5        U R@                   S[6        R8                  R;                  [B        RD                  S&   5       3n	U	 S'3n
U RF                  (       a  S(U
-   n
U	 S)3nS*S+S,U
4S-S.U4S/S0S1S2S3S4/	nU H  u  pn[%        X5      nU(       d	  U(       d  M!  UR                  SS5U-   /5        U(       aD  [I        U5       nUR                  URK                  5       RM                  S5      5        SSS5        M  UR                  U5        M     UR                  / S6Q5        U RN                  (       a-  UR                  S7SR                  U RN                  5      -   5        U RP                  (       a.  UR                  SS8/5        UR                  U RP                  5        U$ s  snf ! , (       d  f       GM>  = f)9zYGenerate 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: UNKNOWNzrpm --eval %{__os_install_post}
  z \zbrp-python-bytecompile \
z%brp-python-bytecompile %{__python} \
z3# Workaround for https://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: )VendorPackagerProvidesRequires	Conflicts	Obsoletesz{}: {}rw   Nz: zUrl: zDistribution: zBuildRequires: zIcon: z
AutoReq: 0z%descriptionr   z buildzenv CFLAGS="$RPM_OPT_FLAGS" z< install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES)r:   r1   z&%setup -n %{name}-%{unmangled_version}buildr2   installr3   )cleanr4   zrm -rf $RPM_BUILD_ROOT)verifyscriptr5   N)prer6   N)postr7   N)preunr8   N)postunr9   N%)r   z%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z
%changelog))rW   r|   get_versionreplacer*   get_description
subprocess	getoutputrS   
splitlinesr   rg   r   r'   get_licenser)   rD   rX   getattrlowerrd   re   formatget_urlr(   r>   r0   rQ   rR   r   rC   get_long_descriptionr"   rT   argvrA   openreadr   r.   r/   )rF   	spec_filevendor_hookr   problemfixed
fixed_hookfieldvaldef_setup_call	def_buildinstall_cmdscript_optionsrpm_optattrdefaultfs                    rG   r~   bdist_rpm._make_spec_file  s    d//88::!2!2!>!>!@!H!Hc!RR(4+<+<+H+H+JJ!5!5c3!??4,,<<>K)L
	 !**+LM ii/:/E/E/G!
/Gtbc"/G!
  09 ((8
$RS9JFMN 	 
 	 >>LMKL4,,88:GiH

"L 	
 	 $$4466  !45{4??*;<=
E $.C#t$$  !FG  E7"SE!23
 $$&&Wt'8'8'@'@'BBC!!-0F0FFG.$:M:M1NNO99X(8(8(CCD??\*224:
 	$ !KK="''*:*:388A;*G)HI%&f-	!!6BI (((de Nni0(+6?3(*,.

 '5"G7 $%Cgg  'M"  ca!(()=> # $$W- '5  	 
 	 >>Wsxx'??@>>  T^^,k!
~ #s   V,/V11
W	c                 >   U(       d  U$ / nUR                  5       R                  S5       Ha  nUR                  5       nUS   S:X  a  UR                  SU/5        M1  US   S:X  a  UR                  U5        MM  UR                  SU-   5        Mc     US   (       d  US	 U$ )zBFormat the changelog correctly and convert it to a list of stringsr   r   *r   r   r   )r   r   r   rg   )rF   r/   new_changelogr   s       rG   rh   bdist_rpm._format_changelogD  s    OO%++D1D::<DAw#~$$b$Z0aC$$T*$$TD[1 2 Qa rJ   )'r   r%   r>   r2   r/   r4   r=   r!   r(   r.   r#   rD   r)   r0   r3   r@   rC   r?   r-   r7   r9   r6   r8   r:   r1   r;   r"   r   r*   r<   rB   r    r+   r&   r$   r'   rA   r,   r5   )returnN)__name__
__module____qualname____firstlineno__descriptionuser_optionsr   r   re   str__annotations__r   dictrH   rZ   rY   r   r   r~   rh   __static_attributes__ rJ   rG   r   r      sx    .KoLb,OXd3i(  $/ .L(4S>* +Z%B,)\~@CiVrJ   r   )__doc__rQ   r   rT   distutils._logr   typingr   corer   debugr   errorsr   r	   r
   r   	file_utilr   	sysconfigr   r   r   rJ   rG   <module>r      sA   
 
  
      # *~ ~rJ   