&e$ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddlmZ gdZ ddlmZdZd Zd Zd Zd Zd Zy)N)datetime) OptionParser)gettext) z/binz/bootz/etcz/initrdz/libz/lib32z/lib64z/sbinz/usrz/var)DistUpgradeConfigc t}|jdddd|jddd|jd dd |jd d d td|jdddtd|jddddtd|jdddtd|jdddtd|jddd dtd!"|jS)#z/ setup option parser and parse the commandline z--have-prerequistshavePrerequists store_trueF)destactiondefaultz--with-network withNetwork)r r z--without-network store_falsez --frontendfrontendNz_Use frontend. Currently available: DistUpgradeViewText, DistUpgradeViewGtk, DistUpgradeViewKDE)r r helpz--modemodedesktopz(*DEPRECATED* this option will be ignoredz --partialpartialz:Perform a partial upgrade only (no sources.list rewriting))r r r rz--disable-gnu-screenzDisable GNU screen support)r r rz --datadirdatadir.z Set datadirz--devel-release devel_releasez"Upgrade to the development release)r r r r)r add_option_ parse_args)parsers =/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeMain.pydo_commandliner6sH ^F *1B)5: &],O ) ]S lD[\] hVIGHJ k 5)YZ\ ,\#9:< k 3]+- ' *EABD    c F|jddd}tjj|stj|t j |dzrt j}|d|j|j|j|j|jfzz}tjj|stj|t j |dzD]S}tj|tjj|tjj!|Utjj|d}|j"r|dz }t%|d5 d d d t'j(t&j*|d d t'j,d |j.zt'j,ddjtj0zt2j4j7d }|dj8j:}t'j,d|zt'j,dt<j>z|S#1swYxYw)z setup the logging FilesLogDirz/var/log/dist-upgrade/z/*.logz/%04i%02i%02i-%02i%02izmain.logz.partialaNz%%(asctime)s %(levelname)s %(message)sw)levelfilenameformatfilemodezUsing config files '%s'zuname information: '%s' aptzapt version: '%s'zpython version: '%s') getWithDefaultospathexistsmkdirglobrnowyearmonthdayhourminuteshutilmovejoinbasenameropenlogging basicConfigDEBUGinfo config_filesunamer)apt_pkgCache current_verver_strsysversion) optionsconfiglogdirr0 backup_dirffnamecache apt_versions r setup_loggingrOOs  " "784L MF 77>>& !  yy!lln4377SVS[S[\_\f\f7ggg ww~~j) HHZ 6(?+ IA KK277<< 2773C3CA3FG H I GGLL +E  eS     gmm!&F!$&  LL*V-@-@@A LL*SXXbhhj-AAB KK  d #E,**22K LL${23 LL'#++56 M  s JJ c ddlm}t j j|d}tjd|zt jd}|}|jd|dd t j| tjd d gtjd jd }tt j j|dd5}|j!|dddy#t$rtjdYywxYw#1swYyxYw#t"$r"}tjd|zYd}~yd}~wwxYw)Nr)AptClonezfailed to import AptClonezapt-clone_system_state.tar.gzzcreating statefile: '%s'6/T) sourcedirtargetwith_dpkg_status scrub_sourceslspciz-nnstdoutuniversal_newlinesrz lspci.txtr#zlspci failed: %s) apt_clonerQ ImportErrorr;errorr+r,r8debugumask save_state subprocessPopenPIPE communicater:writeOSError)rIrQrU old_umaskclonesrKes rsave_system_staterlps,'WW\\&"A BF MM,v56 I JE s6DHHY.   GE?:??.2 44?KM! E "'',,v{3S 9 Q GGAJ  #  12"   . (1,--.sHDA#D5*D)<D5D&%D&)D2.D52D55 E >EE c |jg|jddzD]:}|s ddlm}|d|zd}t ||}|||j }|Stjd td tjdS#t $r8}tjd|d|d td |d |d Yd }~d }~wwxYw)z0 setup view based on the config and commandline Viewr) import_moduler DistUpgrade)rIrzcan't import view 'z' ()z can't load z (Nz!No view can be imported, abortingr) rgetlist importlibrogetattrr Exceptionr;warningprintr^rEexit) rGrHrIrequested_viewro view_modul view_classinstancerks r setup_viewr}s#++,V^^F6-JJ  > /&s>'9=IJ!^ OO^AN O .!< = = >s2B C.CCcd} tjddgtjdjd}t j d|z||vr0t jd tjd dd d d|gdtjd<dddddd|gtjz}t jd|ztjd |y #t $rt jdYy wxYw)z check if there is a upgrade already running inside gnu screen, if so, reattach if not, create new screen window z$ubuntu-release-upgrade-screen-windowscreenz-lsTrYrzscreen returned: '%s'zscreen could not be runNz)found active screen session, re-attachingz/usr/bin/screenz-dz-rz-p1RELEASE_UPGRADER_NO_SCREENz-ez\0\0z-cscreenrcz-Szre-exec inside screen: '%s') rbrcrdrer;r_rgr>r+execvenvironrEargv) SCREENNAMEoutcmds r%run_new_gnu_screen_window_or_reattachrs 8J e Z__#%%0[]16  -34 S @A "hdD*%MN-0BJJ+,     !XX &C LL.45HH $%  ./sAC%%DDct\}}t|j}t||}ddlm}t jd|ztjd|j|jdk(rHtjjtjd}tjd|t|||}|j r(dtj"vr|j$s t'tj(dsd tj"d<dd lm}||||j }t-j.|j0|j2r:|j5st7j8dt7j8d t;||j=ry y) z main method r)VERSIONz%release-upgrader version '%s' startedzubuntu-release-upgraderrmorNEEDRESTART_SUSPENDy)DistUpgradeController)rr)rrrrODistUpgradeVersionrr;r>r textdomainr+r,r8getcwdbindtextdomainr} needs_screenrdisable_gnu_screenrgetenvratexitregister_enableAptCronJobrdoPartialUpgraderErxrlrun) rGargsrHrIr localedirviewrapps rmainrsO%&OWd w /F 7F +F+ LL87BC 01'//S"8GGLLd3 8)D gvv .D  (BJJ 6  & &-/ 99* +,/ ()< gw GC OOC))*##% HHQK  f wwy r)r)rrr/r;r+r6rbrEroptparserr SYSTEM_DIRSDistUpgradeConfigParserrrrOrlr}rrrrrsW,    !   72B.44%B. r