Re: [PATCH] kconfig: Make diffconfig work with Python 3

From: Tim Bird
Date: Wed Aug 28 2013 - 10:29:58 EST


On Fri, Aug 9, 2013 at 5:27 AM, Johannes Thumshirn
<johannes.thumshirn@xxxxxx> wrote:
> Adjust diffconfig to run cleanly on Python 3 (Tested with 3.3.2) and
> Python 2 (2.7.5)
>
> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@xxxxxx>
> ---
> scripts/diffconfig | 26 +++++++++++++-------------
> 1 file changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/scripts/diffconfig b/scripts/diffconfig
> index b91f3e3..dd0e75b 100755
> --- a/scripts/diffconfig
> +++ b/scripts/diffconfig
> @@ -10,7 +10,7 @@
> import sys, os
>
> def usage():
> - print """Usage: diffconfig [-h] [-m] [<config1> <config2>]
> + print ("""Usage: diffconfig [-h] [-m] [<config1> <config2>]
>
> Diffconfig is a simple utility for comparing two .config files.
> Using standard diff to compare .config files often includes extraneous and
> @@ -33,7 +33,7 @@ Example usage:
> EXT2_FS y -> n
> LOG_BUF_SHIFT 14 -> 16
> PRINTK_TIME n -> y
> -"""
> +""")
> sys.exit(0)
>
> # returns a dictionary of name/value pairs for config items in the file
> @@ -54,23 +54,23 @@ def print_config(op, config, value, new_value):
> if merge_style:
> if new_value:
> if new_value=="n":
> - print "# CONFIG_%s is not set" % config
> + print("# CONFIG_%s is not set" % config)
> else:
> - print "CONFIG_%s=%s" % (config, new_value)
> + print("CONFIG_%s=%s" % (config, new_value))
> else:
> if op=="-":
> - print "-%s %s" % (config, value)
> + print("-%s %s" % (config, value))
> elif op=="+":
> - print "+%s %s" % (config, new_value)
> + print("+%s %s" % (config, new_value))
> else:
> - print " %s %s -> %s" % (config, value, new_value)
> + print(" %s %s -> %s" % (config, value, new_value))
>
> def main():
> global merge_style
>
> # parse command line args
> if ("-h" in sys.argv or "--help" in sys.argv):
> - usage()
> + usage()
>
> merge_style = 0
> if "-m" in sys.argv:
> @@ -79,13 +79,13 @@ def main():
>
> argc = len(sys.argv)
> if not (argc==1 or argc == 3):
> - print "Error: incorrect number of arguments or unrecognized option"
> + print("Error: incorrect number of arguments or unrecognized option")
> usage()
>
> if argc == 1:
> # if no filenames given, assume .config and .config.old
> build_dir=""
> - if os.environ.has_key("KBUILD_OUTPUT"):
> + if 'KBUILD_OUTPUT' in os.environ:
> build_dir = os.environ["KBUILD_OUTPUT"]+"/"
>
> configa_filename = build_dir + ".config.old"
> @@ -94,8 +94,8 @@ def main():
> configa_filename = sys.argv[1]
> configb_filename = sys.argv[2]
>
> - a = readconfig(file(configa_filename))
> - b = readconfig(file(configb_filename))
> + a = readconfig(open(configa_filename))
> + b = readconfig(open(configb_filename))
>
> # print items in a but not b (accumulate, sort and print)
> old = []
> @@ -121,7 +121,7 @@ def main():
>
> # now print items in b but not in a
> # (items from b that were in a were removed above)
> - new = b.keys()
> + new = list(b.keys())
> new.sort()
> for config in new:
> print_config("+", config, None, b[config])
> --
> 1.7.9.5

Sorry I missed this earlier. My new e-mail is tim.bird@xxxxxxxxxxxxxx, and
my old am.sony.com address doesn't work any more.

Thanks - this looks great.

Acked-by Tim Bird <tim.bird@xxxxxxxxxxxxxx>

-- Tim Bird
Senior Software Engineer, Sony Mobile
Architecture Group Chair, CE Workgroup, Linux Foundation
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/