ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/dnf/__pycache__/package.cpython-36.opt-1.pyc
3

ft`+@sdZddlmZddlmZddlmZddlZddlZddl	Zddl
ZddlZddlZ
ddlZ
ddlZddlZddlZejdZGdddejZdS)	z! Contains the dnf.Package class. )absolute_import)unicode_literals)_NdnfcseZdZdZdZdZfddZefddZej	ddZed	d
Z
eddZed
dZeddZ
eddZefddZej	ddZeddZeddZeddZeddZddZed d!Zed"d#Zed$d%Zed&d'Zed(d)Zej	d*d)Zed+d,Zed-d.Zed/d0Zed1d2Zed3d4Zed5d6Zed7d8Z d9d:Z!d;d<Z"d=d>Z#d?d@Z$dAdBZ%dRdGdHZ&dIdJZ'edKdLZ(dMdNZ)dOdPZ*Z+S)SPackagez Represents a package. #:api z
-debuginfoz-debugsourcecs,tt|j|||_d|_d|_d|_dS)N)superr__init__base_priv_chksum_repo
_priv_size)selfZ
initobjectr	)	__class__/usr/lib/python3.6/package.pyr0s
zPackage.__init__cs|jr|jS|jr~tjjj}ytjj||j	}Wn6tj
jk
rh}ztjj
t|WYdd}~XnXtj|tj|fStt|jS)N)r

_from_cmdlinerZyumZmiscZget_default_chksum_typelibdnfutilsZchecksum_valuelocationerrorError
exceptions	MiscErrorstrhawkeychksum_typebinasciiZ	unhexlifyrrchksum)r
rZ
chksum_vale)rrr_chksum7s"zPackage._chksumcCs
||_dS)N)r
)r
valrrrrEscCs|jtjkS)N)reponamerZCMDLINE_REPO_NAME)r
rrrrIszPackage._from_cmdlinecCs|jtjkS)N)r!rSYSTEM_REPO_NAME)r
rrr_from_systemMszPackage._from_systemcCs*d}|jr|jjj|}|r$d|S|jS)a9
        For installed packages returns id of repository from which the package was installed
        prefixed with '@' (if such information is available in the history database). Otherwise
        returns id of repository the package belongs to (@System for installed packages of unknown
        origin)
        N@)r#r	historyrepor!)r
Zpkgreporrr
_from_repoQszPackage._from_repocCs|jr|jjj|SdS)N)r#r	r%r&)r
rrr	from_repo`szPackage.from_repocCstjj|jS)z
        Returns the header of a locally present rpm package file. As opposed to
        self.get_header(), which retrieves the header of an installed package
        from rpmdb.
        )rrpm_headerlocalPkg)r
rrrr+gszPackage._headercs|jr|jStt|jS)N)rrrsize)r
)rrr_sizepsz
Package._sizecCs
||_dS)N)r)r
r rrrr.vscCs"|jdkrdS|j\}}tj|S)N)Z
hdr_chksumrhexlify)r
rrrrr_pkgidzs

zPackage._pkgidcCs4|jdk	r,tjj|jd}|jddd}nd}|S)zO
        returns name of source package
        e.g. krb5-libs -> krb5
        Nz.src.rpm-r)Z	sourcerpmrutilZrtrimrsplit)r
Zsrcnamerrrsource_names

zPackage.source_namecCsF|jj|jr|jS|j}|jj|jr<|dt|j}||jS)a)
        Returns name of the debuginfo package for this package.
        If this package is a debuginfo package, returns its name.
        If this package is a debugsource package, returns the debuginfo package
        for the base package.
        e.g. kernel-PAE -> kernel-PAE-debuginfo
        N)nameendswithDEBUGINFO_SUFFIXDEBUGSOURCE_SUFFIXlen)r
r6rrr
debug_names
zPackage.debug_namecCs |jdk	r|jn|j}||jS)zv
        Returns name of the debugsource package for this package.
        e.g. krb5-libs -> krb5-debugsource
        N)r5r6r9)r
src_namerrrdebugsource_nameszPackage.debugsource_namecCsN|js
dSyt|jjjtj|jStk
rHt	j
jdt|YnXdS)a`
        Returns the rpm header of the package if it is installed. If not
        installed, returns None. The header is not cached, it is retrieved from
        rpmdb on every call. In case of a failure (e.g. when the rpmdb changes
        between loading the data and calling this method), raises an instance
        of PackageNotFoundError.
        Nz4Package not found when attempting to retrieve header)
r#nextr	Z_tsZdbMatchr*ZRPMDBI_PACKAGESrpmdbid
StopIterationrrZPackageNotFoundErrorr)r
rrr
get_headerszPackage.get_headercCs |jdk	r|jn|j}||jS)z
        returns name of debuginfo package for source package of given package
        e.g. krb5-libs -> krb5-debuginfo
        N)r5r6r8)r
r<rrrsource_debug_nameszPackage.source_debug_namecCs
t|jS)z: Always type it to int, rpm bindings expect it like that. )intr?)r
rrridxszPackage.idxcCs|jS)N)r!)r
rrrrepoidszPackage.repoidcCs|j|jt|j|j|jfS)N)r6archrrvr)r
rrrpkgtupszPackage.pkgtupcCs|jr|jS|jj|jS)N)rr	Zreposr!)r
rrrr&szPackage.repocCs
||_dS)N)r)r
r rrrr&scCs |jtjkrdS|jjjj|S)N)rErr"r	r%r*Zget_reason_name)r
rrrreasonszPackage.reasoncCs|jS)N)r)r
rrrrelativepathszPackage.relativepathcCs|jS)N)rF)r
rrrasz	Package.acCs|jS)N)Zepoch)r
rrrrsz	Package.ecCs|jS)N)version)r
rrrrGsz	Package.vcCs|jS)N)release)r
rrrrHsz	Package.rcCs|jS)N)r!)r
rrrui_from_reposzPackage.ui_from_repocCs|j|dkS)Nr)evr_cmp)r
pkgrrrevr_eqszPackage.evr_eqcCs|j|dkS)Nr)rP)r
rQrrrevr_gt	szPackage.evr_gtcCs|j|dkS)Nr)rP)r
rQrrrevr_lt
szPackage.evr_ltcCs|jS)N)Zmedianr)r
rrr
getDiscNumszPackage.getDiscNumcCsr|jr|jS|j}|jjjrH|jrH|jjdrHtjj	|j
|jdS|js\tjj
|}tjj	|j|jdS)z Package's location in the filesystem.

            For packages in remote repo returns where the package will be/has
            been downloaded.
        zfile:///)rrr&risLocalbaseurl
startswithospathjoinZget_local_baseurllstrip
_is_local_pkgbasenamepkgdir)r
locrrrr,szPackage.localPkghttpftpfilehttpscCs |js|jrdS|jj|j|S)a
        The location from where the package can be downloaded from. Returns None for installed and
        commandline packages.

        :param schemes: list of allowed protocols. Default is ('http', 'ftp', 'file', 'https')
        :return: location (string) or None
        N)r#rr&remote_locationr)r
Zschemesrrrrf$s	zPackage.remote_locationcCsL|jr
dSd|jkr&|jjdr&dS|jpJ|jjjoJ|jpJ|jjdS)NTz://zfile://F)r#rrYrr&rrWrX)r
rrrr^1szPackage._is_local_pkgcCs,|jjjr |jr |jjS|jjSdS)N)r&rrWr^Zcache_pkgdirr`)r
rrrr`:s
zPackage.pkgdircCs0|jdkrdS|j\}}tj|tj|jfS)z] Return the chksum type and chksum string how the legacy yum expects
            it.
        N)NN)rrZchksum_namerr/decode)r
rrrrrreturnIdSumBs

zPackage.returnIdSumcCst|jrtd|jrdS|j\}}ytjj||j|Stjj	k
rn}zt
jjt
|WYdd}~XnXdS)Nz$Can not verify an installed package.T)r#
ValueErrorrrhrrZchecksum_checkr,rrrrrr)r
rrrrrrverifyLocalPkgLszPackage.verifyLocalPkgrbrcrdre)rk),__name__
__module____qualname____doc__r8r9rpropertyrsetterrr#r'r)r+r.r0r5r;r=rArBrDrErIr&rJrKrLrrGrHrOrRrSrTrUr,rfr^r`rhrj
__classcell__rr)rrr*sR	

	
r)roZ
__future__rrZdnf.i18nrrZdnf.exceptionsrZdnf.rpmZdnf.yum.miscrZlibdnf.errorrZlibdnf.utilsZloggingrZr*Z	getLoggerZloggerrrrrr<module>s