VULN_CHECK_I913V6 ?(f}$ddlmZddlmZddlmZmZddlZddlZddlZddl Zddl Zddl Zddl Z ddlZddlZddlZddlZej$j&Gddej(j*Zy))absolute_import)unicode_literals)_loggerNceZdZdZdZeeZedZfdZdZ dZ e dZ dZ d Zd Ze d Zd Zd ZdZdZxZS)BuildDepCommand)builddepz build-depz3Install build dependencies for package or spec filez[PACKAGE|PACKAGE.spec]ctt| |tjj j |_g|_yN) superr__init__dnfrpm transactioninitReadOnlyTransaction_rpm_tstempdirs)selfcli __class__s 9/usr/lib/python3.12/site-packages/dnf-plugins/builddep.pyr zBuildDepCommand.__init__/s3 ot-c2ww**BBD  cP|jD]}tj|yr )rshutilrmtree)rtemp_dirs r__del__zBuildDepCommand.__del__4s H MM( #&rctjjj|}|ddvr |jStj j }tjd}tjj|tjj|}|jj|t|d} |j|j j"j$||j' |j+|S#t($r}d}~wwxYw#|j+wxYw)z In case pkgspec is a remote URL, download it to a temporary location and use the temporary file instead. r)file dnf_builddep_)prefixzwb+N)rpycompurlparsepathlibdnfrepo Downloadertempfilemkdtemposjoinbasenamerappendopen downloadURLbaseconf_configfileno RuntimeErrorclose)rpkgspeclocation downloaderr temp_filetemp_foexs r_download_remote_filez%BuildDepCommand._download_remote_file8s ::&&//8 A;, &== [[++- ##?;GGLL277+;+;G+DE  X&y%(   " "499>>#9#97GNNDT U MMO     MMOs$?D(( D71D22D77D::E c Xd}|jdddtd|jddd gd |td  |jd ddtd|j}|jddtd|jddtdy)Nc|r|jddng}t|dkr#td|z}tj||S)Nz&'%s' is not of the format 'MACRO EXPR')splitlenrargparseArgumentTypeError)argarglistmsgs r macro_defz0BuildDepCommand.set_argparser..macro_defRsH,/ciia(RG7|a@ACG0055Nrpackages+packagez"packages with builddeps to install)nargsmetavarhelpz-Dz--definer.z 'MACRO EXPR'z$define a macro for spec file parsing)actiondefaultrNtyperOz--skip-unavailable store_trueFz5skip build dependencies not available in repositories)rPrQrOz--specz)treat commandline arguments as spec files)rPrOz--srpmz)treat commandline arguments as source rpm) add_argumentradd_mutually_exclusive_group)parserrIptypes r set_argparserzBuildDepCommand.set_argparserPs  Jc9!"#G!H  JD*Xr$2!"#I!J  L 0u!"#Z![  ]335 8L!"#N!O  Q 8L!"#N!O  QrcT|jjsd|j_yy)Nerror)opts rpmverbosity)rs r pre_configurezBuildDepCommand.pre_configurefs yy%%%,DII "&rc|jj}d|_d|_d|_d|_|j js|j jsw|j jD]]}|jdr|jdr'|jdr9|jjjyyyy)NT.src.rpmz .nosrc.rpm.spec)rdemandsavailable_repos resolving root_usersack_activationr[specsrpmrJendswithr1reposenable_source_repos)rrar7s r configurezBuildDepCommand.configurejs(("""&  "& $))..99--((4"++L9"++G4IIOO779 .#1rchtjjj|j}|j j D]}tj|d|d d}|j jD]}|j|} |j jr|j|n|j jr|j|nh|jds|jdr|j|n4|jdr|j|n|j!||j j D]}tj0|d|r(tj"j%t-d y#tj"j$$rd}|j'D]/}t)j*t-dj/|1t)j*|d}Yd}~d}~wwxYw) Nrr@Fr_z nosrc.rpmr`zRPM: {}Tz!Some packages could not be found.)ryumrpmtransRPMTransactionr1r[defineraddMacrorJr=rg _src_depsrf _spec_depsrh _remote_deps exceptionsErrormessagesrrZrformatdelMacro)rrpmlogmacro pkg_errorsr7elines rrunzBuildDepCommand.runzs!!00;YY%%E LLq58 ,& yy))G009G "99>>NN7+YY^^OOG,%%j1W5E5Ek5RNN7+%%g.OOG,%%g.*(YY%%E LLq "& ..&&q)L'MN N >>'' ""OO-DLL9!4!4T!:;. Q!  "sB8F00H1 AH,,H1c(|jddS)NrA)DNEVR)rpm_deps r_rpm_dep2reldep_strz#BuildDepCommand._rpm_dep2reldep_strs}}qr""rctjj|jj}|j ||j }|sf|jdrUtjj|jj}|j ||j }|sJ|jds9td}tj|||jjduS|rC|jj|}|r&|D]!}tjj|#|jjj!|dy) N)provides/)r(z$No matching package to install: '%s'TF)selectoptional)rselectorSelectorr1sacksetmatches startswithrrwarningr[skip_unavailable_sltr_matches_installed_msg_installed_goalinstall)r reldep_strsltrfoundrH already_instrLs r_installzBuildDepCommand._installs||$$TYY^^4 *% ..s3<<((8D HH*H %LLNEZ2237:;C NN3 +99--5 5 99<rsa,''$  J,cggooJ,J,r