CasperSecurity

Current Path : /lib/python3/dist-packages/DistUpgrade/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/DistUpgrade/__pycache__/MetaRelease.cpython-310.pyc

o

��{f�D�@s~ddlmZmZddlZddlZddlZzddlZWn
ey'ddlZYnwzddl	m
Z
Wney?ddlm
Z
YnwddlZddl
ZddlZddlZddlZddlZddlZzddlmZddlmZmZddlmZmZWney�ddlmZmZmZmZmZYnwdd	lmZmZm Z m!Z!m"Z"Gd
d�de#�Z$Gdd
�d
e%�Z&Gdd�de%�Z'e(dkr�e'dd�Z)dSdS)�)�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�9/usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.pyr6src@seZdZdd�ZdS)�DistcCs:||_||_||_||_d|_d|_d|_d|_d|_dS�N)	�name�version�date�	supported�releaseNotesURI�releaseNotesHtmlUri�upgradeTool�upgradeToolSig�upgrade_broken)�selfrrrrrrr�__init__;s
z
Dist.__init__N)rrrr"rrrrr:src@s|eZdZdZdejvZdZdZ						ddd�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.
    �DEBUG_UPDATE_MANAGERz$/etc/update-manager/release-upgradesz /etc/update-manager/meta-releaseFNc
Cs�|rd|_|�d||f�||_||_t��|_d|_d|_|dur't	�
�}t|d�|_t
|d�|_t�|_t�|_d|_d|_d}|d|_|d|_d|_d|_t��}tj�|j�r�z|�|j�Wntj y�}	zt!j"�#d	|j|	f�WYd}	~	dSd}	~	ww|�$d
�r�d
}
dD]$}|�%|
|�r�|�d|j|�&|
|�f�t'|d
|
|f|�&|
|��q�t��}tj�|j(��r,z|�|j(�Wntj y�}	zt!j"�#d	|j(|	f�WYd}	~	dSd}	~	ww|�%dd��r,|�&dd��)�}|dk�s|dk�rd|_|j�*�dS|dk�r)d|_t+�,�}
|
�-|j��r#|j|_n	|�d�nd|_|�r3|j|_|�r?|j|j7_n|�rJ|j|j7_|�d|j�d|_.|�/��sa|�d�dStj0|j1d��2�dS)NTz1MetaRelease.__init__() useDevel=%s useProposed=%s)�cachezhttps://changelogs.ubuntu.com/zmeta-releasezmeta-release-ltsz-developmentz	-proposedzERROR: failed to read '%s':
%s�METARELEASE)�URI�URI_LTS�URI_UNSTABLE_POSTFIX�URI_PROPOSED_POSTFIXz%s: %s z%s_%s�DEFAULT�Prompt�never�no�ltsz Prompt=lts for non-LTS, ignoring�normalzmetarelease-uri: %sz_buildMetaReleaseFile failed)�target)3�DEBUG�_debug�
forceDownload�useDevelopmentRelease�	threading�Event�
downloaded�
upgradable_to�new_dist�apt�Cacher�flavorr�flavor_namer�current_dist_namer
�current_dist_version�no_longer_supported�prompt�METARELEASE_URI�METARELEASE_URI_LTS� METARELEASE_URI_UNSTABLE_POSTFIX� METARELEASE_URI_PROPOSED_POSTFIX�configparser�ConfigParser�os�path�exists�CONF_METARELEASE�read�Error�sys�stderr�write�has_section�
has_option�get�setattr�CONF�lower�set�distro_info�UbuntuDistroInfo�is_lts�metarelease_information�_buildMetaReleaseFile�Thread�download�start)r!r5�useProposed�debug�forceLTSr4r%�base_uri�parser�e�sec�krB�dirrrr"Ts��


���


�����




zMetaReleaseCore.__init__c
Cs�tj�dtj�|j��|_z
t|jd���Wn�ty�t�	dtj�
d��}tj�|�d}tj�|�sZzt�
|�WntyY}ztj�d|�WYd}~YdSd}~wwtj�|�s�zt�|d�Wnty�}ztj�d|�WYd}~YdSd}~wwtj�|d	�}tj�|�s�zt�|�Wnty�}ztj�d|�WYd}~YdSd}~wwtj�|tj�|j��|_Ynwztj�|j�dkr�t�|j�Wd
SWd
Sty�Yd
Sw)Nz/var/lib/update-manager/�a�XDG_CACHE_HOMEz~/.cacherzmkdir() failed: '%s'Fi�zupdate-manager-coreT)rIrJ�join�basenamerC�METARELEASE_FILE�open�close�IOError�getenv�
expanduser�splitrK�makedirs�OSErrorrOrPrQ�mkdir�getsize�unlink�	Exception)r!�	cache_dir�cache_parent_dirrfrJrrrr]�sf��������
�����z%MetaReleaseCore._buildMetaReleaseFilecC�
||_dS)z\ virtual function that is called when the distro is no longer
            supported
        N)rA�r!�distrrr�dist_no_longer_supported��
z(MetaReleaseCore.dist_no_longer_supportedcCr})z\ virtual function that is called when a new distro release
            is available
        N)r:r~rrr�new_dist_available�r�z"MetaReleaseCore.new_dist_availablecCsV|�d�|j}|�d|�d}g}t�|j�}z�|��r�dD]
}||jvr-td|��q |jd}|�d|�|jd}tt	j
�|��}d|d	<t�
t|��}	t|jd
�}
|jd}t|||	|
�}d|jvr~|jd|_t�}
|
r~|jd
|
7_d|jvr�|jd|_|�|�}|r�|j|7_d|jvr�|jd|_d|jvr�|jd|_d|jvr�|jd|_|�|�||kr�|}|��sWntjy�td|j��w|j��d|_|dur�|�d�dSd}|D]}|j|jk�r
|js�|js�q�|}|�d|�nq�|dk�r|j�s||_|� |�|dk�r)||_|�!|�dS)NzMetaRelease.parse()zcurrent dist name: '%s')r�Version�	Supported�DatezRequired key '%s' missingrzfound distro name: '%s'r�r�r�r��ReleaseNotesz?lang=%s�ReleaseNotesHtml�UpgradeTool�UpgradeToolSignature�
UpgradeBrokenzUnable to parse %sz,current dist not found in meta-release file
F�znew dist: %sT)"r3r?�apt_pkg�TagFiler\�step�sectionr�list�email�utils�	parsedate�time�mktime�tuple�intrrrr�#_get_release_notes_uri_query_stringrrr �appendrNrCrprrr5r9r�r�)r!r?�current_dist�dists�	index_tag�required_keyr�rawdate�
parseddaterrrr�lang�queryr9rrr�parse�s�

��




�


�

��$��

�



zMetaReleaseCore.parsec
Cs�|�d�d}t|j�}|�dd�|�dd�t�|jtj�r3z	t�|j�j	}Wn	t
y2Ynw|dkrF|jsF|�dt�
t�|���zmt|dd	�}tj�|j�r�t�|jtj�s�zt�|j�Wnt
y}ztd
|j|f�WYd}~nd}~wwz$t|jd�}|��D]
}|�|�d��q�|��|�dd�||_Wn	ty�Ynw|��WnYty�}z)|jd
kr�tj�|j�r�|�d|j�t|jd�|_n|�d|�WYd}~n)d}~wtt t!j"f�y}z|�d|�td|j�WYd}~nd}~ww|jdu�rG|�d�z|�#�Wnt$�y6t%�&d|j�t�'|j�Ynw|j(�rF|j(j)�rFt�'|j�n|�d�|j*�+�dS)NzMetaRelease.download()rz
Cache-ControlzNo-Cache�Pragmazno-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),r3rrC�
add_headerrI�accessrn�W_OK�stat�st_mtimervr4r��asctime�gmtimerrJrKry�printro�	readlinesrQ�decode�flush�seekr\rqrpr�coder	r�socketr�r�rz�logging�	exception�remover:r r8rX)r!�lastmodified�req�urirf�f�linerrrr_Ns�

������
�����
���
zMetaReleaseCore.downloadcCs|j��Sr)r8�is_set)r!rrr�downloading�szMetaReleaseCore.downloadingcCs@d}t�}|r
|d|7}|d|j7}|d|j7}t|d�S)N�?zlang=%s&zos=%s&zver=%sz/?)rr=rr)r!r�qr�rrrr��s
z3MetaReleaseCore._get_release_notes_uri_query_stringcCs|jr
tj�|d�dSdS)N�
)r2rOrPrQ)r!�msgrrrr3�s�zMetaReleaseCore._debug)FFFFFN)rrr�__doc__rI�environr2rVrLr"r]r�r�r�r_�propertyr�r�r3rrrrr#Hs*

�h.XG

r#�__main__F)*�
__future__rrr;r�rYrG�ImportErrorrH�http.clientr�httplibr��email.utilsr�rIr�rOr�r6�urllib.parser�urllib.requestrr�urllib.errorrr	�urllib2r�rrr
rrrzr�objectrr#r�metarrrr�<module>sJ�� �e�
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY