o >Ic2@sddlZddlZddlZddlZddlmZddlZddlZddlm Z m Z ddl m Z m Z m Z mZddlmZddlZddlZddlmZddlmZd d ZGd d d e ejjj ZGd ddeZGdddejjjZGddde Ze dkreZ!e"edddeZ!e"e!#ddde"e!#ddde$de!%e&Z'e!(Z)e!*e'Z+ej,ddD]Z-e'e-.qe'/e)e+e$de!01gde!2ddde!3dgd e"e!#dddSdS)!N)dgettext) run_apport apport_crash)AcquireProgressDistUpgradeViewENCODINGInstallProgress)get)gettext)twrapcCsFtjzt}Wn tyd}Ynwt|dr!|tdS|S)z( py2/py3 compatible readline from stdin decodebackslashreplace)sysstdoutflushinputEOFErrorhasattrrr)srA/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeViewText.pyreadline/s     rc@seZdZddZddZdS)TextAcquireProgresscCstjjj|t|dSN)aptprogresstextr__init__selfrrrr<szTextAcquireProgress.__init__cCs"tjjj||t||dSNT)rrrrpulse)r!ownerrrrr#?s zTextAcquireProgress.pulseN)__name__ __module__ __qualname__rr#rrrrr;s rcs(eZdZdZfddZddZZS)TextInstallProgresscs tt|j|i|d|_dS)Nr)superr(r _prev_percent)r!argskwargs __class__rrrJs zTextInstallProgress.__init__cCsD|j|j|kr d}t|dt|}tjd|||_dSdS)Nzlibapt-pkg4.12zProgress: [%3i%%]z %s )r+ MIN_REPORTINGrintrrwrite)r!pkgpercentstatusdomain progress_strrrr status_changeNs  z!TextInstallProgress.status_change)r%r&r'r0rr8 __classcell__rrr.rr(Es r(c@s(eZdZdZddZddZddZdS) TextCdromProgressAdapterz Report the cdrom add progress cCs,|rtd||jt|jdfdSdS)z; update is called regularly so that the gui can be redrawn z%s (%f)dN)printvaluefloat totalSteps)r!rsteprrrupdateYs$zTextCdromProgressAdapter.updatecCdS)N)Fr rr rrrask_cdrom_name]z'TextCdromProgressAdapter.ask_cdrom_namecCrBNFrr rrr change_cdrom_rDz%TextCdromProgressAdapter.change_cdromN)r%r&r'__doc__rArCrFrrrrr:Ws  r:cseZdZdZd(ddZddZddZd d Zd d Zd dZ ddZ ddZ fddZ ddZ d)ddZd)ddZddZ d*ddZd+d!d"Zd,d$d%Zd&d'ZZS)-DistUpgradeViewTextz' text frontend of the distUpgrade tool Nc Csd|_tddtjvrdtjd<|r|dkr#tjtd}nd}z t d|t dWnt yK}z t d |WYd}~nd}~wwd|_tjj|_t|_t|_t|_|jt_dS) NTTextDEBIAN_FRONTENDdialog.moz)/usr/share/locale/ubuntu-release-upgraderzubuntu-release-upgraderzError setting locales (%s)) needs_screen get_telemetryset_updater_typeosenvironpathjoingetcwdr bindtextdomain textdomain Exceptionloggingwarning last_steprrr OpProgress_opCacheProgressr_acquireProgressr:_cdromProgressr(_installProgress_handleExceptionr excepthook)r!datadirlogdir localedirerrrrfs(      zDistUpgradeViewText.__init__cCslddl}t||||}tdd|t|||ts/|tdtdd|t ddS)Nrznot handled exception: %s zA fatal error occurredzPlease report this as a bug and include the files /var/log/dist-upgrade/main.log and /var/log/dist-upgrade/apt.log in your report. The upgrade has aborted. Your original sources.list was saved in /etc/apt/sources.list.distUpgrade.r) tracebackr<format_exceptionrYerrorrTrr_rexit)r!typer=tbrhlinesrrrras  z$DistUpgradeViewText._handleExceptioncC|jSr)r^r rrrgetAcquireProgressz&DistUpgradeViewText.getAcquireProgresscCs||j_|jSr)r`_cache)r!cacherrrgetInstallProgresssz&DistUpgradeViewText.getInstallProgresscCrpr)r]r rrrgetOpCacheProgressrrz&DistUpgradeViewText.getOpCacheProgresscCrpr)r_r rrrgetCdromProgressrrz$DistUpgradeViewText.getCdromProgresscCstt|tjdSr)r<rrr)r!msgrrr updateStatussz DistUpgradeViewText.updateStatuscCstttddS)NAborting)r<rkr rrrabortszDistUpgradeViewText.abortcstt||||_dSr)r*rHsetStepr[)r!r@r.rrr|s zDistUpgradeViewText.setStepc Cs$|||tdtd|dS)Nz Demoted: z, ) informationrkr rT)r!summaryrx demotionsrrr showDemotionssz!DistUpgradeViewText.showDemotionscCsDttt|tt||rtt|ttdtdS)Nz To continue please press [ENTER])r<r rkrr!r~rx extended_msgrrrr}s     zDistUpgradeViewText.informationcCs2ttt|tt||rtt|dSrE)r<r rrrrrjs    zDistUpgradeViewText.errorc Cst|ts |t}dD]A}tj|rMtj|dgtj d}z|j ||j | WdStyL}z|jtjkr@WYd}~dSd}~wwq t|dS)z" helper to show output in a pager )z/usr/bin/sensible-pagerz /bin/more-)stdinN) isinstancebytesencoderrQrSexists subprocessPopenPIPErr2closewaitIOErrorerrnoEPIPEr<)r!outputpagerprfrrr showInPagers&         zDistUpgradeViewText.showInPagerTc Cst||||||ttt|tt|jtdtdtdfdd t}| tdr9dS|rB| tdrDd S| td rd}t |j d krm|d 7}|ttd d dd|j Ddd7}t |j d kr|d 7}|ttdd dd|j Ddd7}t |jd kr|ttdd dd|jDdd7}|d 7}t |jd kr|d 7}|ttdd dd|jDdd7}t |jd kr|d 7}|ttdd dd|jDdd7}||tdtdtdfddq))Nz %s %sContinue [yN] z Details [d]r endTynFdrrgzNo longer supported: %s  cSg|]}|jqSrname.0rrrr z6DistUpgradeViewText.confirmChanges..z subsequent_indentz Remove: %s cSrrrrrrrrrzRemove (was auto installed) %scSrrrrrrrrrz Install: %s cSrrrrrrrrrz Upgrade: %s cSrrrrrrrrrz%s %s)rconfirmChangesr<r confirmChangesMessagerkrstriplower startswithlenrrTtoRemove toRemoveAuto toInstall toUpgrader) r!r~changesr downloadSizeactions removal_boldresrrrrrs`   z"DistUpgradeViewText.confirmChangesNocCst|r tt|tt||dkr/ttdddt}|tdr-dSdSttdddt}|td rGdSdS) Nrrr rrTFzContinue [Yn] r)r<r rkrrrr)r!r~rxdefaultrrrraskYesNoQuestions  z$DistUpgradeViewText.askYesNoQuestionCancelcCs |j|||dkr ddSddS)NrrYesr)r)r!r~rxrrrraskCancelContinueQuestions  z-DistUpgradeViewText.askCancelContinueQuestioncCs|jtdtdddS)NzRestart requiredz]To finish the upgrade, a restart is required. If you select 'y' the system will be restarted.rr)rrkr rrrconfirmRestart#s z"DistUpgradeViewText.confirmRestart)NNrr")r)r)r%r&r'rGrrarqrurvrwryr{r|rr}rjrrrrrr9rrr.rrHcs(     / rH__main__z89 packages are going to be upgraded. You have to download a total of 82.7M. This download will take about 10 minutes with a 1Mbit DSL connection and about 3 hours 12 minutes with a 56k modem.rrhelloz Icecream?rr)z /usr/bin/dpkgz --configurez-ashortlongaasfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended asfds afsdj af asdf asdf asf dsa fadsf asdf as fasf sextended xxr;)4rrrYrr rrrQDistUpgradeApportrrrrrr telemetryr rO apt.progressDistUpgradeGettextrkutilsr rrrrr(base CdromProgressr:rHr%viewr<rrlrCachertrqfpruipargvr3 mark_installcommit getTerminalcallrjrrrrrsT       I