Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/dist-packages/DistUpgrade/
Upload File :
Current File : //usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyc


Oc@sddlZddlZddlZddlZddlZddlZddlZddlZddlmZ	de
fdYZdefdYZ
dS(iN(tgettextt
AptCdromErrorcBseZdZRS(s% base exception for apt cdrom errors (t__name__t
__module__t__doc__(((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyR!stAptCdromcBseZdZdZdZdZdZdZdZdZ	dZ
dd	Zdd
Z
dZddZd
ZddZdZRS(s represents a apt cdrom object cCs:||_||_t|_t|_t|_dS(N(tviewt	cdrompathtsettpackagest
signaturesti18n(tselfRtpath((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt__init__(s
		cCs^tjjtjjdtjjd}tjj||rZtj	|||ndS(sG restore the backup copy of the cdroms.list file (*not* sources.list)! s
Dir::StatesDir::State::cdromsN(
tosR
tjointapt_pkgtConfigtfind_dirtfindtexiststshutiltcopy(Rt
backup_extt
cdromstate((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt
restoreBackup0scCsu|j}|j||j}tjjd}t|j}|j|d|}t|dj	|dS(s comment out the cdrom entry sDir::Etc::sourcelists# %stwN(
t
_readDiskNamet_generateSourcesListLineR	RRt	find_filetopentreadtreplacetwrite(Rtdisknametpentrytsourceslisttcontent((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pytcomment_out_cdrom_entry:sc	Cst}t}t}xtj|jdtD]p\}}}|jdsa|jdrk|2q4q4d|kr}q4q4d|kr|jtjj|dq4d|kr|jtjj|dq4d|ksd|krt	j
d	|q4d
|kr*|jtjj|d
q4d|krxktjtjj|dD]%}|jtjj|d|qUWq4tjj|dd
kr4|2q4q4W|||fS(s| 
        scan the CD for interessting files and return them as:
        (packagesfiles, signaturefiles, i18nfiles)
        ttopdownsdebian-installers
dist-upgraders.aptignrtPackagessPackages.gztSourcess
Sources.gzs+Sources entry found in %s but not supportedsRelease.gpgRitpool(
RRtwalkRtTruetendswithtaddR
Rtloggingterrortlistdirtsplit(RR	R
Rtroottdirstfilestf((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt_scanCDCs0			(%&cCstjjd}tj}|jtjjj}|j	}t
|d}|jd||f|jd||fdS(s update apts cdrom.list sDir::State::cdromstas
CD::%s "%s";
sCD::%s::Label "%s";
N(RRRtCdromtidenttapttprogresstbaset
CdromProgressRRR"(Rtdbfiletcdromtidtlabeltout((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt_writeDatabasecscCsat|}tjjd}x<t|D].}d|kr+||kr+|j|q+q+W|S(s& drop architectures that are not ours sAPT::Architectures/binary-(RRRRtremove(RR	tarchtd((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt	_dropArchmscCsr|j}tjj|jdd}tjj|rnt|j}x#dD]}|j|d}qOWn|S(Ns.disktinfot"t]t[t_(RKRLRMRN(RRR
RRRR R!(RR#RJtspecial((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyRys	
c	Csd}d}g}xl|D]d}tjd|}|sIttdn|jd}|jd}|j|jdqW|s|rdS|jd||dj|f}|S(	Nts (.*)/dists/([^/]*)/(.*)/binary-*s&Could not calculate sources.list entryiiisdeb cdrom:[%s]/ %s %st (	tretmatchRRNtgrouptappendtNonetsortR(	RR#R	R
tdisttcompsRHtmR$((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyRs

c
Cs|stjjd}n|j}x|D]}tjd|||jdf}tjj|tjj	|d}|j
drtj|}t|d}xIt
r|jd}	|j|	|	dkrPqqWq.tj||q.Wt
S(	NsDir::State::listss
cdrom:[%s]/%stdistsis.gzRiRP(RRRRt
URItoFileNameRRR
RtsplitextR.tgzipRR-R R"RR(
Rttranslationst	targetdirR#R7tfnametoutftgRDts((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt_copyTranslationss 
&%	
c
Cs|stjjd}n|j}x|D]}tjd|||jdf}tjj|tjj	|d}|j
drtj|}t|d}xIt
r|jd}	|j|	|	dkrPqqWq.tj||q.Wt
S(	NsDir::State::listss
cdrom:[%s]/%sR[is.gzRiRP(RRRRR\RRR
RR]R.R^RR-R R"RR(
RR	R`R#R7RaRbRcRDRd((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt
_copyPackagess 
&%	
cCsqtjjdd}tjjdd}x@|D]8}tjj|d}tjj|d}|d|d||g}tj|}|dkst	Stj
t|}	|	jx|	j
djd	D]}
|
j\}}}
tjj||
}tjj|s)tjd
|qntjt|}||kstjd||ft	SqWq1WtS(s! verify the signatues and hashes s
Dir::Bin::gpgs
/usr/bin/gpgvsApt::GPGV::TrustedKeyrings/etc/apt/trusted.gpgis	--keyrings--ignore-time-conflicttSHA256s
signoring missing '%s's(hash sum mismatch expected %s but got %s(RRRRR
R3R]t
subprocesstcalltFalsetParseTagFileRtsteptsectionRRR0RJt	sha256sumR1R-(RR
tgpgvtkeyringtsigtbasepathtreleaseftcmdtrettttentrythashtsizetnameR7tsum((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt_verifyReleases2	
	
cCs|stjjd}n|j}x|D]x}tjj|d}xY||fD]K}tjd|||jdf}t	j
|tjj||qWWq.WtS(s copy the release file sDir::State::listsis
cdrom:[%s]/%sR[(
RRRRRR
R]R\RRRRR-(RR
R`R#RqRsR7Ra((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt_copyReleases
&'cCs6|j\|_|_|_|j|j|_t|jdkrgtjdtt	dn|j
|jr|j|jn|j|j|j
|j|j}|stjdtS|j||j}tjjd}t|j}t|djd||f|jtS(s' reimplement pkgCdrom::Add() in python is+no useable indexes found on CD, wrong ARCH?s`Unable to locate any package files, perhaps this is not a Ubuntu Disc or the wrong architecture?sno .disk/ directory foundsDir::Etc::sourcelistRs%# added by the release upgrader
%s
%s(R8R	R
RRItlenR0R1RRNR|R}RfReRRjRRRRRR R"RER-(RR#tdeblineR%R&((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt_doAdds&

 
cCstjd|j|rrtjjtjjdtjj	d}tjj
|rrtj|||qrntjj
d|jtjj
ddy|j}WnNttfk
r}tjd||jjtdtd	|tSXtjd
||S(s add a cdrom to apt's database sAptCdrom.add() called with '%s's
Dir::StatesDir::State::cdromssAcquire::cdrom::mountsAPT::CDROM::NoMountttruescan't add cdrom: %ssFailed to add the CDsThere was a error adding the CD, the upgrade will abort. Please report this as a bug if this is a valid Ubuntu CD.

The error message was:
'%s'sAptCdrom.add() returned: %s(R0tdebugRRR
RRRRRRRRtSetRtSystemErrorRR1RRNRj(RRRtreste((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyR/
s$	cCs
|jdk	S(s# helper to use this as 'if cdrom:' N(RRV(R((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt__nonzero__(sN(RRRRRR'R8RERIRRRVReRfR|R}RR/R(((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyR%s 		
			 	
		
		
	"(RRRR<RR0R^RRhRRNt	ExceptionRtobjectR(((sC/usr/lib/python2.7/dist-packages/DistUpgrade/DistUpgradeAptCdrom.pyt<module>s