403Webshell
Server IP : 146.190.157.162  /  Your IP : 216.73.216.102
Web Server : Apache
System : Linux ubuntu-s-2vcpu-4gb-amd-sfo3-01-KIT-DIGITAL 6.5.0-44-generic #44-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:10:09 UTC 2024 x86_64
User : businessweek ( 639)
PHP Version : 8.2.10-2ubuntu2.2
Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_signal,pcntl_signal_dispatch,pcntl_getpriority,pcntl_setpriority,dl,putenv,parse_ini_file,show_source
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/DistUpgrade/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/DistUpgrade/__pycache__/apt_clone.cpython-311.pyc
�

���d����ddlmZddlZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
	ddlZn
#e$rdZYnwxYwddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlmZmZde
jvr6ej�dd��ej�dd��Gd	�d
e��ZGd�de��ZdS)
�)�print_functionN)�FetchFailedException)�BytesIO�open�APT_CLONE_DEBUG_RESOLVERzDebug::pkgProblemResolver�1zDebug::pkgDepCache::AutoInstallc�<�eZdZdZdZd�Zd�Zd
d�Zd�Zd�Z	d	�Z
dS)�LowLevelCommandszN calls to the lowlevel operations to install debs
        or repack a deb
    z/usr/bin/dpkg-repackc��|sdSddg}|dkr,|�dd��|�d|��tj||z��}|dkS)NT�dpkgz-i�/r�chroot�)�insert�
subprocess�call)�self�debfiles�	targetdir�install_cmd�rets     �7/usr/lib/python3/dist-packages/DistUpgrade/apt_clone.py�install_debszLowLevelCommands.install_debs6sm���	��4��t�n���������q�(�+�+�+����q�)�,�,�,��o�k�H�4�5�5���q���c�F�tj�|j��st	d|jz���|jg}tj��dks(tj�d��sdSddg|z}t
j||gz|���}|dkS)z$ dpkg-repack pkgname into targetdir z
no '%s' foundrz/usr/bin/fakerootN�fakerootz-u)�cwd)�os�path�exists�dpkg_repack�IOError�getuidrr)r�pkgnamer�
repack_cmdrs     r�
repack_debzLowLevelCommands.repack_deb@s����w�~�~�d�.�/�/�	>��/�D�,<�<�=�=�=��&�'�
��y�{�{�a����7�>�>�"5�6�6�
���$�d�+�j�8�J��o�j�G�9�4�)�D�D�D���q��rNc��|� trtj��d}|�tjd��}tjd||g��}|dkS)N�CODENAMEzlsb_release --codename --short�debootstrapr)�lsb_release�get_distro_informationr�	getoutputr)rr�distrors    rr)zLowLevelCommands.debootstrapLsT���>�k�>� �7�9�9�*�E�F��>��)�*J�K�K�F��o�}�f�i�@�A�A���q��rc�@�tjdd|d|g��}|dkS)Nzapt-keyz	--keyring�addr�rr)r�fromkeyfile�intokeyfilers    r�
merge_keyszLowLevelCommands.merge_keysTs-���o�y�+�{�$�k�3�4�4���q��rc�>�tjdd||g��}|dkS)N�mountz--bindrr0)r�olddir�newdirrs    r�
bind_mountzLowLevelCommands.bind_mountYs$���o�w��&�&�A�B�B���q��rc�:�tjd|g��}|dkS)N�umountrr0)r�binddirrs   r�bind_umountzLowLevelCommands.bind_umount]s ���o�x��1�2�2���q��r�N)�__name__�
__module__�__qualname__�__doc__r!rr&r)r3r8r<�rrr
r
0s���������)�K����
�
�
��������
�������rr
c�&�eZdZdZdej��dzZdZ		d)d�Z		d*d�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd+d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd,d�Z		d-d�Zd.d�Zd.d�Zd�Zd/d �Z d!�Z!d"�Z"d#�Z#d$�Z$d0d&�Z%d,d'�Z&d(�Z'dS)1�AptClonez� clone the package selection/installation of a existing system
        using the information that apt provides

        If dpkg-repack is installed, it will be used to generate debs
        for the obsolete ones.
    zapt-clone-state-%s.tar.gzr�./Nc�x�t��|_t��|_t��|_|r||_n(tjj�	��|_|r||_
n(tjj���|_
|r	||_
dStj|_
dSr=)�set�not_downloadable�version_mismatchr
�commands�fetch_progress�apt�progress�text�AcquireProgress�install_progress�base�InstallProgress�
_cache_cls�Cache)rrKrP�	cache_clss    r�__init__zAptClone.__init__ms��� #����� #�����(�*�*��
��	G�"0�D���#&�<�#4�#D�#D�#F�#F�D���	H�$4�D�!�!�$'�L�$5�$E�$E�$G�$G�D�!��	(�'�D�O�O�O�!�i�D�O�O�OrFc��tj�|��r&tj�||j��}n|�d��s|dz
}|dkr�t
j��tj�	d|��tj�	dtj�|d����t
j
��tj|d���5}|�
|��|�||��|�|��|�||��|�|��|�|��|�||��|r|�|��|r|�|��d	d	d	��d	S#1swxYwYd	S)
z� save the current system state (installed pacakges, enabled
            repositories ...) into the apt-state.tar.gz file in targetdir
        z.tar.gzz.apt-clone.tar.gzr
�Dir�Dir::State::statuszvar/lib/dpkg/statuszw:gz)�name�modeN)rr�isdir�join�CLONE_FILENAME�endswith�apt_pkg�init_config�configrG�init_system�tarfiler�_write_uname�_write_state_installed_pkgs�_write_state_auto_installed�_write_state_sources_list�_write_state_apt_preferences�_write_state_apt_keyring�_write_state_extra_files�_write_state_dpkg_status�_dpkg_repack)r�	sourcedir�target�with_dpkg_repack�with_dpkg_status�
scrub_sources�extra_files�tars        r�
save_statezAptClone.save_state�s���7�=�=�� � �	.��W�\�\�&�$�*=�>�>�F�F��?�?�9�-�-�
.��-�-��������!�!�!��N���u�i�0�0�0��N���3�!�w�|�|�I�7L�M�M�
O�
O�
O���!�!�!�
�\�v�F�
3�
3�
3�	'�s����c�"�"�"��,�,�Y��<�<�<��,�,�S�1�1�1��*�*�3�
�>�>�>��-�-�c�2�2�2��)�)�#�.�.�.��)�)�+�s�;�;�;��
3��-�-�c�2�2�2��
'��!�!�#�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's�CG�G�Gc���tj��dtj��dtj��dtj�d��d�}|S)Nr��zAPT::Architecture)�hostname�kernel�
uname_arch�arch)r�unamer`rb�find)r�	host_infos  r�_get_host_info_dictzAptClone._get_host_info_dict�sQ��%'�X�Z�Z��]�&(�h�j�j��m�&(�h�j�j��m�&-�n�&9�&9�:M�&N�&N���	�
�rc�J�|���}tjd���}d�d�|���D����}|�|dz��|���|�|jd���dS)N�w�r[�
c�"�g|]\}}|�d|����
S)z: rB)�.0�key�values   r�
<listcomp>z)AptClone._write_uname.<locals>.<listcomp>�s=��A�A�A�*�s�E�'*�c�c�5�5�1�A�A�Arz./var/lib/apt-clone/uname��arcname)	r��tempfile�NamedTemporaryFiler]�items�write�flushr/rZ)rrtr�f�infos     rrezAptClone._write_uname�s����,�,�.�.�	��'�S�1�1�1���y�y�A�A�.7�o�o�.?�.?�A�A�A�B�B��	����T�	����	���	�	�	������ ;��<�<�<�<�<rc�z�|�dS|D]3}tj|��D]}|�|d|z�����4dS)Nz
./extra-filesr�)�globr/)rrsrt�pr�s     rrkz!AptClone._write_state_extra_files�s`�����F��	6�	6�A��Y�q�\�\�
6�
6������?�1�#4��5�5�5�5�
6�	6�	6rc	��|�|���}d}d}trtj��d}ntjd��}|D�]}|jr�||j�d|jj�dt|j
���d�z
}|jr|jjs |j
�|j��n7|jjr|jjs|j�|j��|jjD]S}|jdkr|jdkr�|j|kr/||j�d|jj�d|jdkr|jnd�d�z
}��t'jd	��}	|�d
��}t-|��|	_t1j��|	_|�|	t7|����t'jd��}	|�d
��}t-|��|	_t1j��|	_|�|	t7|����dS)N��rootdir��IDzlsb_release --id --short� r��now�unknownz"./var/lib/apt-clone/installed.pkgs�utf-8z ./var/lib/apt-clone/foreign.pkgs)rSr*r+rr,�is_installedrZ�	installed�version�int�is_auto_installed�	candidate�downloadablerHr/rI�origins�archive�originrd�TarInfo�encode�len�size�time�mtime�addfiler)
rrnrt�cache�s�foreign�	distro_id�pkg�o�tarinfos
          rrfz$AptClone._write_state_installed_pkgs�s:�����	��2�2�������	I�#�:�<�<�T�B�I�I�"�,�-G�H�H�I��	�	�C���
���H�H�H�c�m�3�3�3�S��9N�5O�5O�5O�5O�Q�Q���}�8�C�M�,F�8��)�-�-�c�h�7�7�7�7��-�4�8��-�4�8��)�-�-�c�h�7�7�7���.���A��y�E�)�)�a�h�"�n�n� ��x�9�,�,���H�H�H�c�m�&;�&;�&;�()��B���A�H�H�I�E�E�$G�G�����/�"F�G�G��
�H�H�W�����1�v�v����	����
����G�W�Q�Z�Z�(�(�(��/�"D�E�E���.�.��)�)���7�|�|����	����
����G�W�W�-�-�.�.�.�.�.rc�r�tj�d��}|�|d���dS)N�dir::state::statusz./var/lib/apt-clone/dpkg-statusr�)r`rb�	find_filer/)rrt�dpkg_statuss   rrlz!AptClone._write_state_dpkg_status�s7���n�.�.�/C�D�D������%F��G�G�G�G�Grc��tj�d��}tj�|��r|�|d��dSdS)NzDir::State::extended_statesz#./var/lib/apt-clone/extended_states)r`rbr�rrr r/)rrt�extended_statess   rrgz$AptClone._write_state_auto_installed�sZ��!�.�2�2�)�+�+��
�7�>�>�/�*�*�	L��G�G�O�%J�K�K�K�K�K�	L�	Lrc�`�tj�d��}tj�|��r|�|d���tj�dd��}tj�|��r|�|d���dSdS)NzDir::Etc::preferencesz./etc/apt/preferencesr�zDir::Etc::preferencespartsz/etc/apt/preferences.dz./etc/apt/preferences.d�r`rbr�rrr r/�find_dir�rrtr�r�s    rriz%AptClone._write_state_apt_preferences�s����N�$�$�%<�=�=��
�7�>�>�!���	8��G�G�A�6�G�7�7�7��N�#�#�$@�$<�
>�
>��
�7�>�>�!���	:��G�G�A�8�G�9�9�9�9�9�	:�	:rc�`�tj�d��}tj�|��r|�|d���tj�dd��}tj�|��r|�|d���dSdS)NzDir::Etc::trustedz./etc/apt/trusted.gpgr�zDir::Etc::trustedpartsz/etc/apt/trusted.gpg.dz./etc/apt/trusted.gpg.dr�r�s    rrjz!AptClone._write_state_apt_keyring�s����N�$�$�%8�9�9��
�7�>�>�!���	8��G�G�A�6�G�7�7�7��N�#�#�$<�$<�
>�
>��
�7�>�>�!���	:��G�G�A�8�G�9�9�9�9�9�	:�	:rc�.�tj�d��}|�|||d��tj�d��}t
j�|��r�|�|dd���tj	|��D]r}|�
d��r�|�d��s�.|�d	|��}t
j�|��r�U|�|||d
|z���qdSdS)N�Dir::Etc::sourcelistz./etc/apt/sources.list�Dir::Etc::sourcepartsz./etc/apt/sources.list.dF)r��	recursive�.z.listr
z./etc/apt/sources.list.d/)
r`rbr��$_add_file_to_tar_with_password_checkr�rrr r/�listdir�
startswithr_r\)rrt�scrub�sources_list�source_parts�source�sources_file_names       rrhz"AptClone._write_state_sources_lists<���~�/�/�0F�G�G���1�1�#�|�U�$�	&�	&�	&��~�.�.�/F�G�G��
�7�>�>�,�'�'�
	8��G�G�L�*D�#�
�
%�
%�
%��*�\�2�2�

8�

8���$�$�S�)�)������w�/�/���/;�|�|�V�V�$D�!��7�=�=�!2�3�3����9�9�#�%�u�/��6�8�8�8�8�
	8�
	8�

8�

8rc�t�|�rtjd���5}t|d��5}|���D]�}t	|��t
ur|�d��}tjd|��rtj	dd|��}|�
|�d����|�����|�
|j|���ddd��n#1swxYwYddd��dS#1swxYwYdS|�
||���dS)	N�wbr��rbzUTF-8z/[^/@:]*:[^/@:]*@z/USERNAME:PASSWORD@r�r�)r�r�r�	readlines�type�bytes�decode�re�search�subr�r�r�r/rZ)rrt�sourcesr�r��source_copyr��lines        rr�z-AptClone._add_file_to_tar_with_password_checks����	.��,�$�7�7�7�
;�;��W�VZ�H[�H[�
;�_`��K�K�M�M�(�(�D��D�z�z�U�*�*�#�{�{�7�3�3���y�!4�d�;�;�9�!�v�&9�1�4� 9� 9�� �%�%�d�k�k�'�&:�&:�;�;�;��%�%�'�'�'�'�����(�'��:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;�
;�
;� 
�G�G�G�W�G�-�-�-�-�-s5�D�CC<�0D�<D	�D�D	�D�D�Dc��dSr=rB�rrts  r�_write_modified_files_from_etcz'AptClone._write_modified_files_from_etc-s���rc���tj��}|jD]}|j�||���|�|d���t
j|��dS)N�./var/lib/apt-clone/debsr�)r��mkdtemprHrJr&r/�shutil�rmtree)rrt�tdirr$s    rrmzAptClone._dpkg_repack1sj����!�!���,�	4�	4�G��M�$�$�W�d�3�3�3�3�����8��9�9�9��
�d�����rc��|���d�d��r	d|_dSd|_dS)N���rEr�)�getnamesr��	TARPREFIXr�s  r�_detect_tarprefixzAptClone._detect_tarprefix:s;���<�<�>�>�"��(�(��.�.�	 �!�D�N�N�N��D�N�N�Nrc�(�tj|��5}|�|��|�|jdz��}|���D]�}|�d��}|�d��s|���dkr�E|�	��}t|��dkr1|d�d��s|dccddd��S��	ddd��n#1swxYwYdS)N�etc/apt/sources.listr��#r�rwr
)rdrr��extractfiler�r�r�r��strip�splitr�r_)r�	statefilertr�r��ls      r�_get_info_distrozAptClone._get_info_distroBsR��
�\�)�
$�
$�
	 ���"�"�3�'�'�'������/E� E�F�F�A����
�
�
 �
 ���{�{�7�+�+���?�?�3�'�'��4�:�:�<�<�2�+=�+=���J�J�L�L���q�6�6�A�:�:�a��d�m�m�C�&8�&8�:��Q�4�K�K�
	 �
	 �
	 �
	 �
	 �
	 �
	 �
	 ��
 �	
	 �
	 �
	 �
	 �
	 �
	 �
	 �
	 �
	 �
	 �
	 ����
	 �
	 �
	 �
	 ��ts�CD�9D�D�Dc	���|�|��pd}tj|��5}|�|jdz��}dx}}g}|���D]�}|�d��}|������\}	}
}|dz
}t|��r|dz
}|	�
d��r|�|	����|�|jdz��}|j
}
d}d}|jdz|���vro|�|jdz�����}t!j|��}|�dd��}|�d	d��}||d
�|��||t)j|
��|d�cddd��S#1swxYwYdS)Nr�� var/lib/apt-clone/installed.pkgsrr�rz-desktopzvar/lib/apt-clone/unameryr|z, )ryr-�metar��
autoinstalled�dater|)r�rdrr�r�r�r�r�r�r�r_�append�	getmemberr�r��readr`�
TagSection�getr]r��ctime)rr�r-rtr�r�r�r�r�rZr��auto�mr�ryr|r��sections                  r�_get_clone_info_dictzAptClone._get_clone_info_dictPs-���&�&�y�1�1�>�Y��
�\�)�
$�
$�#	�������!C�C�E�E�A�()�)�I�
��D����
�
�	
&�	
&���{�{�7�+�+��(,�
�
���(:�(:�(<�(<�%��w���Q��	��t�9�9�'�!�Q�&�M��=�=��,�,�&��K�K��%�%�%���
�
���!C�C�E�E�A��7�D� �H��D��~�7�7�3�<�<�>�>�I�I�����N�%>�>�@�@�@D�����!�,�T�2�2��"�;�;�z�9�=�=���{�{�6�9�5�5��"*� &�"�i�i��o�o�#,�'4�"�j��.�.�"�
��9#	�#	�#	�#	�#	�#	�#	�#	�#	�#	�#	�#	����#	�#	�#	�#	�#	�#	s�F G�G� Gc�2�d|�|��zS)Nz�Hostname: %(hostname)s
Arch: %(arch)s
Distro: %(distro)s
Meta: %(meta)s
Installed: %(installed)s pkgs (%(autoinstalled)s automatic)
Date: %(date)s
)r)rr�s  rr�z
AptClone.infoxs&��"�
%)�$=�$=�i�$H�$H�I�	Irc��tj|��5}|�|��|�|j|dd�z��}g}|���D]*}|�|�d�����+	ddd��n#1swxYwY||z}tj	�
|��r<t|��5}|���}	ddd��n#1swxYwYng}	tj|	|d|z|���}
g}|
D]}|�|���|S)Nrr�zcurrent-system%s)�fromfile�tofile)
rdrr�r�r�r�r�r�rrr �difflib�unified_diff)rr��system_filerrt�
clone_file�clone_file_linesr��fp�system_file_lines�gen�diffs            r�_get_file_diff_against_clonez%AptClone._get_file_diff_against_clone�s���
�\�)�
$�
$�	>���"�"�3�'�'�'�������A�B�B��)G�H�H�J�!��#�,�,�.�.�
>�
>�� �'�'����G�(<�(<�=�=�=�=�
>�
	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>� ��+��
�7�>�>�+�&�&�	#��k�"�"�
3�b�$&�L�L�N�N�!�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��!#���"��/�'�+�5�k�K�K�K�����	�	�D��K�K�������s$�A<B�B"�%B"�C=�=D�Dr
c���|dkr tj�d|��td��|���}|�|��}|D]q}|�|d��|�|d��krAtd|�d|�|d���d|�|d���d����rtd��d	}|�|||��}|r"td�|����|�	|�
��}tj|��5}	|	�|j
dz��}
i}|
���D]d}|����d��}|�d
��s|dkr�E|���\}
}}||f||
<�e	ddd��n#1swxYwYi}|D]2}|js�
|jjt+|j��f||j<�3t|�����t|�����z
}|rMtd��td�t3|������td��t|�����t|�����z
}|rMtd��td�t3|������td��t��}t3|��D];}||vr�||\}}||\}}||kr|�|||f���<|r@td��td��|D]!\}}}td|�d|�d|�d���� dSdS)Nr
�DPkg::Chroot-DirectoryzClone info differences: z 'z
': clone='z
' system='�'r�z/etc/apt/sources.listr�r�r�r�z2Installed on the system but not in the clone-file:r�r�z2Installed in the clone-file but not in the system:zVersion differences: z-Pkgname <clone-file-version> <system-version>z  <z>   <�>)r`rbrG�printr�rr�rr]rSrdrr�r�r�r�r�r�r�r�r��strr�rZ�keys�sortedr/)rr�rr�
clone_infor��sources_list_systemrr�rtr��installed_in_cloner�rZr�r��installed_on_systemr��only_on_system�
only_in_clone�pkgversion_differencesr$�clone_file_pkgversion�
clone_is_auto�system_pkgversion�sys_is_auto�	clone_ver�
system_vers                            r�	show_diffzAptClone.show_diff�s��������N���7��C�C�C�	�(�)�)�)��,�,�.�.�	��.�.�y�9�9�
��	3�	3�C��}�}�S�$�'�'�:�>�>�#�t�+D�+D�D�D������Z�^�^�C��6�6�6�6�!�
�
�c�4�0�0�0�0�2�3�3�3��	�b�	�	�	�6���0�0��*�I�7�7���	!��"�'�'�$�-�-� � � ����	��2�2��
�\�)�
$�
$�
	;�������!C�C�E�E�A�"$�����
�
�
;�
;���z�z�|�|�*�*�7�3�3���?�?�3�'�'��4�2�:�:��(,�
�
���%��w��,3�T�?�"�4�(�(�
;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;�
	;����
	;�
	;�
	;�
	;�!���	C�	C�C��=�
���
�%�s�3�+@�'A�'A�-C����)�)��0�5�5�7�7�8�8�3�?Q�?V�?V�?X�?X�;Y�;Y�Y���	��F�G�G�G��#�(�(�6�.�1�1�2�2�3�3�3��$�K�K�K��/�4�4�6�6�7�7�#�>Q�>V�>V�>X�>X�:Y�:Y�Y�
��	��F�G�G�G��#�(�(�6�-�0�0�1�1�2�2�2��$�K�K�K�"%�����0�1�1�	I�	I�G��1�1�1��3E�g�3N�0�!�=�-@��-I�*��{�$�(9�9�9�&�*�*��3�5F�G�I�I�I��!�	M��)�*�*�*��A�B�B�B�2H�
M�
M�.���J���G�G�G�Y�Y�Y�
�
�
�K�L�L�L�L�		M�	M�
M�
Ms�	BG/�/G3�6G3c�~�|dkr�tj�d|��|j�dt
j�|d����|j�dt
j�|d����tj	|��5}|�
|��ddd��n#1swxYwYt
j�|��sBtd|z��|�
|��}|j�||��|�|||�	��|�||��|r|�||��|�||||��|�||��|�||��|dkrr|j�t
j�|d����|j�t
j�|d����dSdS)
z� take a statefile produced via (like apt-state.tar.gz)
            save_state() and restore the packages/repositories
            into targetdir (that is usually "/")
        r
rz/proc�procz/sys�sysNz0Dir '%s' does not exist, need to bootstrap first)�mirror)r`rbrGrJr8rrr]rdrr�r rr�r)�_restore_sources_list�_restore_apt_keyring�_rewrite_sources_list�_restore_package_selection�_restore_not_downloadable_debs�_restore_extra_filesr<)	rr�r�exclude_pkgs�
new_distro�protect_installedr)rtr-s	         r�
restore_statezAptClone.restore_state�sG�������N���7��C�C�C��M�$�$�W�b�g�l�l�9�f�.M�.M�N�N�N��M�$�$�V�R�W�\�\�)�U�-K�-K�L�L�L��\�)�
$�
$�	(���"�"�3�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(��w�~�~�i�(�(�	9��D�y�P�Q�Q�Q��*�*�9�5�5�F��M�%�%�i��8�8�8��"�"�9�i��"�G�G�G��!�!�)�Y�7�7�7��	>��&�&�y�*�=�=�=��'�'�	�9�>O�Q]�^�^�^�	
�+�+�I�y�A�A�A��!�!�)�Y�7�7�7������M�%�%�b�g�l�l�9�f�&E�&E�F�F�F��M�%�%�b�g�l�l�9�e�&D�&D�E�E�E�E�E��s�-C�C�Cc��tj��}tj�d��}t
j�|t
j�|��z��s4tj	|t
j�|��z��tj|||z��|�||��|r|�
||��|�|���}	|�t jj�����n#t($rYnwxYw|���|�|||���}tj|��|S)Nr�r�)r0)r�r�r`rbr�rrr �dirname�makedirsr��copyr*r,rS�updaterLrMrQrOrr�#_restore_package_selection_in_cacher�)rr�r0r1ror�r��missings        r�simulate_restore_statezAptClone.simulate_restore_state	s\���!�#�#���n�.�.�/C�D�D���w�~�~�f�R�W�_�_�[�%A�%A�A�B�B�	=��K��r�w���{�;�;�;�<�<�<���K���!3�4�4�4��"�"�9�f�5�5�5��	;��&�&�v�z�:�:�:������/�/��	��L�L���*�:�:�<�<�=�=�=�=��#�	�	�	�
�D�	����	�
�
�����:�:�9�e�Zf�:�g�g���
�f�����s�6D:�:
E�Ec�R�tj|��5}tj�|ddd��}tj�|��rt
j|d|z��|�|j	dz|��tj�|ddd��}tj
|tjtj
ztjztjz��|rhddlm}t$j�d|��|��}|jdd�D]}	|	j|kr||	_�|���	|�|j	d	z|��n#t0$rYnwxYwddd��dS#1swxYwYdS)
N�etcrL�sources.list�%s.apt-cloner�r)�SourcesListr�zetc/apt/sources.list.d)rdrrrr]r r�r7�extractr��chmod�stat�S_IRUSR�S_IWUSR�S_IRGRP�S_IROTH�aptsources.sourceslistr@r`rbrG�list�uri�save�KeyError)
rr�rr)rt�existing�
td_sourcesr@r��entrys
          rr*zAptClone._restore_sources_list"s���
�\�)�
$�
$�	���w�|�|�I�u�e�^�L�L�H��w�~�~�h�'�'�
A���H�n�x�&?�@�@�@��K�K���'=�=�y�I�I�I�����i���~�N�N�J��H�Z�����!<�t�|�!K��\�""�
#�
#�
#��
�>�>�>�>�>�>���"�"�#9�:�F�F�F�%�+�-�-��$�\�!�!�!�_�*�*�E��y�F�*�*�#)�u�y��������
����D�N�+C�C�Y�O�O�O�O���
�
�
���
����%	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s6�E
F� E?�>F�?
F�	F�F�F�F �#F c�r�tj�|ddd��}d|z}tj�|��rt	j||��t
j|��5}	|�|j	dz|��n#t$rYnwxYw	|�|j	dz|��n#t$rYnwxYwtj�|��r/|j�||��tj
|��ddd��dS#1swxYwYdS)Nr=rLztrusted.gpgr?zetc/apt/trusted.gpgzetc/apt/trusted.gpg.d)rrr]r r�r7rdrrAr�rLrJr3�remove)rr�rrM�backuprts      rr+zAptClone._restore_apt_keyring8s����7�<�<�	�5�%��G�G���(�*��
�7�>�>�(�#�#�	*��K��&�)�)�)�
�\�)�
$�
$�	"��
����D�N�+@�@�)�L�L�L�L���
�
�
���
����
����D�N�+B�B�I�N�N�N�N���
�
�
���
�����w�~�~�f�%�%�
"��
�(�(���:�:�:��	�&�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�	"�	"s[�0D,�2B�D,�
B�D,�B�D,�"C�D,�
C�D,�
C�AD,�,D0�3D0c���|�g}t|��}t��}t��}tj|j��}|r&|D]#}|jr|�|j���$tj|��5}	|	�	|j
dz��}
|���5|
���D�]w}|�
���d��}|�d��s|dkr�F|���\}}
}d�}|||��r�n|�|��t%|��}|}||vr�	|r\||�|d���|jdkr3|���||jst/d	|z���n||�|�
��nG#t.$r:}t1jd|�d|�d
���|�|��Yd}~nd}~wwxYw||�|����y	ddd��n#1swxYwYddd��n#1swxYwY|jdkr|���|D]K}||vr|�|���||js"||js|�|���L|S)Nr�r�r�r�c�@�|D]}tj||��rdS�dS)NT)�fnmatch)rZr0�excls   r�is_excludedzAAptClone._restore_package_selection_in_cache.<locals>.is_excludedds;��$0�,�,�D�&��t�T�:�:�,�'+�t�t�,�,�,rF)�	from_user�auto_fixrzpkg %s not marked upgrade)rXz
can't add � (�))rGr`�ProblemResolver�	_depcacher��protect�_pkgrdrr�r��actiongroupr�r�r�r�r�r/r��mark_install�broken_count�resolve�marked_install�SystemError�logging�warning�	mark_auto)rr�r�r2r0r:�pkgs�resolverr�rtr�r�rZr�r�rW�auto_installedrX�es                   rr9z,AptClone._restore_package_selection_in_cacheJs������L��<�(�(���%�%���u�u���*�5�?�;�;���	/��
/�
/���#�/��$�$�S�X�.�.�.��
�\�)�
$�
$�$	>�������!C�C�E�E�A��"�"�$�$� 
>� 
>��K�K�M�M�>�>�D��:�:�<�<�.�.�w�7�7�D����s�+�+�!�t�r�z�z� �,0�J�J�L�L�)�T�7�D�,�,�,�#�{�4��6�6�!� ��H�H�T�N�N�N�%(��Y�Y�N�$2� 2�I��u�}�}�
.�0�N� %�d�� 8� 8�9�W\� 8� ]� ]� ]�#(�#5��#9�#9�$,�$4�$4�$6�$6�$6�+0��;�+E�%^�.9�:U�X\�:\�.]�.]�(]��!&�d�� 8� 8�9� 8� M� M� M���*�.�.�.�#�O�O�4�4�4����,K�L�L�L�#�K�K��-�-�-�-�-�-�-�-�����.�����d��-�-�n�=�=�=��?>� 
>� 
>� 
>� 
>� 
>� 
>� 
>� 
>� 
>� 
>� 
>���� 
>� 
>� 
>� 
>�	$	>�$	>�$	>�$	>�$	>�$	>�$	>�$	>�$	>�$	>�$	>����$	>�$	>�$	>�$	>�L���!�!��������	!�	!�C��%�<�<����C� � � ���#�J�+�
!�u�S�z�/H�
!����C� � � ���sb�2I)�7B.I�&A:G!� I�!
H%	�+0H 	�I� H%	�% I�I)�I	�I)�I	�I)�)I-�0I-c��|�|���}tjj�dd��tjj�dd��	|�|j��n#t$rYnwxYw|���|�	||||��|�
|j|j��dS)Nr�zDir::Binr
zDir::Bin::dpkgz
/usr/bin/dpkg)rSrLr`rbrGr8rKrrr9�commitrP)rr�rr2r0r�s      rr-z#AptClone._restore_package_selection�s������	��2�2�������z�3�/�/�/������/��A�A�A�	��L�L��,�-�-�-�-��#�	�	�	�
�D�	����	�
�
�����0�0��E�CT�Vb�c�c�c�
���T�(�$�*?�@�@�@�@�@s�"A=�=
B
�	B
c�F�tj|��5}|���D]]}|jdz}|j�|��r7|jt
|��d�|_|�||���^	ddd��dS#1swxYwYdS)Nzextra-files/)rdr�
getmembersr�rZr�r�rA)rr�rrtr��prefixs      rr/zAptClone._restore_extra_files�s���
�\�)�
$�
$�	.���^�^�%�%�
.�
.�����6���6�$�$�V�,�,�.��V�C��K�K�L�L�1�A�F��K�K��9�-�-�-��
.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.s�A3B�B�Bc�X��tj|��5}	�fd�|���D��}|�||��n#t$rYddd��dSwxYw	ddd��n#1swxYwYg}t
j�|d��}tjt
j�|d����D]7}t
j�||��}|�	|���8�j
�||��dS)Nc�X��g|]&}|j��jdz���$|��'S)zvar/lib/apt-clone/debs/)rZr�r�)r�r�rs  �rr�z;AptClone._restore_not_downloadable_debs.<locals>.<listcomp>�s]���J�J�J��w�|�G^�G^�_c�_m�oH�`H�HI�HI�J�G�J�J�Jrr�z*.deb)rdrrp�
extractallrLrrr]r�r�rJr)	rr�rrt�debsdir�debsr�deb�debpaths	`        rr.z'AptClone._restore_not_downloadable_debs�s����
�\�)�
$�
$�	��
�J�J�J�J�3�>�>�3C�3C�J�J�J�����y��1�1�1�1���
�
�
��	�	�	�	�	�	�	�	�
����2�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����w�|�|�I�'A�B�B���9�R�W�\�\�$��8�8�9�9�	!�	!�C��g�l�l�4��-�-�G��K�K�� � � � ��
�"�"�4��3�3�3�3�3s4�A8�6A�A8�
A(�A8�'A(�(A8�8A<�?A<c��ddlm}m}tj�dtj�tj�	|ddd������tj�dtj�tj�	|ddd������|��}|j
dd�D]O}|js|jr�d	}d
D](}|j
�d|z��r	|�d|��}n�)|r||_
�H||_
�Ptj�	|ddd
��}	tj�d��}
tj�|	��rzt#|	d��5}|D]:}|||
��}
|
js|
js|
|vr|j
�|
���;	ddd��n#1swxYwYt
j|	��|j
D]X}|j�d��r<|j
�|��|j
�d|��d|_�Y|���dS)Nr)r@�SourceEntryr�r=rLr>r�zsources.list.dr�)�updates�security�	backportsz-%s�-zsources.list.apt-clone�rzcdrom:T)rHr@rzr`rbrGrr�abspathr]rI�invalid�disabled�distr_r�r rr�rQrJr�rrK)rrr1r@rzr�rO�replacement�pocketrM�
sourcelistrr��srcs              rr,zAptClone._rewrite_sources_list�s���C�C�C�C�C�C�C�C�����"��G�O�O�B�G�L�L��E�5�.�Q�Q�R�R�	T�	T�	T�	����#��G�O�O�B�G�L�L��E�5�BR�S�S�T�T�	V�	V�	V��+�-�-���\�!�!�!�_�	(�	(�E��}�
���
���K�>�
�
���:�&�&�u�v�~�6�6��-7�Z�Z���"@�K��E���
(�(��
�
�'��
�
��7�<�<�	�5�%� 8�:�:���^�-�-�.D�E�E�
�
�7�>�>�(�#�#�	 ��h��$�$�
1���1�1�D�%�+�d�J�7�7�C���1�s�|�1��7�8J�8J���+�+�C�0�0�0��1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1�

�I�h�����\�	&�	&�E��y�#�#�H�-�-�
&���#�#�E�*�*�*���#�#�A�u�-�-�-�!%�����������s�>G'�'G+�.G+r�c��|r!tj�|d��}nd}t��}tj�t
j�d����}tjtj�|dd����D]m}t|d���5}|D]>}|�
d��r'|�|������?	ddd��n#1swxYwY�nt��}tj
|��D]Y\}	}
}|D]P}tj�|	t|��d�|��}
|
|vr|�|
���Q�Z|S)	Nr=z/etcrYr�z*.listr�)�encodingz/etc/)rrr]rGr5r`rbr�r�rr�r/r��walkr�)rrn�etcdir�owned�dpkg_basedirr�rr��unowned�dirpath�dirnames�	filenamesrZ�fullnames              r�_find_unowned_in_etczAptClone._find_unowned_in_etc�s����	��W�\�\�)�U�3�3�F�F��F������w���w�~�'9�'9�:N�'O�'O�P�P����2�7�<�<��f�h�G�G�H�H�	0�	0�A��a�'�*�*�*�
0�b��0�0�D����w�/�/�0��	�	�$�*�*�,�,�/�/�/��0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��
�%�%��,.�G�F�O�O�	*�	*�(�G�X�y�!�
*�
*���7�<�<���I�����(@�$�G�G���5�(�(��K�K��)�)�)��
*��s�6AD�D		�D		c�:�|tj�d��z}t��}t	|��5}tj|��}|D�]�}d|v�r�|d�d��D�]�}d}t|�����dkr|���\}	}
}n|���\}	}
||	z}|
���}
|dkr�ztj
�|��s-tj
d|z��|�|����tj��}t	|d��5}|�|�����ddd��n#1swxYwY|���|
krEtj
d|�d	|����d
|
�d���|�|��������	ddd��n#1swxYwY|S)NrY�	conffilesr���obsoletezconffile %s removedr�z	conffile rZz != r[)r`rbr~rGr�TagFiler�r�r�rrr rf�debugr/�hashlib�md5r8r��	hexdigest)
rrnr��modifiedr�tagrOr�r�rZ�md5sumrr�s
             r�_find_modified_conffilesz!AptClone._find_modified_conffiles�sq����� 3� 3�4H� I� I�I���5�5��
�+�
�
�	/�"��/�"�%�%�C��
/�
/���%�'�'� %�k� 2� 8� 8�� >� >�/�/��#'���t�z�z�|�|�,�,��1�1�59�Z�Z�\�\�2�D�&�(�(�+/�:�:�<�<�L�D�&�(��~��!'������#�z�1�1�$�!�w�~�~�d�3�3�%�#�M�*?�$�*F�G�G�G�$�L�L��.�.�.�$�%�k�m�m��!�$��-�-�2���J�J�r�w�w�y�y�1�1�1�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2��=�=�?�?�f�4�4�#�M�M�$(�D�D�#�-�-�/�/�/�/�6�6�6�+C�D�D�D�$�L�L��.�.�.���5
/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�:�s8�D#H�#(F	�H�F
�H�F
�A$H�H�Hc�$�td��dS)Nznot implemented yet)r)rrns  r�_dump_debconf_databasezAptClone._dump_debconf_databases��
�#�$�$�$�$�$r)NNN)FFFN)F)r
)r
NNFNr=)FN)r�)(r>r?r@rArr}r^r�rVrur�rerkrfrlrgrirjrhr�r�rmr�r�rr�rr%r3r;r*r+r9r-r/r.r,r�r�r�rBrrrDrDbs���������1�8�2�8�:�:�a�=�@�N��I�=A��(�(�(�(�2=B�48�'�'�'�'�@���=�=�=�6�6�6�%/�%/�%/�NH�H�H�L�L�L�:�:�:�:�:�:�8�8�8�8�(.�.�.�(
�
�
���� � � ����&�&�&�PI�I�I����.GM�GM�GM�GM�VDH�GK�#F�#F�#F�#F�L����2����,"�"�"�$>�>�>�>�@A�A�A�".�.�.�4�4�4�(�(�(�T����,!�!�!�!�F%�%�%�%�%rrD)�
__future__rrL�	apt.cacherr`rrUr�r�rfr*�ImportErrorrr�r�rCrrdr�r��iorr�environrbrG�objectr
rDrBrr�<module>r�s���&&�%�%�%�%�%�
�
�
�
�*�*�*�*�*�*�������������������������������������K�K�K�����	�	�	�	�	�	�	�	�
�
�
�
��������������������������������+�+��N���2�C�8�8�8��N���8�#�>�>�>�/�/�/�/�/�v�/�/�/�dt
%�t
%�t
%�t
%�t
%�v�t
%�t
%�t
%�t
%�t
%s�/�9�9

Youez - 2016 - github.com/yon3zu
LinuXploit