<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
f0                 @   s\  d dl mZ d dl mZ d dlmZmZ d dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZedZedZedZedZed	Zed
ZedZedZedZedZedZedZedZdaG dd dejZdddgZddgZ dgZ!dddge e  e! Z"G dd dej#j$Z%dd  Z&d!d" Z'd#d$ Z(d%d& Z)d'd( Z*dS ))    )absolute_import)unicode_literals)_loggerNz-Unable to read version lock configuration: %szLocklist not setzAdding versionlock on:zAdding exclude on:z*Package already locked in equivalent form:zPackage {} is already lockedzPackage {} is already excludedzDeleting versionlock for:zNo package found for:z1Excludes from versionlock plugin were not appliedzCVersionlock plugin: number of lock rules from file "{}" applied: {}zFVersionlock plugin: number of exclude rules from file "{}" applied: {}z,Versionlock plugin: could not parse pattern:c                   s8   e Zd ZdZ fddZdd Zdd Zdd	 Z  ZS )
VersionLockversionlockc                s8   t t| j|| || _|| _| jd k	r4| jjt d S )N)superr   __init__basecliZregister_commandVersionLockCommand)selfr
   r   )	__class__ !/usr/lib/python3.6/versionlock.pyr	   6   s
    
zVersionLock.__init__c             C   s4   | j | jj}|jdo.|jddo.|jddad S )Nmainlocklist)Zread_configr
   ZconfZhas_sectionZ
has_optiongetlocklist_fn)r   Zcpr   r   r   config=   s    zVersionLock.configc             C   s0   | j d krd}n| j jj}|d kr,| j jj}|S )NT)r   demandsZplugin_filtering_enabledZ	resolving)r   Zenabledr   r   r   locking_enabledC   s    


zVersionLock.locking_enabledc             C   s  | j  stjt d S | jjj jdd}| jjj jdd}t }ddg}xt	 D ]}d}|r||d dkr||dd  }d}t
jj|jtjtjtjtjtjgd}|r||  d7  < ntjdt| qTxF|D ]>}|j| jj}	|r|j|	}n|j|j |j|	}|	rP qW qTW |d r6tjtjt|d  |d rVtjtjt|d  |r| jjj jt|d}
|
j|}|j|}| jjj j |d	}|j|j|}|j tj!d
 |r| jjj"| d S )NT)emptyr   !   )Zformsz%s %s)Z
name__glob)Z	obsoletes)Zreponame__neq)#r   r   debugNO_VERSIONLOCKr
   sackZqueryfilterset_read_locklistdnfsubjectSubjectZget_nevra_possibilitieshawkeyZ
FORM_NEVRAZ	FORM_NEVRZFORM_NEVZFORM_NAZ	FORM_NAMEerrorNEVRA_ERRORZto_queryunionaddnameAPPLY_EXCLUDEformatr   
APPLY_LOCKlist
differenceZfiltermZSYSTEM_REPO_NAMEZadd_excludes)r   Zexcludes_queryZlocked_queryZlocked_namescountpatZexclZpossible_nevrasZnevraZ	pat_queryZall_versionsZother_versionsZobsoletes_queryr   r   r   r   L   sP    







zVersionLock.sack)	__name__
__module____qualname__r)   r	   r   r   r   __classcell__r   r   )r   r   r   2   s
   	r   excludezadd-!zadd!deletedelZ	blacklistr(   clearr-   c               @   s8   e Zd ZdZedZdZedd Zdd Z	dd	 Z
d
S )r   r   zcontrol package version locksz5[add|exclude|list|delete|clear] [<package-nevr-spec>]c             C   s:   | j dddtdd | j dddd	 | j d
ddd	 d S )Nz--rawF
store_truez@Use package specifications as they are, do not try to parse them)defaultactionhelp
subcommand?z[add|exclude|list|delete|clear])nargsmetavarpackage*z[<package-nevr-spec>])add_argumentr   )parserr   r   r   set_argparser   s    
z VersionLockCommand.set_argparserc             C   s   d| j j_d| j j_d S )NT)r   r   Zsack_activationZavailable_repos)r   r   r   r   	configure   s    
zVersionLockCommand.configurec             C   s  d}| j jr| j jtkr2d}| j jjd| j j nd| j jtkrDd}nR| j jtkr|tdj| j j}t	j
|tjjdd d}n| j jtkrd}n| j j}|dkrt| j j}xj|D ]b\}}|d	krt| j|g| j jd
dtj  td	 q||krtjjtj|qtjdt| qW n|dkrt| j j}xn|D ]f\}}|d	krpt| j|g| j jddtj  td n,||krtjjtj|ntjdt| q8W n4|dkrxt D ]}t| qW n|dkrtstjjt t!td}W d Q R X n|dkrtstjjt t"j#j$t}t%j&|dd\}	}
t }d}t"j'|	ddV}	xN|D ]F}t(|| j jrtdt)|f  |d7 }q\|	j*| |	j*d q\W W d Q R X |st"j+|
 nt"j,|
d t"j-|
t d S )Nr-   r(   r   r5   z@Subcommand '{}' is deprecated. Use 'exclude' subcommand instead.   )
stacklevelr6    Tz
# Added lock on %s
z%s %sFz
# Added exclude on %s
r   r8   wz.tmp)dirsuffixr   
i  ).Zoptsr=   ALL_CMDSrA   insertEXC_CMDSDEP_EXC_CMDSr   r+   warningswarnr!   
exceptionsDeprecationWarningDEL_CMDS_search_locklist_write_locklistr
   rawtimeZctimeADDING_SPECErrorALREADY_EXCLUDEDr   infoEXISTING_SPECEXCLUDING_SPECALREADY_LOCKEDr    printr   NO_LOCKLISTopenospathdirnametempfileZmkstempfdopen_matchDELETING_SPECwriteunlinkchmodrename)r   cmdmsgresultsentryZ	entry_cmdr0   frh   outZtmpfilenamelocked_specsr/   entr   r   r   run   s|    














zVersionLockCommand.runN)r   )r1   r2   r3   aliasesr   ZsummaryZusagestaticmethodrE   rF   ry   r   r   r   r   r      s   
r   c              C   s   g } y`t stjjttt >}x6|j D ]*}|jds*|j dkrFq*| j	|j  q*W W d Q R X W n2 t
k
r } ztjjt| W Y d d }~X nX | S )N#rI   )r   r!   rU   r]   rd   re   	readlines
startswithstripappendIOErrorNOT_READABLE)r   Zllfilelineer   r   r   r       s    
 "r    c             C   s   g }d }}t  }xl| D ]d}d}xH|D ]@}d }}t||gr&|}|jdrPdnd}|j||f d}q&W |s|j||f qW |S )NrI   Fr   r5   r(   T)r    rk   r~   r   )rA   rs   foundr;   rw   pkgmatchrx   r   r   r   rX      s    

rX   c             C   s@  t  }x|D ]}|r |j| qtjj|}	d }
|rN|	jtjj| dddd}
|
sf|	j| jdddd}
|
sztdt	|f  x|
D ]}|jt
|j  qW qW |r<ydtstjjtttd@}|j| x.|D ]&}td||f  |jd||f  qW W d Q R X W n4 tk
r: } ztjjt| W Y d d }~X nX d S )NTF)Z
with_nevraZwith_providesZwith_filenamesz%s %saz%s%s
)r   r(   r!   r"   r#   Zget_best_queryr   Z_rpmdb_sackrc   NOTFOUND_SPECpkgtup2specZpkgtupr   rU   r]   rd   re   rm   r   r   )r
   argsrZ   Ztry_installedZcommentr_   prefixZspecsr0   ZsubjZpkgsr   ru   specr   r   r   r   rY     s8    





$rY   c             C   s&  | j d} x|D ]}| |krdS qW ytj| }W n tjk
rH   dS X xd|j d|j|jf d|j|jf d|j|j|jf d|j|j|jf d	|j|j|j|jf d
|j|j|j|jf d|j|j|j|j|jf d|j|j|j|j|jf f	D ]&}x |D ]}t	j	||rdS qW qW dS )Nr   TFz%sz%s.%sz%s-%sz%s-%s-%sz%s-%s:%sz%s-%s-%s.%sz%s-%s:%s-%sz%s:%s-%s-%s.%sz%s-%s:%s-%s.%s)
lstripr$   Zsplit_nevraZValueExceptionr)   archversionreleaseepochfnmatch)rx   Zpatternsr0   nr)   r   r   r   rk   #  s,    

"
rk   c             C   s   d| |p
d||f S )Nz%s-%s:%s-%s.*0r   )r)   r   r   r   r   r   r   r   r   =  s    r   )+Z
__future__r   r   Zdnfpluginscorer   r   r!   Zdnf.cliZdnf.exceptionsr   r$   rf   ri   r[   rS   r   rd   r\   ra   r`   rb   r^   rl   r   r   r,   r*   r&   r   ZPluginr   rQ   rW   rR   rO   r   ZCommandr   r    rX   rY   rk   r   r   r   r   r   <module>   sH   O
[ 