
    &e              
           d dl Z d dlZd dlZd dlZd dlZd dlZdddddddd	d
d	ZddZd Zd Z	d Z
edk(  r eddd       yy)    NAptlog
ApttermlogzAptclonesystemstate.tar.gz
HistorylogLspcitxtMainlogTermlog	Screenlog	Xorgfixup)	zapt.logzapt-term.logzapt-clone_system_state.tar.gzzhistory.logz	lspci.txtzmain.logzterm.logzscreenlog.0zxorg_fixup.logc                    d}t         D ]  }t        j                  j                  ||      }t        j                  j	                  |      r"t        j                  j                  |      dk(  re|t         |   z   }t        j                  |t        j                        r|f| |<   t        j                  j                  |      s	 ddl	m
}  |dd|z  gd      | |<    y # t        $ r t        j                  d|z         Y w xY w)	NVarLogDistupgrader   )root_command_outputcatz%sF)decode_utf8z8failed to import apport python module, can't include: %s)APPORT_ALLOWLISTospathjoinisfilegetsizeaccessR_OKexistsapport.hookutilsr   ImportErrorloggingerror)reportlogdirdirnamefnamefidentr   s          ?/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeApport.py_apport_append_logfilesr$      s    !G! ;GGLL'ww~~a BGGOOA$6!$;*51199Q EF5MWW^^A;@ 3D1H%5!:u;  ; 249: ;;s   C!!!DDc                 @   t        j                  d       dt        j                  v rt        j                  d       y	 ddlm} ddlm} d	d
l
m} dt        j                  d<    || ||       t        j                  j                  d      rd |       }|j!                  dd       d|dd z  }|j!                  d|       |j!                  dd|z         t#        |       |j%                  d       y# t        $ r"}t        j                  d|z         Y d }~yd }~ww xY w)Nzrunning apport_crash()RELEASE_UPRADER_NO_APPORT!RELEASE_UPRADER_NO_APPORT env setFr   )apport_excepthook)Reportz?failed to import apport python module, can't generate crash: %s   )VERSIONz/usr/bin/do-release-upgradez./var/crash/_usr_bin_do-release-upgrade.0.crashTagsdist-upgradez	Ubuntu %s   DistroReleasePackagez!ubuntu-release-upgrader-core 1:%sT)r   debugr   environapport_python_hookr(   apport.reportr)   r   r   DistUpgradeVersionr+   sysargvr   r   
setdefaultr$   add_to_existing)	typevaluetbr(   r)   er+   r   releases	            r#   apport_crashr?   )   s   MM*+"bjj09:8(
 ,/CHHQKdE2&	ww~~FG&.1!,/73 	)%H!&" 	#'<	>+   +-./ 	0s   C2 2	D;DDc                    t        j                  d| |       dt        j                  v rt        j                  d       yd}d}d|v rt        j                  d| z         yt	        j
                  d	d      }||v rt        j                  d| z         yt        j                  t        j                        |v rt        j                  d
| z         yt        j                  j                  |      r|d| g}|j                  ddg       t        D ]3  }|j                  dt        j                  j                  ||      g       5 	 t        j                  |t        j                   d      }|j"                  j%                  |       |j"                  j'                          yy# t(        $ r"}t        j*                  d|z         Y d }~yd }~ww xY w)Nz"running apport_pkgfailure() %s: %sr&   r'   F/var/log/dist-upgrade/z/usr/share/apport/package_hookz*dependency problems - leaving unconfiguredzDdpkg error because of dependency problems, not reporting against %s dpkgz:dpkg error because of full disk, not reporting against %s z-pz--tagsr-   z-lT)stdinuniversal_newlineszFailed to run apport (%s))r   r1   r   r2   gettextdgettextstrerrorerrnoENOSPCr   r   extendr   r   
subprocessPopenPIPErC   writeclose	Exceptionwarning)	pkgerrormsgLOGDIRsneedleargsr    pr=   s	            r#   apport_pkgfailurerY   J   s   MM6XF"bjj09:%F(A
 4x? .034 	5<>F .034 	5	{{5<< H, $&)* 	+	ww~~a4~X~./% 	=EKKrww||FE:;<	=	  Z__48:AGGMM(#GGMMO
 	  	OO7!;<	s   AF# #	G,G		Gc                  \   dt         j                  v rt        j                  d       ydt         j                  v ryt         j                  j                  d      r	 t        j                  d      dk(  S t        j                  d	       y# t        $ r t        j                  d       Y yw xY w)
z( run apport, check if we have a display r&   r'   FDISPLAYTz/usr/bin/apport-clir   z&Unable to launch '/usr/bin/apport-cli'zcan't find apport)
r   r2   r   r1   r   r   rK   callrP   	exception     r#   
run_apportr`   w   s    "bjj09:BJJ	-	.	OO$9:a?@ MM%&	  	FG	s   B
 
B+*B+__main__)rA   )r   r   rK   r6   rE   rH   r   r$   r?   rY   r`   __name__r^   r_   r#   <module>rc      sm    	   
    %A!
 ;&B*Z$ ztT" r_   