JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr >gAddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z m Z ddlmZddlmZddlmZGddeZGd d eZGd d eZGd deZdZe\ZZGddeZGddeZGddej>Z e!dk(rddl"Z"ddl#m$Z$ddl%m%Z%e&de e$de%dZ'e&e'jQe"jRe'jUe'jWe'jXe'j[dge&e'j]e'j_yy)N)PopenPIPE)gettext)ngettext) inside_chrootc eZdZy)CacheExceptionN__name__ __module__ __qualname__>/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeCache.pyr r (rr c eZdZy)CacheExceptionLockingFailedNr rrrrr,rrrc eZdZy)CacheExceptionDpkgInterruptedNr rrrrr0rrrceZdZfdZxZS)PackageRemovalDeniedExceptionc||_td|z}tjdj |jr|td|jdz }t ||y)NzJThe package '%s' is marked for removal but it is in the removal deny list.z^postgresql-[0-9]*$z To prevent data loss, postgresql packages are not removed automatically during the upgrade. If you are certain you no longer need z7, you can manually remove it and try the upgrade again.)package_recompilematchsuper__init__)selfrmsg __class__s rr z&PackageRemovalDeniedException.__init__5sq \]`gg ::, - 3 3DLL A 1""&,,0-- C r)r r rr __classcell__)r#s@rrr4s rrc0d}d}tjd}tjd|zD]}|d|zk(r#|tjj |z }.|j ddk\s(|j ddk\s|j ddk\rk|tjj |z }|dk(rt jdd }|dk(rt jd d }|d z }d }|d z|kDr|d z}||z }||fS)zjestimate the amount of space used by the kernel and initramfs in /boot, including a safety margin rz /boot/*%s*z/boot/initrd.img-%sz initrd.imgz.bakz.dpkg-z>estimate_kernel_initrd_size_in_boot() returned '0' for kernel?iz>estimate_kernel_initrd_size_in_boot() returned '0' for initrd?i ig?)osunameglobpathgetsizefindloggingwarning)kernelinitrdkverf initrd_buffers r#estimate_kernel_initrd_size_in_bootr4GsF F 88:a=D YY|d* + ) %, , bggooa( (Fff\"a'166&>Q+>!Q&  bggooa( (F ){ L N { L N kFM }}$  mF &=rceZdZdZdZdZy)FreeSpaceRequiredz FreeSpaceRequired object: This exposes: - the total size required (size_total) - the dir that requires the space (dir) - the additional space that is needed (size_needed) c.||_||_||_yN) size_totaldir size_needed)r!r9r:r;s rr zFreeSpaceRequired.__init__ss$&rcTd|jd|jd|jS)NzFreeSpaceRequired Object: Dir: z size_total: z size_needed: )r:r9r;r!s r__str__zFreeSpaceRequired.__str__ws1UYU]U]_c_n_nptqAqAB BrN)r r r__doc__r r>rrrr6r6ks'Brr6ceZdZdZdZy)NotEnoughFreeSpaceErrorzI Exception if there is not enough free space for this operation c||_yr8)free_space_required_list)r!rCs rr z NotEnoughFreeSpaceError.__init__s (@%rNr r rr?r rrrrArA{s ArrAceZdZdZdZd;dZdZedZdZ dZ d Z d Z d Z ed Zed ZedZedZdZdZddZ d>dZ!d>d Z"d>d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,e d+Z-d,Z.d-Z/ed.Z0d/Z1d0Z2d1Z3d2Z4d3Z5e d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d?d:Zj@vr tj jCddtj jCddy#t$r(}dt|vr t|t!|d}~wwxYw)NFDistroMetaPkgsTzdpkg --configure -aRemovalDenylistFiler(z-r)stdoutuniversal_newlinesrSourcesFromhardyRELEASE_UPGRADE_NO_RECOMMENDSzAPT::Install-Recommendstruez"APT::AutoRemove::SuggestsImportantfalse)" to_install to_removeviewquirkslockpartialUpgradeconfiggetlistmetapkgs _listsLockapt_pkgpkgsystem_locklock_lists_dir SystemErrorstrrraptCacher getListFromFileremoval_denylist_get_linux_metapackagelinux_metapackagerr communicatestripr( _initAptLoggetr'environset)r!r[rWrXprogressrYes rr zMyCache.__init__s|   #  ++HjA   5&&(##%   4* & 6 6xAV W!%!C!CD%!PGT?4.244?KM!EEJUW   JJy& )W 4/2::= NN  8& A ?I+ 5(CF27::1!44  5s+F G#F<<Gc|D]J}|jr|jjtjk(s8|j ddLy)z! honor the dselect install state F) auto_instauto_fixN) is_installed_pkgselected_stater_SELSTATE_INSTALL mark_installr!pkgs r_apply_dselect_upgradezMyCache._apply_dselect_upgradesJ BCxx&&'*B*BB  55 A  Brc2t}|D]}|jr|jjr&|jj|j k(s$|jj|j k(sm|j|j|S)zB return the packages not downloadable packages in reqreinst state ) ro candidate downloadablerv inst_state ReInstReq HoldReInstReqaddname)r! reqreinstr{s rreq_reinstall_pkgszMyCache.req_reinstall_pkgsssE  (C]]#--*D*D$$6$$(:(:: chh'  ( rcx|j}t|dkDrtddt|}tddt|dj|z}|j ||rP|j gdt |z}|jj||jyy ) z/ check for reqreinst state and offer to fix it rzRemove package in bad statezRemove packages in bad statezThe package '%s' is in an inconsistent state and needs to be reinstalled, but no archive can be found for it. Do you want to remove this package now to continue?zThe packages '%s' are in an inconsistent state and need to be reinstalled, but no archives can be found for them. Do you want to remove these packages now to continue?, )z /usr/bin/dpkgz--removez--force-remove-reinstreqTF) rlenrjoinaskYesNoQuestion release_locklist getTerminalcallget_lock)r!rWrheadersummarycmds rfix_req_reinstzMyCache.fix_req_reinsts++ y>A ;<!)n.F 2  + #9~ /2691E FG$$VW5!!#ORVW`Raa  "'', rc^|jjddd}tjj |stj |t jjd|t jjddtjtjj|dtjtjztjzd|_ tjj}d |z}tj |j|j#d t jjd d t jjd d t jjdd y)z init logging, create log fileFilesLogDirz/var/log/dist-upgradezDir::LogzDir::Log::Terminalz apt-term.logzapt.logiz Log time: %s zutf-8zDebug::pkgProblemResolverrSzDebug::pkgDepCache::MarkerzDebug::pkgDepCache::AutoInstallN)r[getWithDefaultr'r*existsmakedirsr_roopenrO_RDWRO_CREATO_APPENDlogfddatetimenowwriteencode)r!logdirrrs rrlzMyCache._initAptLogs++GX,CEww~~f% KK :v./@WWRWW\\&)<YY3bkkA5J ##%!C' V]]734 6?7@tj|jtj|jtj d|_tj d|_tj |jdtj |jdy)N old_stdoutrr&)hasattrr'closer old_stderrdupdup2rr=s r_startAptResolverLogzMyCache._startAptResolverLogsn 4 & HHT__ % HHT__ %&&)&&)  A  Arctjdtjdtj|jdtj|jdy)Nrr&)r'fsyncrrrr=s r_stopAptResolverLogzMyCache._stopAptResolverLogs<     # #rcfd}|S)z3 decorator to ensure that the apt output is logged cd|dj|i|}|dj|SNr)rr)argskwargsresr2s rwrapperz(MyCache.withResolverLog..wrappers7 G ( ( *T$V$C G ' ' )Jrr)r2rs` rwithResolverLogzMyCache.withResolverLogs  rctj|j}tj}|j ||j |j |jS)z< get the size of the packages that are required to download )r_PackageManager _depcacheAcquire get_archives_list_records fetch_needed)r!pmfetchers rrequired_downloadzMyCache.required_download sH # #DNN 3//# T]];###rc.|jjS)z9 get the size of the additional required space on the fs )rusr_sizer=s radditional_required_spacez!MyCache.additional_required_spaces~~&&&rcN |jjS#t$rYywxYw)z< get the extra size needed to install the snap replacements r)rXextra_snap_spaceAttributeErrorr=s r#additional_required_space_for_snapsz+MyCache.additional_required_space_for_snapss+ ;;// /  s  $$c4|jjdkDS)z is the cache broken r)r broken_countr=s r is_brokenzMyCache.is_broken%s~~**Q..rctjjddz}tj||_|jdkrd|z}t |y)NzDir::State::ListsrYrzCan not lock '%s' )r_r[find_dirrr^r)r!rrqs rrazMyCache.lock_lists_dir+sT~~&&':;fD!**40 ??Q $t+A-a0 0 rcp|jdkDr'tj|jd|_yy)NrrK)r^r'rr=s runlock_lists_dirzMyCache.unlock_lists_dir1s* ??Q  HHT__ % DO rc|jtjj||}|j |r |j rt td|dk(r t dy)zf our own update implementation is required because we keep the lists dir lock zThe server may be overloadedFzAapt.cache.update() returned False, but did not raise exception?!?N)rrdreupdaterarelease_file_download_errorIOErrorr)r! fprogressrs rrzMyCache.update5sh iitY/  >>!:;< < %<]^ ^ rctjd|jr|jtj j |||y)Nzcache.commit())r-inforYrrdrecommit)r!r iprogresss rrzMyCache.commitDs8 %& 99     y)4rc|jr tjd|_yy#t$r"}t j d|zYd}~yd}~wwxYw)NFzfailed to SystemUnLock() (%s) )rYr_pkgsystem_unlockrbr-debugr! pkgSystemOnlyrqs rrzMyCache.release_lockJsP 99 D((*!   D >BCC D+ AAAc|js tjd|_yy#t$r"}t j d|zYd}~yd}~wwxYw)NTzfailed to SystemLock() (%s) )rYr_r`rbr-rrs rrzMyCache.get_lockRsPyy B&&(   B Dt*C   eu  = >rc||jjdd}|D]}||vr)||jrtjd|zyd}|jj|dD]}|||vxr||jz}|sntjd|zytjdy) ac This checks if we run on a desktop or a server install. A server install has more freedoms, for a desktop install we force a desktop meta package to be install on the upgrade. We look for a installed desktop meta pkg and for key dependencies, if none of those are installed we assume server mode rIrJz@need_server_mode(): run in 'desktop' mode, (because of pkg '%s')FTKeyDependencieszIneed_server_mode(): run in 'desktop' mode, (because of key deps for '%s')z[need_server_mode(): can not find a desktop meta package or key deps, running in server mode)r[r\rur-r)r!r]key deps_foundr{s rneed_server_modezMyCache.need_server_modes;;&&x< Cd{tCy55 `cffgJ{{**30AB EcTkDd3i.D.DD  E iloop   strc|jr' tjd|jyy#t$r'|j t dt dYywxYw)zY check if the cache is ok and if the required metapkgs are installed z$Have broken pkgs, trying to fix themzBroken packageszYour system contains broken packages that couldn't be fixed with this software. Please fix them first using synaptic or apt-get before proceeding.FT)rr-rrrberrorr)r!rWs rcoherence_checkzMyCache.coherence_checksf >>  DE!  1./!"$@"AB  s%5-A%$A%c tjd|d|d||vrL||jdi|||js(||jstj d|zyy)Nz Installing '' (rz Installing/upgrading '%s' failedFTr)r-rryrrrr!r{reasonflagss rryzMyCache.mark_installsb V<= $; "DI " " +U +I,,S 0H0H @3FGrctjd|d|d||vrJ||jr;||j||jstj d|zyy)Nz Upgrading 'rrzUpgrading '%s' failedFT)r-rru mark_upgraderrr!r{rs rr zMyCache.mark_upgrades[ sF;< $;4911 I " " $9++ 5;<rc ptjd|d|d||vr||jdi|yy)Nz Removing 'rrr)r-rrrs r mark_removezMyCache.mark_removes6 c6:; $; !DI ! ! *E * rctjd|d|d||vr*|jj||jdyy)Nz Purging 'rrT)r-rrrrvr s r mark_purgezMyCache.mark_purges; S&9: $; NN & &tCy~~t < rcr||vr3||jr#||jr|j||yyyyr8)rurry)r!pkgnamers r_keep_installedzMyCache._keep_installedsB tOW **W ++   gv .,+ rc b|jjddD]}|j|d|jD]\}||vs||js||j s'|jj|dD]}|j|d|z^|jj dddk(rqtjd|jjdd D]s}|D]l}|js|jjs'|js4|jj|k(sN|j|jd |znu|jD]}||vs||js||j s'|jj|d D]u}|D]n}|js|jjs'|js4|jj|k(sN|j|j|d |pwy y ) z[ run after the dist-upgrade to ensure that certain packages are kept installed rIKeepInstalledPkgszDistro KeepInstalledPkgs rulez%s KeepInstalledPkgs ruleOptions withNetworkTruez"Running KeepInstalledSection rulesKeepInstalledSectionz$Distro KeepInstalledSection rule: %sz KeepInstalledSection rule: N)r[r\rr]rurrmr-rr~rrsectionr)r!rrrr{s rkeep_installed_rulezMyCache.keep_installed_rules{{**85HI KG  *I J K== UCd{S 6 6 $S 8 8#{{2238KLUG((2MPS2STU U ;;??9m 4 > MM> ?;;..x9OP iiC #--*D*D--MM11W<,,SXX7]`g7gh i i }} t$;DI$:$:$(I$<$<#';;#6#6s? @}} K$;DI$:$:$(I$<$<#{{223$8NOKssD$IJK K K"" KKOO2 3#rctjd ddlm} |d}|jD]*}||vs||js|j|d ntjd y|j}tjd |z||vrtjd |zy||js;||js,||jtjd |zyy#tt f$r"}tj d|zYd}~yd}~wwxYw#t $r"}tj d|zYd}~yd}~wwxYw)zR this checks for nvidia hardware and checks what driver is needed znvidiaUpdate()r)NvidiaDetectionz%NvidiaDetector can not be imported %sNFz./ubuntu-drivers-obsolete.pkgs)obsoletezold nvidia driverz1no old nvidia driver installed, installing no newznv.selectDriver() returned '%s'z no '%s' foundz,installing %s as suggested by NvidiaDetectorTz$NvidiaDetection returned a error: %s)r-rNvidiaDetector.nvidiadetectorr( ImportError SyntaxErrorr oldPackagesrur r selectDriverr.rrry Exception)r!r(rqnv oldDriverdrivers rcheckForNvidiazMyCache.checkForNvidiasP  &'  E  F!*JKB ^^  $i)E)E$$Y0CD   PQ__&F MM;fD ET>& 89L//4<3N3NV ))+ KfTU=[)  MMAAE F  8 F MM@1D E E FsGDD:D: *D:6AD:;A D:D7D22D7: E%E  E%cf|D],}|jjds|js,yy)Nzlinux-headers-TF)r startswithrurzs r_has_kernel_headers_installedz%MyCache._has_kernel_headers_installedBs5 C##$45   rc\tjd|jz |jjd\}}}t dgtjd}d |vrtjd y #t$r"}tj d|zYd}~yd}~wwxYw) zd check for the running kernel and try to ensure that we have an updated version zKernel uname: '%s' -z/Can't parse kernel uname: '%s' (self compiled?)NFdmesg)rMrsWARNING: NR_CPUS limitzUP kernel on SMP system!?!T) r-rr(splitr/r.rrrj)r!versionbuildflavourrqr9s rcheckForKernelzMyCache.checkForKernelIs  +djj89 (, (8(8(= %WeW wi-99;A> $ - MM6 7  OOMPQQ R sB B+ B&&B+c<d}|jjdd}|D]}|jjj |j }|r2|j dk(r#tjd|jzf|jss|jjs|jr|jr|j|vsd|jvs|jj |vs|j|jd|zy)N)requiredrIRemoveEssentialOkrzPackage %s has no priority set:z;priority in required set '%s' but not scheduled for install)r[r\_pcacherrrvpriorityr-rrr~rrurry)r!needremoveEssentialOkr{rs r checkPriorityzMyCache.checkPriorityYs KK//:MN rC++''99#((CCs||q( >IJ #--"<"<%%););HH 11388O &&$.!!#((,ilp,pq rrcd}|jrS|dzdk(r|j|jtjd|dz }|jrS|jd|jy)Nrg{Gz?rT)finished)locked pulseProgress processEventstimesleep)r!rWrYis r updateGUIzMyCache.updateGUInsr kkm2v{""$    JJt  FA kkm D) rc2 tj}|jtj|j|j |f}|j  |j|jd|j|jtrtjdn|j|j|j!|j#||s|j%||j'|j(r-t+t-ddj/d|Dz |jA|j/g} g} |jCD]=} | jDr| jFr| jI| jJ| jLjND]} tQjR| jT| jVjXdks;| jZD]V\} }| j\j^ja| }|s.|jbr;| jI| jJ| jdjf}d}|D]}||jhz}|r#| jI| jJ@ |j6jkdd}|rtjdy tq| dkDr7| jstj<ddj/| ztq| dkDr| jstj<ddj/| z|j;|j=t-dt-ddj/| |j?yy#t*t0f$rZ}t-d}t3|t0r|t5|dzz }nz|j6j9d d d k(r|t-d z }nL|j6j9d d d k(r-|j6j9d dd k(r|t-dz }|r|t-dz }n|t-dz }|t-dz }|j;|j=t-d|t5|}tj<d||j?Yd}~|jA|j/yd}~wwxYw#|jA|j/wxYw#tljn$rYwxYw) N)targetrTz5skipping kernel checks because we run inside a chrootz!Broken packages after upgrade: %src3fK|])}|js |js|j+ywr8)is_inst_broken is_now_brokenr).0ps r z&MyCache.distUpgrade..s>UR`amnm}m}BCBQBQUVU[U[URs11zBAn unresolvable problem occurred while calculating the upgrade. z r foreignPkgsrzThis was likely caused by: * Unofficial software packages not provided by Ubuntu Please use the tool 'ppa-purge' from the ppa-purge package to remove software from a Launchpad PPA and try the upgrade again. False devReleasezThis was caused by: * Upgrading to a pre-release version of Ubuntu This is most likely a transient problem, please try again later. z@This is most likely a transient problem, please try again later.zIf none of this applies, then please report this bug using the command 'ubuntu-bug ubuntu-release-upgrader-core' in a terminal. zIf you want to investigate this yourself the log files in '/var/log/dist-upgrade' will contain details about the upgrade. Specifically, look at 'main.log' and 'apt.log'.zCould not calculate the upgradezDist-upgrade failed: '%s'FrrIAllowUnauthenticatedzAllowUnauthenticated set!z!Packages to downgrade found: '%s' z$Unauthenticated packages found: '%s'z"Error authenticating some packageszIt was not possible to authenticate some packages. This may be a transient network problem. You may want to try again later. See below for a list of unauthenticated packages. ): threadingLockacquireThreadrQrWstartrupgraderGrrr-r.r>r3r&_keepBaseMetaPkgsInstalled_installMetaPkgs_verifyChangesrrbrrr isinstancercr[rmrrrreleaserrmarked_downgraderrrv version_listr_version_comparever_str installedr; file_listrCr find_index is_trustedr~originstrusted getboolean configparser NoOptionErrorrsort)r!rW serverModerZrYtrqdetails error_msg untrusted downgrader{r verFileIterindex indexfilersrtoriginbs r distUpgradezMyCache.distUpgradeys~~    DNN$))T9K L  V   ! ! # LL       $ $ & WX##%    !  " " $  + +D 1%%d+    !~~!!$G"H499UReiURLR#RSS^ LLN FFH  ##% +C  ##  *8800&C.. S]]%:%:<>?@47MM&0[%(+ (9(9(D(D[(QI(1E1E ) 0 0 : % & &mm++GG! *6>>) *  *- +0  &&x1GHA ;< y>A  NN  MM=((9-. / y>A  NN  MM@((9-. /  $ $ & JJq=>=>yy+  -  % % 'K:;) 9:G!:;3q6F?*M:fD1"## M:gE  <8FBA:;; 17881eff1OPP  $ $ & JJq:;W EAI MM5y A  % % ' LLN FFH[) X LLN FFHD))   s>#C>O-3U?-U=D0U-UUU"U<?VVctjjd}|jjdd}|j D]}|j rP|j |jr5tjd|jt|j|j sl|jjdk(s|jj|dfvs|j|vstjd|jtt!d|jz|jjdd }|D]}}|j#d \}}||vs||j$s,||j$j&|k(sI||j(s||j*shtt!d |zy) zy this function tests if the current changes don't violate our constraints (deny listed removals etc) zAPT::ArchitecturerIrAzHThe package '%s' is marked for removal but it's in the removal deny listTallzDThe package '%s' is marked for removal but it's an ESSENTIAL packagez1The essential package '%s' is marked for removal. BadVersionsrz*Trying to install deny listed version '%s')r_r[r,r\rr_inRemovalDenylistrr-rrrv essentialro architecturerbrr:r~r;rr)r! main_archrFr{ badVersionsbvrrs rrhzMyCache._verifyChangessNN''(;<  KK//:MN##% eC  T%<%sM% 2C((- FQR ,,3399$? 2??7+!%c'lm!4 ; ;C @2#zz|u,*-%E$Kd 1 2 2 2 *DI KK//.IM}$!  ; G}11 %I ##D) *rcttjd|D]}|js |jr|j |t |j jdr |j jjs#tjd|jz|j jjjdD][}|jds|tddjdD]'}|j}||vs|j)] y)Nzrunning installTasksrzcan not find Record for '%s'r_rrT)r-rrrurrrCrrr.rr:r5rrkry)r!rr{rrs r installTaskszMyCache.installTasksZs ,- /C!!S%5%5  ! !# &CKK00(; @T@T@[@[ > IJ ,,3399$? /??7+!%c'lm!4 ; ;C @/#zz|5=,,./ / /rcj|jjddD]}|j|dy)NrI BaseMetaPkgsz%base meta package keep installed rule)r[r\r)r!rWr{s rrfz"MyCache._keepBaseMetaPkgsInstalledks5;;&&x@ OC  &M N Orc fd}jjddjjddD]}|jD]P} |vrI|jr:|jr+t j d|z|jR|st j d zD]}d }jj|d D]}||vxr|jz}|sAt j d |z |jt j d|d|jdn|sAdjdd}|jtdtd|dfzyy #t$r'}t jd|d|dYd}~d}~wwxYw#ttf$rN}t jd |d|d|jtd|ztdYd}~yd}~wwxYw)NcD]o}|vs|}|jr.|jr"tjd|jz|jr |jr|j soyy)zy internal helper that checks if at least one meta-pkg is installed or marked install z(metapkg '%s' installed but marked_deleteTF)rurr-rrr)rr{r]r!s rmetaPkgInstalledz2MyCache._installMetaPkgs..metaPkgInstalledqst   $$;s)C''C,=,= &PSVS[S[&[\))#2C2C933# $rrIrJrzMarking '%s' for upgradez Can't mark 'z' for upgrade (rz$none of the '%s' meta-pkgs installedTrz!guessing '%s' as missing meta-pkgzfailed to mark 'z' for install (zCan't install '%s'zIt was impossible to install a required package. Please report this as a bug using 'ubuntu-bug ubuntu-release-upgrader-core' in a terminal.Fzmarked_install: 'z' -> ''rrrKzCan't guess meta-packagezYour system does not contain a %s or %s package and it was not possible to detect which version of Ubuntu you are running. Please install one of the packages above first using synaptic or apt-get before proceeding.)r[r\ryru is_upgradabler-rr rbr.KeyErrorrrrr) r!rWrr{rrqr meta_pkgsr]s ` @rrgzMyCache._installMetaPkgsosA  ;;&&x<;;&&x@ %C I " " $ %  OC O4KI**I++MM"H I{{**85KL G4DM$;$;M++33w> G'QR   rc ~||vry||vry |jjdd}|r|j  ||j |||j j|r`||vry|jD]H}|j|vstjd|d|jd|jyy#tj$rd}YwxYw#ttf$rD}tjd |d t!|d |d |r|jYd}~yd}~wwxYw) NFTrIPurgeObsoletes)purgertz package 'z ' produces an unwanted removal 'z ', skippingz'_tryMarkObsoleteForRemoval failed for 'r: r)r[rurvrwrrrWrMrrr-rrrbrr.repr)r!rremove_candidatesforced_obsoletesrtrr{rqs rtryMarkObsoleteForRemovalz!MyCache.tryMarkObsoleteForRemovals5 + + $  KK**85EFE   "  M % %EH % E II # # %..++-%Cxx'88 dkmpmumu&vw--/$ %3)) E (X&  OOU\^bcd^eghi j%%'  s:C6C)2!C)7C) C)C&%C&)D<8:D77D<ct}|D]<}|js|j|r"|j|j>|Sz1 get all package names that are not downloadable )roruanyVersionDownloadablerr)r! obsolete_pkgsr{s r_getObsoletesPkgszMyCache._getObsoletesPkgssK  0C 2237!%%chh/ 0rcV|jjD]}|jsyy)zA helper that checks if any of the version of pkg is downloadable TF)rvrlr)r!r{rs rrzMyCache.anyVersionDownloadables,88(( C rct}|D]P}|js|jj|js6|j |j R|Sr)rorurrrvrr)r!unused_dependenciesr{s r_getUnusedDependencieszMyCache._getUnusedDependenciessQ!e 2CDNN$=$=chh$G#''1 2#"rc(t}|jjdd}tjj |rMt |5}|D]3}|jdr|j|j5 dddt}|D][}||vr||}|jr1|jj|js |jrK|j|]t|S#1swY~xYw)z return list of installed and demoted packages If a demoted package is a automatic install it will be skipped rI Demotions#N)ror[rmr'r*rrr5rrkruris_auto_installedrvrr)r! demotionsdemotions_file demotions_frinstalled_demotionsdemoted_pkgnamer{s rget_installed_demoted_packagesz&MyCache.get_installed_demoted_packagess E ;? 77>>. )n% 4'4D??3/! djjl34 4"e( )Od*'C$$00:!!  # #C ( )'(( 4 4sD)!DDcvt}|D]}|js|j|s"|js/d}|jjD]B}||j vr|j |k(rd}||j vs1|j |k(sAd}D|s|j|j|S)zm get all packages that are installed from a foreign repo (and are actually downloadable) TF) rorurr~rsarchiverrr)r!allowed_originfromDisttoDistrr{foreignrs r_getForeignPkgszMyCache._getForeignPkgs6su  /CD$5$5c$:}}!mm33(F6>>1!==N:"'/!==N:"'( $$SXX.! /"rc . Gddt} fd}g i}i}td5}|D]0} |j\}} } } } } | vs j | 2 ddd jtd tjjd }d }t|d rm|jjdddrP|jjdd}tj j#|stj$|t j d|zdddd||dd fD]}tj j'|}||}tj j#|r/tj(|}|j*|j,z}nt j.d|zd}||vr*t j d|d|||||||<t j d|d||||<||||<~t j d|zd}|D]j}t1j2d|j4s$|j6s |j8s=t j |j4d t:d!|d"z }l|t:z|d"zt<zz}d#}t|d r|jjdddrjt j d$|jjdd}|D]4}|j8s |j6s||j>j@z }6d#}|r^|D]A}|jBs|j8s |jDs)||jFj@z }Ct j d%|z||jHfd|jJfd|jLfd&d|fd'd(||fd|ff D]\}}|dkr tj j'|}t j d)||||||jNfz||xjN|zc_'||xjP|z c_(i}|D]}||jNdkstjRtUtW||jNd"z}tY|tZr#|j]t_j`}tjR||jP}tY|tZr#|j]t_j`}tc|||||||<t|dkDrQt jdd*|Dcgc] }tg|c}ztitk|jmy #t$r'}t j d|d|dYd}~d}~wwxYw#1swYxYwcc}w)+z this checks if we have enough free space on /var, /boot and /usr with the given cache Note: this can not be fully accurate if there are multiple mountpoints for /usr, /var, /boot ceZdZdZdZy))MyCache.checkFreeSpace..FreeSpacez@ helper class that represents the free space on each mounted fs c ||_d|_yr)freerE)r! initialFrees rr z2MyCache.checkFreeSpace..FreeSpace.__init__Ys'  rNrDrrr FreeSpacerWs N rrc>D]}|j|s|cSy)z return 'id' of a directory so that directories on the same filesystem get the same id (simply the mount_point) /)r5)d mount_pointmounteds r make_fs_idz*MyCache.checkFreeSpace..make_fs_id]s+ ' ' << ,&& 'rz /proc/mountszline 'z"' in /proc/mounts not understood (rNT)rreversezDir::Cache::archivesz/tmp/r[AufsEnabledFRWDirzcache aufs_rw_dir: %sr/usrz/varz/bootz/homezdirectory '%s' does not existsrzDir z mounted on zFree space on rzfs_free contains: '%s'z%^linux-(image|image-debug)-[0-9.]*-.*z (new-install) added with z to boot spacergz*taking aufs overlay into space calculationz&additional space for the snapshots: %s)ri )z/tmpiP)riz dir '%s' needs '%s' of '%s' (%f)zNot enough free space: %s)7objectrr: ValueErrorr-rrrxrr_r[rrrrmr'r*rrrealpathstatvfsf_bavailf_frsizer.rrrrr KERNEL_SIZE INITRD_SIZEr~installed_sizerurrorrrrrE size_to_strfloatabsribytesdecodelocalegetpreferredencodingr6rrcrArvalues)!r!snapshots_in_userrmnt_mapfs_freemountsrwhatwherefsoptionsarrq archivedir aufs_rw_dirrfs_idstr kernel_countr{ space_in_bootrequired_for_aufsrequired_for_snapshotsr:size required_list free_at_least free_neededrPrs! @rcheckFreeSpacezMyCache.checkFreeSpaceNs     . ! *V *7;zz|4T5"gq!'NN5) * *  d +^^,,-CD  D( # KK & &vy% @++//&':K77>>+. K( - ;<vvw KRYZ -A  #AqMEww~~a ZZ]{{R[[0 @1 DE  '%.23$WU^4   $()!"&t_ # -$  .89   &Cxx?J%%););MMTWT\T\^i"jk A%L && 3(1, ;<   D( # KK & &vy% @ MMF G++//&':K F%%););%)E)EE% F "%  K$$''3+<+<*cmm.J.JJ* K MMBE[[ \()?)?@#T%C%CD#T%M%MN2$m41/(*;<#%;<  &KS$ax''""3'C MM<T7SVO>O:PQR:R4S T mU3$1$8$8335%7M%11'#,2C2CD k51"-"4"4335#7K 2C;PZ[^P_an1o jo. p }  ! MM58WAQ8WW X)$}/C/C/E*FG Gs"MMUY[\"]^  * *v9Xs@XWX XX  XW=7X=XXX)NTr8)T))F)=r r rrrr r|propertyrrrlrrrrrrrrarrrrrrrrrrrrrryr r rrrrr&r3r6r>rGrQrrhrrrrfrgrrrrrrrrr rrrrFrFsIM%JNB  6F$$$$ ''  // 1 ! _5 DB  5 + 0 ><$+ = / tF3 4$'T r* TTl8$6"OJX.%%N #)00^rrF__main__)DistUpgradeConfig)DistUpgradeViewfoo.zubuntu-desktop)0rdr_r)rr'rr-rNrr`rv subprocessrrDistUpgradeGettextrrrutilsrr/r rrrr4rrrr6rArerFr sysDistUpgradeConfigParserr rrcr exitrrrrrrrrrrsD,   ",(  Y  .  N I& B?@ [ B B AnAhciihV# z:0 %L!#&(94@A !    CHHJGGINN$%& !--/!r