VULN_CHECK_I913V6 ?(f0ddlmZddlmZddlmZmZddlmZddlZddl Zddl Zddl Zddl Zddl ZddlZddlZddlZddlZej$j&Gddej(j*Zy))absolute_import)unicode_literals)_logger) OptionParserNceZdZdgZedZfdZedZdZ dZ dZ dZ d Z d Zd Zdd Zdd ZedZdZdZxZS)DownloadCommanddownloadz%Download package to current directorycHtt| |d|_d|_yN)superr __init__optsparser)selfcli __class__s 9/usr/lib/python3.12/site-packages/dnf-plugins/download.pyrzDownloadCommand.__init__+s  ot-c2  c >|jddtd|jddtd|jd dtd |jd dtd |jd ddgtjdtd|jddtd|jddtd|jddddtd|jddgdgtd y)!Npackages+zpackages to download)nargshelpz--source store_truezdownload the src.rpm instead)actionrz --debuginfoz'download the -debuginfo package insteadz --debugsourcez)download the -debugsource package insteadz--archz --archlistarchesz[arch]z5limit the query to packages of given architectures.)destdefaultrmetavarrz --resolvez(resolve and download needed dependenciesz --alldepsz^when running with --resolve, download all dependencies (do not exclude already installed ones)z--urlz--urlsurlzJprint list of urls where the rpms can be downloaded instead of downloading)rrrz--urlprotocolsappend)httphttpsrsyncftpz4when running with --url, limit to specific protocols)rchoicesrr) add_argumentrr_SplitCallback)rs r set_argparserzDownloadCommand.set_argparser0s\Jc!"#9!:  <J|!"#A!B  DM,!"#L!M  OOL!"#N!O  QHl2#/#>#>!"#Z![  ] K !"#M!N  PK !"$M"N  O GXl!"$N"O  P ,X$E$&!"$A"B  Crc|jj}d|_d|_|jj r|jj rd|_|jjr$|jjj|jjs|jjr$|jjj|jjr0|jj|jj _nJt"j$j't)j*|jj _t"j,j/|jj0r+|jj xj2dgz c_yy)NTF filelists)rdemandssack_activationavailable_reposrresolvealldepsload_system_reposourcebasereposenable_source_repos debuginfo debugsourceenable_debug_reposdestdirconfdnfi18nucdosgetcwdutil_is_file_pattern_presentroptional_metadata_types)rr-s r configurezDownloadCommand.configureKs(("""&"& 99  !2!2',G $ 99   IIOO / / 1 99  $))"7"7 IIOO . . 0 99  %)YY%6%6DIINN "%(XX\\"))+%>DIINN " 88 , ,TYY-?-? @ IINN 2 2{m C 2 Arcn|jjsR|jjs<|jjs&|j |jj }ng}|jjr4|j |j|jj |jjr4|j |j|jj |jjr4|j |j|jj |jjr|D]}|jtjk7s!|j|jj}|r t!|Ut#d|j$z}|j&j(j*rt,j.j1|t3j4|y|j7|y)zExecute the util action here.)schemesz$Failed to get mirror for package: %sN)rr3r7r8_get_pkg_objs_rpmsrextend_get_pkg_objs_source_get_pkg_objs_debuginfo_get_pkg_objs_debugsourcer!repoidhawkeyCMDLINE_REPO_NAMEremote_location urlprotocolsprintrnamer4r;strictr< exceptionsErrorrwarning _do_downloads)rpkgspkgr!msgs rrunzDownloadCommand.runas}    ++ --**499+=+=>DDyy D55dii6H6HIJyy"" D889K9KLMyy$$ D::499;M;MNO 99==::!9!99--dii6L6L-MCc  FG#((R99>>00"%.."6"6s";;s+    t $rc"i}|D],}|jt|gj|.g}g}|jD]l}|Dcgc]!}|jt j k(r|#}}|r|j|dF|jd|j|dn|r:|jj||jjj|r|D]}|j}tjj|jj j"tjj%|} tjj'| r!tjj)|| rt+j,||jj j"t/||zDcgc]}|jc}} | Scc}wcc}w)z= Perform the download for a list of packages rcZ|jj|jjfSr )repoprioritycost)xs rz/DownloadCommand._do_downloads..s!&&++(Fr)key) setdefaultstrr"valuesrLrMrNsortr4download_packagesoutputprogresslocalPkgr?pathjoinr;r:basenameexistssamefileshutilcopysorted) rrXpkg_dictrY to_downloadcmdlinepkg_list pkgs_cmdlinesrcdst locationss rrWzDownloadCommand._do_downloadssC   C" - 4 4S 9  )H+3G8C"zzV-E-EE 8LG|A/ MMFM G   x{ +*  II ' ' TYY5E5E5N5N O llnggll499>>#9#9277;K;KC;PQ77>>#&277+;+;C+E C!7!78 kG6KL6KsCLLN6KLM )G&Ms &H'H cz|jjr|j|}|S|j|}|S)zc Return a list of dnf.Package objects that represent the rpms to download. )rr0_get_packages_with_deps _get_packages)r pkg_specsrXs rrGz"DownloadCommand._get_pkg_objs_rpmss? 99  // :D %%i0D rc|j|}|j|}t|j|d}|S)zj Return a list of dnf.Package objects that represent the source rpms to download. T)r3)rG_get_source_packagessetr~)rrrX source_pkgss rrIz$DownloadCommand._get_pkg_objs_sourcesC &&y1//5 4%%k$%?@ rc t}|jjjj }|j |D]}|j |jfD]e}|j|t|j|j|j|j}|sM|D]}|j||S)zm Return a list of dnf.Package objects that represent the debuginfo rpms to download. rRepochversionreleasearch)rr4sackquery availabler~ debug_namesource_debug_namefilterintrrrradd)rrdbg_pkgsqrYdbg_name dbg_availableps rrJz'DownloadCommand._get_pkg_objs_debuginfos 5 IINN " , , .%%i0C ^^S-B-BC !!cii.KKKK !)! %&ALLO'D1$rc|t}|jjjj }|j |D]k}|j |jt|j|j|j|j}|D]}|j|m|S)zo Return a list of dnf.Package objects that represent the debugsource rpms to download. r)rr4rrrr~rdebugsource_namerrrrrr)rrrrrYrrs rrKz)DownloadCommand._get_pkg_objs_debugsources 5 IINN " , , .%%i0CHH))#))n  XX %M# Q#1rc$|r |jn |j}g}|D]} |j||tt!j"|}|S#tjj $r}t jtjj||jjjr=t jtdtjj|Yd}~d}~wwxYw)z Get packages matching pkg_specs.zExiting due to strict setting.N)_get_query_source _get_queryr"r<rTPackageNotFoundErrorrerrorr=r>r4r;rSrrUlist itertoolschain)rrr3funcqueriespkg_specerXs rr~zDownloadCommand._get_packagess)/t%%T__!H 2tH~."IOOW-. >>66 2 SXX\\!_-99>>((LL#C!DE....q11) 2sAD6BD  Dc |j|}t|}|D]U}tj|jj }|j ||j|jjj }|r?|j|j|j|jtdg}tjdj!||Dcgc] }t#|c}ztjt$j&j)|j+t$j,j/|Scc}w)z-Get packages matching pkg_specs and the deps.)ignore_weak_depszError in resolve of packages:z )r~rrMGoalr4rinstallr[r;install_weak_depsupdate list_installs list_upgradesrrrrmrer<rA_format_resolve_problems problem_rulesrTrU) rrr3rXpkg_setrYgoalrcrZs rr}z'DownloadCommand._get_packages_with_depss!!),d)C;;tyy~~.D LL  0P0P,PRBt1134t113489: X]]3d1Kds#c(d1K+KLM SXX>>t?Q?Q?STUnn**,,2Ls:E:ct}|D]}|jrF|j|jtjdt ||jU|j dk(r,|j|jd|jdtjtdt |t|S)z4Get list of source rpm names for a list of packages.z --> Package : %s Source : %sry-z.src.rpmzNo source rpm defined for %s) r sourcerpmrrdebugrerrRevrinforr)rXrrYs rrz$DownloadCommand._get_source_packagesse C}} . = Xs}}6U"388SWW EF A<=s3xHK  rctjjj|d}|xr|dv}|s0|jdrtj j |rp|jj|g|jjj}|jjjj|Stjj|}|j!|jj|j"j$}|j'}|jd}|j"j(r&|j+|j"j( }t-|j/dk(r-t1d |z}tj2j5||S) z#Return a query to match a pkg_spec.r)r#r&filer$z.rpm)rj)rY)with_srcT)latest_per_arch_by_priority)rNo package %s available.)r<pycompurlparseendswithr?rlisfiler4add_remote_rpmsrirjrrfiltermsubjectSubjectget_best_queryrr3rrrlenr[rrTr)rrrFis_urlrXsubjrrZs rrzDownloadCommand._get_querysY**%%..x8;HW(HH h''/BGGNN84L99,,hZ$))BRBRB[B[,\D99>>'')11d1; ;{{""8,    9I9I  J KKM II$I 7 99  dii../A quuw<1 ./8>:DDFI ''))8 *+x8nn11#66r)F)__name__ __module__ __qualname__aliasesrsummaryr staticmethodr*rDr[rWrGrIrJrKr~r}rrr __classcell__)rs@rr r %slG78G CC4D,!%FB 8, $ ! !$ 7rr ) __future__rrdnfpluginscorerrdnf.cli.option_parserrr<dnf.clidnf.exceptionsdnf.i18n dnf.subjectdnf.utilrMrr?rqpluginregister_commandrCommandr rrrsa(''$.   S7cggooS7S7r