/usr/bin/ksverdiff is in python-pykickstart 1.83-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | #!/usr/bin/python
#
# Chris Lumens <clumens@redhat.com>
#
# Copyright 2009 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing to use, modify,
# copy, or redistribute it subject to the terms and conditions of the GNU
# General Public License v.2. This program is distributed in the hope that it
# will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the
# implied warranties 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. Any Red Hat
# trademarks that are incorporated in the source code or documentation are not
# subject to the GNU General Public License and may only be used or replicated
# with the express permission of Red Hat, Inc.
#
import optparse
import os
import sys
import warnings
from pykickstart.base import *
from pykickstart.errors import *
from pykickstart.parser import *
from pykickstart.version import *
import gettext
gettext.textdomain("pykickstart")
_ = lambda x: gettext.ldgettext("pykickstart", x)
def getCommandSet(handler):
return set(handler.commands.keys())
def getOptSet(lst):
return set(map(lambda o: o.get_opt_string(), lst))
def printList(lst):
for e in lst:
sys.stdout.write("%s " % e)
print
op = OptionParser(usage="usage: %prog [options]")
op.add_option("-f", "--from", dest="f")
op.add_option("-t", "--to", dest="t")
(opts, extra) = op.parse_args(sys.argv[1:])
if not opts.f or not opts.t:
print(_("You must specify two syntax versions."))
os._exit(1)
try:
fromHandler = makeVersion(opts.f)
toHandler = makeVersion(opts.t)
except KickstartVersionError, e:
print(_("The version %s is not supported by pykickstart") % str(e))
os._exit(1)
fromCmdSet = getCommandSet(fromHandler)
toCmdSet = getCommandSet(toHandler)
bothSet = fromCmdSet & toCmdSet
print(_("The following commands were removed in %s:") % opts.t)
printList(list(fromCmdSet - toCmdSet))
print(_("The following commands were deprecated in %s:") % opts.t)
printList(filter(lambda c: isinstance(toHandler.commands[c], DeprecatedCommand), list(bothSet)))
print(_("The following commands were added in %s:") % opts.t)
printList(list(toCmdSet - fromCmdSet))
print
for cmd in bothSet:
printed = False
newOptList = []
deprecatedOptList = []
removedOptList = []
fromCmd = fromHandler.commands[cmd]
toCmd = toHandler.commands[cmd]
if not hasattr(fromCmd, "op") or not hasattr(toCmd, "op"):
continue
fromOpt = fromCmd.op.option_list
toOpt = toCmd.op.option_list
newOptList = getOptSet(toOpt) - getOptSet(fromOpt)
removedOptList = getOptSet(fromOpt) - getOptSet(toOpt)
deprecatedOptList = getOptSet(filter(lambda cmd: cmd.deprecated == 1, toOpt))
if len(newOptList) > 0:
print(_("The following options were added to the %s command in %s:") % (cmd, opts.t))
printList(list(newOptList))
printed = True
if len(deprecatedOptList) > 0:
print(_("The following options were deprecated from the %s command in %s:") % (cmd, opts.t))
printList(list(deprecatedOptList))
printed = True
if len(removedOptList) > 0:
print(_("The following options were removed from the %s command in %s:") % (cmd, opts.t))
printList(list(removedOptList))
printed = True
if printed:
print
|