<!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
gt`L+                 @   sN   d dl mZmZ d dlZd dlmZ G dd dejZG dd dejj	Z
dS )    )_loggerN)Packagec                   s,   e Zd ZdZdZ fddZdd Z  ZS )DebuginfoInstallz5DNF plugin supplying the 'debuginfo-install' command.zdebuginfo-installc                s4   t t| j|| || _|| _|dk	r0|jt dS )zInitialize the plugin instance.N)superr   __init__basecliZregister_commandDebuginfoInstallCommand)selfr   r	   )	__class__ '/usr/lib/python3.6/debuginfo-install.pyr       s
    zDebuginfoInstall.__init__c             C   sf   | j | jj}|jdo.|jddo.|jdd}|rbtjj| jj	 j
dd}t|rb| jjj  d S )Nmain
autoupdatez*-debuginfo)Z
name__glob)Zread_configr   confZhas_sectionZ
has_optionZ
getbooleandnfsackZ_rpmdb_sackqueryfiltermlenreposenable_debug_repos)r   Zcpr   Zdbginfor   r   r   config(   s    
zDebuginfoInstall.config)__name__
__module____qualname____doc__namer   r   __classcell__r   r   )r   r   r      s   r   c                   sh   e Zd ZdZdZedZ fddZedd Z	dd	 Z
d
d Zdd Zdd Zdd Zdd Z  ZS )r
   z! DebuginfoInstall plugin for DNF debuginfo-installzinstall debuginfo packagesc                s4   t t| j| t | _t | _t | _t | _d S )N)r   r
   r   setavailable_debuginfo_missingavailable_debugsource_missinginstalled_debuginfo_missinginstalled_debugsource_missing)r   r	   )r   r   r   r   :   s
    z DebuginfoInstallCommand.__init__c             C   s   | j ddd d S )Npackage+)nargs)add_argument)parserr   r   r   set_argparserB   s    z%DebuginfoInstallCommand.set_argparserc             C   s0   | j j}d|_d|_d|_d|_| jjj  d S )NT)	r	   demandsZ	resolvingZ	root_userZsack_activationZavailable_reposr   r   r   )r   r,   r   r   r   	configureF   s    z!DebuginfoInstallCommand.configurec             C   s  g }t tj}t tj}x| jjD ]}tjj|j	| j
jdd}|d }|sxtjtd| j
jjj| |j| q$|j j }|j|j j  xdt|j D ]T}|jtjr|d |  |kr|j| |jtjr|d |  |kr|j| qW x|j D ]}	|	d }
|
jri }x"|	D ]}|j|jg j| q(W xj|j D ]^}|d }| j|j |s| j|j!|s| j"j#t$| | j|j%|sP| j&j#t$| qPW q|
j'jtjs|
j'jtjr| j(|	 q|d d k	rb| j)|
j |d s2| j)|
j!|d s2| j*j#dj+|
j'|
j, | j)|
j%|d s| j-j#dj+|
j'|
j, q| j.|
j |	s| j.|
j!|	s| j*j#dj+|
j'|
j, | j.|
j%|	s| j-j#dj+|
j'|
j, qW q$W | j*rtjtdd	j/t0| j* | j-rtjtd
d	j/t0| j- | j"r8tjtdd	j/t0| j" | j&r\tjtdd	j/t0| j& |r| j
j1j2rtj3j4tddj/|dd S )NF)Zwith_srcr   zNo match for argument: %sr   Znevraz{}-{}zICould not find debuginfo package for the following available packages: %sz, zKCould not find debugsource package for the following available packages: %szICould not find debuginfo package for the following installed packages: %szKCould not find debugsource package for the following installed packages: %szUnable to find a match )Zpkg_spec)5r   r   ZDEBUGINFO_SUFFIXZDEBUGSOURCE_SUFFIXZoptsr&   r   ZsubjectZSubjectZget_best_solutionr   r   r   infor   outputZtermZboldappendZ	availableZ
_name_dictupdateZ	installedlistkeysendswithpopvaluesZ_from_system
setdefaultarch_install_debug_from_system
debug_nameZsource_debug_namer$   addstrZdebugsource_namer%   r   _install_install_debugr"   formatevrr#   _install_debug_no_nevrajoinsortedr   strict
exceptionsZPackagesNotAvailableError)r   Zerrors_specZdebuginfo_suffix_lenZdebugsource_suffix_lenZpkgspecZsolutionr   Zpackage_dictr   pkgsZ	first_pkgZ	arch_dictpkgZpackage_arch_listr   r   r   runN   s    





zDebuginfoInstallCommand.runc             C   s:   | j jj j||j|j|j|jd}|r6| j| dS dS )N)r   epochversionreleaser9   TF)	r   r   r   filterrJ   rK   rL   r9   r>   )r   r;   rH   r   r   r   r   r:      s    

z2DebuginfoInstallCommand._install_debug_from_systemc             C   s   i }|j d k	r|j |d< |jd k	r,|j|d< |jd k	r@|j|d< |jd k	rT|j|d< | jjj jf d|i|}|r| j| dS dS )NZepoch__globZversion__globZrelease__globZ
arch__globr   TF)	rJ   rK   rL   r9   r   r   r   rM   r>   )r   r;   Z
base_nevrakwargsr   r   r   r   r?      s    








z&DebuginfoInstallCommand._install_debugc                s8   | j jj j fdd|D d}|r4| j| dS dS )Nc                s   g | ]}d j  |j|jqS )z{}-{}.{})r@   rA   r9   ).0p)r;   r   r   
<listcomp>   s    zCDebuginfoInstallCommand._install_debug_no_nevra.<locals>.<listcomp>)Znevra_strictTF)r   r   r   r   r>   )r   r;   rG   r   r   )r;   r   rB      s    
z/DebuginfoInstallCommand._install_debug_no_nevrac             C   s:   t jj| jj}|j|d | jjj|| jjj	 d d S )N)rH   )ZselectZoptional)
r   selectorZSelectorr   r   r!   ZgoalZinstallr   rE   )r   rG   rR   r   r   r   r>      s    z DebuginfoInstallCommand._install)r    )r   r   r   r   aliasesr   Zsummaryr   staticmethodr+   r-   rI   r:   r?   rB   r>   r   r   r   )r   r   r
   4   s   |	r
   )Zdnfpluginscorer   r   r   Zdnf.packager   ZPluginr   r	   ZCommandr
   r   r   r   r   <module>   s   