HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/UpdateManager/Core/__pycache__/MetaRelease.cpython-312.pyc
�

z��c�D���ddlmZmZddlZddlZddlZ	ddlZ	ddl	m
Z
ddlZddl
ZddlZddlZddlZddlZddlZ	ddlmZddlmZmZddlmZmZdd	lmZmZm Z m!Z!m"Z"Gd
�de#�Z$Gd�d
e%�Z&Gd�de%�Z'e(dk(r
e'dd�Z)yy#e$rddlZY��wxYw#e$r	ddlm
Z
Y��wxYw#e$rddlmZmZmZmZmZY�twxYw)�)�absolute_import�print_functionN)�
BadStatusLine)�quote)�Request�urlopen)�	HTTPError�URLError)r	rr
rr�)�get_lang�get_dist�get_dist_version�get_ubuntu_flavor�get_ubuntu_flavor_namec��eZdZy)�MetaReleaseParseErrorN)�__name__�
__module__�__qualname__���@/usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.pyrr6s��rrc��eZdZd�Zy)�Distc��||_||_||_||_d|_d|_d|_d|_d|_y�N)	�name�version�date�	supported�releaseNotesURI�releaseNotesHtmlUri�upgradeTool�upgradeToolSig�upgrade_broken)�selfrrrr s     r�__init__z
Dist.__init__;sF����	������	�"���#���#'�� ����"���"��rN)rrrr'rrrrr:s��
#rrc��eZdZdZdej
vZdZdZ						dd�Z	d�Z
d�Zd	�Zd
�Z
d�Zed��Zd
�Zd�Zy)�MetaReleaseCorezT
    A MetaReleaseCore object abstracts the list of released
    distributions.
    �DEBUG_UPDATE_MANAGERz$/etc/update-manager/release-upgradesz /etc/update-manager/meta-releaseNc	�|�|rd|_|jd|�d|���||_||_t	j
�|_d|_d|_|�tj�}t|��|_t|��|_t�|_t#�|_d|_d|_d}|dz|_|dz|_d|_d	|_t3j4�}t6j8j;|j<�r�	|j?|j<�|jId�rod}
d
D]h}|jK|
|�s�|j|j<�d|jM|
|��d��tO||
�d|��|jM|
|���jt3j4�}t6j8j;|jP�r�	|j?|jP�|jKdd�r�|jMdd�jS�}|dk(s|dk(r"d|_|jjU�y|dk(rZd|_tWjX�}
|
j[|j �r|j,|_n|jd�nd|_|r|j,|_|r |xj*|j.z
c_n!|r|xj*|j0z
c_|jd|j*z�d|_.|j_�s|jd�yt	j`|jb��je�y#t2j@$r9}	tBjDjGd
|j<�d|	���Yd}	~	yd}	~	wwxYw#t2j@$r9}	tBjDjGd
|jP�d|	���Yd}	~	yd}	~	wwxYw)NTz MetaRelease.__init__() useDevel=z
 useProposed=)�cachezhttps://changelogs.ubuntu.com/zmeta-releasezmeta-release-ltsz-developmentz	-proposedzERROR: failed to read 'z':
�METARELEASE)�URI�URI_LTS�URI_UNSTABLE_POSTFIX�URI_PROPOSED_POSTFIXz: � �_�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&r>�useProposed�debug�forceLTSr=r,�base_uri�parser�e�sec�krK�dis              rr'zMetaReleaseCore.__init__Ts{����D�J����*�K�9�	:�+���%:��"�#�/�/�+���!�����
��=��I�I�K�E�'�e�4���1��>���!)����$4�$6��!�#'�� ����4��'�.�8���#+�.@�#@�� �0>��-�0;��-��*�*�,��
�7�7�>�>�$�/�/�0�
����D�1�1�2��!�!�-�0�#��2�A��(�(��a�0�����1F�1F�17���C��1C�%E�F����a�&8�&�*�*�S�!�:L�M�2��*�*�,��
�7�7�>�>�$�)�)�$�
����D�I�I�&�� � ��H�5����I�x�8�>�>�@���g�%��4��")�D�K��O�O�'�'�)���u�_�"'�D�K�%�5�5�7�B��y�y��!7�!7�8�/3�/G�/G��,����$F�G�"*�D�K��#'�#;�#;�D� � �� � �D�$I�$I�I� �
�� � �D�$I�$I�I� ����)�D�,@�,@�@�A�'+��$��)�)�+��K�K�6�7������
�
�.�4�4�6��} �%�%�
��
�
� � �!%�!6�!6��";�<���
��, �%�%�
��
�
� � �!%���A�"/�0���
�s0�N �5O/� O,�3/O'�'O,�/P;�/P6�6P;c���tjjdtjj|j��|_	t
|j
d�j�	tjj'|j
�dk(rtj(|j
�y
#t$�rtjdtjjd��}tjj|�d}tjj|�sP	tj|�n9#t$r-}tj j#d|z�Yd}~Yyd}~wwxYwtjj|�sQ	tj$|d�n9#t$r-}tj j#d|z�Yd}~Yyd}~wwxYwtjj|d	�}tjj|�sP	tj$|�n9#t$r-}tj j#d|z�Yd}~Yyd}~wwxYwtjj|tjj|j��|_Y��iwxYw#t*$rYy
wxYw)Nz/var/lib/update-manager/�a�XDG_CACHE_HOMEz~/.cacherzmkdir() failed: '%s'Fi�zupdate-manager-coreT)rRrS�join�basenamerL�METARELEASE_FILE�open�close�IOError�getenv�
expanduser�splitrT�makedirs�OSErrorrXrYrZ�mkdir�getsize�unlink�	Exception)r&�	cache_dir�cache_parent_dirrorSs     rrfz%MetaReleaseCore._buildMetaReleaseFile�s�� "�����&��G�G���T�1�1�2�!4���
	8���&�&��,�2�2�4�>	��w�w���t�4�4�5��:��	�	�$�/�/�0���G�	8��	�	� �"�'�'�"4�"4�Z�"@�B�I�
 "�w�w�}�}�Y�7��:���7�7�>�>�"2�3�!��K�K� 0�1���!��J�J�$�$�%;�a�%?�@� ��!���7�7�>�>�)�,�!��H�H�Y��.���!��J�J�$�$�%;�a�%?�@� ��!���7�7�<�<�	�+@�A�D��7�7�>�>�$�'�!��H�H�T�N���!��J�J�$�$�%;�a�%?�@� ��!��%'�G�G�L�L����� � ��!5�!5�6�%8�D�!�5	8��B�	���	�s��$B?�3AK�?A>K�>E�K�	F
�"F�?K�F
�
"K�-G�K�	G:�
"G5�/K�5G:�:AK�=I�K�	J	�"J�>K�J	�	AK�K�	K+�*K+c��||_y)z\ virtual function that is called when the distro is no longer
            supported
        N)rJ�r&�dists  r�dist_no_longer_supportedz(MetaReleaseCore.dist_no_longer_supported�s��$(�� rc��||_y)z\ virtual function that is called when a new distro release
            is available
        N)rCr�s  r�new_dist_availablez"MetaReleaseCore.new_dist_available�s����
rc��|jd�|j}|jd|z�d}g}tj|j�}	|j��r�dD]}||jvs�td|z��|jd}|jd|z�|jd}ttjj|��}d|d	<tjt|��}	t|jd
�}
|jd}t!|||	|
�}d|jvr8|jd|_t%�}
|
r|xj"d
|
zz
c_d|jvr<|jd|_|j)|�}|r|xj&|z
c_d|jvr|jd|_d|jvr|jd|_d|jvr|jd|_|j1|�||k(r|}|j�r���|jj7�d|_|�|jd�yd}|D]L}|j8|j8kDs�|j:s
|j<s�6|}|jd|z�n|dk7r$|j:s||_|jA|�|dk7r||_|jC|�y#tj2$rtd|j4z��wxYw)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)"r<rH�apt_pkg�TagFilere�step�sectionr�list�email�utils�	parsedate�time�mktime�tuple�intrr!rr"�#_get_release_notes_uri_query_stringr#r$r%�appendrWrLrzrr r>rBr�r�)r&rH�current_dist�dists�	index_tag�required_keyr�rawdate�
parseddaterr rr��lang�queryrBs                r�parsezMetaReleaseCore.parse�sE�����)�*� �2�2�����-�0A�A�B������O�O�D�$@�$@�A�	�'	>��.�.�"�$L�L�#�9�+<�+<�<�3�7�,�F�H�H�%M�!�(�(��0�����5��<�=�#�+�+�F�3��!�%�+�+�"7�"7��"@�A�
� !�
�1�
��{�{�5��#4�5���	� 1� 1�+� >�?�	�#�+�+�I�6���D�'�4��;��!�Y�%6�%6�6�+4�+<�+<�^�+L�D�(�#�:�D���,�,�
�T�0A�A�,�%��):�):�:�/8�/@�/@�*�0,�D�,� �D�D�T�J�E���0�0�E�9�0� �I�$5�$5�5�'0�'8�'8��'G�D�$�)�Y�->�->�>�*3�*;�*;�.�+0�D�'�"�i�&7�&7�7�*3�*;�*;�O�*L�D�'����T�"��,�,�#'�L�G�.�.�"�P	
�$�$�*�*�,�'+��$�
���K�K�G�H���
��D��y�y�<�,�,�,�
�~�~�d�.H�.H�� $�
����N�]�:�;����B��|�'=�'=�!.�D���)�)�,�7��B��!.�D���#�#�M�2���M�}�}�	>�'�(<�(,�(<�(<�)=�>�
>�	>�s�$L+�;GL+�+,Mc�N�|jd�d}t|j�}|jdd�|jdd�t	j
|jtj�r*	t	j|j�j}|dkDrD|js8|jdtjtj|���	t|d�	�}tj j#|j�rNt	j
|jtj�s 	t	j$|j�	t)|jd
�}|j+�D]"}|j-|j/d���$|j1�|j3dd�||_|j9�|j4�d|jd�	|jG�|jPrG|jPjRr1t	jN|j�n|jd�|jTjW�y#t$rY���wxYw#t$r'}t'd
|j�d|�d��Yd}~��\d}~wwxYw#t6$rY��wxYw#t:$r�}|j<dk(rctj j#|j�r:|jd|jz�t)|jd�|_n|jd|z�Yd}~���d}~wt>t@tBjDf$r7}|jd|z�t'd|jz�Yd}~���d}~wwxYw#tH$rEtKjLd|jz�t	jN|j�Y���wxYw)NzMetaRelease.download()rz
Cache-ControlzNo-Cache�Pragmazno-cachezIf-Modified-Since�)�timeoutzCan't unlink 'z' (�)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<rrL�
add_headerrR�accessrx�W_OK�stat�st_mtimer�r=r��asctime�gmtimerrSrTr��printry�	readlinesrZ�decode�flush�seekrer{rzr	�coder
r�socketr�r�r��logging�	exception�removerCr%rAra)r&�lastmodified�req�uriro�f�lines       rrhzMetaReleaseCore.downloadNs)�����,�-����d�*�*�+������
�3����x��,�
�9�9�T�*�*�B�G�G�4�
�!�w�w�t�'<�'<�=�F�F���!��D�$6�$6��N�N�.��<�<����L�(A�B�
D�$	>��#�r�*�C������t�4�4�5��I�I�d�&;�&;�R�W�W�E�:��I�I�d�3�3�4�

���.�.��5���M�M�O�D��G�G�D�K�K��0�1�,����	����q�!��/0��,�
�I�I�K��'�'�3��K�K�;�<�
1��
�
���}�}����!=�!=��	�	�$�/�/�0��K�K�9�:��������w�
��
���:��d�6K�6K�67�9�:�:��:���
��
���	I��v�v��}�������0E�0E�!F����/�$�2G�2G�G�H�/3�D�4I�4I�3�/O��,����C�a�G�H����-����8�	>��K�K�?�!�C�D��&�(,�(<�(<�=�
>�
>��	>���
1��!�!�"9�$(�$9�$9�#:�;��	�	�$�/�/�0�	
1�s��<)J�/A$K&�J$�4A4K�(K&�O�	J!� J!�$	K�-K�	K&�K�K&�	K#� K&�"K#�#K&�&	O�/BM;�;!O�,O�O�A
P$�#P$c�8�|jj�Sr)rA�is_set)r&s r�downloadingzMetaReleaseCore.downloading�s���?�?�)�)�+�+�+rc��d}t�}|r|d|zz
}|d|jzz
}|d|jzz
}t|d�S)N�?zlang=%s&zos=%s&zver=%sz/?)rrFrr)r&r��qr�s    rr�z3MetaReleaseCore._get_release_notes_uri_query_string�sR�����z���
��d�"�"�A�	�X����
#�#��	�X����
$�$���Q��~�rc�b�|jr#tjj|dz�yy)N�
)r;rXrYrZ)r&�msgs  rr<zMetaReleaseCore._debug�s$���:�:��J�J���S�4�Z�(�r)FFFFFN)rrr�__doc__rR�environr;r_rUr'rfr�r�r�rh�propertyr�r�r<rrrr)r)Hs{���

#�b�j�j�0�E�2�D�9��(-�"���$��
e7�P,�\(��T�pE�N�,��,��)rr)�__main__F)*�
__future__rrrDr�rbrP�ImportErrorrQ�http.clientr�httplibr��email.utilsr�rRr�rXr�r?�urllib.parser�urllib.requestrr�urllib.errorr	r
�urllib2r�rr
rrrr�r�objectrr)r�metarrr�<module>r�s���.7�
���(��&�)���	�
�
���E�"�/�0�,�,�	�I�	�#�6�#�`)�f�`)�F�z���5�%�(�D���[�(�'�(���&�%�&���E�D�D�E�s3�B�B"�B3�	B�B�"B0�/B0�3C	�C