%PDF- %PDF-
| Direktori : /lib/python3.9/site-packages/dnf/rpm/__pycache__/ |
| Current File : //lib/python3.9/site-packages/dnf/rpm/__pycache__/__init__.cpython-39.pyc |
a
�2�h� � @ s� d dl mZ d dl mZ ddlmZ d dlmZ d dlZd dl Zd dl
Z
dd� Zd d
� Zdd� Z
d
d� Zedddddddddddddddddd d!d"d#d$d%d&d'��Zd(d)� Zd*d+� ZdS ),� )�absolute_import)�unicode_literals� )�transaction)�is_py3bytesNc C s� t j| d�}|�tjtjB � tjj}tjj }tj
jrLt|d�}t|d�}tjj
D �]&}tj
jrlt|d�}z|�d|�}W n> ttjfy� } z tj�dt|� ��W Y d}~n
d}~0 0 t|�s�qTzt|�}W n" ty� d}tj�|��Y n0 |d } d}
d}�zz|tj �|�}W n* t�yH |tj �|�d��}Y n0 |tj | }
|tj | }|
tjk�r�|�r�|d ||�d�fv�r�|} t|tj |tj |tj �D ]b\}}
}t|t��r�t|d�}||k�r�|
tjk�r�|�r�|}
||k�r�|
tjk�r�|�r�|}�q�W n tt t!f�y2 Y n0 t"| ��rHt| d�} t"|
��r\t|
d�}
t"|��rpt|d�}| |
|f S d
S )z�Calculate the release version for the system, including releasever_major
and releasever_minor if they are overriden by the system-release-major or
system-release-minor provides.)�root�utf-8Zprovidesz Error: %sNz:Error: rpmdb failed to list provides. Try: rpm --rebuilddb�version�utf8�name)NNN)#r �initReadOnlyTransactionZpushVSFlags�rpmZ_RPMVSF_NOSIGNATURESZ_RPMVSF_NODIGESTS�dnf�constZDISTROVER_MAJOR_PKGZDISTROVER_MINOR_PKGZpycompZPY3�bytesZDISTROVERPKGZdbMatch� TypeError�error�
exceptions�Error�str�len�next�
StopIterationZRPMTAG_PROVIDENAME�index�
ValueError�decodeZRPMTAG_PROVIDEFLAGSZRPMTAG_PROVIDEVERSIONZRPMSENSE_EQUAL�zip�
isinstance�KeyError�
IndexErrorr )�installroot�tsZdistrover_major_pkgZdistrover_minor_pkgZdistroverpkg�idx�e�hdr�msg�
releaseverZreleasever_majorZreleasever_minorZoff�flagZverZprovide� r( �4/usr/lib/python3.9/site-packages/dnf/rpm/__init__.py�detect_releasevers sn
*�
r* c C s t | �\}}}|S )z-Calculate the release version for the system.)r* )r r&