p!ranha?
Server IP : 103.169.32.36  /  Your IP : 216.73.216.187
Web Server : Apache
System : Linux web.dpmptsp 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : apache ( 48)
PHP Version : 5.6.40
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /bin/

Upload File :
Curr3nt_D!r [ Writeable ] D0cum3nt_r0Ot [ Writeable ]

 
Command :
Current File : /bin/repoquery
#!/usr/bin/python -tt

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# (c) pmatilai@laiskiainen.org


import sys
sys.path.insert(0, '/usr/share/yum-cli')

import signal
import re
import fnmatch
import time
import os
import os.path
import urlparse

from optparse import OptionParser
from optparse import SUPPRESS_HELP

import logging
import yum
import yum.misc as misc
import yum.config
import yum.Errors
import yum.packages
from yum.i18n import to_unicode
from rpmUtils.arch import getArchList, getBaseArch
from rpmUtils.miscutils import formatRequire
import output
from urlgrabber.progress import TextMeter
from urlgrabber.progress import format_number

version = "0.0.11"

flags = { 'EQ':'=', 'LT':'<', 'LE':'<=', 'GT':'>', 'GE':'>=', 'None':' '}

std_qf = { 
'nvr': '%{name}-%{version}-%{release}',
'nevra': '%{name}-%{epoch}:%{version}-%{release}.%{arch}',
'envra': '%{epoch}:%{name}-%{version}-%{release}.%{arch}',
'source': '%{sourcerpm}',
'info': """
Name        : %{name}
Version     : %{version}
Release     : %{release}
Architecture: %{arch}
Size        : %{installedsize}
Packager    : %{packager}
Group       : %{group}
URL         : %{url}
Repository  : %{repoid}
Summary     : %{summary}
Source      : %{sourcerpm}
Description :\n%{description}""",
}

querytags = [ 'name', 'version', 'release', 'epoch', 'arch', 'summary',
              'description', 'packager', 'url', 'buildhost', 'sourcerpm',
              'vendor', 'group', 'license', 'buildtime', 'filetime',
              'installedsize', 'archivesize', 'packagesize', 'repoid', 
              'requires', 'provides', 'conflicts', 'obsoletes',
              'relativepath', 'hdrstart', 'hdrend', 'id',
              'checksum', 'pkgid', 'committer', 'committime',
              'ui_evr', 'evr', 'ui_nevra', 'ui_envra',
              'ui_from_repo', 'base_package_name', 'size', 'xattr_origin_url',
              'ui_evra', 'ui_nevr', 'na', 'vr', 'vra', 'evr', 'evra',
              'nvr', 'nvra', 'nevr', 'nevra', 'envr', 'envra',

              'repo.<attr of the repo object>',
              'yumdb.<attr of the yumdb object>',
              '<attr of the yum object>'
            ]

def sec2isodate(timestr):
    return time.strftime("%F %T", time.gmtime(int(timestr)))

def sec2date(timestr):
    return to_unicode(time.ctime(int(timestr)))

def sec2day(timestr):
    return to_unicode(time.strftime("%a %b %d %Y", time.gmtime(int(timestr))))

def _size2val(size, off, ui):
    size = float(size)
    off = 1024
    if False: pass
    elif size >= (off * 100):
        return "%.0f%s" % ((size / off), ui)
    elif size >= (off *  10):
        return "%.1f%s" % ((size / off), ui)
    return "%.2f%s" % ((size / off), ui)
def size2k(size):
    return _size2val(size,                      1024, " k")
def size2m(size):
    return _size2val(size,               1024 * 1024, " M")
def size2g(size):
    return _size2val(size,        1024 * 1024 * 1024, " G")
def size2t(size):
    return _size2val(size, 1024 * 1024 * 1024 * 1024, " T")
def size2h(size):
    return format_number(size)

convertmap = { 'date': sec2date,
               'day':  sec2day,
               'isodate':  sec2isodate,
               'k':  size2k,
               'm':  size2m,
               'g':  size2g,
               'h':  size2h,
             }

class queryError(Exception):
    def __init__(self, value=None):
        Exception.__init__(self)
        self.value = value
    def __str__(self):
        return "%s" %(self.value,)

    def __unicode__(self):
        return '%s' % to_unicode(self.value)
        

class DotPlot(object):
    def __init__(self):

        print 'digraph packages {',
        print """
size="20.69,25.52";
ratio="fill";
rankdir="TB";
orientation=port;
node[style="filled"];
outputorder="edgesfirst";
ranksep="1";
"""
    
    def addPackage(self, pkg, deps):
        # color calculations lifted from rpmgraph 
        h=0.5+(0.6/23*len(deps))
        s=h+0.1
        b=1.0
        
        print '"%s" [color="%s %s %s"];' % (pkg, h, s, b)
        print '"%s" -> {' % pkg
        for req in deps:
            print '"%s"' % req
        print '} [color="%s %s %s"];\n' % (h, s, b)
    
    def __del__(self):
        print "}"

# abstract class
class pkgQuery:
    """
    My implementation of __getitem__ either forwards to an implementation
    of fmt_(name), or to self.pkg.returnSimple(), allowing subclasses
    to override the package's items.

    @type pkg: L{yum.package.YumAvailablePackage}
    @ivar qf:  the query format for this package query
    @type qf:  str
    """

    def __init__(self, pkg, qf, yb=None):
        self.yb = yb
        self.pkg = pkg
        self.qf = qf
        self.name = pkg.name
        self.classname = None
        self._translated_qf = {}
    
    def __getitem__(self, item):
        item = item.lower()
        if hasattr(self, "fmt_%s" % item):
            return getattr(self, "fmt_%s" % item)()
        elif item.startswith('repo.'):
            repo_item = item.split('.')[1]
            try:
                return getattr(self.pkg.repo, repo_item)
            except AttributeError,e:
                raise queryError("Invalid repo querytag '%s' for %s: %s" % (repo_item, self.classname, self.pkg))
        elif hasattr(self.pkg, item):
            return getattr(self.pkg, item)

        res = None
        convert = None

        tmp = item.split(':')
        if len(tmp) > 1:
            item = tmp[0]
            conv = tmp[1]
            if conv in convertmap:
                convert = convertmap[conv]
            else:
                raise queryError("Invalid conversion: %s" % conv)

        # this construct is the way it is because pkg.licenses isn't
        # populated before calling pkg.returnSimple() ?!
        try:
            res = self.pkg.returnSimple(item)
        except (KeyError, ValueError):
            if item == "license":
                res = ", ".join(self.pkg.licenses)
            else:
                raise queryError("Invalid querytag '%s' for %s: %s" % (item, self.classname, self.pkg))

        if convert:
            res = convert(res)
        return res

    def __str__(self):
        return self.fmt_queryformat()

    def doQuery(self, method, *args, **kw):
        if method in std_qf:
            self.qf = std_qf[method]
            return self.fmt_queryformat()
        elif hasattr(self, "fmt_%s" % method):
            return getattr(self, "fmt_%s" % method)(*args, **kw)
        else:
            raise queryError("Invalid package query: %s" % method)

    def isSource(self):
        return self["arch"] == "src"

    def prco(self, what, **kw):
        """
        Query for the provides/requires/conflicts/obsoletes of this package.

        @param what: one of provides, requires, conflicts, obsoletes
        @type  what: str

        @rtype: list of str
        """
        # for subclasses to implement
        raise NotImplementedError

    def fmt_queryformat(self, **kw):

        if not self.qf:
            return self.fmt_nevra()

        # Override .qf for fun and profit...
        if self.qf not in self._translated_qf:
            qf = self.qf

            qf = qf.replace("\\n", "\n")
            qf = qf.replace("\\t", "\t")
            pattern = re.compile('%([-\d]*?){([:\.\w]*?)}')
            fmt = re.sub(pattern, r'%(\2)\1s', qf)
            self._translated_qf[self.qf] = fmt
        return self._translated_qf[self.qf] % self

    def fmt_requires(self, **kw):
        if self.yb.options.output in ("ascii-tree", "dot-tree"):
            self.fmt_tree_requires(output = self.yb.options.output,
                                tree_level = self.yb.options.tree_level,
                                dot = self.yb.options.dot)
        else:
            return "\n".join(self.prco('requires'))

    def fmt_provides(self, **kw):
        return "\n".join(self.prco('provides'))

    def fmt_conflicts(self, **kw):
        if self.yb.options.output in ("ascii-tree", "dot-tree"):
            self.fmt_tree_conflicts(output = self.yb.options.output,
                                tree_level = self.yb.options.tree_level,
                                dot = self.yb.options.dot)
        else:
            return "\n".join(self.prco('conflicts'))

    def fmt_obsoletes(self, **kw):
        if self.yb.options.output in ("ascii-tree", "dot-tree"):
            self.fmt_tree_obsoletes(output = self.yb.options.output,
                                tree_level = self.yb.options.tree_level,
                                dot = self.yb.options.dot)
        else:
            return "\n".join(self.prco('obsoletes'))

    def fmt_list(self, **kw):
        return "\n".join(self.files())

    def fmt_evr(self, **kw):
        return "%(epoch)s:%(version)s-%(release)s" % self
    def fmt_nevr(self, **kw):
        return "%(name)s-%(evr)s" % self
    def fmt_envr(self, **kw):
        return "%(epoch)s:%(name)s-%(version)s-%(release)s" % self
    def fmt_nevra(self, **kw):
        return "%(nevr)s.%(arch)s" % self
    def fmt_envra(self, **kw):
        return "%(envr)s.%(arch)s" % self

    def fmt_location(self, **kw):
        loc = ''
        repo = self.pkg.repo
        if self['basepath']:
            loc = "%(basepath)s/%(relativepath)s" % self
        else:
            repourl = repo.urls[0]
            if repourl[-1] != '/':
                repourl = repourl + '/'
            loc = urlparse.urljoin(repourl, self['relativepath'])
        return loc

    def tree_print_req(self, req, val, level):
        indent = ''
        if level:
            indent = ' |  ' * (level - 1) + ' \_  '
        print "%s%s [%s]" % (indent, str(req), str(val))

    # These are common helpers for the --tree-* options...
    def _tree_print_req(self, req, val, level):
        indent = ''
        if level:
            indent = ' |  ' * (level - 1) + ' \_  '
        self.pkg = req
        self.name = req.name
        print "%s%s [%s]" % (indent, self.fmt_queryformat(), str(val))
    def _tree_pkg2uniq(self, pkg):
        """ Turn a pkg into a "unique" req."""
        if self.yb and self.yb.conf.showdupesfromrepos:
            return str(pkg)
        return "%s.%s" % (pkg.name, getBaseArch(pkg.arch))
    def _tree_pkg2val(self, reqs, pkg):
        reqs = sorted(reqs[self._tree_pkg2uniq(pkg)])
        return str(len(reqs)) + ": " + ", ".join(reqs)
    def _tree_maybe_add_pkg(self, all_reqs, loc_reqs, pkgs, pkg, val):
        req = self._tree_pkg2uniq(pkg)
        if req in loc_reqs:
            loc_reqs[req].add(val)
            return
        if req in all_reqs:
            pkgs[pkg]     = None
            loc_reqs[req] = set([val])
            return
        pkgs[pkg]     = True
        loc_reqs[req] = set([val])
        all_reqs[req] = True
    def _tree_maybe_add_pkgs(self, all_reqs, tups, tup2pkgs):
        rpkgs    = {}
        loc_reqs = {}
        for rptup in tups:
            (rpn, rpf, (rp,rpv,rpr)) = rptup
            if rpn.startswith('rpmlib'):
                continue

            rname = yum.misc.prco_tuple_to_string(rptup)
            for npkg in sorted(tup2pkgs(rptup, rname), reverse=True):
                self._tree_maybe_add_pkg(all_reqs, loc_reqs, rpkgs, npkg, rname)
        return rpkgs, loc_reqs
    def _fmt_tree_prov(self, prco_type, **kw):
        pkg      = kw.get('pkg', self.pkg)
        req      = kw.get('req', 'cmd line')
        level    = kw.get('level', 0)
        all_reqs = kw.get('all_reqs', {})
        
        if kw['output'].lower() == 'dot-tree':
            if 'dot' not in kw.keys() or kw['dot'] is None:
                kw['dot'] = DotPlot()
        elif 'dot' not in kw.keys() or kw['dot'] is None:
            kw['dot'] = None
        dot      = kw['dot']
        
        if str(kw['tree_level']).lower() != 'all':
            try: 
                kw['tree_level'] = int(kw['tree_level'])
            except ValueError, er:
                kw['tree_level'] = 'all'
        
        if not 'output' in kw.keys():
            kw['output'] = 'ascii-tree'

        #  Level means something a bit different for dot, because we have to
        # lookup it's packages ... but we don't for ascii. *sigh*
        if dot is None:
            self._tree_print_req(pkg, req, level)
            lim = level + 1
            if str(kw['tree_level']).lower() != 'all' and \
                int(kw['tree_level']) < int(lim):
                return

        __req2pkgs = {}
        def req2pkgs(ignore, req):
            req = str(req)
            if req in __req2pkgs:
                return __req2pkgs[req]

            if self.yb is None:
                return []
            yb = self.yb

            providers = []
            try:
                # XXX rhbz#246519, for some reason returnPackagesByDep() fails
                # to find some root level directories while 
                # searchPackageProvides() does... use that for now
                matches = self.yb.searchPackageProvides([req])
                if self.yb.options.pkgnarrow == 'repos':
                    # Sucks that we do the work, and throw it away...
                    for provider in matches:
                        if provider.repoid != 'installed':
                            providers.append(provider)
                elif self.yb.options.pkgnarrow == 'installed':
                    # Sucks that we do the work, and throw it away...
                    for provider in matches:
                        if provider.repoid == 'installed':
                            providers.append(provider)
                else:
                    # Assume "all"
                    providers = matches.keys()


            except yum.Errors.RepoError:
                raise
            except yum.Errors.YumBaseError, err:
                print >>sys.stderr, "No package provides %s" % req
                return []

            __req2pkgs[req] = providers
            return providers 
        
        tups = getattr(pkg, prco_type)
        rpkgs, loc_reqs = self._tree_maybe_add_pkgs(all_reqs, tups, req2pkgs)
        if dot is not None:
            dot.addPackage(pkg, rpkgs)
            lim = level + 2
        nlevel = level + 1
        if str(kw['tree_level']).lower() != 'all' and \
            int(kw['tree_level']) < int(lim):
            return
        for rpkg in sorted(rpkgs):
            if pkg.verEQ(rpkg):
                continue
            if rpkgs[rpkg] is None:
                req = self._tree_pkg2val(loc_reqs, rpkg)
                if dot is None:
                    self._tree_print_req(rpkg, req, nlevel)
                continue
            self._fmt_tree_prov(prco_type,
                                pkg = rpkg, level = nlevel, all_reqs = all_reqs,
                                req = self._tree_pkg2val(loc_reqs, rpkg),
                                tree_level = kw['tree_level'],
                                output = kw['output'],
                                dot = dot)
        
    def fmt_tree_requires(self, **kw):
        return self._fmt_tree_prov('requires', **kw)
    def fmt_tree_conflicts(self, **kw):
        return self._fmt_tree_prov('conflicts', **kw)

    def fmt_tree_obsoletes(self, **kw):
        pkg      = kw.get('pkg', self.pkg)
        req      = kw.get('req', 'cmd line')
        level    = kw.get('level', 0)
        all_reqs = kw.get('all_reqs', {})
        
        if kw['output'].lower() == 'dot-tree':
            if 'dot' not in kw.keys() or kw['dot'] is None:
                kw['dot'] = DotPlot()
        elif 'dot' not in kw.keys() or kw['dot'] is None:
            kw['dot'] = None
        dot      = kw['dot']
        
        if str(kw['tree_level']).lower() != 'all':
            try: 
                kw['tree_level'] = int(kw['tree_level'])
            except ValueError, er:
                kw['tree_level'] = 'all'
        
        if not 'output' in kw.keys():
            kw['output'] = 'ascii-tree'
        
        #  Level means something a bit different for dot, because we have to
        # lookup it's packages ... but we don't for ascii. *sigh*
        if dot is None:
            self._tree_print_req(pkg, req, level)
            lim = level + 1
            if str(kw['tree_level']).lower() != 'all' and \
                int(kw['tree_level']) < int(lim):
                return

        def obs2pkgs():
            if self.yb is None:
                return []
            yb = self.yb

            obss = []
            if self.yb.options.pkgnarrow in ('all', 'repos'):
                for obs_n in pkg.obsoletes_names:
                    for opkg in yb.pkgSack.searchNevra(name=obs_n):
                        if opkg.obsoletedBy([pkg]):
                            obss.append(opkg)
            if self.yb.options.pkgnarrow in ('all', 'installed'):
                skip = set([opkg.pkgtup for opkg in obss])
                for obs_n in pkg.obsoletes_names:
                    for opkg in yb.rpmdb.searchNevra(name=obs_n):
                        if opkg.pkgtup in skip:
                            continue
                        if opkg.obsoletedBy([pkg]):
                            obss.append(opkg)

            return obss

        dot = kw['dot']
        
        if level:
            reason = ''
        else:
            reason = 'cmd line'
        rpkgs = obs2pkgs()
        if dot is not None:
            dot.addPackage(pkg, rpkgs)
            lim = level + 2
        all_reqs[pkg] = None
        nlevel = level + 1
        if str(kw['tree_level']).lower() != 'all' and \
            int(kw['tree_level']) < int(lim):
            return
        for rpkg in sorted(rpkgs):
            if pkg.verEQ(rpkg):
                continue
            if rpkg in all_reqs and dot is None:
                self._tree_print_req(rpkg, '', nlevel)
                continue
            self.fmt_tree_obsoletes(pkg=rpkg, level=nlevel, all_reqs=all_reqs,
                                    req = pkg.name,
                                    tree_level = kw['tree_level'],
                                    output = kw['output'],
                                    dot = dot)

    def fmt_tree_what_requires(self, **kw):
        pkg      = kw.get('pkg', self.pkg)
        req      = kw.get('req', 'cmd line')
        level    = kw.get('level', 0)
        all_reqs = kw.get('all_reqs', {})
        
        if kw['output'].lower() == 'dot-tree':
            if 'dot' not in kw.keys() or kw['dot'] is None:
                kw['dot'] = DotPlot()
        dot      = kw['dot']

        if str(kw['tree_level']).lower() != 'all':
            try: 
                kw['tree_level'] = int(kw['tree_level'])
            except ValueError, er:
                kw['tree_level'] = 'all'
        
        if not 'output' in kw.keys():
            kw['output'] = 'ascii-tree'

        #  Level means something a bit different for dot, because we have to
        # lookup it's packages ... but we don't for ascii. *sigh*
        if dot is None:
            self._tree_print_req(pkg, req, level)
            lim = level + 1
            if str(kw['tree_level']).lower() != 'all' and \
                int(kw['tree_level']) < int(lim):
                return

        __prov2pkgs = {}
        def prov2pkgs(prov, ignore):
            if str(prov) in __prov2pkgs:
                return __prov2pkgs[str(prov)]

            if self.yb is None:
                return []
            yb = self.yb

            arequirers = []
            irequirers = []
            try:
                skip = {}
                if yb.options.pkgnarrow in ('all', 'installed'):
                    irequirers = yb.rpmdb.getRequires(prov[0],prov[1],prov[2])
                    irequirers = irequirers.keys()
                if yb.options.pkgnarrow in ('all', 'repos'):
                    areqs = yb.pkgSack.getRequires(prov[0],prov[1],prov[2])
                    if not irequirers:
                        arequirers = areqs.keys()
                    else:
                        skip = set([pkg.pkgtup for pkg in irequirers])
                        arequirers = [pkg for pkg in areqs
                                      if pkg.pkgtup not in skip]

            except yum.Errors.RepoError:
                raise
            except yum.Errors.YumBaseError, err:
                print >>sys.stderr, "No package provides %s" % str(prov)
                return []

            __prov2pkgs[str(prov)] = arequirers + irequirers
            return arequirers + irequirers

        filetupes = []
        for n in pkg.filelist + pkg.dirlist + pkg.ghostlist:
            filetupes.append((n, None, (None, None, None)))
        
        tups = pkg.provides + filetupes
        rpkgs, loc_reqs = self._tree_maybe_add_pkgs(all_reqs, tups, prov2pkgs)
        
        if dot is not None:
            dot.addPackage(pkg, rpkgs)
            lim = level + 2
        nlevel = level + 1
        
        if str(kw['tree_level']).lower() != 'all' and \
            int(kw['tree_level']) < int(lim):
            return
        for rpkg in sorted(rpkgs):
            if pkg.verEQ(rpkg): # Remove deps. on self.
                continue
            if rpkgs[rpkg] is None:
                req = self._tree_pkg2val(loc_reqs, rpkg)
                if dot is None:
                    self._tree_print_req(rpkg, req, nlevel)
                continue
            self.fmt_tree_what_requires(pkg=rpkg,
                                        level=nlevel, all_reqs=all_reqs,
                                        req=self._tree_pkg2val(loc_reqs, rpkg),
                                        tree_level = kw['tree_level'],
                                        output = kw['output'],
                                        dot = dot)


class repoPkgQuery(pkgQuery):
    """
    I wrap a query of a non-installed package available in the repository.
    """
    def __init__(self, pkg, qf, yb=None):
        pkgQuery.__init__(self, pkg, qf, yb)
        self.classname = 'repo pkg'

    def prco(self, what, **kw):
        rpdict = {}
        for rptup in self.pkg.returnPrco(what):
            (rpn, rpf, (rp,rpv,rpr)) = rptup
            if rpn.startswith('rpmlib'):
                continue
            rpdict[misc.prco_tuple_to_string(rptup)] = None
    
        rplist = rpdict.keys()
        rplist.sort()
        return rplist

    def files(self, **kw):
        fdict = {}
        for ftype in self.pkg.returnFileTypes():
            for fn in self.pkg.returnFileEntries(ftype):
                # workaround for yum returning double leading slashes on some 
                # directories - posix allows that but it looks a bit odd
                fdict[os.path.normpath('//%s' % fn)] = None
        files = fdict.keys()
        files.sort()
        return files

    def fmt_changelog(self, **kw):
        changelog = []
        for date, author, message in self.pkg.returnChangelog():
            changelog.append("* %s %s\n%s\n" % (sec2day(date),
                                                to_unicode(author),
                                                to_unicode(message)))
        return "\n".join(changelog)


class instPkgQuery(pkgQuery):
    """
    I wrap a query of an installed package 
    of type L{yum.packages.YumInstalledPackage}
    """
    # hmm, thought there'd be more things in need of mapping to rpm names :)
    tagmap = { 'installedsize': 'size',
             }

    def __init__(self, pkg, qf, yb=None):
        pkgQuery.__init__(self, pkg, qf, yb)
        self.classname = 'installed pkg'

    def __getitem__(self, item):
        if item in self.tagmap:
            return self.pkg.tagByName(self.tagmap[item])
        elif item.startswith('yumdb_info.'):
            yumdb_item = item.split('.')[1]
            try:
                return getattr(self.pkg.yumdb_info, yumdb_item)
            except AttributeError,e:
                raise queryError("Invalid yumdb querytag '%s' for %s: %s" % (yumdb_item, self.classname, self.pkg))
        else:
            return pkgQuery.__getitem__(self, item)
            
    def prco(self, what, **kw):
        prcodict = {}
        # rpm names are without the trailing s :)
        what = what[:-1]

        names = self.pkg.tagByName('%sname' % what)
        flags = self.pkg.tagByName('%sflags' % what)
        ver = self.pkg.tagByName('%sversion' % what)
        if names is not None:
            for (n, f, v) in zip(names, flags, ver):
                req = formatRequire(n, v, f)
                # filter out rpmlib deps
                if n.startswith('rpmlib'):
                    continue
                prcodict[req] = None

        prcolist = prcodict.keys()
        prcolist.sort()
        return prcolist
    
    def files(self, **kw):
        return self.pkg.tagByName('filenames')

    def fmt_changelog(self, **kw):
        changelog = []
        times = self.pkg.tagByName('changelogtime')
        if times is not None:
            names = self.pkg.tagByName('changelogname')
            texts = self.pkg.tagByName('changelogtext')
            for date, author, message in zip(times, names, texts):
                author = to_unicode(author)
                message = to_unicode(message)
                changelog.append("* %s %s\n%s\n" % (sec2day(date), author, message))
        return "\n".join(changelog)


class groupQuery:
    def __init__(self, group, grouppkgs="required"):
        self.grouppkgs = grouppkgs
        self.id = group.groupid
        self.name = group.name
        self.group = group

    def doQuery(self, method, *args, **kw):
        if hasattr(self, "fmt_%s" % method):
            return "\n".join(getattr(self, "fmt_%s" % method)(*args, **kw))
        else:
            raise queryError("Invalid group query: %s" % method)

    # XXX temporary hack to make --group -a query work
    def fmt_queryformat(self, **kw):
        return self.fmt_nevra()

    def fmt_nevra(self, **kw):
        return ["%s - %s" % (self.id, self.name)]

    def fmt_list(self, **kw):
        pkgs = []
        for t in self.grouppkgs.split(','):
            if t == "mandatory":
                pkgs.extend(self.group.mandatory_packages)
            elif t == "default":
                pkgs.extend(self.group.default_packages)
            elif t == "optional":
                pkgs.extend(self.group.optional_packages)
            elif t == "all":
                pkgs.extend(self.group.packages)
            else:
                raise queryError("Unknown group package type %s" % t)
            
        return pkgs
        
    def fmt_requires(self, **kw):
        return self.group.mandatory_packages

    def fmt_info(self, **kw):
        return ["%s:\n\n%s\n" % (self.name, self.group.description)]


class YumBaseQuery(yum.YumBase):
    def __init__(self, pkgops = [], sackops = [], options = None):
        """
        @type  pkgops:  list of str
        @type  sackops: list of str
        @type  options: L{optparse.Values}
        """
        yum.YumBase.__init__(self)
        self.logger = logging.getLogger("yum.verbose.repoquery")
        console_stderr = logging.StreamHandler(sys.stderr)
        console_stderr.setFormatter(logging.Formatter("%(message)s"))
        self.logger.propagate = False
        self.logger.addHandler(console_stderr)
        self.options = options
        self.pkgops = pkgops
        self.sackops = sackops
        self._sacks = []
        if self.options.pkgnarrow in ('all', 'extras', 'installed'):
            self._sacks.append('rpmdb')
        if self.options.pkgnarrow not in ('extras', 'installed'):
            self._sacks.append('pkgSack')

    def queryPkgFactory(self, pkgs, plain_pkgs=False):
        """
        For each given package, create a query.

        @type  pkgs: list of L{yum.package.YumAvailablePackage}

        @rtype: list of L{queryPkg}
        """
        qf = self.options.queryformat or std_qf["nevra"]
        qpkgs = []
        for pkg in pkgs:
            if isinstance(pkg, yum.packages.YumInstalledPackage):
                if self.options.pkgnarrow not in ('all', 'installed', 'extras'):
                    continue

            if plain_pkgs:
                qpkgs.append(pkg)
                continue

            if isinstance(pkg, yum.packages.YumInstalledPackage):
                qpkg = instPkgQuery(pkg, qf, self)
            else:
                qpkg = repoPkgQuery(pkg, qf, self)
            qpkgs.append(qpkg)
        return qpkgs

    def returnByName(self, name):
        """
        Given a name, return a list of package queries matching the name.

        @type  name: str

        @rtype: list of L{queryPkg}
        """
        pkgs = []
        try:
            pkgs = self.returnPkgList(patterns=[name])
        except yum.Errors.PackageSackError, err:
            self.logger.error(err)
        return self.queryPkgFactory(pkgs)

    def returnPkgList(self, **kwargs):
        pkgs = []
        if 'patterns' in kwargs:
            if len(kwargs['patterns']) == 1 and kwargs['patterns'][0] == '*':
                kwargs['patterns'] = None

        if self.options.pkgnarrow == "repos":
            # self.pkgSack is a yum.packageSack.MetaSack
            if self.conf.showdupesfromrepos:
                pkgs = self.pkgSack.returnPackages(**kwargs)
            else:
                try:
                    pkgs = self.pkgSack.returnNewestByNameArch(**kwargs)
                except yum.Errors.PackageSackError:
                    pkgs = []
                except yum.Errors.RepoError, e:
                    raise queryError(e)
        else:
            what = self.options.pkgnarrow
            ygh = self.doPackageLists(what, **kwargs)

            if what == "all":
                pkgs = ygh.available + ygh.installed
            elif hasattr(ygh, what):
                pkgs = getattr(ygh, what)
            else:
                self.logger.error("Unknown pkgnarrow method: %s" % what)

        return pkgs

    def returnPackagesByDepStr(self, depstring):
        provider = []
        try:
            # XXX rhbz#246519, for some reason returnPackagesByDep() fails
            # to find some root level directories while 
            # searchPackageProvides() does... use that for now
            matches = yum.YumBase.searchPackageProvides(self, [str(depstring)])
            provider = matches.keys()
            # provider.extend(yum.YumBase.returnPackagesByDep(self, depstring))
        except yum.Errors.RepoError:
            raise
        except yum.Errors.YumBaseError, err:
            self.logger.error("No package provides %s" % depstring)
        return self.queryPkgFactory(provider)

    def returnGroups(self):
        grps = []
        for group in self.comps.get_groups():
            grp = groupQuery(group, grouppkgs = self.options.grouppkgs)
            grps.append(grp)
        return grps

    def matchGroups(self, items):
        grps = []
        for grp in self.returnGroups():
            for expr in items:
                if grp.name == expr or fnmatch.fnmatch("%s" % grp.name, expr):
                    grps.append(grp)
                elif grp.id == expr or fnmatch.fnmatch("%s" % grp.id, expr):
                    grps.append(grp)
        return grps
                    
    def matchPkgs(self, items, plain_pkgs=False):
        pkgs = self.returnPkgList(patterns=items)
        return self.queryPkgFactory(pkgs, plain_pkgs)

    def matchSrcPkgs(self, items):
        srpms = []
        for name in items:
            for pkg in self.returnByName(name):
                if pkg.isSource(): 
                    continue
                src = pkg["sourcerpm"][:-4]
                srpms.extend(self.returnByName(src))
        return srpms
    
    def yum_search(self, terms):
        """use yum's search generator to search arbitrary fields"""
        
        pkgs = []
        fields = self.options.searchfields
        if not fields:
            fields = ['name', 'summary']
        try:
            matching = self.searchGenerator(fields, terms, searchtags=False)
        
            for (po, matched_value) in matching:
                if isinstance(po, yum.packages.YumInstalledPackage):
                    if self.options.pkgnarrow not in ('all', 'installed', 'extras'):
                        continue
                if isinstance(po, yum.sqlitesack.YumAvailablePackageSqlite):
                    if self.options.pkgnarrow not in ('all', 'available', 'repos'):
                        continue
                pkgs.append(po)

        except (yum.Errors.RepoError,ValueError), e:
            raise queryError("Could not run search: %s" % e)
        
        return self.queryPkgFactory(pkgs)
        
    def _at_grps(self, items):
        #  We want to move from @foo => lists of package names here, to make
        # a bunch of things easier. Ie. pkgs. ops. on lists of packages from
        # groups.
        nitems = []
        for item in items:
            if item and item[0] == '@':
                for grp in self.matchGroups([item[1:]]):
                    nitems.extend(grp.group.packages)
                # Give warning when no matches?
                continue
            nitems.append(item)
        return nitems

    def runQuery(self, items):
        plain_pkgs = False
        if self.options.group:
            pkgs = self.matchGroups(items)
        elif self.options.groupmember:
            pkglist = self.matchPkgs(items, plain_pkgs=True)
            for pkg in sorted(pkglist):
                print to_unicode(pkg)
                for group in sorted(self.find_groupmember(pkg.name)):
                    print to_unicode('  @%s' % group)
            pkgs = []
        elif self.options.search:
            plain_pkgs = False
            pkgs = []
            try:
                pkgs = self.yum_search(items)
            except queryError, e:
                self.logger.error(e)
        else:
            items = self._at_grps(items)
            if self.options.srpm:
                pkgs = self.matchSrcPkgs(items)

            else:
                pkgs = []
                if not self.sackops:
                    plain_pkgs = True
                    try:
                        pkgs = self.matchPkgs(items, plain_pkgs=plain_pkgs)
                    except yum.Errors.RepoError, e:
                        raise queryError("Could not match packages: %s" % to_unicode(e))
                for prco in items:
                    for oper in self.sackops:
                        try:
                            for p in self.doQuery(oper, prco): 
                                if p:
                                    pkgs.append(p)
                        except queryError, e:
                            self.logger.error(e)

        if plain_pkgs:
            iq = None
            rq = None
            qf = self.options.queryformat or std_qf["nevra"]
            pkgs = sorted(pkgs)
        for pkg in pkgs:
            if plain_pkgs:
                if isinstance(pkg, yum.packages.YumInstalledPackage):
                    if iq is None:
                        iq = instPkgQuery(pkg, qf, self)
                    iq.pkg = pkg
                    iq.name = pkg.name
                    pkg = iq
                else:
                    if rq is None:
                        rq = repoPkgQuery(pkg, qf, self)
                    rq.pkg = pkg
                    rq.name = pkg.name
                    pkg = rq
            if not self.pkgops:
                print to_unicode(pkg)
            for oper in self.pkgops:
                try:
                    out = pkg.doQuery(oper, 
                        tree_level = self.options.tree_level,
                        output = self.options.output,
                        dot = self.options.dot)
                    if out:
                        print to_unicode(out)
                except queryError, e:
                    self.logger.error(e)

    def doQuery(self, method, *args, **kw):
        return getattr(self, "fmt_%s" % method)(*args, **kw)

    def find_groupmember(self, name, **kw):
        grps = []
        for group in self.comps.get_groups():
            if name in group.packages:
                grps.append(group.groupid)
        return grps

    def fmt_whatprovides(self, name, **kw):
        return self.returnPackagesByDepStr(name)

    def fmt_whatrequires(self, name, **kw):
        pkgs = {}
        done = set() # keep track of names we have already visited

        def require_recursive(name):
            if name in done:
                return
            done.add(name)

            provs = [name]
                    
            if self.options.alldeps:
                for pkg in self.returnByName(name):
                    provs.extend(pkg.prco("provides"))
                    provs.extend(pkg.files())

            for prov in provs:
                for sackstr in self._sacks:
                    sack = getattr(self, sackstr)
                    for pkg in sack.searchRequires(prov):
                        pkgs[pkg.pkgtup] = pkg
                        if self.options.recursive:
                            require_recursive(pkg.name)
                

        
        if self.options.output not in ('ascii-tree','dot-tree'):
            require_recursive(name)
        return self.queryPkgFactory(sorted(pkgs.values()))

    def fmt_whatobsoletes(self, name, **kw):
        pkgs = []
        for sackstr in self._sacks:
            sack = getattr(self, sackstr)
            for pkg in sack.searchObsoletes(name):
                pkgs.append(pkg)
        return self.queryPkgFactory(pkgs)
            
    def fmt_whatconflicts(self, name, **kw):
        pkgs = []
        for sackstr in self._sacks:
            sack = getattr(self, sackstr)
            for pkg in sack.searchConflicts(name):
                pkgs.append(pkg)
        return self.queryPkgFactory(pkgs)

    def fmt_requires(self, name, **kw):
        pkgs = {}
        done = set()
        def require_recursive(pkg):
            if pkg.name in done:
                return
            done.add(pkg.name)

            for req in pkg.prco("requires"):
                for res in self.fmt_whatprovides(req):
                    pkgs[(res.name, res.pkg.arch)] = res
                    if self.options.recursive:
                        require_recursive(res)

        for pkg in self.returnByName(name):
            require_recursive(pkg)

        return pkgs.values()

    def fmt_location(self, name):
        loc = []
        for pkg in self.returnByName(name):
            repo = self.repos.getRepo(pkg['repoid'])
            if pkg['basepath']:
                loc.append("%s/%s" % (pkg['basepath'], pkg['relativepath']))
            else:
                loc.append("%s/%s" % (repo.urls[0], pkg['relativepath']))
        return loc

    def _parseSetOpts(self, setopts):
        """parse the setopts list handed to us and saves the results as
           repo_setopts and main_setopts in the yumbase object"""

        repoopts = {}
        mainopts = yum.misc.GenericHolder()
        mainopts.items = []

        bad_setopt_tm = []
        bad_setopt_ne = []

        for item in setopts:
            vals = item.split('=')
            if len(vals) > 2:
                bad_setopt_tm.append(item)
                continue
            if len(vals) < 2:
                bad_setopt_ne.append(item)
                continue
            k,v = vals
            period = k.find('.')
            if period != -1:
                repo = k[:period]
                k = k[period+1:]
                if repo not in repoopts:
                    repoopts[repo] = yum.misc.GenericHolder()
                    repoopts[repo].items = []
                setattr(repoopts[repo], k, v)
                repoopts[repo].items.append(k)
            else:
                setattr(mainopts, k, v)
                mainopts.items.append(k)

        self.main_setopts = mainopts
        self.repo_setopts = repoopts

        return bad_setopt_tm, bad_setopt_ne


def main(args):

    needother = 0
    needgroup = 0
    needsource = 0

    signal.signal(signal.SIGPIPE, signal.SIG_DFL)
    signal.signal(signal.SIGINT, signal.SIG_DFL)

    parser = OptionParser(version = "Repoquery version %s" % version)
    # query options
    parser.add_option("-l", "--list", action="store_true",
                      help="list files in this package/group")
    parser.add_option("-i", "--info", action="store_true",
                      help="list descriptive info from this package/group")
    parser.add_option("-f", "--file", action="store_true",
                      help="query which package provides this file")
    parser.add_option("--qf", "--queryformat", dest="queryformat",
                      help="specify a custom output format for queries")
    parser.add_option("--groupmember", action="store_true",
                      help="list which group(s) this package belongs to")
    # dummy for rpmq compatibility
    parser.add_option("-q", "--query", action="store_true",
                      help="no-op for rpmquery compatibility")
    parser.add_option("-a", "--all", action="store_true",
                      help="query all packages/groups")
    parser.add_option("-R", "--requires", action="store_true",
                      help="list package dependencies")
    parser.add_option("--provides", action="store_true",
                      help="list capabilities this package provides")
    parser.add_option("--obsoletes", action="store_true",
                      help="list other packages obsoleted by this package")
    parser.add_option("--conflicts", action="store_true",
                      help="list capabilities this package conflicts with")
    parser.add_option("--changelog", action="store_true",
                      help="show changelog for this package")
    parser.add_option("--location", action="store_true",
                      help="show download URL for this package")
    parser.add_option("--nevra", action="store_true",
                      help="show name-epoch:version-release.architecture info of package")
    parser.add_option("--envra", action="store_true",
                      help="show epoch:name-version-release.architecture info of package")
    parser.add_option("--nvr", action="store_true",
                      help="show name, version, release info of package")
    parser.add_option("-s", "--source", action="store_true",
                      help="show package source RPM name")
    parser.add_option("--srpm", action="store_true",
                      help="operate on corresponding source RPM")
    parser.add_option("--resolve", action="store_true",
                      help="resolve capabilities to originating package(s)")
    parser.add_option("--alldeps", action="store_true", default=True,
                      help="check non-explicit dependencies (files and Provides:) as well, defaults to on")
    parser.add_option("--exactdeps", dest="alldeps", action="store_false",
                      help="check dependencies exactly as given, opposite of --alldeps")
    parser.add_option("--recursive", action="store_true",
                      help="recursively query for packages (for whatrequires)")
    parser.add_option("--whatprovides", action="store_true",
                      help="query what package(s) provide a capability")
    parser.add_option("--whatrequires", action="store_true",
                      help="query what package(s) require a capability")
    parser.add_option("--whatobsoletes", action="store_true",
                      help="query what package(s) obsolete a capability")
    parser.add_option("--whatconflicts", action="store_true",
                      help="query what package(s) conflicts with a capability")
    # group stuff
    parser.add_option("-g", "--group", default=0, action="store_true", 
                      help="query groups instead of packages")
    parser.add_option("--grouppkgs", default="default",
                      help="filter which packages (all,optional etc) are shown from groups")
    # other opts
    parser.add_option("--archlist",
                      help="only query packages of certain architecture(s)")
    parser.add_option("--releasever", default=None,
                      help="set value of $releasever in yum config and repo files")
    parser.add_option("--pkgnarrow", default="repos",
                      help="limit query to installed / available / recent / updates / extras / all (available + installed) / repository (default) packages")
    parser.add_option("--installed", action="store_true", default=False,
                      help="limit query to installed pkgs only")
    parser.add_option("--show-duplicates", action="store_true",
                      dest="show_dupes",
                      help="show all versions of packages")
    parser.add_option("--show-dupes", action="store_true",
                      help=SUPPRESS_HELP)
    parser.add_option("--repoid", action="append",
                      help="specify repoids to query, can be specified multiple times (default is all enabled)")
    parser.add_option("--enablerepo", action="append", dest="enablerepos",
                      help="specify additional repoids to query, can be specified multiple times")
    parser.add_option("--disablerepo", action="append", dest="disablerepos",
                      help="specify repoids to disable, can be specified multiple times")                      
    parser.add_option("--repofrompath", action="append",
                      help="specify repoid & paths of additional repositories - unique repoid and complete path required, can be specified multiple times. Example. --repofrompath=myrepo,/path/to/repo")
    parser.add_option("--plugins", action="store_true", default=False,
                      help="enable yum plugin support")
    parser.add_option("--quiet", action="store_true", 
                      help="quiet output, only error output to stderr (default enabled)", default=True)
    parser.add_option("--verbose", action="store_false",
                      help="verbose output (opposite of quiet)", dest="quiet")
    parser.add_option("-C", "--cache", action="store_true",
                      help="run from cache only")
    parser.add_option("--tempcache", action="store_true",
                      help="use private cache (default when used as non-root)")
    parser.add_option("--querytags", action="store_true",
                      help="list available tags in queryformat queries")
    parser.add_option("-c", "--config", dest="conffile",
                      help="config file location")
    parser.add_option("--tree-requires", action="store_true",
                      dest="tree_requires",
                      help=SUPPRESS_HELP)
    parser.add_option("--tree-conflicts", action="store_true",
                      dest="tree_conflicts",
                      help=SUPPRESS_HELP)
    parser.add_option("--tree-obsoletes", action="store_true",
                      dest="tree_obsoletes",
                      help=SUPPRESS_HELP)
    parser.add_option("--tree-whatrequires", action="store_true",
                      dest="tree_what_requires",
                      help=SUPPRESS_HELP)
    parser.add_option("--level", dest="tree_level", default="all",
                      help="levels to display (can be any number or 'all', default to 'all')")
    parser.add_option("--output", dest="output", default="text",
                      help="output format to use (can be text|ascii-tree|dot-tree, default to 'text')")
    parser.add_option("--search", action="store_true",
                      dest="search", default=False,
                      help="Use yum's search to return pkgs")
    parser.add_option("--search-fields", action="append", dest="searchfields",
                      default=[],
                      help="search fields to search using --search")
    parser.add_option("--installroot", default="/", help="set install root")
    parser.add_option("", "--setopt", dest="setopts", default=[],
                     action="append",
                     help="set arbitrary config and repo options")
                      

    (opts, regexs) = parser.parse_args()

    if opts.querytags:
        querytags.sort()
        for tag in querytags:
            print tag
        sys.exit(0)

    if len(regexs) < 1:
        if opts.all:
            regexs = ['*']
        else:
            print parser.format_help()
            sys.exit(1)

    pkgops = []
    sackops = []
    archlist = None
    if opts.info:
        pkgops.append("info")
    if opts.requires:
        if opts.resolve:
            sackops.append("requires")
        else:
            pkgops.append("requires")
    if opts.provides:
        pkgops.append("provides")
    if opts.obsoletes:
        pkgops.append("obsoletes")
    if opts.conflicts:
        pkgops.append("conflicts")
    if opts.changelog:
        needother = 1
        pkgops.append("changelog")
    if opts.list:
        pkgops.append("list")
    if opts.envra:
        pkgops.append("envra")
    if opts.nvr:
        pkgops.append("nvr")
    if opts.source:
        pkgops.append("source")
    if opts.tree_requires:
        opts.output = "ascii-tree"
        pkgops.append("tree_requires")
    if opts.tree_conflicts:
        opts.output = "ascii-tree"
        pkgops.append("tree_conflicts")
    if opts.tree_obsoletes:
        opts.output = "ascii-tree"
        pkgops.append("tree_obsoletes")
    if opts.tree_what_requires:
        opts.output = "ascii-tree"
        pkgops.append("tree_what_requires")
    if opts.output == "dot-tree":
        opts.dot = DotPlot()
    else:
        opts.dot = None
    if opts.srpm:
        needsource = 1
    if opts.whatrequires:
        if opts.output != 'text':
            pkgops.append("tree_what_requires")
        else:
            sackops.append("whatrequires")
    if opts.whatprovides:
        sackops.append("whatprovides")
    if opts.whatobsoletes:
        sackops.append("whatobsoletes")
    if opts.whatconflicts:
        sackops.append("whatconflicts")
    if opts.file:
        sackops.append("whatprovides")
    if opts.location:
        pkgops.append("location")
    if opts.groupmember:
        needgroup = 1
    if opts.group:
        needgroup = 1
    if opts.installed:
        opts.pkgnarrow = 'installed'

    if opts.nevra:
        pkgops.append("nevra")
    elif len(pkgops) == 0 and len(sackops) == 0:
        pkgops.append("queryformat")

    for exp in regexs:
        if exp.endswith('.src'):
            needsource = 1
            break

    if opts.archlist:
        archlist = opts.archlist.split(',')
    elif needsource:
        archlist = getArchList()
        archlist.append('src')

    if opts.searchfields:
        opts.search = True
        
    repoq = YumBaseQuery(pkgops, sackops, opts)

    # go through all the setopts and set the global ones
    bad_setopt_tm, bad_setopt_ne = repoq._parseSetOpts(opts.setopts)

    if repoq.main_setopts:
        for opt in repoq.main_setopts.items:
            setattr(opts, opt, getattr(repoq.main_setopts, opt))

    # silence initialisation junk from modules etc unless verbose mode
    initnoise = (not opts.quiet) * 2
    repoq.preconf.releasever = opts.releasever
    if archlist and not archlist[0] == 'src':
        repoq.preconf.arch = archlist[0]
    if opts.conffile is not None:
        repoq.preconf.fn = opts.conffile
    repoq.preconf.debuglevel = initnoise
    repoq.preconf.init_plugins = opts.plugins
    repoq.preconf.root = opts.installroot
    try:
        repoq.conf
    except yum.Errors.YumBaseError, e:
        repoq.logger.error(e)
        sys.exit(1)

    for item in  bad_setopt_tm:
        msg = "Setopt argument has multiple values: %s"
        repoq.logger.warning(msg % item)
    for item in  bad_setopt_ne:
        msg = "Setopt argument has no value: %s"
        repoq.logger.warning(msg % item)
    # now set  all the non-first-start opts from main from our setopts
    if repoq.main_setopts:
        for opt in repoq.main_setopts.items:
            if not hasattr(repoq.conf, opt):
                msg ="Main config did not have a %s attr. before setopt"
                repoq.logger.warning(msg % opt)
            setattr(repoq.conf, opt, getattr(repoq.main_setopts, opt))

    if opts.repofrompath:
        # setup the fake repos
        for repo in opts.repofrompath:
            tmp = tuple(repo.split(','))
            if len(tmp) != 2:
                repoq.logger.error("Error: Bad repofrompath argument: %s" %repo)
                continue
            repoid,repopath = tmp
            if repopath[0] == '/':
                baseurl = 'file://' + repopath
            else:
                baseurl = repopath
                
            try:
                repoq.add_enable_repo(repoid, baseurls=[baseurl],
                                      basecachedir=repoq.conf.cachedir,
                                      timestamp_check=False)
            except yum.Errors.DuplicateRepoError, e:
                repoq.logger.error(e)
                sys.exit(1)
            if not opts.quiet:
                repoq.logger.info( "Added %s repo from %s" % (repoid,repopath))

        
    # Show what is going on, if --quiet is not set.
    if not opts.quiet and sys.stdout.isatty():
        yumout = output.YumOutput()
        freport = ( yumout.failureReport, (), {} )
        if hasattr(repoq, 'prerepoconf'):
            repoq.prerepoconf.progressbar = TextMeter(fo=sys.stdout)
            repoq.prerepoconf.callback = output.CacheProgressCallback()
            repoq.prerepoconf.failure_callback = freport
        else:
            repoq.repos.setProgressBar(TextMeter(fo=sys.stdout))
            repoq.repos.callback = output.CacheProgressCallback()
            repoq.repos.setFailureCallback(freport)
    
    if not repoq.setCacheDir(opts.tempcache):
        repoq.logger.error("Error: Could not make cachedir, exiting")
        sys.exit(50)

    if opts.cache:
        repoq.conf.cache = True
        if not opts.quiet:
            repoq.logger.info('Running from cache, results might be incomplete.')
        

    if opts.show_dupes:
        repoq.conf.showdupesfromrepos = True
            

    if opts.pkgnarrow == 'installed':
        # Just use a blunt hammer here, to make everyone sane:
        opts.repoid = []
        opts.disablerepos = ['*']
        opts.enablerepos  = []

    if opts.repoid:
        found_repos = set()
        for repo in repoq.repos.findRepos('*'):
            if repo.id not in opts.repoid:
                repo.disable()
            else:
                found_repos.add(repo.id)
                repo.enable()
        for not_found in set(opts.repoid).difference(found_repos):
            repoq.logger.error('Repoid %s was not found.' % not_found)

    if opts.disablerepos:
        for repo_match in opts.disablerepos:
            for repo in repoq.repos.findRepos(repo_match):
                repo.disable()

    if opts.enablerepos:    
        for repo_match in opts.enablerepos:
            for repo in repoq.repos.findRepos(repo_match):
                repo.enable()

    while True:
        try: repoq.doLock(); break
        except yum.Errors.LockError, e: pass
        repoq.logger.error(e)
        if repoq.conf.exit_on_lock:
            sys.exit(50)
        time.sleep(2)

    try:
        if not hasattr(repoq, 'arch'):
            repoq.doSackSetup(archlist=archlist)
        elif archlist is not None:
            repoq.arch.archlist = archlist

        #  Don't do needfiles, because yum will do it automatically and it's
        # not trivial to get it "right" so we don't download them when not
        # needed.
        if needother:
            repoq.repos.populateSack(mdtype='otherdata')
        if needgroup:
            repoq.doGroupSetup()
    except (yum.Errors.RepoError, yum.Errors.GroupsError), e:
        repoq.logger.error(e)
        sys.exit(1)

    try:
        repoq.runQuery(regexs)
    except yum.Errors.RepoError, e:
        repoq.logger.error(e)
        sys.exit(1)
    except queryError, e:
        repoq.logger.error(e)
        sys.exit(1)

if __name__ == "__main__":
    misc.setup_locale()
    main(sys.argv)
                
# vim:sw=4:sts=4:expandtab              
N4m3
5!z3
L45t M0d!f!3d
0wn3r / Gr0up
P3Rm!55!0n5
0pt!0n5
..
--
December 21 2023 09:06:33
0 / 0
0555
[
40.516 KB
November 16 2020 22:24:58
0 / 0
0755
a2p
105.32 KB
February 02 2021 16:33:17
0 / 0
0755
ab
51.406 KB
May 30 2023 14:01:58
0 / 0
0755
addr2line
28.422 KB
November 01 2021 15:39:15
0 / 0
0755
alias
0.028 KB
November 24 2021 16:33:26
0 / 0
0755
apropos
45.492 KB
October 30 2018 20:26:36
0 / 0
0755
ar
61.219 KB
November 01 2021 15:39:15
0 / 0
0755
arch
32.305 KB
November 16 2020 22:24:58
0 / 0
0755
as
377.359 KB
November 01 2021 15:39:15
0 / 0
0755
aserver
28.211 KB
August 08 2019 12:00:59
0 / 0
0755
aulast
15.484 KB
August 08 2019 12:06:06
0 / 0
0755
aulastlog
11.352 KB
August 08 2019 12:06:06
0 / 0
0755
ausyscall
11.18 KB
August 08 2019 12:06:06
0 / 0
0755
auvirt
31.93 KB
August 08 2019 12:06:06
0 / 0
0755
awk
418.539 KB
June 28 2017 21:52:48
0 / 0
0755
base64
36.484 KB
November 16 2020 22:24:58
0 / 0
0755
basename
28.352 KB
November 16 2020 22:24:58
0 / 0
0755
bash
941.93 KB
November 24 2021 16:33:27
0 / 0
0755
bashbug
6.801 KB
November 24 2021 16:33:21
0 / 0
0755
bashbug-64
6.801 KB
November 24 2021 16:33:21
0 / 0
0755
bc
81.469 KB
June 09 2014 19:51:54
0 / 0
0755
bg
0.025 KB
November 24 2021 16:33:26
0 / 0
0755
bond2team
22.739 KB
December 09 2018 08:57:18
0 / 0
0755
bootctl
68.992 KB
December 07 2023 14:51:48
0 / 0
0755
busctl
403.203 KB
December 07 2023 14:51:48
0 / 0
0755
c++filt
27.922 KB
November 01 2021 15:39:15
0 / 0
0755
c2ph
35.749 KB
February 02 2021 16:32:27
0 / 0
0755
c89
0.219 KB
September 30 2020 02:17:38
0 / 0
0755
c99
0.21 KB
September 30 2020 02:17:38
0 / 0
0755
ca-legacy
1.6 KB
January 13 2022 17:12:22
0 / 0
0755
cal
36.805 KB
February 02 2021 16:31:53
0 / 0
0755
captoinfo
64.258 KB
September 06 2017 22:08:20
0 / 0
0755
cat
52.813 KB
November 16 2020 22:24:58
0 / 0
0755
catchsegv
3.258 KB
June 04 2024 14:43:46
0 / 0
0755
catman
36.75 KB
October 30 2018 20:26:36
0 / 0
0755
cc
750.594 KB
September 30 2020 02:18:23
0 / 0
0755
cd
0.025 KB
November 24 2021 16:33:26
0 / 0
0755
centrino-decode
6.133 KB
June 04 2024 14:55:42
0 / 0
0755
certutil
179.75 KB
October 19 2023 13:17:47
0 / 0
0755
chacl
15.266 KB
April 01 2020 02:16:13
0 / 0
0755
chage
72.156 KB
August 09 2019 02:51:01
0 / 0
4755
chardetect
0.3 KB
August 09 2019 02:04:55
0 / 0
0755
chattr
11.266 KB
September 30 2020 15:58:29
0 / 0
0755
chcon
61.461 KB
November 16 2020 22:24:58
0 / 0
0755
chfn
23.406 KB
February 02 2021 16:31:53
0 / 0
4711
chgrp
61.32 KB
November 16 2020 22:24:58
0 / 0
0755
chmem
40.43 KB
February 02 2021 16:31:53
0 / 0
0755
chmod
57.211 KB
November 16 2020 22:24:58
0 / 0
0755
chown
61.359 KB
November 16 2020 22:24:58
0 / 0
0755
chrt
32.172 KB
February 02 2021 16:31:53
0 / 0
0755
chsh
23.32 KB
February 02 2021 16:31:53
0 / 0
4711
chvt
11.141 KB
November 24 2021 16:34:03
0 / 0
0755
cksum
32.375 KB
November 16 2020 22:24:58
0 / 0
0755
clear
7.023 KB
September 06 2017 22:08:20
0 / 0
0755
cmp
44.141 KB
March 07 2023 14:48:24
0 / 0
0755
cmsutil
110.594 KB
October 19 2023 13:17:47
0 / 0
0755
col
23.883 KB
February 02 2021 16:31:53
0 / 0
0755
colcrt
11.289 KB
February 02 2021 16:31:53
0 / 0
0755
colrm
23.773 KB
February 02 2021 16:31:53
0 / 0
0755
column
27.992 KB
February 02 2021 16:31:53
0 / 0
0755
comm
36.547 KB
November 16 2020 22:24:58
0 / 0
0755
command
0.03 KB
November 24 2021 16:33:26
0 / 0
0755
coredumpctl
154.516 KB
December 07 2023 14:51:48
0 / 0
0755
cp
151.547 KB
November 16 2020 22:24:58
0 / 0
0755
cpio
142.547 KB
October 13 2020 15:47:58
0 / 0
0755
cpp
754.578 KB
September 30 2020 02:18:22
0 / 0
0755
cpupower
66.336 KB
June 04 2024 14:55:43
0 / 0
0755
crlutil
127 KB
October 19 2023 13:17:47
0 / 0
0755
crontab
56.227 KB
May 16 2023 14:28:22
0 / 0
4755
csplit
48.82 KB
November 16 2020 22:24:58
0 / 0
0755
csslint-0.6
19.555 KB
September 30 2020 16:45:45
0 / 0
0755
curl
152.992 KB
December 13 2023 16:08:32
0 / 0
0755
cut
40.609 KB
November 16 2020 22:24:58
0 / 0
0755
cvtsudoers
241.703 KB
January 25 2023 16:36:33
0 / 0
0755
date
60.742 KB
November 16 2020 22:24:58
0 / 0
0755
db_archive
11.227 KB
August 09 2019 00:18:22
0 / 0
0755
db_checkpoint
11.305 KB
August 09 2019 00:18:22
0 / 0
0755
db_deadlock
11.313 KB
August 09 2019 00:18:22
0 / 0
0755
db_dump
15.328 KB
August 09 2019 00:18:22
0 / 0
0755
db_dump185
64.445 KB
August 09 2019 00:18:22
0 / 0
0755
db_hotbackup
15.344 KB
August 09 2019 00:18:22
0 / 0
0755
db_load
27.508 KB
August 09 2019 00:18:22
0 / 0
0755
db_log_verify
15.336 KB
August 09 2019 00:18:22
0 / 0
0755
db_printlog
32.258 KB
August 09 2019 00:18:22
0 / 0
0755
db_recover
11.328 KB
August 09 2019 00:18:22
0 / 0
0755
db_replicate
15.344 KB
August 09 2019 00:18:22
0 / 0
0755
db_stat
15.258 KB
August 09 2019 00:18:22
0 / 0
0755
db_tuner
19.328 KB
August 09 2019 00:18:22
0 / 0
0755
db_upgrade
11.234 KB
August 09 2019 00:18:22
0 / 0
0755
db_verify
11.25 KB
August 09 2019 00:18:22
0 / 0
0755
dbus-binding-tool
94.492 KB
June 10 2014 04:06:04
0 / 0
0755
dbus-cleanup-sockets
11 KB
September 30 2020 15:54:54
0 / 0
0755
dbus-daemon
218 KB
September 30 2020 15:54:54
0 / 0
0755
dbus-monitor
23.125 KB
September 30 2020 15:54:54
0 / 0
0755
dbus-run-session
14.969 KB
September 30 2020 15:54:54
0 / 0
0755
dbus-send
27.07 KB
September 30 2020 15:54:54
0 / 0
0755
dbus-test-tool
23.133 KB
September 30 2020 15:54:54
0 / 0
0755
dbus-update-activation-environment
15.023 KB
September 30 2020 15:54:54
0 / 0
0755
dbus-uuidgen
10.984 KB
September 30 2020 15:54:54
0 / 0
0755
dc
44.328 KB
June 09 2014 19:51:54
0 / 0
0755
dd
73.141 KB
November 16 2020 22:24:58
0 / 0
0755
deallocvt
11.156 KB
November 24 2021 16:34:03
0 / 0
0755
debuginfo-install
7.882 KB
May 12 2020 16:27:40
0 / 0
0755
df
102.555 KB
November 16 2020 22:24:58
0 / 0
0755
dgawk
502.117 KB
June 28 2017 21:52:48
0 / 0
0755
diff
195.461 KB
March 07 2023 14:48:24
0 / 0
0755
diff3
60.648 KB
March 07 2023 14:48:24
0 / 0
0755
dir
114.852 KB
November 16 2020 22:24:58
0 / 0
0755
dircolors
40.438 KB
November 16 2020 22:24:58
0 / 0
0755
dirname
28.313 KB
November 16 2020 22:24:58
0 / 0
0755
dmesg
48.516 KB
February 02 2021 16:31:53
0 / 0
0755
dnsdomainname
15.414 KB
October 18 2019 16:02:04
0 / 0
0755
domainname
15.414 KB
October 18 2019 16:02:04
0 / 0
0755
dracut
55.827 KB
September 30 2020 15:57:57
0 / 0
0755
du
110.336 KB
November 16 2020 22:24:58
0 / 0
0755
dumpkeys
77.508 KB
November 24 2021 16:34:03
0 / 0
0755
dwp
3.03 MB
November 01 2021 15:39:15
0 / 0
0755
echo
32.313 KB
November 16 2020 22:24:58
0 / 0
0755
egrep
0.283 KB
August 03 2017 06:58:17
0 / 0
0755
eject
48.813 KB
February 02 2021 16:31:53
0 / 0
0755
elfedit
32.18 KB
November 01 2021 15:39:15
0 / 0
0755
env
28.328 KB
November 16 2020 22:24:58
0 / 0
0755
envsubst
36.008 KB
April 01 2020 02:43:18
0 / 0
0755
eqn
144.414 KB
June 09 2014 20:17:22
0 / 0
0755
ex
906.445 KB
December 15 2020 16:44:13
0 / 0
0755
expand
32.477 KB
November 16 2020 22:24:58
0 / 0
0755
expr
36.531 KB
November 16 2020 22:24:58
0 / 0
0755
factor
93.289 KB
November 16 2020 22:24:58
0 / 0
0755
fallocate
27.844 KB
February 02 2021 16:31:53
0 / 0
0755
false
28.25 KB
November 16 2020 22:24:58
0 / 0
0755
fc
0.025 KB
November 24 2021 16:33:26
0 / 0
0755
fc-cache
0.129 KB
October 30 2018 15:13:26
0 / 0
0755
fc-cache-64
15.453 KB
October 30 2018 18:34:13
0 / 0
0755
fc-cat
15.398 KB
October 30 2018 18:34:13
0 / 0
0755
fc-conflist
11.195 KB
October 30 2018 18:34:13
0 / 0
0755
fc-list
11.258 KB
October 30 2018 18:34:13
0 / 0
0755
fc-match
11.32 KB
October 30 2018 18:34:13
0 / 0
0755
fc-pattern
11.258 KB
October 30 2018 18:34:13
0 / 0
0755
fc-query
11.227 KB
October 30 2018 18:34:13
0 / 0
0755
fc-scan
11.266 KB
October 30 2018 18:34:13
0 / 0
0755
fc-validate
11.266 KB
October 30 2018 18:34:13
0 / 0
0755
fg
0.025 KB
November 24 2021 16:33:26
0 / 0
0755
fgconsole
11.164 KB
November 24 2021 16:34:03
0 / 0
0755
fgrep
0.283 KB
August 03 2017 06:58:17
0 / 0
0755
file
19.305 KB
September 30 2020 16:08:22
0 / 0
0755
find
194.633 KB
October 30 2018 16:42:55
0 / 0
0755
find-repos-of-install
4.269 KB
May 12 2020 16:27:40
0 / 0
0755
find2perl
23.061 KB
February 02 2021 16:32:27
0 / 0
0755
findmnt
58.375 KB
February 02 2021 16:31:53
0 / 0
0755
fipscheck
15.367 KB
August 02 2017 12:47:49
0 / 0
0755
fipshmac
11.305 KB
August 02 2017 12:47:49
0 / 0
0755
firewall-cmd
113.477 KB
April 28 2021 13:31:12
0 / 0
0755
firewall-offline-cmd
101.179 KB
April 28 2021 13:31:12
0 / 0
0755
flock
23.875 KB
February 02 2021 16:31:53
0 / 0
0755
fmt
36.477 KB
November 16 2020 22:24:58
0 / 0
0755
fold
36.461 KB
November 16 2020 22:24:58
0 / 0
0755
free
19.328 KB
September 30 2020 17:21:37
0 / 0
0755
fribidi
16.094 KB
December 23 2019 15:39:41
0 / 0
0755
gapplication
19.477 KB
June 09 2021 16:12:02
0 / 0
0755
gawk
418.539 KB
June 28 2017 21:52:48
0 / 0
0755
gcc
750.594 KB
September 30 2020 02:18:23
0 / 0
0755
gcc-ar
26.453 KB
September 30 2020 02:18:23
0 / 0
0755
gcc-nm
26.453 KB
September 30 2020 02:18:24
0 / 0
0755
gcc-ranlib
26.453 KB
September 30 2020 02:18:22
0 / 0
0755
gcov
307.453 KB
September 30 2020 02:18:21
0 / 0
0755
gdbus
40.172 KB
June 09 2021 16:12:02
0 / 0
0755
gencat
22.109 KB
June 04 2024 15:05:31
0 / 0
0755
genl-ctrl-list
11.273 KB
August 03 2017 19:48:51
0 / 0
0755
geqn
144.414 KB
June 09 2014 20:17:22
0 / 0
0755
getconf
22.016 KB
June 04 2024 15:05:30
0 / 0
0755
getent
26.391 KB
June 04 2024 15:05:30
0 / 0
0755
getfacl
24.289 KB
April 01 2020 02:16:13
0 / 0
0755
getkeycodes
11.156 KB
November 24 2021 16:34:03
0 / 0
0755
getopt
15.383 KB
February 02 2021 16:31:53
0 / 0
0755
getopts
0.03 KB
November 24 2021 16:33:26
0 / 0
0755
gettext
35.938 KB
April 01 2020 02:43:18
0 / 0
0755
gettext.sh
4.521 KB
April 01 2020 02:41:05
0 / 0
0755
gio
73.414 KB
June 09 2021 16:12:02
0 / 0
0755
gio-querymodules-64
11.313 KB
June 09 2021 16:12:02
0 / 0
0755
glib-compile-schemas
44.375 KB
June 09 2021 16:12:02
0 / 0
0755
gmake
178.469 KB
August 09 2019 00:46:49
0 / 0
0755
gneqn
0.265 KB
June 09 2014 20:17:13
0 / 0
0755
gnroff
3.313 KB
June 09 2014 20:17:15
0 / 0
0755
gpasswd
76.57 KB
August 09 2019 02:51:01
0 / 0
4755
gpg
732.398 KB
July 13 2018 13:05:25
0 / 0
0755
gpg-agent
289.742 KB
July 13 2018 13:05:25
0 / 0
0755
gpg-connect-agent
152.688 KB
July 13 2018 13:05:25
0 / 0
0755
gpg-error
23.18 KB
June 10 2014 08:46:48
0 / 0
0755
gpg-zip
3.229 KB
July 13 2018 13:05:12
0 / 0
0755
gpg2
732.398 KB
July 13 2018 13:05:25
0 / 0
0755
gpgconf
140.313 KB
July 13 2018 13:05:25
0 / 0
0755
gpgparsemail
23.703 KB
July 13 2018 13:05:25
0 / 0
0755
gpgsplit
48.883 KB
July 13 2018 13:05:25
0 / 0
0755
gpgv
345.383 KB
July 13 2018 13:05:25
0 / 0
0755
gpgv2
345.383 KB
July 13 2018 13:05:25
0 / 0
0755
gpic
180.406 KB
June 09 2014 20:17:22
0 / 0
0755
gprof
98.414 KB
November 01 2021 15:39:15
0 / 0
0755
gr2fonttest
23.656 KB
July 21 2017 10:40:25
0 / 0
0755
grep
155.297 KB
August 03 2017 06:58:18
0 / 0
0755
groff
81.625 KB
June 09 2014 20:17:22
0 / 0
0755
grops
140.852 KB
June 09 2014 20:17:22
0 / 0
0755
grotty
98.586 KB
June 09 2014 20:17:22
0 / 0
0755
groups
32.414 KB
November 16 2020 22:24:58
0 / 0
0755
grub2-editenv
396.07 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-file
834.336 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-fstest
1.03 MB
April 30 2024 19:38:58
0 / 0
0755
grub2-glue-efi
258.836 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-kbdcomp
1.629 KB
April 30 2024 19:38:51
0 / 0
0755
grub2-menulst2cfg
241.852 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-mkfont
287.578 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-mkimage
379.211 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-mklayout
264.898 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-mknetdir
429.797 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-mkpasswd-pbkdf2
271.289 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-mkrelpath
258.477 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-mkrescue
1017.852 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-mkstandalone
534.328 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-render-label
839.117 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-script-check
295.414 KB
April 30 2024 19:38:58
0 / 0
0755
grub2-syslinux2cfg
763.703 KB
April 30 2024 19:38:58
0 / 0
0755
gsettings
23.805 KB
June 09 2021 16:12:02
0 / 0
0755
gsoelim
32.586 KB
June 09 2014 20:17:22
0 / 0
0755
gtar
338.023 KB
October 30 2018 20:24:30
0 / 0
0755
gtbl
115.961 KB
June 09 2014 20:17:22
0 / 0
0755
gtroff
512.961 KB
June 09 2014 20:17:22
0 / 0
0755
gunzip
2.2 KB
May 12 2022 14:58:32
0 / 0
0755
gzexe
5.792 KB
May 12 2022 14:58:32
0 / 0
0755
gzip
98.43 KB
May 12 2022 14:58:32
0 / 0
0755
h2ph
27.646 KB
February 02 2021 16:32:27
0 / 0
0755
hdsploader
11.18 KB
November 05 2016 18:34:04
0 / 0
0755
head
40.508 KB
November 16 2020 22:24:58
0 / 0
0755
hexdump
32.016 KB
February 02 2021 16:31:53
0 / 0
0755
hostid
28.32 KB
November 16 2020 22:24:58
0 / 0
0755
hostname
15.414 KB
October 18 2019 16:02:04
0 / 0
0755
hostnamectl
318.07 KB
December 07 2023 14:51:48
0 / 0
0755
htdbm
23.102 KB
May 30 2023 14:01:58
0 / 0
0755
htdigest
15.078 KB
May 30 2023 14:01:58
0 / 0
0755
htpasswd
19.094 KB
May 30 2023 14:01:58
0 / 0
0755
httxt2dbm
10.992 KB
May 30 2023 14:01:58
0 / 0
0755
i386
15.273 KB
February 02 2021 16:31:53
0 / 0
0755
iconv
58.141 KB
June 04 2024 15:05:31
0 / 0
0755
id
36.523 KB
November 16 2020 22:24:58
0 / 0
0755
idiag-socket-details
11.336 KB
August 03 2017 19:48:51
0 / 0
0755
idn
32.453 KB
November 21 2015 17:00:47
0 / 0
0755
igawk
3.113 KB
June 28 2017 21:52:45
0 / 0
0755
info
265.188 KB
April 11 2018 01:03:35
0 / 0
0755
infocmp
56.07 KB
September 06 2017 22:08:20
0 / 0
0755
infokey
21.469 KB
April 11 2018 01:03:35
0 / 0
0755
infotocap
64.258 KB
September 06 2017 22:08:20
0 / 0
0755
install
139.594 KB
November 16 2020 22:24:58
0 / 0
0755
ionice
23.859 KB
February 02 2021 16:31:53
0 / 0
0755
ipcalc
15.055 KB
November 16 2020 16:20:20
0 / 0
0755
ipcmk
24 KB
February 02 2021 16:31:53
0 / 0
0755
ipcrm
27.852 KB
February 02 2021 16:31:53
0 / 0
0755
ipcs
48.367 KB
February 02 2021 16:31:53
0 / 0
0755
iptables-xml
91.516 KB
October 01 2020 16:52:53
0 / 0
0755
isosize
23.828 KB
February 02 2021 16:31:53
0 / 0
0755
jobs
0.027 KB
November 24 2021 16:33:26
0 / 0
0755
join
48.75 KB
November 16 2020 22:24:58
0 / 0
0755
journalctl
537.883 KB
December 07 2023 14:51:48
0 / 0
0755
kbd_mode
11.156 KB
November 24 2021 16:34:03
0 / 0
0755
kbdinfo
11.188 KB
November 24 2021 16:34:03
0 / 0
0755
kbdrate
11.219 KB
November 24 2021 16:34:03
0 / 0
0755
kdumpctl
33.178 KB
June 09 2021 16:09:58
0 / 0
0755
kernel-install
4.698 KB
December 07 2023 14:51:17
0 / 0
0755
kill
32.82 KB
February 02 2021 16:31:53
0 / 0
0755
kmod
143.242 KB
April 01 2020 02:58:15
0 / 0
0755
last
19.109 KB
June 09 2014 23:16:44
0 / 0
0755
lastb
19.109 KB
June 09 2014 23:16:44
0 / 0
0755
lastlog
19.148 KB
August 09 2019 02:51:01
0 / 0
0755
lchfn
15.523 KB
April 12 2018 18:44:23
0 / 0
0755
lchsh
15.492 KB
April 12 2018 18:44:23
0 / 0
0755
ld
982.609 KB
November 01 2021 15:39:15
0 / 0
0755
ld.bfd
982.609 KB
November 01 2021 15:39:15
0 / 0
0755
ld.gold
5.11 MB
November 01 2021 15:39:15
0 / 0
0755
ldd
5.178 KB
June 04 2024 14:43:52
0 / 0
0755
less
154.57 KB
June 11 2024 14:35:22
0 / 0
0755
lessecho
11.133 KB
June 11 2024 14:35:22
0 / 0
0755
lesskey
16.672 KB
June 11 2024 14:35:22
0 / 0
0755
lesspipe.sh
2.237 KB
January 13 2022 18:00:05
0 / 0
0755
lexgrog
85.086 KB
October 30 2018 20:26:36
0 / 0
0755
link
28.305 KB
November 16 2020 22:24:58
0 / 0
0755
linux-boot-prober
5.854 KB
November 06 2016 03:30:02
0 / 0
0755
linux32
15.273 KB
February 02 2021 16:31:53
0 / 0
0755
linux64
15.273 KB
February 02 2021 16:31:53
0 / 0
0755
ln
57.219 KB
November 16 2020 22:24:58
0 / 0
0755
loadkeys
110.484 KB
November 24 2021 16:34:03
0 / 0
0755
loadunimap
23.883 KB
November 24 2021 16:34:03
0 / 0
0755
locale
37.109 KB
June 04 2024 15:05:31
0 / 0
0755
localectl
326.164 KB
December 07 2023 14:51:48
0 / 0
0755
localedef
318.313 KB
June 04 2024 15:05:31
0 / 0
0755
logger
28.617 KB
February 02 2021 16:31:53
0 / 0
0755
login
36.375 KB
February 02 2021 16:31:53
0 / 0
0755
loginctl
489.617 KB
December 07 2023 14:51:48
0 / 0
0755
logname
28.313 KB
November 16 2020 22:24:58
0 / 0
0755
logresolve
11 KB
May 30 2023 14:01:58
0 / 0
0755
look
11.273 KB
February 02 2021 16:31:53
0 / 0
0755
ls
114.852 KB
November 16 2020 22:24:58
0 / 0
0755
lsattr
11.25 KB
September 30 2020 15:58:29
0 / 0
0755
lsblk
79.172 KB
February 02 2021 16:31:53
0 / 0
0755
lscpu
60.75 KB
February 02 2021 16:31:53
0 / 0
0755
lsinitrd
6.26 KB
September 30 2020 15:57:57
0 / 0
0755
lsipc
60.945 KB
February 02 2021 16:31:53
0 / 0
0755
lslocks
41.008 KB
February 02 2021 16:31:53
0 / 0
0755
lslogins
52.883 KB
February 02 2021 16:31:53
0 / 0
0755
lsmem
40.781 KB
February 02 2021 16:31:53
0 / 0
0755
lsns
36.43 KB
February 02 2021 16:31:53
0 / 0
0755
lsscsi
56.477 KB
August 03 2017 02:11:06
0 / 0
0755
lua
15.469 KB
November 06 2016 02:47:35
0 / 0
0755
luac
119.031 KB
November 06 2016 02:47:35
0 / 0
0755
lz4
105.844 KB
September 30 2020 16:55:11
0 / 0
0755
lz4c
105.844 KB
September 30 2020 16:55:11
0 / 0
0755
lz4cat
105.844 KB
September 30 2020 16:55:11
0 / 0
0755
machinectl
533.953 KB
December 07 2023 14:51:48
0 / 0
0755
mailq
242.109 KB
April 01 2020 04:09:09
0 / 0
0755
mailq.postfix
242.109 KB
April 01 2020 04:09:09
0 / 0
0755
make
178.469 KB
August 09 2019 00:46:49
0 / 0
0755
makedb
18.109 KB
June 04 2024 15:05:31
0 / 0
0755
man
100.438 KB
October 30 2018 20:26:36
0 / 0
0755
mandb
122.25 KB
October 30 2018 20:26:36
0 / 0
0755
manpath
32.555 KB
October 30 2018 20:26:36
0 / 0
0755
mapscrn
19.781 KB
November 24 2021 16:34:03
0 / 0
0755
mcookie
15.438 KB
February 02 2021 16:31:53
0 / 0
0755
md5sum
40.531 KB
November 16 2020 22:24:58
0 / 0
0755
mesg
10.977 KB
June 09 2014 23:16:44
0 / 0
0755
mixartloader
15.375 KB
November 05 2016 18:34:04
0 / 0
0755
mkdir
77.898 KB
November 16 2020 22:24:58
0 / 0
0755
mkfifo
61.586 KB
November 16 2020 22:24:58
0 / 0
0755
mkinitrd
2.942 KB
September 30 2020 15:57:57
0 / 0
0755
mknod
65.609 KB
November 16 2020 22:24:58
0 / 0
0755
mktemp
40.656 KB
November 16 2020 22:24:58
0 / 0
0755
modutil
165.781 KB
October 19 2023 13:17:47
0 / 0
0755
more
40.148 KB
February 02 2021 16:31:53
0 / 0
0755
mount
43.227 KB
February 02 2021 16:31:53
0 / 0
4755
mountpoint
15.32 KB
February 02 2021 16:31:53
0 / 0
0755
msgattrib
23.359 KB
April 01 2020 02:43:18
0 / 0
0755
msgcat
23.336 KB
April 01 2020 02:43:18
0 / 0
0755
msgcmp
23.586 KB
April 01 2020 02:43:18
0 / 0
0755
msgcomm
19.313 KB
April 01 2020 02:43:18
0 / 0
0755
msgconv
19.305 KB
April 01 2020 02:43:18
0 / 0
0755
msgen
19.305 KB
April 01 2020 02:43:18
0 / 0
0755
msgexec
15.328 KB
April 01 2020 02:43:18
0 / 0
0755
msgfilter
27.563 KB
April 01 2020 02:43:18
0 / 0
0755
msgfmt
77.055 KB
April 01 2020 02:43:18
0 / 0
0755
msggrep
35.969 KB
April 01 2020 02:43:18
0 / 0
0755
msghack
12.452 KB
November 27 2019 15:49:53
0 / 0
0755
msginit
44.383 KB
April 01 2020 02:43:18
0 / 0
0755
msgmerge
52.602 KB
April 01 2020 02:43:18
0 / 0
0755
msgunfmt
31.703 KB
April 01 2020 02:43:18
0 / 0
0755
msguniq
19.313 KB
April 01 2020 02:43:18
0 / 0
0755
mv
127.305 KB
November 16 2020 22:24:58
0 / 0
0755
namei
27.945 KB
February 02 2021 16:31:53
0 / 0
0755
ndptool
23.625 KB
August 09 2019 00:25:58
0 / 0
0755
needs-restarting
8.168 KB
May 12 2020 16:27:40
0 / 0
0755
neqn
0.265 KB
June 09 2014 20:17:13
0 / 0
0755
newaliases
242.109 KB
April 01 2020 04:09:09
0 / 0
0755
newaliases.postfix
242.109 KB
April 01 2020 04:09:09
0 / 0
0755
newgidmap
38.086 KB
August 09 2019 02:51:01
0 / 0
0755
newgrp
40.953 KB
August 09 2019 02:51:01
0 / 0
4755
newuidmap
38.063 KB
August 09 2019 02:51:01
0 / 0
0755
nf-ct-add
11.805 KB
August 03 2017 19:48:51
0 / 0
0755
nf-ct-list
15.836 KB
August 03 2017 19:48:51
0 / 0
0755
nf-exp-add
16.211 KB
August 03 2017 19:48:51
0 / 0
0755
nf-exp-delete
15.992 KB
August 03 2017 19:48:51
0 / 0
0755
nf-exp-list
11.805 KB
August 03 2017 19:48:51
0 / 0
0755
nf-log
11.234 KB
August 03 2017 19:48:51
0 / 0
0755
nf-monitor
11.18 KB
August 03 2017 19:48:51
0 / 0
0755
nf-queue
11.273 KB
August 03 2017 19:48:51
0 / 0
0755
ngettext
35.953 KB
April 01 2020 02:43:18
0 / 0
0755
nice
32.32 KB
November 16 2020 22:24:58
0 / 0
0755
nisdomainname
15.414 KB
October 18 2019 16:02:04
0 / 0
0755
nl
40.602 KB
November 16 2020 22:24:58
0 / 0
0755
nl-addr-add
11.648 KB
August 03 2017 19:48:51
0 / 0
0755
nl-addr-delete
11.734 KB
August 03 2017 19:48:51
0 / 0
0755
nl-addr-list
15.875 KB
August 03 2017 19:48:51
0 / 0
0755
nl-class-add
11.695 KB
August 03 2017 19:48:51
0 / 0
0755
nl-class-delete
11.547 KB
August 03 2017 19:48:51
0 / 0
0755
nl-class-list
11.477 KB
August 03 2017 19:48:51
0 / 0
0755
nl-classid-lookup
11.289 KB
August 03 2017 19:48:51
0 / 0
0755
nl-cls-add
11.758 KB
August 03 2017 19:48:51
0 / 0
0755
nl-cls-delete
11.68 KB
August 03 2017 19:48:51
0 / 0
0755
nl-cls-list
11.578 KB
August 03 2017 19:48:51
0 / 0
0755
nl-fib-lookup
11.414 KB
August 03 2017 19:48:51
0 / 0
0755
nl-link-enslave
7.047 KB
August 03 2017 19:48:51
0 / 0
0755
nl-link-ifindex2name
7.063 KB
August 03 2017 19:48:51
0 / 0
0755
nl-link-list
11.523 KB
August 03 2017 19:48:51
0 / 0
0755
nl-link-name2ifindex
7.047 KB
August 03 2017 19:48:51
0 / 0
0755
nl-link-release
7.047 KB
August 03 2017 19:48:51
0 / 0
0755
nl-link-set
11.641 KB
August 03 2017 19:48:51
0 / 0
0755
nl-link-stats
11.391 KB
August 03 2017 19:48:51
0 / 0
0755
nl-list-caches
11.078 KB
August 03 2017 19:48:51
0 / 0
0755
nl-list-sockets
7.063 KB
August 03 2017 19:48:51
0 / 0
0755
nl-monitor
11.195 KB
August 03 2017 19:48:51
0 / 0
0755
nl-neigh-add
11.508 KB
August 03 2017 19:48:51
0 / 0
0755
nl-neigh-delete
11.57 KB
August 03 2017 19:48:51
0 / 0
0755
nl-neigh-list
11.461 KB
August 03 2017 19:48:51
0 / 0
0755
nl-neightbl-list
11.266 KB
August 03 2017 19:48:51
0 / 0
0755
nl-pktloc-lookup
11.359 KB
August 03 2017 19:48:51
0 / 0
0755
nl-qdisc-add
11.602 KB
August 03 2017 19:48:51
0 / 0
0755
nl-qdisc-delete
11.539 KB
August 03 2017 19:48:51
0 / 0
0755
nl-qdisc-list
11.625 KB
August 03 2017 19:48:51
0 / 0
0755
nl-route-add
11.734 KB
August 03 2017 19:48:51
0 / 0
0755
nl-route-delete
15.859 KB
August 03 2017 19:48:51
0 / 0
0755
nl-route-get
11.18 KB
August 03 2017 19:48:51
0 / 0
0755
nl-route-list
11.773 KB
August 03 2017 19:48:51
0 / 0
0755
nl-rule-list
11.297 KB
August 03 2017 19:48:51
0 / 0
0755
nl-tctree-list
11.531 KB
August 03 2017 19:48:51
0 / 0
0755
nl-util-addr
7.031 KB
August 03 2017 19:48:51
0 / 0
0755
nm
45.43 KB
November 01 2021 15:39:15
0 / 0
0755
nm-online
15.164 KB
November 16 2020 16:15:18
0 / 0
0755
nmcli
809.164 KB
November 16 2020 16:15:18
0 / 0
0755
nmtui
646.766 KB
November 16 2020 16:15:18
0 / 0
0755
nmtui-connect
646.766 KB
November 16 2020 16:15:18
0 / 0
0755
nmtui-edit
646.766 KB
November 16 2020 16:15:18
0 / 0
0755
nmtui-hostname
646.766 KB
November 16 2020 16:15:18
0 / 0
0755
nohup
32.422 KB
November 16 2020 22:24:58
0 / 0
0755
nproc
32.367 KB
November 16 2020 22:24:58
0 / 0
0755
nroff
3.313 KB
June 09 2014 20:17:15
0 / 0
0755
nsenter
28.219 KB
February 02 2021 16:31:53
0 / 0
0755
nss-policy-check
15.258 KB
October 19 2023 13:17:47
0 / 0
0755
numfmt
64.711 KB
November 16 2020 22:24:58
0 / 0
0755
objcopy
227.336 KB
November 01 2021 15:39:15
0 / 0
0755
objdump
357.742 KB
November 01 2021 15:39:15
0 / 0
0755
od
64.813 KB
November 16 2020 22:24:58
0 / 0
0755
oldfind
186.406 KB
October 30 2018 16:42:55
0 / 0
0755
open
19.477 KB
November 24 2021 16:34:03
0 / 0
0755
openssl
542.266 KB
March 20 2023 16:13:47
0 / 0
0755
openvt
19.477 KB
November 24 2021 16:34:03
0 / 0
0755
os-prober
5.511 KB
November 06 2016 03:30:02
0 / 0
0755
p11-kit
32.18 KB
August 04 2017 23:36:46
0 / 0
0755
package-cleanup
17.386 KB
May 12 2020 16:27:40
0 / 0
0755
page_owner_sort
10.195 KB
June 04 2024 14:55:42
0 / 0
0755
passwd
27.203 KB
April 01 2020 03:57:19
0 / 0
4755
paste
32.344 KB
November 16 2020 22:24:58
0 / 0
0755
pathchk
32.313 KB
November 16 2020 22:24:58
0 / 0
0755
pchrt
3.93 KB
November 05 2016 21:51:47
0 / 0
0755
perl
11.141 KB
February 02 2021 16:33:17
0 / 0
0755
perl5.16.3
11.141 KB
February 02 2021 16:33:17
0 / 0
0755
perlbug
43.605 KB
February 02 2021 16:32:27
0 / 0
0755
perldoc
0.198 KB
June 10 2014 08:17:48
0 / 0
0755
perlthanks
43.605 KB
February 02 2021 16:32:27
0 / 0
0755
pflags
2.062 KB
August 09 2019 02:08:24
0 / 0
0755
pgawk
418.625 KB
June 28 2017 21:52:48
0 / 0
0755
pgrep
27.672 KB
September 30 2020 17:21:37
0 / 0
0755
phar
14.476 KB
August 02 2023 09:52:03
0 / 0
0755
phar.phar
14.476 KB
August 02 2023 09:52:03
0 / 0
0755
php
4.21 MB
August 02 2023 09:52:19
0 / 0
0755
php-cgi
4.18 MB
August 02 2023 09:52:19
0 / 0
0755
phpize
4.64 KB
August 02 2023 09:52:03
0 / 0
0755
pic
180.406 KB
June 09 2014 20:17:22
0 / 0
0755
piconv
7.985 KB
June 10 2014 02:49:27
0 / 0
0755
pinentry
2.541 KB
November 04 2016 18:02:54
0 / 0
0755
pinentry-curses
49.188 KB
November 05 2016 15:49:27
0 / 0
0755
ping
64.625 KB
August 04 2017 08:01:04
0 / 0
0755
ping6
64.625 KB
August 04 2017 08:01:04
0 / 0
0755
pinky
36.57 KB
November 16 2020 22:24:58
0 / 0
0755
pk12util
103.219 KB
October 19 2023 13:17:47
0 / 0
0755
pkaction
15 KB
January 25 2022 19:42:49
0 / 0
0755
pkcheck
23.031 KB
January 25 2022 19:42:49
0 / 0
0755
pkexec
27.023 KB
January 25 2022 19:42:49
0 / 0
4755
pkg-config
44.383 KB
June 09 2014 22:05:48
0 / 0
0755
pkill
27.672 KB
September 30 2020 17:21:37
0 / 0
0755
pkla-admin-identities
19.227 KB
June 09 2014 22:08:33
0 / 0
0755
pkla-check-authorization
27.305 KB
June 09 2014 22:08:33
0 / 0
0755
pkttyagent
18.984 KB
January 25 2022 19:42:49
0 / 0
0755
pl2pm
4.425 KB
February 02 2021 16:32:02
0 / 0
0755
pldd
14.109 KB
June 04 2024 15:05:31
0 / 0
0755
plymouth
39.766 KB
October 01 2020 16:53:21
0 / 0
0755
pmap
27.609 KB
September 30 2020 17:21:37
0 / 0
0755
pod2html
4 KB
February 02 2021 16:32:27
0 / 0
0755
pod2man
13.263 KB
June 09 2014 19:56:13
0 / 0
0755
pod2text
10.746 KB
June 09 2014 19:56:13
0 / 0
0755
pod2usage
3.667 KB
June 10 2014 08:56:18
0 / 0
0755
post-grohtml
187.547 KB
June 09 2014 20:17:22
0 / 0
0755
powernow-k8-decode
6.148 KB
June 04 2024 14:55:42
0 / 0
0755
pr
65.109 KB
November 16 2020 22:24:58
0 / 0
0755
pre-grohtml
86.242 KB
June 09 2014 20:17:22
0 / 0
0755
preconv
40.883 KB
June 09 2014 20:17:22
0 / 0
0755
printenv
28.281 KB
November 16 2020 22:24:58
0 / 0
0755
printf
48.609 KB
November 16 2020 22:24:58
0 / 0
0755
prlimit
41.195 KB
February 02 2021 16:31:53
0 / 0
0755
ps
97.766 KB
September 30 2020 17:21:37
0 / 0
0755
psed
52.079 KB
February 02 2021 16:32:27
0 / 0
0755
psfaddtable
19.484 KB
November 24 2021 16:34:03
0 / 0
0755
psfgettable
19.484 KB
November 24 2021 16:34:03
0 / 0
0755
psfstriptable
19.484 KB
November 24 2021 16:34:03
0 / 0
0755
psfxtable
19.484 KB
November 24 2021 16:34:03
0 / 0
0755
pstruct
35.749 KB
February 02 2021 16:32:27
0 / 0
0755
ptaskset
3.8 KB
November 05 2016 21:51:47
0 / 0
0755
ptx
65.078 KB
November 16 2020 22:24:58
0 / 0
0755
pwd
32.453 KB
November 16 2020 22:24:58
0 / 0
0755
pwdx
11.266 KB
September 30 2020 17:21:37
0 / 0
0755
pwmake
11.125 KB
April 11 2018 03:58:18
0 / 0
0755
pwscore
11.125 KB
April 11 2018 03:58:18
0 / 0
0755
pydoc
0.076 KB
November 14 2023 16:14:24
0 / 0
0755
python
6.977 KB
November 14 2023 16:14:39
0 / 0
0755
python2
6.977 KB
November 14 2023 16:14:39
0 / 0
0755
python2.7
6.977 KB
November 14 2023 16:14:39
0 / 0
0755
ranlib
61.219 KB
November 01 2021 15:39:15
0 / 0
0755
raw
15.273 KB
February 02 2021 16:31:53
0 / 0
0755
read
0.027 KB
November 24 2021 16:33:26
0 / 0
0755
readelf
509.828 KB
November 01 2021 15:39:15
0 / 0
0755
readlink
40.82 KB
November 16 2020 22:24:58
0 / 0
0755
realpath
61.234 KB
November 16 2020 22:24:58
0 / 0
0755
recode-sr-latin
15.289 KB
April 01 2020 02:43:18
0 / 0
0755
rename
11.258 KB
February 02 2021 16:31:53
0 / 0
0755
renice
11.211 KB
February 02 2021 16:31:53
0 / 0
0755
repo-graph
4.093 KB
May 12 2020 16:27:40
0 / 0
0755
repo-rss
10.073 KB
May 12 2020 16:27:40
0 / 0
0755
repoclosure
11.425 KB
May 12 2020 16:27:40
0 / 0
0755
repodiff
13.966 KB
May 12 2020 16:27:40
0 / 0
0755
repomanage
6.878 KB
May 12 2020 16:27:40
0 / 0
0755
repoquery
55.677 KB
May 12 2020 16:27:40
0 / 0
0755
reposync
14.14 KB
May 12 2020 16:27:40
0 / 0
0755
repotrack
9.864 KB
May 12 2020 16:27:40
0 / 0
0755
reset
19.602 KB
September 06 2017 22:08:20
0 / 0
0755
resizecons
19.625 KB
November 24 2021 16:34:03
0 / 0
0755
rev
11.258 KB
February 02 2021 16:31:53
0 / 0
0755
rm
61.398 KB
November 16 2020 22:24:58
0 / 0
0755
rmail
0.256 KB
April 01 2020 04:08:17
0 / 0
0755
rmail.postfix
0.256 KB
April 01 2020 04:08:17
0 / 0
0755
rmdir
44.461 KB
November 16 2020 22:24:58
0 / 0
0755
rpcgen
90.453 KB
June 04 2024 15:05:31
0 / 0
0755
rpm
15.75 KB
November 24 2021 16:33:34
0 / 0
0755
rpm2cpio
11.156 KB
November 24 2021 16:33:34
0 / 0
0755
rpmdb
11.734 KB
November 24 2021 16:33:34
0 / 0
0755
rpmkeys
11.734 KB
November 24 2021 16:33:34
0 / 0
0755
rpmquery
15.75 KB
November 24 2021 16:33:34
0 / 0
0755
rpmverify
15.75 KB
November 24 2021 16:33:34
0 / 0
0755
rsync
488.375 KB
December 15 2022 16:21:04
0 / 0
0755
rsyslog-recover-qi.pl
5.955 KB
May 31 2022 15:22:17
0 / 0
0755
run-parts
2.037 KB
June 09 2014 22:14:31
0 / 0
0755
runcon
32.469 KB
November 16 2020 22:24:58
0 / 0
0755
rvi
906.445 KB
December 15 2020 16:44:13
0 / 0
0755
rview
906.445 KB
December 15 2020 16:44:13
0 / 0
0755
s2p
52.079 KB
February 02 2021 16:32:27
0 / 0
0755
scp
89.234 KB
August 04 2023 16:00:52
0 / 0
0755
script
19.609 KB
February 02 2021 16:31:53
0 / 0
0755
scriptreplay
15.289 KB
February 02 2021 16:31:53
0 / 0
0755
sdiff
48.406 KB
March 07 2023 14:48:24
0 / 0
0755
secon
24.063 KB
April 01 2020 04:04:55
0 / 0
0755
sed
74.289 KB
September 30 2020 17:35:52
0 / 0
0755
seq
48.477 KB
November 16 2020 22:24:58
0 / 0
0755
setarch
15.273 KB
February 02 2021 16:31:53
0 / 0
0755
setfacl
36.727 KB
April 01 2020 02:16:13
0 / 0
0755
setfont
40.383 KB
November 24 2021 16:34:03
0 / 0
0755
setkeycodes
11.164 KB
November 24 2021 16:34:03
0 / 0
0755
setleds
11.164 KB
November 24 2021 16:34:03
0 / 0
0755
setmetamode
11.211 KB
November 24 2021 16:34:03
0 / 0
0755
setpriv
36.063 KB
February 02 2021 16:31:53
0 / 0
0755
setsid
11.227 KB
February 02 2021 16:31:53
0 / 0
0755
setterm
27.484 KB
February 02 2021 16:31:53
0 / 0
0755
setup-nsssysinit
1.503 KB
October 19 2023 13:17:40
0 / 0
0755
setup-nsssysinit.sh
1.503 KB
October 19 2023 13:17:40
0 / 0
0755
setvtrgb
11.336 KB
November 24 2021 16:34:03
0 / 0
0755
sftp
142.008 KB
August 04 2023 16:00:52
0 / 0
0755
sg
40.953 KB
August 09 2019 02:51:01
0 / 0
4755
sh
941.93 KB
November 24 2021 16:33:27
0 / 0
0755
sha1sum
36.57 KB
November 16 2020 22:24:58
0 / 0
0755
sha224sum
40.633 KB
November 16 2020 22:24:58
0 / 0
0755
sha256sum
40.633 KB
November 16 2020 22:24:58
0 / 0
0755
sha384sum
40.648 KB
November 16 2020 22:24:58
0 / 0
0755
sha512sum
40.648 KB
November 16 2020 22:24:58
0 / 0
0755
show-changed-rco
10.128 KB
May 12 2020 16:27:40
0 / 0
0755
show-installed
16.184 KB
May 12 2020 16:27:40
0 / 0
0755
showconsolefont
15.469 KB
November 24 2021 16:34:03
0 / 0
0755
showkey
15.234 KB
November 24 2021 16:34:03
0 / 0
0755
shred
52.938 KB
November 16 2020 22:24:58
0 / 0
0755
shuf
49.133 KB
November 16 2020 22:24:58
0 / 0
0755
signver
102.602 KB
October 19 2023 13:17:47
0 / 0
0755
size
32.352 KB
November 01 2021 15:39:15
0 / 0
0755
skill
23.617 KB
September 30 2020 17:21:37
0 / 0
0755
slabinfo
34.961 KB
June 04 2024 14:55:42
0 / 0
0755
slabtop
19.516 KB
September 30 2020 17:21:37
0 / 0
0755
sleep
32.352 KB
November 16 2020 22:24:58
0 / 0
0755
slogin
756.398 KB
August 04 2023 16:00:52
0 / 0
0755
snice
23.617 KB
September 30 2020 17:21:37
0 / 0
0755
soelim
32.586 KB
June 09 2014 20:17:22
0 / 0
0755
sort
114.938 KB
November 16 2020 22:24:58
0 / 0
0755
sotruss
4.239 KB
June 04 2024 14:43:52
0 / 0
0755
splain
18.026 KB
February 02 2021 16:32:27
0 / 0
0755
split
69.469 KB
November 16 2020 22:24:58
0 / 0
0755
sprof
22.102 KB
June 04 2024 15:05:31
0 / 0
0755
sqlite3
54.945 KB
January 28 2020 14:24:52
0 / 0
0755
ssh
756.398 KB
August 04 2023 16:00:52
0 / 0
0755
ssh-add
352.461 KB
August 04 2023 16:00:52
0 / 0
0755
ssh-agent
373.25 KB
August 04 2023 16:00:52
0 / 99
2111
ssh-copy-id
10.224 KB
August 04 2023 16:00:49
0 / 0
0755
ssh-keygen
409.383 KB
August 04 2023 16:00:52
0 / 0
0755
ssh-keyscan
430.695 KB
August 04 2023 16:00:52
0 / 0
0755
ssltap
118.414 KB
October 19 2023 13:17:47
0 / 0
0755
stat
77.188 KB
November 16 2020 22:24:58
0 / 0
0755
stdbuf
64.883 KB
November 16 2020 22:24:58
0 / 0
0755
strings
32.547 KB
November 01 2021 15:39:15
0 / 0
0755
strip
227.344 KB
November 01 2021 15:39:15
0 / 0
0755
stty
68.609 KB
November 16 2020 22:24:58
0 / 0
0755
su
31.375 KB
February 02 2021 16:31:53
0 / 0
4755
sudo
147.875 KB
January 25 2023 16:36:33
0 / 0
4111
sudoedit
147.875 KB
January 25 2023 16:36:33
0 / 0
4111
sudoreplay
56.109 KB
January 25 2023 16:36:33
0 / 0
0111
sum
36.555 KB
November 16 2020 22:24:58
0 / 0
0755
sync
28.328 KB
November 16 2020 22:24:58
0 / 0
0755
systemctl
704.797 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-analyze
1.49 MB
December 07 2023 14:51:48
0 / 0
0755
systemd-ask-password
60.375 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-cat
39.984 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-cgls
326.289 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-cgtop
85.086 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-coredumpctl
154.516 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-delta
76.836 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-detect-virt
39.969 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-escape
48.195 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-firstboot
101.516 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-hwdb
85.313 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-inhibit
309.828 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-loginctl
489.617 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-machine-id-setup
52.234 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-notify
48.133 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-nspawn
545.875 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-path
52.156 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-run
387.055 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-stdio-bridge
305.773 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-sysv-convert
3.886 KB
December 07 2023 14:51:20
0 / 0
0755
systemd-tmpfiles
146.133 KB
December 07 2023 14:51:48
0 / 0
0755
systemd-tty-ask-password-agent
84.75 KB
December 07 2023 14:51:48
0 / 0
0755
tabs
15.313 KB
September 06 2017 22:08:20
0 / 0
0755
tac
32.484 KB
November 16 2020 22:24:58
0 / 0
0755
tail
65.25 KB
November 16 2020 22:24:58
0 / 0
0755
tailf
23.883 KB
February 02 2021 16:31:53
0 / 0
0755
tar
338.023 KB
October 30 2018 20:24:30
0 / 0
0755
taskset
32.219 KB
February 02 2021 16:31:53
0 / 0
0755
tbl
115.961 KB
June 09 2014 20:17:22
0 / 0
0755
teamd
155.086 KB
September 30 2020 16:51:47
0 / 0
0755
teamdctl
28.977 KB
September 30 2020 16:51:47
0 / 0
0755
teamnl
19.094 KB
September 30 2020 16:51:47
0 / 0
0755
tee
32.383 KB
November 16 2020 22:24:58
0 / 0
0755
test
36.461 KB
November 16 2020 22:24:58
0 / 0
0755
testgdbm
29.773 KB
June 09 2014 21:39:03
0 / 0
0755
tic
64.258 KB
September 06 2017 22:08:20
0 / 0
0755
timedatectl
330.219 KB
December 07 2023 14:51:48
0 / 0
0755
timeout
53.313 KB
November 16 2020 22:24:58
0 / 0
0755
tload
15.375 KB
September 30 2020 17:21:37
0 / 0
0755
tmon
31.109 KB
June 04 2024 14:55:43
0 / 0
0755
toe
15.43 KB
September 06 2017 22:08:20
0 / 0
0755
top
104.375 KB
September 30 2020 17:21:37
0 / 0
0755
touch
61.023 KB
November 16 2020 22:24:58
0 / 0
0755
tput
15.414 KB
September 06 2017 22:08:20
0 / 0
0755
tr
44.609 KB
November 16 2020 22:24:58
0 / 0
0755
tracepath
15.047 KB
August 04 2017 08:01:04
0 / 0
0755
tracepath6
15.047 KB
August 04 2017 08:01:04
0 / 0
0755
troff
512.961 KB
June 09 2014 20:17:22
0 / 0
0755
true
28.258 KB
November 16 2020 22:24:58
0 / 0
0755
truncate
52.68 KB
November 16 2020 22:24:58
0 / 0
0755
trust
179.078 KB
August 04 2017 23:36:46
0 / 0
0755
tset
19.602 KB
September 06 2017 22:08:20
0 / 0
0755
tsort
36.469 KB
November 16 2020 22:24:58
0 / 0
0755
tty
28.289 KB
November 16 2020 22:24:58
0 / 0
0755
turbostat
113.148 KB
June 04 2024 14:55:42
0 / 0
0755
tzselect
7.167 KB
June 04 2024 14:43:10
0 / 0
0755
udevadm
414.273 KB
December 07 2023 14:51:48
0 / 0
0755
ul
19.469 KB
February 02 2021 16:31:53
0 / 0
0755
umask
0.028 KB
November 24 2021 16:33:26
0 / 0
0755
umount
31.234 KB
February 02 2021 16:31:53
0 / 0
4755
unalias
0.03 KB
November 24 2021 16:33:26
0 / 0
0755
uname
32.297 KB
November 16 2020 22:24:58
0 / 0
0755
unexpand
32.453 KB
November 16 2020 22:24:58
0 / 0
0755
unicode_start
2.495 KB
November 24 2021 16:32:38
0 / 0
0755
unicode_stop
0.354 KB
November 24 2021 16:32:37
0 / 0
0755
uniq
44.711 KB
November 16 2020 22:24:58
0 / 0
0755
unlink
28.305 KB
November 16 2020 22:24:58
0 / 0
0755
unlz4
105.844 KB
September 30 2020 16:55:11
0 / 0
0755
unshare
15.453 KB
February 02 2021 16:31:53
0 / 0
0755
unxz
73.523 KB
June 15 2022 14:40:44
0 / 0
0755
update-ca-trust
1.029 KB
January 13 2022 17:12:22
0 / 0
0755
update-mime-database
52.82 KB
April 01 2020 04:30:55
0 / 0
0755
uptime
11.219 KB
September 30 2020 17:21:37
0 / 0
0755
urlgrabber
12.173 KB
April 01 2020 04:14:03
0 / 0
0755
users
32.422 KB
November 16 2020 22:24:58
0 / 0
0755
usleep
10.945 KB
November 16 2020 16:20:20
0 / 0
0755
usx2yloader
15.406 KB
November 05 2016 18:34:04
0 / 0
0755
utmpdump
15.445 KB
February 02 2021 16:31:53
0 / 0
0755
uuidgen
11.211 KB
February 02 2021 16:31:53
0 / 0
0755
vdir
114.852 KB
November 16 2020 22:24:58
0 / 0
0755
verifytree
10.787 KB
May 12 2020 16:27:40
0 / 0
0755
vi
906.445 KB
December 15 2020 16:44:13
0 / 0
0755
view
906.445 KB
December 15 2020 16:44:13
0 / 0
0755
vlock
15.727 KB
November 24 2021 16:34:03
0 / 0
0755
vmstat
31.477 KB
September 30 2020 17:21:37
0 / 0
0755
vxloader
15.375 KB
November 05 2016 18:34:04
0 / 0
0755
w
19.445 KB
September 30 2020 17:21:37
0 / 0
0755
wait
0.027 KB
November 24 2021 16:33:26
0 / 0
0755
wall
14.984 KB
June 09 2014 23:16:44
0 / 5
2555
watch
24.141 KB
September 30 2020 17:21:37
0 / 0
0755
watchgnupg
15.352 KB
July 13 2018 13:05:25
0 / 0
0755
wc
40.672 KB
November 16 2020 22:24:58
0 / 0
0755
wdctl
40.695 KB
February 02 2021 16:31:53
0 / 0
0755
wget
408.961 KB
May 15 2019 21:01:44
0 / 0
0755
whatis
45.492 KB
October 30 2018 20:26:36
0 / 0
0755
whereis
20.195 KB
February 02 2021 16:31:53
0 / 0
0755
which
23.766 KB
June 10 2014 02:25:22
0 / 0
0755
whiptail
27.836 KB
June 10 2014 07:48:12
0 / 0
0755
who
48.703 KB
November 16 2020 22:24:58
0 / 0
0755
whoami
28.305 KB
November 16 2020 22:24:58
0 / 0
0755
write
19.086 KB
February 02 2021 16:31:53
0 / 5
2755
x86_64
15.273 KB
February 02 2021 16:31:53
0 / 0
0755
x86_64-redhat-linux-gcc
750.594 KB
September 30 2020 02:18:23
0 / 0
0755
x86_energy_perf_policy
10.234 KB
June 04 2024 14:55:42
0 / 0
0755
xargs
60.906 KB
October 30 2018 16:42:55
0 / 0
0755
xgettext
265.352 KB
April 01 2020 02:43:18
0 / 0
0755
xmlcatalog
15.305 KB
October 21 2021 16:15:18
0 / 0
0755
xmllint
61.938 KB
October 21 2021 16:15:18
0 / 0
0755
xmlwf
24 KB
October 06 2022 12:52:33
0 / 0
0755
xsltproc
23.508 KB
September 30 2020 16:56:56
0 / 0
0755
xz
73.523 KB
June 15 2022 14:40:44
0 / 0
0755
xzcat
73.523 KB
June 15 2022 14:40:44
0 / 0
0755
xzcmp
6.477 KB
June 15 2022 14:40:32
0 / 0
0755
xzdec
11.211 KB
June 15 2022 14:40:44
0 / 0
0755
xzdiff
6.477 KB
June 15 2022 14:40:32
0 / 0
0755
xzegrep
5.764 KB
June 15 2022 14:40:32
0 / 0
0755
xzfgrep
5.764 KB
June 15 2022 14:40:32
0 / 0
0755
xzgrep
5.764 KB
June 15 2022 14:40:32
0 / 0
0755
xzless
1.76 KB
June 15 2022 14:40:32
0 / 0
0755
xzmore
2.11 KB
June 15 2022 14:40:32
0 / 0
0755
yes
28.305 KB
November 16 2020 22:24:58
0 / 0
0755
ypdomainname
15.414 KB
October 18 2019 16:02:04
0 / 0
0755
yum
0.782 KB
October 01 2020 17:03:44
0 / 0
0755
yum-builddep
9.95 KB
May 12 2020 16:27:40
0 / 0
0755
yum-config-manager
9.354 KB
May 12 2020 16:27:40
0 / 0
0755
yum-debug-dump
8.338 KB
May 12 2020 16:27:40
0 / 0
0755
yum-debug-restore
7.718 KB
May 12 2020 16:27:40
0 / 0
0755
yum-groups-manager
10.772 KB
May 12 2020 16:27:40
0 / 0
0755
yumdownloader
10.854 KB
May 12 2020 16:27:40
0 / 0
0755
zcat
1.896 KB
May 12 2022 14:58:32
0 / 0
0755
zcmp
1.719 KB
May 12 2022 14:58:32
0 / 0
0755
zdiff
5.633 KB
May 12 2022 14:58:32
0 / 0
0755
zegrep
0.12 KB
May 12 2022 14:58:32
0 / 0
0755
zfgrep
0.12 KB
May 12 2022 14:58:32
0 / 0
0755
zforce
2.094 KB
May 12 2022 14:58:32
0 / 0
0755
zgrep
5.979 KB
May 12 2022 14:58:32
0 / 0
0755
zless
1.993 KB
May 12 2022 14:58:32
0 / 0
0755
zmore
2.792 KB
May 12 2022 14:58:32
0 / 0
0755
znew
5.218 KB
May 12 2022 14:58:32
0 / 0
0755
zsoelim
32.586 KB
June 09 2014 20:17:22
0 / 0
0755
zts-php
4.41 MB
August 02 2023 09:52:19
0 / 0
0755