Skip to contentSkip to conversation

kconfig: Make diffconfig work with Python 3

PATCH Superseded Johannes Thumshirn 4 participants 6 messages Aug 9, 2013 – Sep 3, 2013 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 kconfig: Make diffconfig work with Python 3

Adjust diffconfig to run cleanly on Python 3 (Tested with 3.3.2) and Python 2 (2.7.5)

---
 scripts/diffconfig |   26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)
scripts/diffconfig +13 -13
index b91f3e3..dd0e75b 100755
@@ -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

#1 lore raw

Hi Johannes.

Can you please resnd and include Michal Marek + kbuild mailing list. Both are added to this mail so you have the addresses.

Sam

Quoted 98 lines · Johannes Thumshirn

Adjust diffconfig to run cleanly on Python 3 (Tested with 3.3.2) and Python 2 (2.7.5)

---
 scripts/diffconfig |   26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)
scripts/diffconfig +13 -14
index b91f3e3..dd0e75b 100755
@@ -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

#2 lore raw
In reply to Johannes Thumshirn
Quoted 97 lines · Johannes Thumshirn

Adjust diffconfig to run cleanly on Python 3 (Tested with 3.3.2) and Python 2 (2.7.5)

---
 scripts/diffconfig |   26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)
scripts/diffconfig +13 -14
index b91f3e3..dd0e75b 100755
@@ -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])
--
Quoted 1 line

1.7.9.5

Sorry I missed this earlier. My new e-mail is [email protected], and my old am.sony.com address doesn't work any more.

Thanks - this looks great.

Acked-by Tim Bird <[email protected]>

-- Tim Bird
Senior Software Engineer, Sony Mobile Architecture Group Chair, CE Workgroup, Linux Foundation

#3 lore raw
Quoted 104 lines · Tim Bird
Quoted 97 lines · Johannes Thumshirn

Adjust diffconfig to run cleanly on Python 3 (Tested with 3.3.2) and Python 2 (2.7.5)

---
 scripts/diffconfig |   26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)
scripts/diffconfig +13 -14
index b91f3e3..dd0e75b 100755
@@ -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])
--
Quoted 1 line

1.7.9.5

Sorry I missed this earlier. My new e-mail is [email protected], and my old am.sony.com address doesn't work any more.

Quoted 7 lines

Thanks - this looks great.

Acked-by Tim Bird <[email protected]>

-- Tim Bird
Senior Software Engineer, Sony Mobile Architecture Group Chair, CE Workgroup, Linux Foundation

Is there any comments from the kbuild maintainers?

#4 lore raw
Quoted 107 lines · Johannes Thumshirn
Quoted 106 lines · Tim Bird
Quoted 97 lines · Johannes Thumshirn

Adjust diffconfig to run cleanly on Python 3 (Tested with 3.3.2) and Python 2 (2.7.5)

---
 scripts/diffconfig |   26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)
scripts/diffconfig +13 -14
index b91f3e3..dd0e75b 100755
@@ -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])
--
Quoted 1 line

1.7.9.5

Sorry I missed this earlier. My new e-mail is [email protected], and my old am.sony.com address doesn't work any more.

Thanks - this looks great.

Quoted 7 lines
Quoted 5 lines

Acked-by Tim Bird <[email protected]>

-- Tim Bird
Senior Software Engineer, Sony Mobile Architecture Group Chair, CE Workgroup, Linux Foundation

Is there any comments from the kbuild maintainers?

I merged a nearly identical patch by Mike Pagano
(http://www.spinics.net/lists/linux-kbuild/msg08503.html), seems like you guys had the same idea at the same time.

Michal

#5 lore raw
Quoted 114 lines · Michal Marek
Quoted 113 lines · Johannes Thumshirn
Quoted 111 lines · Tim Bird
Quoted 97 lines · Johannes Thumshirn

Adjust diffconfig to run cleanly on Python 3 (Tested with 3.3.2) and Python 2 (2.7.5)

---
 scripts/diffconfig |   26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)
scripts/diffconfig +13 -14
index b91f3e3..dd0e75b 100755
@@ -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])
--
Quoted 1 line

1.7.9.5

Sorry I missed this earlier. My new e-mail is [email protected], and my old am.sony.com address doesn't work any more.

Thanks - this looks great.

Acked-by Tim Bird <[email protected]>

-- Tim Bird
Senior Software Engineer, Sony Mobile Architecture Group Chair, CE Workgroup, Linux Foundation

Quoted 7 lines
Quoted 1 line

Is there any comments from the kbuild maintainers?

I merged a nearly identical patch by Mike Pagano
(http://www.spinics.net/lists/linux-kbuild/msg08503.html), seems like you guys had the same idea at the same time.

Michal

lol, ok. At least it doesn't anoy me anymore :-D