403Webshell
Server IP : 182.53.201.61  /  Your IP : 216.73.217.175
Web Server : Apache/2.2.15 (Fedora)
System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/11490/root/usr/lib/python2.6/site-packages/createrepo/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/11490/root/usr/lib/python2.6/site-packages/createrepo/__init__.pyo
'Jc@s
ddkZddkZddkZddkZddkZddkZddkZddklZddk	l
Z
ddkZddkZddk
lZlZlZddklZddklZddklZddkZddklZlZlZddkZyddkZWne j
oddkZnXyddk!Z!Wne j
onXdd	kl"Z"l#Z#l$Z$l%Z%l&Z&ddk'Z'd
Z(de)fdYZ*d
e)fdYZ+dfdYZ,de,fdYZ-de)fdYZ.dS(iN(tBZ2File(tgrabber(tmisctErrorst
to_unicode(t
executeSQL(tMetaSack(tYumAvailablePackage(t_t
errorprinttMDError(t	_gzipOpentbzipFiletcheckAndMakeDirtGzipFiletchecksum_and_renames0.9.8tMetaDataConfigcBseZdZRS(cCst|_t|_t|_g|_d|_d|_d|_t|_	d|_
t|_ti
|_t|_t|_t|_t|_d|_d|_g|_d|_d|_d|_d|_t|_t|_d|_dddg|_ddg|_t|_g|_ t|_!d	|_"d
|_#d|_$d|_%d
|_&d|_'d|_(d|_)d|_*g|_+d|_,t|_-h|_.t/t0t1i1|_2g|_3g|_4dS(Ntsha256sdrpms/sprestodelta.xml.gziis	.*bin\/.*s
^\/etc\/.*s^\/usr\/lib\/sendmail$sprimary.xml.gzsfilelists.xml.gzsother.xml.gzs
repomd.xmls	.repodatatrepodatas.olddataii
(5tFalsetquiettverbosetprofiletexcludestNonetbaseurlt	groupfiletsumtypetprettytcachedirt	use_cachetostgetcwdtbasedirtchecktstsplittupdatetdeltastdeltadirtdelta_relativetoldpackage_pathst	deltafilet
num_deltastmax_delta_rpm_sizetupdate_md_patht	skip_stattdatabaset	outputdirt
file_patternstdir_patternst
skip_symlinkstpkglistt
database_onlytprimaryfilet
filelistsfilet	otherfilet
repomdfilettempdirtfinaldirtolddirtmdtimestampt	directorytdirectoriestchangelog_limittunique_md_filenamestadditional_metadatatstrtintttimetrevisiontcontent_tagstdistro_tags(tself((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyt__init__7s\																																									(t__name__t
__module__RI(((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyR6stSimpleMDCallBackcBs#eZdZdZdZRS(cCsti|IJdS(N(tsyststderr(RHtthing((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyterrorlogiscCs	|GHdS(N((RHRO((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pytloglscCsFtiidddtiid|||ftiidS(Ns
t iPs
%d/%d - %s(RMtstdouttwritetflush(RHtitemtcurrentttotal((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pytprogressos(RJRKRPRQRY(((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRLhs		tMetaDataGeneratorcBs"eZdddZdZdZdZdZdZdZ	dZ
dZd	Ze
d
dZdZd
ZdZdZdZdZdddZgddZdZdZdZdZedhdZdZdZedZRS(cCs'||_|djot|_n|pt|_n
||_tii|_d|_	d|_
g|_h|_|ii
o|iio
tdn|iip|ii
g|i_n|ii
p|iid|i_
n|iiot|i_n|i|idS(Nis#No directory given on which to run.(tconfRRRLtcallbacktrpmUtilsttransactiontinitReadOnlyTransactionttstpkgcounttcurrent_pkgtfilestrpmlib_reqsR=R>R
RtTrueRt_parse_directoryt_test_setup_dirs(RHt
config_objR\((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRIvs*	
					




cCstii|iio@tii|ii|i_tii|ii|i_n1tii	|ii|i_|ii|i_tii
|ii|ii|_|iip+tii
|ii|ii|i_ndS(s_pick up the first directory given to us and make sure we know
           where things should goN(
RtpathtisabsR[R=tdirnameR!tbasenametrelative_dirtrealpathtjointpackage_dirR/(RH((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRfs"
cCsx|iiD]}tii|o
|}nB|idotii|}ntii|ii|}tii	|pt
td|ntii|pt
td|q
q
Wti
|iitipt
td|iintii|ii|ii}t|pt
td|ntii|ii|ii}t|pt
td|n|iioUtii|ii|ii}t|pt
td|n||i_ntii	tii|ii|iiot
td|iinddg}|iio|id	nx|D]}tii|iit|i|}tii	|oti
|tipt
td
|n|iioZ|d}	tii	|	o9tii|	}
|
|iijo|
|i_q:q>qBqjqjW|iio|ii}|iio"tii|i|ii}n6tii|p"tii|i|ii}ntii	|pt
td|n||i_n|iior|ii}tii|ptii|ii|}nt|pt
td
|n||i_ndS(Ns../sDirectory %s must exists%s must be a directorysDirectory %s must be writable.sCannot create/verify %ss,Old data directory exists, please remove: %sR9R:R&s7error in must be able to write to metadata dir:
  -> %ss/repomd.xmls$Error: groupfile %s cannot be found.s(Error: cannot open/write to cache dir %s( R[R>RRiRjt
startswithRnRoR!texistsR
RtisdirtaccessR/tW_OKR9R
R:R%R'R&R;tappendtgetattrR"tgetctimeR<RR#RpR(RHtmydirttestdirttemp_outputt
temp_finalt
temp_deltatdirecstdirectfilepathtrxmlt	timestampta((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRgsv

!
!


.


 

""

cCsyti|}Wntij
odSX||||xM|D]E}tii||}tii|o|i|||qDqDWdS(ssDirectory tree walk with callback function.
         copy of os.path.walk, fixes the link/stating problem
         N(RtlistdirterrorRiRoRst
_os_path_walk(RHttoptfunctargtnamestname((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRscsKtfd}g}|di|||S(sjReturn all files in path matching ext, store them in filelist,
        recurse dirs. Returns a list objectcsx|D]}tii|oqniiotii|oqq|idjoD|idd}|id}|i	tii
||qqWdS(Ns%stit/(RRiRsR[R2tislinktlowertreplacetlstripRvRo(tfilelistRkRtfntrelativepath(textlenRHtexttstartdir(s7/usr/lib/python2.6/site-packages/createrepo/__init__.pytextension_visitors R(tlenR(RHR=RRR((RRHRRs7/usr/lib/python2.6/site-packages/createrepo/__init__.pytgetFileLists
cCst|dS(s1subclass this if you want something different....N(R	(RHRO((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRPscCs|iiotii|ii|ii}|i|d}|i|}x|D]}tii|ii|ii|}tii	|p|i
itd|ntii
||iijotStSqVWntS(socheck the timestamp of our target dir. If it is not newer than 
           the repodata return False, else Trues.rpmscannot get to file: %s(R[R"RRiRoR!R=RttrimRpmsRrR\RPRRxR<RRe(RHtdnRctfR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pytcheckTimeStamps s
!$cCsg}xZ|D]R}xI|iiD];}ti||o"||jo|i|q[q q Wq
Wx,|D]$}||jo|i|qjqjW|S(N(R[RtfnmatchRvtremove(RHRctbadrpmstrpm_filetglob((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyR2s


cCs|iioh|iid6tii|id6}|iiot|d<n|ii	otii|ii	}n
|ii
}ti|||_
ndS(stsets up the .oldData object for handling the --update call. Speeds
           up generating updates for new metadataRtpkgdirtdo_statN(R[R$RRRitnormpathRpR-RR,R/treadMetadatat
MetadataIndextoldData(RHtoptst
old_repo_path((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyt_setup_old_metadata_lookup>s



cCs*t|dpti|_n|iS(Nt_grabber(thasattrRt
URLGrabberR(RH((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyt_setup_grabberWstfgetcCs
|iS((R(RH((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyt<lambda>]scCs|iio|in|iio|ii}n|i|id}t|tp|i|}nt	||_
y%|i|i||i
Wn.ttfj
o}ttd|nXdS(s.all the heavy lifting for the package metadatas.rpms&Cannot access/write repodata files: %sN(R[R$RR3RRpt
isinstanceRRRRatopenMetadataDocstwriteMetadataDocstcloseMetadataDocstIOErrortOSErrorR
R(RHtpackageste((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyt
doPkgMetadata`s



cCsl|iio|in.|i|_|i|_|i|_|ii	o|i
|_ndS(N(R[R4tsetup_sqlite_dbst
_setupPrimaryR5t_setupFileliststflfilet_setupOtherR7R%t_setupDeltaR)(RH((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRts

cCs^tii|ii|ii|ii}t|d}|id|id|i	|S(Ntws'<?xml version="1.0" encoding="UTF-8"?>
su<metadata xmlns="http://linux.duke.edu/metadata/common" xmlns:rpm="http://linux.duke.edu/metadata/rpm" packages="%s">(
RRiRoR[R/R9R5RRTRa(RHtprimaryfilepathtfo((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyR~s
	cCs^tii|ii|ii|ii}t|d}|id|id|i	|S(NRs'<?xml version="1.0" encoding="UTF-8"?>
sJ<filelists xmlns="http://linux.duke.edu/metadata/filelists" packages="%s">(
RRiRoR[R/R9R6RRTRa(RHtfilelistpathR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRs
	cCs^tii|ii|ii|ii}t|d}|id|id|i	|S(NRs'<?xml version="1.0" encoding="UTF-8"?>
sF<otherdata xmlns="http://linux.duke.edu/metadata/other" packages="%s">(
RRiRoR[R/R9R7RRTRa(RHt
otherfilepathR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRs
	cCsWtii|ii|ii|ii}t|d}|id|id|S(NRs'<?xml version="1.0" encoding="UTF-8"?>
s<prestodelta>
(	RRiRoR[R/R9R)RRT(RHt
deltafilepathR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRs

c
Cs|ii}|p
|i}n|ip
tdn|iddjot|dpti|_	nt
ii|}t
ii
|}|i	}t
ii|i	|}|iip|iid|ny|ii||}Wq8tij
o}td||fq8Xnd||f}y%ti|i|d|ii}Wn%tij
o}td	|nX|ii|_||_||_|i|_ x2|i!D]'}	|	i"d
od|i#|	<qqW|i$djotd
|n|S(s5rpmfile == relative path to file from self.packge_dirs"Blank filename passed in, skippings://iR9s
Downloading %ss(Unable to retrieve remote package %s: %ss%s/%sRsUnable to open package: %ssrpmlib(iRs7No Package ID found for package %s, not going to add itN(NR(&R[RRptstripR
tfindRttempfiletmkdtempR9RRiRlRkRoRR\RQRturlgrabtURLGrabErrortyumbasedtCreateRepoPackageR`RRt	MiscErrorRt	_cachedirt_baseurlt_reldirRbt_packagenumbertrequires_printRqRdtchecksumR(
RHtrpmfiletpkgpathtreldirRtpkgnametdestRtpotr((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pytread_in_packagesJ


	
		
c
CsU|p|ii}n|p|ii}n|}x|D]}|id7_t}|iio_|}|iddjotii	|}n|i
i|}|dj	o
t
}qn|p|ptii|ii|}n|}t|tpvy|i|d|d|}	Wn2tj
o&}
|iid||
fq;nX|iio|i|	qn|}	|iioq|ii|	i|ii|	i|ii|	id|ii n|ii!o|ii"t#d|n|\}}}
x||if||if|
|iffD]\}}|djoPn|i$d	|ii%}|o|i|n2|ii!o$|ii"t#d
||fn|idqIW|i
i&||ii'pT|ii!o'|ii"d|i|i(|fqJ|ii)||i|i(q;q;W|iS(
Nis://iRRs
Error %s: %s
t
clog_limits#Using data from old metadata for %ssUTF-8s#empty serialize on write to%s in %ss
s
%d/%d - %s(*R[R3R=RbRR$RRRiRlRtgetNodesRReRoR!RRRR
R\RPR%t_do_delta_rpm_packageR4R5RTtxml_dump_primary_metadataRtxml_dump_filelists_metadataR7txml_dump_other_metadataR?RRQRt	serializeRt	freeNodesRRaRY(RHR3RR=tpkgtrecycledtold_pkgtnodesRRRtprimarynodetfilenodet	othernodetnodetoutfiletoutput((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRsx









$cCs|iip|iidn|iip|iitdn|iio|iiin|i	i
d|i	i|iip|iitdn|iio|iiin|ii
d|ii|iip|iitdn|iio|ii
in|ii
d|ii|iioti}|iip|iitdn|ii
|i|ii
d	|ii|iio"|iid
ti|qndS(NRsSaving Primary metadatas
</metadata>sSaving file lists metadatas

</filelists>sSaving other metadatas

</otherdata>sSaving delta metadatas
</prestodelta>sdeltam time: %0.3f(R[RR\RQRR4t	md_sqlitetpri_cxtcloseR5RTtfile_cxRtother_cxR7R%RDR)tgenerate_delta_xmlR(RHt	deltam_st((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyR:s:













c
Cspti}t|i|iijo*|iip|iid|ndS|i}x|ii	D]}g}||joqknxB||D]6}t
ii|i
|io|i|qqWg}x|D]}y%ti|i|d|ii}Wntij
o}	qnX|i|if|i|ifjoqn||joqn|i|ijoqn|i||i|iqWx|d|ii!D]v}
ti}ti|
||ii}|iip
|iio.|iid|
||ti|fqqWqkW|iio(|iid|ti|fndS(s|makes the drpms, if possible, for this package object.
           returns the presto/delta xml metadata as a string
        s0Skipping %s package that is > max_delta_rpm_sizeNRis'created drpm from %s to %s: %s in %0.3fstotal drpm time for %s: %0.3f(RDRCtsizeR[R+RR\RQt_get_old_package_dictR(RRiRlRqRRvRRR`RRRtarchtEVRtsorttreverseR*t	deltarpmstcreate_drpmR&R(
RHRt
drpm_pkg_timetopdtdtpot_candRt
candidatestthispoRtdelta_ptdt_sttdrpmfn((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRbsV


%


*
cCst|do|iSh|_g}x|iiD]}x|i|dD]}|d|}ti|}t|ti|ii	jo|i
id|qMn|ii|pg|i|<n|i|i
|d|qMWq4W|iS(Nt_old_package_dicttrpmRs0Skipping %s package that is > max_delta_rpm_size(RR	R[R(RRtstatRCtST_SIZER+R\RQthas_keyRv(RHtoplRRtfptfpstat((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRs$	
 $c
CsWh}g}x|i|iidD]}tii|iid|}ti|i	|iid|d|ii
}ti||ii
|}|i|ipg||i<n||ii|iq%Wxp|iD]b\}}}	}
}|id||	|
||f|i||||	|
|f|idqWdi|S(s~take the delta rpm output dir, process all the drpm files
           produce the text output for the presto/delta xml metadatatdrpmRRsH  <newpackage name="%s" epoch="%s" version="%s" release="%s" arch="%s">
s   </newpackage>
RR(RR[R&RRiRR'RRR`RRtDeltaRPMPackageR/R
tpkgtupRvtxml_dump_metadatatkeystextendRo(RHttargetstresultstdrpm_fntdrpm_rel_fntdrpm_poRtnRRtvR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRs(	#	
	 tgzipcCstii|}t|d}tii|ii|ii}	|o|djo8d|}tii|	|}
td|
dd}q|djo8d|}tii|	|}
t	d|
dd}qn%tii|	|}
t|
d	}|i
|i|i|i
d
ti|ii|}|i|iio1t|
|ii\}
}
tii|
}n*|oti|ii|
}
n|}
ti|
d}|iddd}|id
||iddd}|iidj	o|id|iin|idtii|ii||idd|
}|id
|ii|o/|idd|}|id
|iin|iddt|}x3|iD]%\}}|id|t|qWdS(s:add random metadata to the repodata dir and repomd.xml
           mdfile = complete path to file
           mdtype = the metadata type to use
           xml_node = the node of the repomd xml object to append this 
                      data onto
           compress = compress the file before including it
        RRs%s.gztfilenametmodetwbtbzip2s%s.bz2Riitdatattypetlocationsxml:basethrefRs
open-checksumRN(RRiRltopenRoR[R/R9RRRTtreadRtseekRRRR@RRtnewChildRtnewPropRR:RBtitems(RHtmdfiletmdtypetxml_nodetcompresst
compress_typetattribstsfileRtoutdirtoutfnRt	open_csumtcsumttimestR#R%RtopencsumRtkR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pytaddArbitraryMetadatasR
!







%
c7Cs	tid}|id7dd7}|idd7}|i||idd}tii|i	i
|i	i}tii||i	i}|id7d|i	i
}|i	ip
|i	io|id7dd7}x)|i	iD]}	|id7d|	}
qWxN|i	iD]<\}}	|id7d	|	}|o|id
|qqWn|i	i}
|i	ioCg}|iidf|iidf|iid
fg}d}n@|i	idf|i	idf|i	idfg}g}d}|i	io|i|i	idfn|i	ioi|i	ip|ii dnyt!t"i#}Wnt$j
o
d}nXt"i%||d7}nx|D]\}}tii||}t&|}t'i(|
g}x|i)|d8oqW|i*|
}t+|}|i,t'i-|
|}ti.|d}h}h}|i	ioe|d9jo5|i	i/o$|ii d|t0i1fqn|djo|i2||nC|djo|i3||n"|djo|i4||n|d:jod|}tii||}d|} tii|| }!ti5||!d| }"tii||"}#t'i-|
|!||<t6|!|#t'i-|
|#||<ti.|!}$ti7|!|i	i8oId||| f}%tii||%}&ti5|#|&|&}#|%}"nti.|#}'d|}(|id7dd7}|id |(|id7d!d7})|i	i9d7j	o|)id"|i	i9n|)id#tii|i	i:|"|id7d$||}*|*id |
|id7d%t!|'i;}+|id7d&t!|'i<|id7d't!|$i<|id7d(||},|,id |
|id7d)|}-|i	i/o$|ii d*|t0i1fqqn|id7dd7}|id ||id7d$|}*|*id |
|id7d%t!|}ti.tii||}.|id7d&t!|.i<|id7d't!||id7d(|},|,id |
|id7d!d7})|i	i9d7j	o|)id"|i	i9n|i	i8oNd+||f}/tii||}0tii||/}1ti5|0|1n|}/|/}|)id#tii|i	i:|qW|i	io!|i	io|ii d,nxu|D]m\}2}h|d)6}3|i=|2||d-t>d.d/d0|3yti7|2Wqt?t@fj
o	}4qXqW|i	iAd7j	o<|i=|i	iAd1||i=|i	iAd2|d-tBn|i	iCo:x7|i	iCiDD]\}5}6|i=|6|5|q	Wny|iE|d3d4Wn.|iiFtGd5|tHd6|nX~d7S(;s[wrapper to generate the repomd.xml file that stores the info 
           on the other filess1.0trepomds#http://linux.duke.edu/metadata/repos"http://linux.duke.edu/metadata/rpmR
REttagstcontenttdistrotcpeidt
primary_dbtfilelists_dbtother_dbt10tothert	fileliststprimaryt	garbageidtprestodeltasGenerating sqlite DBst9iiisStarting %s db creation: %ss%s.xml.gz.sqlites	%s.sqlites%s.bz2s	%s-%s.bz2s%s_dbR#R$R%sxml:baseR&RRRs	open-sizes
open-checksumtdatabase_versionsEnding %s db creation: %ss%s-%s.xml.gzsSqlite DBs completeR0R1R"R2tgroup_gztgroupsUTF-8is)Error saving temp file for repomd.xml: %ssCould not save temp file: %sNi(RGRFsother(RGRFsother(Itlibxml2tnewDocR*RtnewNstsetNsRRiRoR[R/R9R8RERFRGR+RR4Rtpri_sqlite_filetfile_sqlite_filetother_sqlite_fileR7R6R5R%RvR)R.RR\RQRBtsqlitecachect	DBVERSIONtAttributeErrortRepodataParserSqliteRRt	ChecksumsR(t	hexdigestRRRRRRDtctimet
getPrimarytgetFileliststgetOtherdatatrenameRtunlinkR@RR:tst_mtimetst_sizeR;ReRRRRRAR,tsaveFormatFileEncRPRR
(7RHtrepodoctreporoottreponstrpmnstrepopathtrepofilepathRER=RVtc_tagsR@td_tagsRt	workfilestdb_workfilest	dbversiontrepoidtrpRtftypet
complete_pathtzfoR#tuncsumtunsizeR7Rtdb_csumstdb_compressed_sumsttmp_result_namettmp_result_patht	good_namet
resultpathtcompressed_nametresult_compressedtun_stattcsum_compressed_nametcsum_result_compressedtdb_stattdb_data_typeR%Rt	db_tstampt
unchecksumRKRtres_filet	orig_filet	dest_fileRR2Rtmd_typeR-((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pytdoRepoMetadata
s>
!


















	


	




	

)

	

	c
Cstii|ii|ii}tii|ii|ii}tii|o;yti||Wqt	t
d||fqXntii|ii|ii}yti||Wn&ti||t	t
dnXxdddddgD]}t|i|o"tii
t|i|}nqtii||}tii|oFyti|Wqtj
o"}t	t
d||fqXqqWxti|D]q}tii||}tii||}|id	d
jo.|id	ddjoti|qn|djoti|qntii|ojy5tii|oti|nti|Wq5tj
o"}t	t
d||fq5Xqyti||Wqtj
o<}t
d||f}	|	t
d|7}	t	|	qXqWyti|Wn\tj
oP}|it
d|ii|it
d||it
dnXdS(smove the just-created repodata from .repodata to repodata
           also make sure to preserve any files we didn't mess with in the 
           metadata dirs#Error moving final %s to old dir %ss&Error moving final metadata into placeR5R6R7R8Rs*Could not remove old metadata file: %s: %st-iisprimary.sqlite.bz2sfilelists.sqlite.bz2sprimary.xml.gzsother.sqlite.bz2sother.xml.gzsfilelists.xml.gzs1Could not restore old non-metadata file: %s -> %ssError was %ss%Could not remove old metadata dir: %ss(Please clean up this directory manually.N(sprimary.sqlite.bz2sfilelists.sqlite.bz2sprimary.xml.gzsother.sqlite.bz2sother.xml.gzsfilelists.xml.gz(sfilelists.sqlite.bz2sother.sqlite.bz2sprimary.sqlite.bz2(RRiRoR[R/R:R;RrR_R
RR9RwRlRRRRR#RstshutiltrmtreetrmdirRP(
RHtoutput_final_dirtoutput_old_dirtoutput_temp_dirRRtoldfileRt	finalfiletmsg((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pytdoFinalMovesz!!	!" &



cCsftii|ii|ii}yt||_Wn+ti	j
o}t
td|nXdS(s3sets up the sqlite dbs w/table schemas and db_infossOCannot create sqlite databases: %s.
Maybe you need to clean up a .repodata dir?N(RRiRoR[R/R9tMetaDataSqliteRtsqlitetOperationalErrorR
R(RHtinitdbtdestdirR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyR,s!N( RJRKRRIRfRgRRRPRRRRtpropertyRRRRRRRRRRRRRReR;RRR(((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRZus8 		Q									
		
		
3_	(	6		!?		OtSplitMetaDataGeneratorcBs8eZdZdddZdZdZdZRS(stakes a series of dirs and creates repodata for all of them
       most commonly used with -u media:// - if no outputdir is specified
       it will create the repodata in the first dir in the list of dirs
       cCsti|d|dddS(NRhR\(RZRIR(RHRhR\((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRI<sc	Cshddk}|iid|p|S|i|\}}}}}|i||||t|fS(Nitmedia(turlparset
uses_fragmentRvturlsplitt
urlunsplitRB(	RHturltfragmentRtschemetnetlocRitquerytfragid((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyt_getFragmentUrl?scsAtfd}g}tii|||S(Ncsx|D]}tii|oqq|idjoUtii|}|tiijo
d}n|itii||qqWdS(Ns%sR(RRiRsRRlRvRo(RRkRRR(RRR=(s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRKs
(RRRitwalk(RHR=RRtrpmlist((RRR=s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRGs

c
Cst|iidjoti|dS|iio|inh}x|iiD]}tii	|o
|}nB|i
dotii|}ntii|ii
|}|i|d||<|i|||it||7_qYWd}d|_|i|ii||i_y|i|ii
}xP|iiD]B}|i|ii||i_|i||||d7}qTW|i|iid|i_|iWn.ttfj
o}ttd|nXdS(s.all the heavy lifting for the package metadataiNs../s.rpmis&Cannot access/write repodata files: %s(RR[R>RZRR$RRRiRjRqRnRoR!RRRaRbRRRRRRRR
R(RHt
filematrixRytthisdirtmedianotoriginal_basedirR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRYs>



	

N(RJRKt__doc__RRIRRR(((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyR7s
		RcBs,eZdZdZdZdZRS(cCstii|d|_ti|i|_tii|d|_ti|i|_tii|d|_	ti|i	|_
|ii|_|ii|_
|i
i|_|i|i|idS(Nsprimary.sqlitesfilelists.sqlitesother.sqlite(RRiRoRRRt
ConnectionRRSRRTRtcursortprimary_cursortfilelists_cursortother_cursortcreate_primary_dbtcreate_filelists_dbtcreate_other_db(RHR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRIs

cCsnddddddddd	d
ddd
dddddddtig}x|D]}t|i|qPWdS(NsPRAGMA synchronous="OFF";s pragma locking_mode="EXCLUSIVE";soCREATE TABLE conflicts (  name TEXT,  flags TEXT,  epoch TEXT,  version TEXT,  release TEXT,  pkgKey INTEGER );s8CREATE TABLE db_info (dbversion INTEGER, checksum TEXT);s>CREATE TABLE files (  name TEXT,  type TEXT,  pkgKey INTEGER);soCREATE TABLE obsoletes (  name TEXT,  flags TEXT,  epoch TEXT,  version TEXT,  release TEXT,  pkgKey INTEGER );s	CREATE TABLE packages (  pkgKey INTEGER PRIMARY KEY,  pkgId TEXT,  name TEXT,  arch TEXT,  version TEXT,  epoch TEXT,  release TEXT,  summary TEXT,  description TEXT,  url TEXT,  time_file INTEGER,  time_build INTEGER,  rpm_license TEXT,  rpm_vendor TEXT,  rpm_group TEXT,  rpm_buildhost TEXT,  rpm_sourcerpm TEXT,  rpm_header_start INTEGER,  rpm_header_end INTEGER,  rpm_packager TEXT,  size_package INTEGER,  size_installed INTEGER,  size_archive INTEGER,  location_href TEXT,  location_base TEXT,  checksum_type TEXT);snCREATE TABLE provides (  name TEXT,  flags TEXT,  epoch TEXT,  version TEXT,  release TEXT,  pkgKey INTEGER );sCREATE TABLE requires (  name TEXT,  flags TEXT,  epoch TEXT,  version TEXT,  release TEXT,  pkgKey INTEGER , pre BOOL DEFAULT FALSE);s'CREATE INDEX filenames ON files (name);s+CREATE INDEX packageId ON packages (pkgId);s,CREATE INDEX packagename ON packages (name);s0CREATE INDEX pkgconflicts on conflicts (pkgKey);s0CREATE INDEX pkgobsoletes on obsoletes (pkgKey);s.CREATE INDEX pkgprovides on provides (pkgKey);s.CREATE INDEX pkgrequires on requires (pkgKey);s-CREATE INDEX providesname ON provides (name);s-CREATE INDEX requiresname ON requires (name);sCREATE TRIGGER removals AFTER DELETE ON packages  
             BEGIN    
             DELETE FROM files WHERE pkgKey = old.pkgKey;    
             DELETE FROM requires WHERE pkgKey = old.pkgKey;    
             DELETE FROM provides WHERE pkgKey = old.pkgKey;    
             DELETE FROM conflicts WHERE pkgKey = old.pkgKey;    
             DELETE FROM obsoletes WHERE pkgKey = old.pkgKey;
             END;s1INSERT into db_info values (%s, 'direct_create');(RURVRR(RHtschematcmd((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRs.cCsPddddddddd	d
tig
}x|D]}t|i|q2WdS(NsPRAGMA synchronous="OFF";s pragma locking_mode="EXCLUSIVE";s8CREATE TABLE db_info (dbversion INTEGER, checksum TEXT);sZCREATE TABLE filelist (  pkgKey INTEGER,  dirname TEXT,  filenames TEXT,  filetypes TEXT);sBCREATE TABLE packages (  pkgKey INTEGER PRIMARY KEY,  pkgId TEXT);s,CREATE INDEX dirnames ON filelist (dirname);s*CREATE INDEX keyfile ON filelist (pkgKey);s'CREATE INDEX pkgId ON packages (pkgId);sCREATE TRIGGER remove_filelist AFTER DELETE ON packages  
                   BEGIN    
                   DELETE FROM filelist WHERE pkgKey = old.pkgKey;  
                   END;s1INSERT into db_info values (%s, 'direct_create');(RURVRR(RHRR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRsc
CsMddddddddd	tig	}x|D]}t|i|q/WdS(
NsPRAGMA synchronous="OFF";s pragma locking_mode="EXCLUSIVE";sXCREATE TABLE changelog (  pkgKey INTEGER,  author TEXT,  date INTEGER,  changelog TEXT);s8CREATE TABLE db_info (dbversion INTEGER, checksum TEXT);sBCREATE TABLE packages (  pkgKey INTEGER PRIMARY KEY,  pkgId TEXT);s-CREATE INDEX keychange ON changelog (pkgKey);s'CREATE INDEX pkgId ON packages (pkgId);sCREATE TRIGGER remove_changelogs AFTER DELETE ON packages  
                 BEGIN    
                 DELETE FROM changelog WHERE pkgKey = old.pkgKey;  
                 END;s1INSERT into db_info values (%s, 'direct_create');(RURVRR(RHRR((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRs(RJRKRIRRR(((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyRs		#	(/RRMRNRRDRRtbz2Rt
urlgrabberRRRtyumRRRtyum.sqlutilsRtyum.packageSackRtyum.packagesRtrpmUtils.transactionR]tutilsRR	R
Rtsqlite3RtImportErrorRURRR
RRRt__version__tobjectRRLRZRR(((s7/usr/lib/python2.6/site-packages/createrepo/__init__.pyt<module>sH(2
J

Youez - 2016 - github.com/yon3zu
LinuXploit