HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/UpdateManager/Core/__pycache__/MetaRelease.cpython-38.pyc
U

ρ�f<D�@s�ddlmZmZddlZddlZddlZzddlZWnek
rPddlZYnXzddl	m
Z
Wn ek
r�ddlm
Z
YnXddlZddl
ZddlZddlZddlZddlZddlZz0ddlmZddlmZmZddlmZmZWn2ek
�rddlmZmZmZmZmZYnXdd	lmZmZm Z m!Z!m"Z"Gd
d�de#�Z$Gdd
�d
e%�Z&Gdd�de%�Z'e(dk�r�e'dd�Z)dS)�)�absolute_import�print_functionN)�
BadStatusLine)�quote)�Request�urlopen)�	HTTPError�URLError)rrr	rr�)�get_lang�get_dist�get_dist_version�get_ubuntu_flavor�get_ubuntu_flavor_namec@seZdZdS)�MetaReleaseParseErrorN)�__name__�
__module__�__qualname__�rr�@/usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.pyr6src@seZdZdd�ZdS)�DistcCs:||_||_||_||_d|_d|_d|_d|_d|_dS�N)	�name�version�date�	supported�releaseNotesURI�releaseNotesHtmlUri�upgradeTool�upgradeToolSig�upgrade_broken)�selfrrrrrrr�__init__;sz
Dist.__init__N)rrrr"rrrrr:src@speZdZdZdejkZdZdZddd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zedd��Zdd�Zdd�ZdS)�MetaReleaseCorezT
    A MetaReleaseCore object abstracts the list of released
    distributions.
    ZDEBUG_UPDATE_MANAGERz$/etc/update-manager/release-upgradesz /etc/update-manager/meta-releaseFNc

Cs�|�d||f�||_||_t��|_d|_d|_|dkrDt�	�}t
|d�|_t|d�|_
t�|_t�|_d|_d|_d}|d|_|d|_d|_d|_t��}tj�|j��rjz|�|j�WnBtjk
�r}z t j!�"d|j|f�WY�dSd}~XYnX|�#d��rjd}	d	D]L}
|�$|	|
��r|�d
|j|�%|	|
�f�t&|d|	|
f|�%|	|
���qt��}tj�|j'��r^z|�|j'�WnBtjk
�r�}z t j!�"d|j'|f�WY�dSd}~XYnX|�$dd
��r^|�%dd
��(�}|dk�s|dk�rd|_|j�)�dS|dk�rXd|_t*�+�}|�,|j��rL|j|_n
|�d�nd|_|�rl|j|_|�r�|j|j7_n|�r�|j|j7_|�d|j�d|_-|�.��s�|�d�dStj/|j0d��1�dS)Nz1MetaRelease.__init__() useDevel=%s useProposed=%s)�cachezhttps://changelogs.ubuntu.com/zmeta-releasezmeta-release-ltsz-developmentzERROR: failed to read '%s':
%sZMETARELEASE)ZURIZURI_LTSZURI_UNSTABLE_POSTFIXZURI_PROPOSED_POSTFIXz%s: %s z%s_%sZDEFAULTZPrompt�neverZnoZltsz Prompt=lts for non-LTS, ignoringZnormalzmetarelease-uri: %sz_buildMetaReleaseFile failed)�target)2�_debug�
forceDownload�useDevelopmentRelease�	threadingZEvent�
downloaded�
upgradable_to�new_dist�aptZCacher�flavorrZflavor_namer�current_dist_namer
Zcurrent_dist_version�no_longer_supported�prompt�METARELEASE_URIZMETARELEASE_URI_LTSZ METARELEASE_URI_UNSTABLE_POSTFIXZ METARELEASE_URI_PROPOSED_POSTFIX�configparser�ConfigParser�os�path�exists�CONF_METARELEASE�read�Error�sys�stderr�writeZhas_sectionZ
has_option�get�setattr�CONF�lower�set�distro_infoZUbuntuDistroInfoZis_lts�metarelease_information�_buildMetaReleaseFileZThread�download�start)
r!r)ZuseProposedZforceLTSr(r$Zbase_uri�parser�eZsec�kr2Zdirrrr"Ts��


�

� �




zMetaReleaseCore.__init__c
Cs�tj�dtj�|j��|_zt|jd���W�nntk
�r�t�	dtj�
d��}tj�|�d}tj�|�s�zt�
|�Wn:tk
r�}ztj�d|�WY�YdSd}~XYnXtj�|��szt�|d�Wn<tk
�r}ztj�d|�WY�YdSd}~XYnXtj�|d	�}tj�|��s�zt�|�Wn<tk
�r~}ztj�d|�WY�YdSd}~XYnXtj�|tj�|j��|_YnXz$tj�|j�dk�r�t�|j�Wntk
�r�YnXd
S)Nz/var/lib/update-manager/�aZXDG_CACHE_HOMEz~/.cacherzmkdir() failed: '%s'Fi�zupdate-manager-coreT)r6r7�join�basenamer3�METARELEASE_FILE�open�close�IOError�getenv�
expanduser�splitr8�makedirs�OSErrorr<r=r>�mkdir�getsize�unlink�	Exception)r!Z	cache_dirZcache_parent_dirrJr7rrrrF�sR�
��z%MetaReleaseCore._buildMetaReleaseFilecCs
||_dS)z\ virtual function that is called when the distro is no longer
            supported
        N)r1�r!�distrrr�dist_no_longer_supported�sz(MetaReleaseCore.dist_no_longer_supportedcCs
||_dS)z\ virtual function that is called when a new distro release
            is available
        N)r-r\rrr�new_dist_available�sz"MetaReleaseCore.new_dist_availablecCsv|�d�|j}|�d|�d}g}t�|j�}�zh|���r�dD]}||jkrDtd|��qD|jd}|�d|�|jd}tt	j
�|��}d|d	<t�
t|��}	t|jd
�}
|jd}t|||	|
�}d|jk�r|jd|_t�}
|
�r|jd
|
7_d|jk�r:|jd|_|�|�}|�r:|j|7_d|jk�rR|jd|_d|jk�rj|jd|_d|jk�r�|jd|_|�|�||kr6|}q6Wn&tjk
�r�td|j��YnX|j��d|_|dk�r�|�d�dSd}|D]@}|j|jk�r�|j�s|j�s�q�|}|�d|��q6�q�|dk�rX|j�sX||_|� |�|dk�rr||_|�!|�dS)NzMetaRelease.parse()zcurrent dist name: '%s')r�Version�	Supported�DatezRequired key '%s' missingrzfound distro name: '%s'rbr�rar`ZReleaseNotesz?lang=%sZReleaseNotesHtmlZUpgradeToolZUpgradeToolSignatureZ
UpgradeBrokenzUnable to parse %sz,current dist not found in meta-release file
F�znew dist: %sT)"r'r0�apt_pkgZTagFilerE�stepZsectionr�list�email�utilsZ	parsedate�time�mktime�tuple�intrrrr�#_get_release_notes_uri_query_stringrrr �appendr;r3rQrrr)r,r^r_)r!r0Zcurrent_distZdistsZ	index_tagZrequired_keyrZrawdateZ
parseddaterrrr]�langZqueryr,rrr�parse�s�


�


�
�

�






zMetaReleaseCore.parsec
Cs�|�d�d}t|j�}|�dd�|�dd�t�|jtj�rhzt�|j�j	}Wnt
k
rfYnX|dkr�|js�|�dt�
t�|���z�t|dd	�}tj�|j��rt�|jtj��szt�|j�Wn6t
k
�r}ztd
|j|f�W5d}~XYnXzJt|jd�}|��D]}|�|�d���q|��|�dd�||_Wntk
�rfYnX|��Wn�tk
�r�}zN|jd
k�r�tj�|j��r�|�d|j�t|jd�|_n|�d|�W5d}~XYnHtt t!j"fk
�r&}z |�d|�td|j�W5d}~XYnX|jdk	�r�|�d�z|�#�Wn2t$k
�r|t%�&d|j�t�'|j�YnX|j(�r�|j(j)�r�t�'|j�n
|�d�|j*�+�dS)NzMetaRelease.download()rz
Cache-ControlzNo-CacheZPragmazno-cachezIf-Modified-Since�)�timeoutzCan't unlink '%s' (%s)zw+zUTF-8i0zreading file '%s'�rz%result of meta-release download: '%s'zIFailed to connect to %s. Check your Internet connection or proxy settingsz!have self.metarelease_informationzparse failed for '%s'zNO self.metarelease_information),r'rr3Z
add_headerr6�accessrO�W_OK�stat�st_mtimerWr(rj�asctime�gmtimerr7r8rZ�printrP�	readlinesr>�decode�flush�seekrErRrQr�coder	r�socketrsrqr[�loggingZ	exception�remover-r r+rC)r!ZlastmodifiedZreqZurirJ�f�linerrrrGKst

���
�
�
zMetaReleaseCore.downloadcCs|j��Sr)r+Zis_set)r!rrr�downloading�szMetaReleaseCore.downloadingcCs@d}t�}|r|d|7}|d|j7}|d|j7}t|d�S)N�?zlang=%s&zos=%s&zver=%sz/?)rr/rr)r!r]�qrprrrrn�sz3MetaReleaseCore._get_release_notes_uri_query_stringcCs|jrtj�|d�dS)N�
)�DEBUGr<r=r>)r!�msgrrrr'�szMetaReleaseCore._debug)FFFFN)rrr�__doc__r6�environr�rAr9r"rFr^r_rqrG�propertyr�rnr'rrrrr#Hs&
�
e.XG

r#�__main__F)*Z
__future__rrr.rerDr4�ImportErrorr5Zhttp.clientrZhttplibr�Zemail.utilsrhr6r�r<rjr*Zurllib.parserZurllib.requestrrZurllib.errorrr	Zurllib2rirrr
rrr[r�objectrr#r�metarrrr�<module>s@"b