VULN_CHECK_I913V6 }/i3=ddlmZddlmZddlZddlZddlZddlZddlmZm Z ddl m Z ddl Z ddl Z dZGdde jj Ze j$j&Gd d e j(j*Zy) )absolute_import)unicode_literalsN)_logger) OptionParserctjjtj}tj j tj j|||SN)dnfi18nucdosgetcwdpathrealpathjoin) intermediatetargetcwds 9/usr/lib/python3.12/site-packages/dnf-plugins/reposync.py_pkgdirr#s@ ((,,ryy{ #C 77  BGGLLlFC DDc(eZdZfdZfdZxZS)RPMPayloadLocationcvtt| ||tjj ||_yr )superr__init__r rdirname package_dir)selfpkgprogress pkg_location __class__s rrzRPMPayloadLocation.__init__)s*  $0h?77??<8rctt| }tjj |j |j |d<|S)Ndest)rr_target_paramsr util ensure_dirr)rtpr#s rr&z!RPMPayloadLocation._target_params-s? %t ; = D,,-%%6  r)__name__ __module__ __qualname__rr& __classcell__r#s@rrr(s9rrceZdZdZedZfdZedZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZxZS)RepoSyncCommand)reposyncz&download all packages from remote repoc,tt| |yr )rr0r)rclir#s rrzRepoSyncCommand.__init__9s ot-c2rc 4|jdddgtjdtd|jddd td  |jd dd td  |jdddd td |jdddd td |jdtd|jdddd td |jddd td |jdddtd |jd!dd td" |jd#dd td$ |jd%d&dd td' |jd(dtd) y)*Nz-az--archarchesz[arch]z$download only packages for this ARCH)r%defaultactionmetavarhelpz--deleteF store_truez5delete local packages no longer present in repository)r6r7r9z--download-metadatazdownload all the metadata.z-gz --gpgcheckzBRemove packages that fail GPG signature checking after downloadingz-mz--downloadcompsz&also download and uncompress comps.xmlz--metadata-pathzXwhere to store downloaded repository metadata. Defaults to the value of --download-path.)r9z-nz --newest-onlyz&download only newest packages per-repoz --norepopathz,Don't add the reponame to the download path.z-pz--download-pathz./z&where to store downloaded repositories)r6r9z --remote-timezCtry to set local timestamps of local files by the one on the serverz--sourcezdownload only source packagesz-uz--urlsz:Just list urls of what would be downloaded, don't downloadz--safe-write-pathzOFilesystem path that is considered safe for writing. Defaults to download path.) add_argumentr_SplitCallbackr)parsers r set_argparserzRepoSyncCommand.set_argparser<sD(2#/#>#>!"#I!J  L Jl!"#Z![  ]15!"#?!@  BD,l!"$7"8  9 D"3U> IIK   !))..K =D ) 99    % % ' 99 $ $ 0(*(8(89R9R(SDII % tE&&() *Q .yy##gg&&IJLL**6gg&&NOQQ&&(D JJ   !DM)% K''**+@6+IJJKs G66,H"c d|jj_d}|jjj D]}|j j r|jjd|j jr|j jre|jjD]G\}}|j|}|r t|%td|z}tj |In|j||j j"r|j jrt%|jj}dDcgc] }||vr|| }}|rY|D]"} |j| }|st|n3td}tj |n|j'||j)|} |j jr|j+| n|j-| |j j.r| D]} |j1| } t3j4| fd| | _|jj9| \} }| dk7sVtj tdj;t<j>jA| |t=jB| d}|j jDs|jG|| |s(tHjJjMtd ycc}w) NTz%Failed to get mirror for metadata: %s)groupgroup_gz group_gz_zckz(Failed to get mirror for the group file.c|Sr )s local_paths rz%RepoSyncCommand.run..sZrrzRemoving {}: {}FzGPG signature check failed.)'rDconf keepcacherErRrF remote_timerTsetPreserveRemoteTimedownload_metadataurlsgetMetadataLocationsremote_locationprintrrwarning downloadcompsdictgetcomps get_pkglist print_urlsdownload_packagesgpgcheckpkg_download_pathtypes MethodTypelocalPkgpackage_signature_checkformatr rbasenameunlinkdeletedelete_old_local_packagesr exceptionsError)r gpgcheck_okrGmd_type md_locationurlmsgmdlgroup_locationsgroup_locationpkglistr r`resulterrors rrunzRepoSyncCommand.runs#'   IIOO002Dyy$$ 006yy**99>>04 0O0O0Q,"22;?!#J"#$K"Lw"VC"NN3/ 1R**40yy&&99>>tzz>>@AC6[':6[7*1S.(+7|6[$':'.=N"&"6"6~"FC" %c % /> #$$N"OC"NN3/MM$'&&t,Gyy~~(&&w/99%%&%)%;%;C%@ ).(8(81;G)N (, (I(I#(N !Q;"NN1->+?+F+F " 0 0 z.sNgst55c:gsz.rpmz [DELETED] %szfailed to delete file %s)setr walkrrrendswithisfilerzrinforOSErrorr) rrGrdownloaded_filesdirpathdirnames filenamesfilenamers ` rr|z)RepoSyncCommand.delete_old_local_packagessNgNN,.GGD4D4DT4J,K (GXy%ww||GX6$$V,1E#33NIIdO"KK.(94@&-L 'N"LL+E)FMNs4C(DDc|jj}|r|j|}tjj |t jj|d}tjjj||tjtd|jyy)Nz comps.xml)r%z!comps.xml for repository %s saved)rT getCompsFnrr r'r(r rryummisc decompressrrrr)rrGcomps_fn dest_pathr%s rrnzRepoSyncCommand.getcompss::((* ,,T2I HH   *77<< ;7D GGLL # #H4 # 8 KK=> H rc\|j|}|jj|y)NT)rrTdownloadMetadata)rrGrs rrfz!RepoSyncCommand.download_metadatas'**40  ##K0rc^tjjs|jS|j |jj j }t}i}i}|D]}|j}|j||j|jij|jgj||D]O}|j|ij|jgj|jQ|j|j|j} t} |jD]\} } t} | j!t#| j%ddt}| j'D](}|D]!}|j|j#*|j|jD]3}dj)|}| j!t+||| 5| D]+}| |D]!}| j|j#- | j-|j| } | S)a\ return union of these queries: - the latest NEVRAs from non-modular packages - all packages from stream version with the latest package NEVRA (this should not be needed but the latest package NEVRAs might be part of an older module version) - all packages from the latest stream version ) nevra_strict)pkg__neqT)reverserz3{0.name}-{0.epoch}:{0.version}-{0.release}.{0.arch})r rD WITH_MODULESlatestapply_moduleContainergetModulePackagesr getArtifactsupdate setdefault getNameStream getVersionNumappendfilteritemsaddsortedkeysvaluesrxmaxunion)rquerymodule_packages all_artifacts module_dictartifact_versionmodule_package artifactsartifact latest_querylatest_stream_artifacts namestream version_dictversionsstream_artifactsmodulesmodule latest_pkgnevraversions r _get_latestzRepoSyncCommand._get_latestsPxx$$<<> ! ))44FFH  -N&335I   +  " ">#?#?#A2 F Q Q,,. 44:F>4J% ++Hb9DD"002B88>~?[?[?]8^& .||\\}\=$??Evx  #&%(3(9(9(; $J uH LL 1 1 3TB1E F"u '..0%F$++F,?,?,AB&1$ll8HlIPPR MTTU_` S!1%!8!DEF S $*73F+2263F3F3HI4$#)<($))%,,D[,*\] rcl|jjjtjj j |j}|jjr|j|}|jjr|j dn<|jjr&|j |jjg}t}|D]:}|j|}||vs|j||j!|<|S)Nflags)reponamesrc)arch)rDsackrhawkeyIGNORE_MODULAR_EXCLUDES availablefiltermrrF newest_onlyrrMr5rrsrr)rrGrr seen_pathsr rs rrozRepoSyncCommand.get_pkglist+s $$6+I+I$JTTV^^WW_ 99 $$U+E 99   MMuM % YY   MMtyy//M 0U C 2237MJ.s#}-  rc |j}|jj}|tjj }tj j|jjtjj|d}|Dcgc]}t|||j| }}|j|||ddycc}w)NrrF)rDoutputr!r callbackNullDownloadProgressdrpm DeltaInforrrr installedrrs_download_remote_payloads)rrrDr!rr payloadss rrqz!RepoSyncCommand.download_packages>syy;;''  ||88:Hxx!!$))//8V8V/"W"a"a"c"*A/ '(&'sHd6L6LS6QR& ( &&xxuM(s#Cc|D]M}|j}|r t|!td|jz}t j |Oy)Nz$Failed to get mirror for package: %s)rirjrrrrk)rrr rrs rrpzRepoSyncCommand.print_urlsIsDC%%'Cc >?#((Js# r)r*r+r,aliasesrsummaryr staticmethodr>rXrrrrsr|rnrfrrorqrpr-r.s@rr0r04ssG89G3wwB "D8ItD* !" NI 7r& N$rr0) __future__rrrr shutilrtdnfpluginscorerrdnf.cli.option_parserrr dnf.clirrG RPMPayloadrpluginregister_commandr3Commandr0r^rrrsq*'' $. E ,, [$cggoo[$[$r