Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/distutils/command/
Upload File :
Current File : //usr/lib/python2.7/distutils/command/bdist_rpm.pyc


|_c@sdZdZddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZm
Z
mZmZddlmZd	efd
YZdS(swdistutils.command.bdist_rpm

Implements the Distutils 'bdist_rpm' command (create RPM source and binary
distributions).s$Id$iN(tCommand(tDEBUG(t
write_file(tDistutilsOptionErrortDistutilsPlatformErrortDistutilsFileErrortDistutilsExecError(tlogt	bdist_rpmc+BseZdZd^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddg)Zd2d7d;d0dSgZid2d56d7d96d;d=6ZdVZdWZdXZ	dYZ
dZZd[Zd\Z
RS(screate an RPM distributionsbdist-base=s/base directory for creating built distributionss	rpm-base=sdbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2)s	dist-dir=tdsDdirectory to put final RPM files in (and .spec files if --spec-only)spython=sMpath to Python interpreter to hard-code in the .spec file (default: "python")s
fix-pythonsLhard-code the exact path to the current Python interpreter in the .spec files	spec-onlysonly regenerate spec filessource-onlysonly generate source RPMsbinary-onlysonly generate binary RPMs	use-bzip2s7use bzip2 instead of gzip to create source distributionsdistribution-name=sgname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)sgroup=s9package classification [default: "Development/Libraries"]srelease=sRPM release numbersserial=sRPM serial numbersvendor=saRPM "vendor" (eg. "Joe Blow <joe@example.com>") [default: maintainer or author from setup script]s	packager=sARPM packager (eg. "Jane Doe <jane@example.net>")[default: vendor]s
doc-files=s6list of documentation files (space or comma-separated)s
changelog=s
RPM changelogsicon=sname of icon files	provides=s%capabilities provided by this packages	requires=s%capabilities required by this packages
conflicts=s-capabilities which conflict with this packagesbuild-requires=s+capabilities required to build this packages
obsoletes=s*capabilities made obsolete by this packages
no-autoreqs+do not automatically calculate dependenciess	keep-temptks"don't clean up RPM build directorysno-keep-temps&clean up RPM build directory [default]suse-rpm-opt-flagss8compile with RPM_OPT_FLAGS when building from source RPMsno-rpm-opt-flagss&do not pass any RPM CFLAGS to compilers	rpm3-modes"RPM 3 compatibility mode (default)s	rpm2-modesRPM 2 compatibility modesprep-script=s3Specify a script for the PREP phase of RPM buildings
build-script=s4Specify a script for the BUILD phase of RPM buildingspre-install=s:Specify a script for the pre-INSTALL phase of RPM buildingsinstall-script=s6Specify a script for the INSTALL phase of RPM buildings
post-install=s;Specify a script for the post-INSTALL phase of RPM buildingspre-uninstall=s<Specify a script for the pre-UNINSTALL phase of RPM buildingspost-uninstall=s=Specify a script for the post-UNINSTALL phase of RPM buildings
clean-script=s4Specify a script for the CLEAN phase of RPM buildingsverify-script=s6Specify a script for the VERIFY phase of the RPM buildsforce-arch=s0Force an architecture onto the RPM build processtquiettqs3Run 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(Nii((tNonet
bdist_basetrpm_basetdist_dirtpythont
fix_pythont	spec_onlytbinary_onlytsource_onlyt	use_bzip2tdistribution_nametgrouptreleasetserialtvendortpackagert	doc_filest	changelogticontprep_scripttbuild_scripttinstall_scripttclean_scriptt
verify_scripttpre_installtpost_installt
pre_uninstalltpost_uninstalltpreptprovidestrequirest	conflictstbuild_requirest	obsoletest	keep_temptuse_rpm_opt_flagst	rpm3_modet
no_autoreqt
force_archR(tself((s1/usr/lib/python2.7/distutils/command/bdist_rpm.pytinitialize_optionssN																																						cCs|jdd|jdkrR|js4tdntjj|jd|_n|j	dkr|j
rytj|_	qd|_	n|j
rtdntj
dkrtdtj
n|jr|jrtd	n|jjsd
|_n|jdd
|jdS(NtbdistRs)you must specify --rpm-base in RPM 2 modetrpmRs8--python and --fix-python are mutually exclusive optionstposixs9don't know how to create RPM distributions on platform %ss6cannot supply both '--source-only' and '--binary-only'iR(s
bdist_bases
bdist_base(sdist_dirsdist_dir(tset_undefined_optionsRR
R1RtostpathtjoinRRRtsyst
executabletnameRRRtdistributionthas_ext_modulesR0tfinalize_package_data(R4((s1/usr/lib/python2.7/distutils/command/bdist_rpm.pytfinalize_optionss0					
	cCs|jdd|jdd|jj|jjf|jd|jdt|jtrxEdD]:}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|jddS(NRsDevelopment/LibrariesRs%s <%s>RRtREADMEs
README.txtRt1RRRRR R!R"R#R$R%R&R'R(R*R+R,R-R.R3(RDs
README.txt(t
ensure_stringR@tget_contacttget_contact_emailtensure_string_listt
isinstanceRtlistR:R;texiststappendt_format_changelogRtensure_filename(R4treadme((s1/usr/lib/python2.7/distutils/command/bdist_rpm.pyRBs>	


!

















cCstr>dGHdG|jGHdG|jGHdG|jGHdG|jGHn|jr`|j}|j|nNi}x;d&D]3}tj	j
|j|||<|j||qmW|d}tj	j
|d|jj
}|jt||jfd||jrdS|jj}|jd
}|jr4dg|_ndg|_|jd
||j_|jd}|d}|j|||jrtj	j|jr|j|j|qtd|jntjddg}	tj	jdstj	jdrdg}	n|jr)|	jdn&|jrB|	jdn
|	jd|j r|	j!ddtj	j"|jgn|j#s|	jdn|j$r|	jdn|	j|d}
|
d}d |
d!}d"|||f}
tj%|
}zg}d}xs|j'}|s(Pnt(j)t(j*|}t+|d#ksXt,|j|d$|dkr|d}qq|j-}|rt.d%t/|
nWd|j-X|j0|	|j1s|js%tj	j
|d
|}tj	j|st,|j2||jn|jsxR|D]G}tj	j
|d	|}tj	j|r5|j2||jq5q5WqndS('Nsbefore _get_package_data():svendor =s
packager =sdoc_files =schangelog =tSOURCEStSPECStBUILDtRPMStSRPMSs%s.specswriting '%s'tsdisttbztartgztarisicon file '%s' does not exists
building RPMsR7s/usr/bin/rpmbuilds
/bin/rpmbuildtrpmbuilds-bss-bbs-bas--defines
_topdir %ss--cleans--quiets%{name}-%{version}-%{release}s.src.rpms%{arch}/s.%{arch}.rpms%rpm -q --qf '%s %s\n' --specfile '%s'iisFailed to execute: %s(RQRRRSRTRU(3RRRRRRRtmkpathR:R;R<RR@tget_nametexecuteRt_make_spec_filet
dist_filestreinitialize_commandRtformatstrun_commandtget_archive_filest	copy_fileRRLRRtinfoRRMRR1textendtabspathR/RtpopenR
treadlinetstringtsplittstriptlentAssertionErrortcloseRtreprtspawntdry_runt	move_file(R4tspec_dirtrpm_dirR	t	spec_pathtsaved_dist_filesRVtsourcet
source_dirtrpm_cmdt
nvr_stringtsrc_rpmtnon_src_rpmtq_cmdtouttbinary_rpmst
source_rpmtlinetltstatustsrpmR7((s1/usr/lib/python2.7/distutils/command/bdist_rpm.pytrun
s		

		
	

	
			
		 		


			
cCs"tjj|jtjj|S(N(R:R;R<Rtbasename(R4R;((s1/usr/lib/python2.7/distutils/command/bdist_rpm.pyt
_dist_pathscCsd|jjd|jjjddd|jjd|jjdddd|jjg}|jd	d
dg|jr|jdn
|jd
|jd|jj	d|j
ddg|js|jjs|jdqn|jd|jx~dBD]v}t
|tj|}t|trj|jd|tj|fq|dCk	r|jd||fqqW|jjdkr|jd|jjn|jr|jd|jn|jr|jdtj|jn|jr;|jdtjj|jn|jrT|jd n|jdd!|jjgd"|jtjjtjd#f}d$|}|j rd%|}nd&|}dDd*d+|fd,d-|fdEdFdGdHdIdJg	}x|D]\}}	}
t
||	}|s'|
r|jdd;|g|ro|jtj!t"|d<j#d=q|j|
qqW|jdd>d?g|j$r|jd@tj|j$n|j%r|jddAg|j|j%n|S(KsiGenerate the text of an RPM spec file and return it as a
        list of strings (one per line).
        s
%define name s%define version t-t_s%define unmangled_version s%define release ts	Summary: s
Name: %{name}sVersion: %{version}sRelease: %{release}s-Source0: %{name}-%{unmangled_version}.tar.bz2s,Source0: %{name}-%{unmangled_version}.tar.gzs	License: sGroup: s>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootsPrefix: %{_prefix}sBuildArch: noarchs
BuildArch: %stVendortPackagertProvidestRequirest	Conflictst	Obsoletess%s: %stUNKNOWNsUrl: sDistribution: sBuildRequires: sIcon: s
AutoReq: 0s%descriptions%s %sis%s buildsenv CFLAGS="$RPM_OPT_FLAGS" s>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESR)R s&%setup -n %{name}-%{unmangled_version}tbuildR!tinstallR"tcleanR#srm -rf $RPM_BUILD_ROOTtverifyscriptR$tpreR%tpostR&tpreunR'tpostunR(t%trs
s%files -f INSTALLED_FILESs%defattr(-,root,root)s%doc s
%changelog(RRRRRRN(sprepsprep_scripts&%setup -n %{name}-%{unmangled_version}(Rsclean_scriptsrm -rf $RPM_BUILD_ROOT(Rs
verify_scriptN(Rspre_installN(Rspost_installN(Rs
pre_uninstallN(Rspost_uninstallN(&R@R[tget_versiontreplaceRtget_descriptionReRRMtget_licenseRR3RAtgetattrRitlowerRJRKR<R
tget_urlRR-RR:R;RR2tget_long_descriptionRR=targvR0RjtopentreadRR(R4t	spec_filetfieldtvaltdef_setup_callt	def_buildtinstall_cmdtscript_optionstrpm_opttattrtdefault((s1/usr/lib/python2.7/distutils/command/bdist_rpm.pyR]s

	


	
#				#	&
	
	+
	 	
cCs|s
|Sg}xtjtj|dD]l}tj|}|ddkrg|jd|gq,|ddkr|j|q,|jd|q,W|ds|d=n|S(sKFormat the changelog correctly and convert it to a list of strings
        s
it*RRs  (RiRjRkReRM(R4Rt
new_changelogR((s1/usr/lib/python2.7/distutils/command/bdist_rpm.pyRN(s"

N(sbdist-base=Ns/base directory for creating built distributions(s	rpm-base=Nsdbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2)(s	dist-dir=R	sDdirectory to put final RPM files in (and .spec files if --spec-only)(spython=NsMpath to Python interpreter to hard-code in the .spec file (default: "python")(s
fix-pythonNsLhard-code the exact path to the current Python interpreter in the .spec file(s	spec-onlyNsonly regenerate spec file(ssource-onlyNsonly generate source RPM(sbinary-onlyNsonly generate binary RPM(s	use-bzip2Ns7use bzip2 instead of gzip to create source distribution(sdistribution-name=Nsgname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)(sgroup=Ns9package classification [default: "Development/Libraries"](srelease=NsRPM release number(sserial=NsRPM serial number(svendor=NsaRPM "vendor" (eg. "Joe Blow <joe@example.com>") [default: maintainer or author from setup script](s	packager=NsARPM packager (eg. "Jane Doe <jane@example.net>")[default: vendor](s
doc-files=Ns6list of documentation files (space or comma-separated)(s
changelog=Ns
RPM changelog(sicon=Nsname of icon file(s	provides=Ns%capabilities provided by this package(s	requires=Ns%capabilities required by this package(s
conflicts=Ns-capabilities which conflict with this package(sbuild-requires=Ns+capabilities required to build this package(s
obsoletes=Ns*capabilities made obsolete by this package(s
no-autoreqNs+do not automatically calculate dependencies(s	keep-tempR
s"don't clean up RPM build directory(sno-keep-tempNs&clean up RPM build directory [default](suse-rpm-opt-flagsNs8compile with RPM_OPT_FLAGS when building from source RPM(sno-rpm-opt-flagsNs&do not pass any RPM CFLAGS to compiler(s	rpm3-modeNs"RPM 3 compatibility mode (default)(s	rpm2-modeNsRPM 2 compatibility mode(sprep-script=Ns3Specify a script for the PREP phase of RPM building(s
build-script=Ns4Specify a script for the BUILD phase of RPM building(spre-install=Ns:Specify a script for the pre-INSTALL phase of RPM building(sinstall-script=Ns6Specify a script for the INSTALL phase of RPM building(s
post-install=Ns;Specify a script for the post-INSTALL phase of RPM building(spre-uninstall=Ns<Specify a script for the pre-UNINSTALL phase of RPM building(spost-uninstall=Ns=Specify a script for the post-UNINSTALL phase of RPM building(s
clean-script=Ns4Specify a script for the CLEAN phase of RPM building(sverify-script=Ns6Specify a script for the VERIFY phase of the RPM build(sforce-arch=Ns0Force an architecture onto the RPM build process(squietRs3Run the INSTALL phase of RPM building in quiet mode(t__name__t
__module__tdescriptionR
tuser_optionstboolean_optionstnegative_optR5RCRBRRR]RN(((s1/usr/lib/python2.7/distutils/command/bdist_rpm.pyRs		

	0	"	/	}		(t__doc__t__revision__R=R:Ritdistutils.coreRtdistutils.debugRtdistutils.file_utilRtdistutils.errorsRRRRt	distutilsRR(((s1/usr/lib/python2.7/distutils/command/bdist_rpm.pyt<module>s"