403Webshell
Server IP : 172.24.0.40  /  Your IP : 216.73.216.10
Web Server : Apache
System : Linux dbweb26.ust.edu.ph 4.18.0-513.5.1.el8_9.x86_64 #1 SMP Fri Sep 29 05:21:10 EDT 2023 x86_64
User : apache ( 48)
PHP Version : 8.2.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/python3.6/site-packages/tracer/packageManagers/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3.6/site-packages/tracer/packageManagers/__pycache__/rpm.cpython-36.pyc
3

�|
`��@s�ddlmZddlmZej�dkr�ddlmZd	d
lmZddl	m
Z
ddlmZdd
l
mZmZddlZddlZddlZGdd�de�ZdS)�)�absolute_import)�System�fedora�rhel�centos�mageia�ol)�listdir�)�IPackageManager)�Package)�PackagesCollection)�LockedDatabase�DatabasePermissionsNc@s�eZdZdZdd�Zedd��Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zedd��ZdS)�Rpmz!
		Package manager class - RPM
		cKs
||_dS)N)�opts)�self�kwargs�r�/usr/lib/python3.6/rpm.py�__init__)szRpm.__init__cCstS)N)�NotImplemented)rrrr�history_path,szRpm.history_pathc	Cs�tjj|j�stg�S|jjd�r(d}nd}ydt�}|j�}tj	|�}tj
|_|j�}|j
||g�x(|j�D]}|jt|d|d��qnW|Stjk
r�}zt|�dkr�t�nt��WYdd}~XnXdS)zp
			Returns list of packages which were modified between unix_time and present
			Requires root permissions.
			�modern_swdbz�
					SELECT DISTINCT rpm.name, trans.dt_end AS end

					FROM trans JOIN trans_item JOIN rpm
					ON trans.id=trans_item.trans_id
					AND trans_item.item_id=rpm.item_id

					WHERE trans.dt_begin > ?
					ORDER BY rpm.name
				aJ
					SELECT DISTINCT pkgtups.name, trans_end.timestamp AS end

					FROM trans_beg JOIN trans_end JOIN trans_data_pkgs JOIN pkgtups
					ON trans_beg.tid=trans_end.tid
					AND trans_data_pkgs.tid=trans_beg.tid
					AND trans_data_pkgs.pkgtupid=pkgtups.pkgtupid

					WHERE trans_beg.timestamp > ?
					ORDER BY pkgtups.name
				�name�endzdatabase is lockedN)�os�path�existsrr
r�get�_database_file�sqlite3ZconnectZRowZrow_factory�cursorZexecuteZfetchall�appendrZOperationalError�strrr)	rZ	unix_timeZsqlZpackagesZsqliteZconnr"�result�errr�packages_newer_than/s"

zRpm.packages_newer_thancCs>|j|�r:tj�}|jd|�}tjt|��}dd�|D�SgS)z�
			Returns list of files provided by package
			See also: http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch04s02s03.html
			rcSsg|]}|d�qS)rr)�.0�frrr�
<listcomp>jsz%Rpm.package_files.<locals>.<listcomp>)�
_is_installed�rpm�TransactionSet�dbMatch�fi�next)r�pkg_name�ts�mir/rrr�
package_filesas
zRpm.package_filescCs�|j|�}tj�}|jd|�}xl|D]d}|tj|dkr$|tj|dkr$|tj|dkr$|tj|dkr$t|�}|j	||�|Sq$WdS)Nrrr
��)
�
_splitEvrar,r-r.�RPMTAG_EPOCH�RPMTAG_VERSION�RPMTAG_RELEASEZRPMTAG_ARCHr�_load_package_info_from_hdr)rr�evrar2r3�hdr�packagerrr�find_packageos

HzRpm.find_packagecCs�|sdStj�}|jd|j�}d}xz|D]r}|dkr:|}q(tjt|tj�t|tj�t|tj�ft|tj�t|tj�t|tj�f�}|dkr(|}q(W|dkr�dS|j	||�dS)zFFrom database load informations about given package and set them to itNrr
���)
r,r-r.r�labelComparer$r8r9r:r;)rr>r2r3Zlatestr=Zcomparerrr�load_package_info}s
**zRpm.load_package_infocCs<tjt|j�t|j�t|j�ft|j�t|j�t|j�f�S)zf
			labelCompare returns:
			0 if the EVR matches
			1 if EVR(1) > EVR(2)
			-1 if EVR(2) > EVR(1)
			)r,rAr$�epoch�version�release)rZp1Zp2rrr�compare_packages�szRpm.compare_packagescCsh|jd}|j|j�}|rd|jdkr`x:|j�dd�D]&}tjj|�r6|j|�}|rX|SdSq6W|SdS)z8Returns name of package which provides given applicationrzDevelopment/Languagesr
N)Z	instances�_file_provided_byZexe�categoryZcmdlinerr�isfile)rZappZprocessr>�argrrr�provided_by�s


zRpm.provided_byc
Cs�|jd�}||dd�}|d|�jd�}||d|�}|d|�jd�}||d|�}|jd�}|dkrvd}	n|d|�}	|	|||fS)z�
			Derived from rpmUtils.miscutils.splitFilename
			https://github.com/rpm-software-management/yum/blob/master/rpmUtils/miscutils.py

			Given: 9-123a.ia64
			Return: (9, 123a, 1, ia64)
			�.r
N�-�:r@)�rfind�find)
rr<Z	archIndexZarchZrelIndexZrelZverIndexZverZ
epochIndexrCrrrr7�s	

zRpm._splitEvracCsH|tj|_|tj|_|tj}|r,||_|tj|_|tj	|_
dS)N)r,ZRPMTAG_SUMMARY�description�RPMTAG_GROUPrHr8rCr9rDr:rE)rr>r=rCrrrr;�s
zRpm._load_package_info_from_hdrcCsJtj�}|jd|�}|j�dkr$dSt|�}t|tj�}|tj|_|S)z1Returns name of package which provides given fileZ	basenamesrN)	r,r-r.�countr0rZRPMTAG_NAMErRrH)r�filer2ZdbZpkg�prrrrG�szRpm._file_provided_bycCsP|jjd�r|jSx8tt|j�dd�D]"}|jd�r&|jd�r&|j|Sq&WdS)z)Returns path to yum history database filerT)�reversezhistory-z.sqliteN)rrr�sortedr	�
startswith�endswith)rrTrrrr �s
zRpm._database_filecCs(tj�}|jd|�}t|�dkr$dSdS)z$Returns True if package is installedrrTF)r,r-r.�len)r1r2r3rrrr+�szRpm._is_installedN)�__name__�
__module__�__qualname__�__doc__r�propertyrr'r4r?rBrFrKr7r;rGr �staticmethodr+rrrrr"s2	r)rrrrr)Z
__future__rZtracer.resources.systemrZdistributionrr	ZipackageManagerrZtracer.resources.packagerZtracer.resources.collectionsr
Ztracer.resources.exceptionsrrr!r,rrrrr�<module>s

Youez - 2016 - github.com/yon3zu
LinuXploit