PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  [/\c@@sddlmZddlmZddlmZddlmZddlmZddlm Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZe jdZd Ze jd Zd Zi d d 6d d 6dd6dd6dd6dd6dd6dd6dd6ZdZdejfdYZdefdYZdS(i(tabsolute_import(tprint_function(tunicode_literals(t_(tcommands(t OptionParserNudnfu.%{name}-%{epoch}:%{version}-%{release}.%{arch}u%(-?\d*?){([:.\w]+?)}u name, arch, epoch, version, release, reponame (repoid), evr, debug_name, source_name, source_debug_name, installtime, buildtime, size, downloadsize, installsize, provides, requires, obsoletes, conflicts, sourcerpm, description, summary, license, url u conflictsuenhancesu obsoletesuprovidesu recommendsurequiresu requires_preu requires-preusuggestsu supplementscC@sd}d}|jddjdd}x,tjD]\}}|j||}q=Wd}d}xPtj|D]?}|||||j!7}|||7}|j}q{W||||7}|S( u:Convert a rpm like QUERYFMT to an python .format() string.cS@st|jd}|jd}|r^|ddkrGd|d}n d|}d|}nd|j|dS( Niiu-u>u/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pytfmt_replEs  cS@s|jddjddS(Nu{u{{u}u}}(treplace(ttxt((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pytbracketsPsu\nu u\tu ui(R t OPTS_MAPPINGtitemst QFORMAT_MATCHtfinditertstarttend(t queryformatR RR tvaluetfmttspostitem((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyt rpm2py_formatCs tRepoQueryCommandcB@seZdZiejd6ejd6ejd6Zdeej Z e dZ e dZe dZdZd Zd Zdeed Zd Zdd ZdZdZdZdddZRS(uSA class containing methods needed by the cli to execute the repoquery command. u repoquery-nu repoquery-naurepoquery-nevrau repoqueryu$search for packages matching keywordcC@sB|jr|jd|jn|jr>|jd|jn|S(u'Filter query by repoid and arch optionstreponametarch(trepotfiltermtarches(toptstquery((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pytfilter_repo_archjs   cC@s>|jddddtd|jdddd d d dtd |jd d d dtd|jdddddgd tjdddtd|jdddddddtd|jddddtd|jddddtd|jd dddtd!|jd"dddtd#|jd$dddtd%|jd&dddtd'|jd(dddtd)|jd*dddtd+|jd,dddtd-|j}|jd.d d dtd/|jd0d d dtd1|jd2d d dtd3|jd4d d dtd5|jd6d d dtd7|jd8d d dtd9|jd:d d dtd;|jd<d d dtd=|jd>dd?d@tdtdA|j}|jdBdCddDdtd d dtdE|jdFdGddHdtd d dtdI|jdJdKddLdtd d dtdM|jdNddOdtd d dtdP|jdQdRddSdtdtdT|jdUddSdVtd dWdtdX|jdYddSdVdZd dWdtd[|jd\ddSdVd]d dWdtd^|jd_d d dtd`|j}|jdaddbdVdcd dWdtdd|jdeddbdVdcd dWdtj |jdfddbdVdgd dWdtdh|jdiddbdVdjd dWdtdk|jdld d dtdm|j}i tdndo6tdpdq6tdrds6tdtdu6tdvdw6tdxdy6tdzd{6td|d}6td~d6}xI|j D];\}}d|}|j|ddd dWdV|d|qW|jdd d dtditdd6tdd6tdd6tdd6tdd6} |j} xI| j D];\} } d| } | j| ddd dWdV| d| qW| jdddd dWdVddtj |jdd d dtddS(Nukeytnargsu*thelputhe key to search foru-au--alltdestuqueryalltactionu store_trueuNQuery all packages (shorthand for repoquery '*' or repoquery without argument)u--show-duplicatesu(Query all versions of packages (default)u--archu --archlistuarchestdefaulttmetavaru[arch]u show only results from this ARCHu-fu--fileuFILEu+u show only results that owns FILEu--whatconflictsuREQu#show only results that conflict REQu --whatdependsuishows results that requires, suggests, supplements, enhances,or recommends package provides and files REQu--whatobsoletesu#show only results that obsolete REQu--whatprovidesu"show only results that provide REQu--whatrequiresu:shows results that requires package provides and files REQu--whatrecommendsu$show only results that recommend REQu--whatenhancesu"show only results that enhance REQu--whatsuggestsu"show only results that suggest REQu--whatsupplementsu%show only results that supplement REQu --alldepsu=check non-explicit dependencies (files and Provides); defaultu --exactdepsu:check dependencies exactly as given, opposite of --alldepsu --recursiveuOused with --whatrequires, and --requires --resolve, query packages recursively.u --deplistu>show a list of all dependencies and what packages provide themu --querytagsu-show available tags to use with --queryformatu --resolveu.resolve capabilities to originating package(s)u--treeu"show recursive tree for package(s)u--srpmu#operate on corresponding source RPMu--latest-limitu latest_limitttypeuOshow N latest packages for a given name.arch (or latest but N if N is negative)u-iu--infou queryinfou+show detailed information about the packageu-lu--listu queryfilelistu!show list of files in the packageu-su--sourceuquerysourcerpmushow package source RPM nameu --changelogsuquerychangelogsushow changelogs of the packageu--qfu --queryformatu queryformatu$format for displaying found packagesu--nevratconstu store_constuZuse name-epoch:version-release.architecture format for displaying found packages (default)u--nvru%{name}-%{version}-%{release}uQuse name-version-release format for displaying found packages (rpm query default)u--envrau.%{epoch}:%{name}-%{version}-%{release}.%{arch}uPuse epoch:name-version-release.architecture format for displaying found packagesu --groupmemberu=Display in which comps groups are presented selected packagesu --duplicatesu pkgfilteru duplicatedu/limit the query to installed duplicate packagesu --duplicatedu --installonlyu installonlyu1limit the query to installed installonly packagesu --unsatisfiedu unsatisfieduClimit the query to installed packages with unsatisfied dependenciesu --locationu5show a location from where packages can be downloadedu5Display capabilities that the package conflicts with.u conflictsuaDisplay capabilities that the package can depend on, enhance, recommend, suggest, and supplement.udependsu2Display capabilities that the package can enhance.uenhancesu-Display capabilities provided by the package.uprovidesu1Display capabilities that the package recommends.u recommendsu1Display capabilities that the package depends on.urequiresuLDisplay capabilities that the package depends on for running a %%pre script.u requires-preu/Display capabilities that the package suggests.usuggestsu5Display capabilities that the package can supplement.u supplementsu--%su packageatru --availableu Display only available packages.u Display only installed packages.u installeduLDisplay only packages that are not present in any of available repositories.uextrasuQDisplay only packages that provide an upgrade for some already installed package.uupgradesuFDisplay only packages that can be removed by "dnf autoremove" command.uunneededu2Display only packages that were installed by user.u userinstalledulistu --autoremoveu--recentu%Display only recently edited packages( t add_argumentRRt_SplitCallbacktadd_mutually_exclusive_grouptinttFalsetQFORMAT_DEFAULTtargparsetSUPPRESSR(tparsertwhatrequiresformtoutformt pkgfiltertpackage_attributet help_msgstargthelp_msgtnamet help_listt list_grouptlist_argthelp_argtswitch((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyt set_argparserss                                                               cC@s@|jj r<|jj r<|jjdtjdtjndS(Ntstdouttstderr(R!tverbosetquiettclitredirect_loggertloggingtWARNINGtINFO(tself((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyt pre_configurescC@s|jj r*|jj r*|jjn|jj}|jjr}|jjrn|jjdd|jjq}d|j_n|jj rdS|jj r|jj rt jj t dn|jjr=|jjr|jjddnt|jj|jjdko|jj gs=t jj t dq=n|jjr\|jjjn|jjd kr|jjd ks|jjrt|_nt|_|jjrt|_ndS( Nu --obsoletesu--u obsoletesuOption '--resolve' has to be used together with one of the '--conflicts', '--depends', '--enhances', '--provides', '--recommends', '--requires', '--requires-pre', '--suggests' or '--supplements' optionsu --recursiveu --exactdepsurequiresuOption '--recursive' has to be used with '--whatrequires ' (optionaly with '--alldeps', but not with '--exactdeps'), or with '--requires --resolve'u installedu userinstalledu installonly(u installedu userinstalled(R!RERFRGtredirect_repo_progresstdemandst obsoletest packageatrt_option_conflictt querytagstresolvetdnftCliErrorRt recursivet exactdepstanyt whatrequirestsrpmtbasetrepostenable_source_repostlistR7t availabletTruetavailable_repostsack_activationtquerychangelogst changelogs(RLRO((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyt configures6         $     c C@sY|jrg}|jdt|x^|jD]S}|d}|jd|jdtjj|dtjj|dfq0Wdj|Syt |}|j r|j j j |S|jr|j}|sttdj|d tjn|S|jr|jSt|jj|SWn+tk rT}tjjt|nXdS( NuChangelog for %su timestampu * %s %s %s u %a %b %d %Yuauthorutextu uPackage {} contains no filestfile(RdtappendtstrRetstrftimeRUti18ntucdtjointPackageWrappert queryinfoR\toutputt infoOutputt queryfilelisttfilestprintRtformattsysRDtquerysourcerpmt sourcerpmRRtAttributeErrort exceptionstError( RLR!tpkgtouttchlogtdttpotfilelistte((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pytbuild_format_fn-s.       % c C@s|r |n|jjjjdt}|jjjjdt}t}t}xP|jD]B} | j} |j| |j| j |rg|j| qgqgW|j |j d|}|r=|j |j d|}|j |j d|}|j |j d|}|j |j d|}n|r|j |}|r|j ||d|j |d|d |}qn|j |S( Ntemptytrequirest recommendstenhancest supplementstsuggeststdoneRWtall_deps(R\tsackR"RRatsettruntprovidestupdateRstuniontfiltert differencet_get_recursive_deps_query( RLtquery_int query_selectRRWRttt set_requirest set_all_depsR|t pkg_provides((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyRIs,*    c C@s*|p |}|jtjj|j|jjdtdt}|jd|}|r|j |jd|}|j |jd|}|j |jd|}|j |jd|}n|j |j ||d|}|j j r&|j |j ||d |j j d|}n|S( Nt with_providestwith_filenamestrequires__globtrecommends__globtenhances__globtsupplements__globtsuggests__globRRW( t intersectionRUtsubjecttSubjecttget_best_queryR\RR0RRRR!RW(RLt requires_namet depends_nameR"R<t defaultqueryt requiresqueryR((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyt by_all_depsds     cC@s|r |n|jjjjdt}|jjjjdt}x2|jD]$}|j|jd|j}qUW|j |}|r|j ||d|j|}n|j|S(NRRR( R\RR"RRaRRRRRt_get_recursive_providers_query(RLRt providersRRR|R((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyRws*"$c C@s |jjr*ttdttdS|jj|j|jjj |jjj }|jj r5i}g|jj D].}|t |j jkr}|j |^q}}|r||dr|j4d|jj>n|jj?r(|j4d|jj?n|jj@rM|j4d|jj@n|jjArq|jB|jjA}n|jjC|dt}|jjDr"g}xc|D][}|jE}|dk r|jjj j4d|d|jGdd }||j.7}qqW|jjj j4d!|}n|jjHr|jj: rh|jjId3krhtjjtd*n|jJ|| |jdStK}|jjIrF tK}x|j.D]}|jj d ks|jj!jL|r|jjId+kr|jM|jN|jO|jP|jQ|jRq>|jMt#|tS|jjIqqW|jjTr, |jj dkr|j2|j|jjj }n'|j2|j|jjj j}|jd,|}|jjUr|j|jV||}ntK}xP|jBj.D]"}|jW|jX|j|q Wq |jMd-|DnI|jjYr x:|j.D].}|jZ}|dk r_ |jW|q_ q_ Wn|jj[r g}xLt\tK|j.D]2}|jj d ks |jj!jL|r g}|j]d.t^|xt\g|jND]}t^|^q D]}|j]d/|tjj|}|j|jj}|j2|j|j}|jj_s |jB}nx+|j.D]}|j]d0t^|q Wq2 W|j]d1j`|q q W|r td2j`|ndS|jjar2 |jb|dSxZ|j.D]L}|jj d ksl |jj!jL|r? |jW|jX|j|q? q? W|r |jjcr td2j`t\|q td1j`t\|ndS(4Nu6Available query-tags: use --queryformat ".. %{tag} .."uformsRt ignore_caseRu installedu)argument {}: not allowed with argument {}u --availableu--uunneededu userinstalledu duplicatedu installonlyu unsatisfiedtverifyt file__globt conflictsRPtprovides__globu;argument {} requires --whatrequires or --whatdepends optionu --alldepsu --exactdepsRRRRRtwarningR<tevrRusrcR|u conflictsuenhancesu obsoletesuprovidesu recommendsurequiresusuggestsu supplementsuNo valid switch specified usage: dnf repoquery [--conflicts|--enhances|--obsoletes|--provides|--recommends|--requires|--suggest|--supplements|--whatrequires] [key] [--tree] description: For the given packages print a tree of the packages.udependsRcs@s|]}t|VqdS(N(Ri(t.0trel((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pys su package: u dependency: u provider: u u (u conflictsuenhancesu obsoletesuprovidesu recommendsurequiresusuggestsu supplements(dR!RSRtRt QUERY_TAGSRGt _populate_update_security_filterR\RR"R tcommandR_t nevra_formstkeysRRaRRURRRR0trecentt_recenttconfR`t optparsert print_usageRzR{Rut _unneededthistorytswdbtgetattrR7t_get_installonly_queryRt duplicatedt _rpmdb_sackt _configuretinstallonlypkgstinstallonly_limittgoaltGoalRtutilt_format_resolve_problemst problem_rulesR#RgRt whatconflictst whatobsoletest whatprovidestalldepsRXRZt whatdependsRtwhatrecommendst whatenhancestwhatsupplementst whatsuggestst latest_limittlatestt_merge_update_filtersR[t source_nametNoneRttreeRQt tree_seedRtuser_installedRRRRRRRRTRWRtaddRtlocationtremote_locationtdeplisttsortedRhRiRERmt groupmembert_group_member_reportRo(RLtqtkwarkRtformstpkgst query_resultsR t installonlytrpmdbRtsolvedtorquerytquery_for_providet dependsquerytpkg_listR|tsrcnamet tmp_querytrelsR"RRtdeplist_outputtreqRtprovider((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyRsB  " .    ""        $ $ $$         $ !      ')' $'  #    '/   '# c C@s|jjdti}xF|jjjD]5}tg|jD]}|j^q?||j/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyR=s,3+Dc C@s|j||}|dkr,t|dSd}x!td|D]}|d7}qBWg}x$|jD]}|jt|qfWdtt|ddj|d} t|d |d| dS( Niu iu| u[u: u, u]u\_ (RRttrangeRRhRitlenRm( RLtlevelR|R!t pkg_stringtspacingtxRt reqirepkgtreqstr((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyt grow_treeVs  +ic C@sxtt|jddD]}|dks@|dkrItn|}|jjdss|jjdrwdS|j|||||kr"|j||jrOt ||j}i}x[t|D]M} |j j j j d| } x&| D]} | || jd| j/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pytesiurpmlibusolvableRu.R|Ri(RRRRR<t startswithRRRQRR\RR"RRR_tvaluesRRRR( RLR"taqueryR!R tusedpkgsR|tstrpkgtarR<tpkgquerytquerypkg((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyRds$('$     -!(u repoqueryN(t__name__t __module__t__doc__thawkeyt FORM_NAMEtFORM_NAt FORM_NEVRARttupleRtaliasesRtsummaryt staticmethodR#RBRMRfRRR0RRRRRRR(((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyR`s&       *     RncB@sMeZdZdZdZedZedZedZ RS(u>Wrapper for dnf.package.Package, so we can control formatting.cC@s ||_dS(N(t_pkg(RLR|((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyt__init__~scC@sNt|j|}t|tr>djtd|DStjj|S(Nu cS@s"h|]}tjj|qS((RURkRl(Rtreldep((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pys s ( RR&t isinstanceR_RmRRURkRl(RLtattrtatr((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyt __getattr__scC@s3|dkr+tjj|}|jdSdSdS(Niu%Y-%m-%d %H:%Mu(tdatetimetutcfromtimestampRj(t timestampR((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyt_get_timestamps  cC@s|j|jjS(N(R0R&t buildtime(RL((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyR1scC@s|j|jjS(N(R0R&t installtime(RL((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyR2s( RRRR'R,R%R0tpropertyR1R2(((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pyRnzs   ( t __future__RRRtdnf.i18nRtdnf.cliRtdnf.cli.option_parserRR2R-RItreRvRUtdnf.exceptionst dnf.subjecttdnf.utilRt getLoggertloggerR1tcompileRRRRtCommandRtobjectRn(((s>/usr/lib/python2.7/site-packages/dnf/cli/commands/repoquery.pytsF