[Git][security-tracker-team/security-tracker][master] 2 commits: Fix print statements for Python 3.6 compatibility

Salvatore Bonaccorso carnil at debian.org
Sat Aug 18 09:58:54 BST 2018


Salvatore Bonaccorso pushed to branch master at Debian Security Tracker / security-tracker


Commits:
dbfa93c6 by Brian May at 2018-08-06T06:57:35Z
Fix print statements for Python 3.6 compatibility

- - - - -
a65236bb by Salvatore Bonaccorso at 2018-08-18T08:56:42Z
Merge branch 'bam/security-tracker-update_python_print'

- - - - -


16 changed files:

- bin/apt-update-file
- bin/check-syntax
- bin/list-queue
- bin/mass-bug-filer
- bin/show-debsecan
- bin/src2bin_text.py
- bin/tracker_service.py
- bin/update-db
- lib/python/debian_support.py
- lib/python/secmaster.py
- lib/python/sectracker/repo.py
- lib/python/sectracker/xcollections.py
- lib/python/sectracker_test/run.py
- lib/python/sectracker_test/test_analyzers.py
- lib/python/sectracker_test/test_parsers.py
- lib/python/security_db.py


Changes:

=====================================
bin/apt-update-file
=====================================
--- a/bin/apt-update-file
+++ b/bin/apt-update-file
@@ -1,6 +1,7 @@
 #!/usr/bin/python
 
 # This script is mainly used to demo the updateFile function.
+from __future__ import print_function
 import os
 import os.path
 import string
@@ -28,7 +29,7 @@ if len(sys.argv) != 3:
 try:
     debian_support.updateFile(sys.argv[1], sys.argv[2])
 except:
-    print >>sys.stderr, \
-        "error: in download of %s to %s:" % (repr(sys.argv[1]), 
-                                             repr(sys.argv[2]))
+    print("error: in download of %s to %s:" % (repr(sys.argv[1]),
+                                             repr(sys.argv[2])),
+          file=sys.stderr)
     raise


=====================================
bin/check-syntax
=====================================
--- a/bin/check-syntax
+++ b/bin/check-syntax
@@ -75,7 +75,7 @@ def parse_file(name, filename):
 
 if len(sys.argv) == 2 and sys.argv[1] == "--get":
     l = [src["name"] for src in sources]
-    print ' '.join(l)
+    print(' '.join(l))
     sys.exit(0)
 
 if len(sys.argv) != 3 or find_source(sys.argv[1]) == None:


=====================================
bin/list-queue
=====================================
--- a/bin/list-queue
+++ b/bin/list-queue
@@ -224,5 +224,5 @@ def main():
         "version" : 1,
         "binary" : pkgwithdist(debs, dists),
         }
-    print json.dumps(result)
+    print(json.dumps(result))
 main()


=====================================
bin/mass-bug-filer
=====================================
--- a/bin/mass-bug-filer
+++ b/bin/mass-bug-filer
@@ -1,4 +1,5 @@
 #!/usr/bin/python
+from __future__ import print_function
 
 import sys
 import apt
@@ -7,7 +8,7 @@ import os
 import re
 
 if len(sys.argv) < 3:
-    print >>sys.stderr, "usage: %s FILE PACKAGE..." % sys.argv[0]
+    print("usage: %s FILE PACKAGE..." % sys.argv[0], file=sys.stderr)
     sys.exit(1)
 
 message_file = file(sys.argv[1])
@@ -17,7 +18,7 @@ cache = apt.Cache()
 errors = False
 for p in packages:
     if not cache.has_key(p):
-        print >>sys.stderr, "error: no such package:", p
+        print("error: no such package:", p, file=sys.stderr)
         errors = True
 if errors:
     sys.exit(2)
@@ -37,7 +38,7 @@ for line in source_lines:
         
     if line == '\n':
         if h_subject is None:
-            print >>sys.stderr, "error: missing Subject header"
+            print("error: missing Subject header", file=sys.stderr)
             sys.exit(2)
         state = 1
         continue
@@ -45,7 +46,7 @@ for line in source_lines:
     # state == 0
     match = re_header.match(line)
     if match is None:
-        print >>sys.stderr, "error: invalid line:", line
+        print("error: invalid line:", line, file=sys.stderr)
         sys.exit(2)
     (k, v) = match.groups()
     if k == "Subject":
@@ -54,7 +55,7 @@ for line in source_lines:
     if h_bug.has_key(k):
         h_bug[k] = v
         continue
-    print >>sys.stderr, "error: invalid header field:", k
+    print("error: invalid header field:", k, file=sys.stderr)
     sys.exit(2)
 
 def make_message(pkg):
@@ -79,7 +80,7 @@ for p in packages:
     sendmail(make_message(p))
 
 for p in packages:
-    print "\t- %s <unfixed> (bug filed)" % p
+    print("\t- %s <unfixed> (bug filed)" % p)
 
 
 


=====================================
bin/show-debsecan
=====================================
--- a/bin/show-debsecan
+++ b/bin/show-debsecan
@@ -7,7 +7,7 @@ import zlib
 from cStringIO import StringIO
 
 if len(sys.argv) not in (2, 3):
-    print "usage: show-debsecan DATABASE-PATH [BLOB-NAME]"
+    print("usage: show-debsecan DATABASE-PATH [BLOB-NAME]")
     sys.exit(1)
 
 db = apsw.Connection(sys.argv[1])
@@ -15,7 +15,7 @@ c = db.cursor()
 
 if len(sys.argv) == 2:
     for (name,) in c.execute("SELECT name FROM debsecan_data ORDER BY name"):
-        print name
+        print(name)
 else: # len(sys.argv) == 3
     name = sys.argv[2]
     for (data,) in c.execute("SELECT data FROM debsecan_data WHERE name = ?",
@@ -47,9 +47,9 @@ else: # len(sys.argv) == 3
             break
         (package, vuln, rest) = line.split(',', 2)
         vuln = vuln_names[int(vuln)]
-        print "%s,%s,%s" % (package, vuln, rest)
+        print("%s,%s,%s" % (package, vuln, rest))
 
     for line in data:
-        print line,
+        print(line)
 
 db.close()


=====================================
bin/src2bin_text.py
=====================================
--- a/bin/src2bin_text.py
+++ b/bin/src2bin_text.py
@@ -68,4 +68,4 @@ if __name__ == '__main__':
     for line in fileinput.input():
        if 'We recommend that you upgrade your' in line:
 	 line = word_wrap("%s: %s.\n" % (line[:-2],change(line,exclude)),width=73)
-       print line,
+       print(line)


=====================================
bin/tracker_service.py
=====================================
--- a/bin/tracker_service.py
+++ b/bin/tracker_service.py
@@ -12,8 +12,8 @@ import email.utils
 
 if __name__ == "__main__":
     if len(sys.argv) not in (3, 5):
-        print "usage: python tracker_service.py SOCKET-PATH DATABASE-PATH"
-        print "       python tracker_service.py URL HOST PORT DATABASE-PATH"
+        print("usage: python tracker_service.py SOCKET-PATH DATABASE-PATH")
+        print("       python tracker_service.py URL HOST PORT DATABASE-PATH")
         sys.exit(1)
     if len(sys.argv) == 3:
         socket_name = sys.argv[1]


=====================================
bin/update-db
=====================================
--- a/bin/update-db
+++ b/bin/update-db
@@ -1,4 +1,5 @@
 #!/usr/bin/python
+from __future__ import print_function
 
 import os
 import os.path
@@ -40,20 +41,20 @@ try:
     warnings = db.readBugs(cursor, 'data')
 except SyntaxError as e:
     if e.filename is None or e.lineno is None:
-        print "error:", e
+        print("error:", e)
     else:
-        print "%s:%d: %s" % (e.filename, e.lineno, e.msg)
+        print("%s:%d: %s" % (e.filename, e.lineno, e.msg))
     sys.exit(1)
 except debian_support.ParseError as e:
     e.printOut(sys.stderr)
     sys.exit(1)
 except security_db.InsertError as e:
     for err in e.errors:
-        print err
+        print(err)
     sys.exit(1)
 if warnings:
     for x in warnings:
-        print x
+        print(x)
     sys.exit(1)
 
 # Packages
@@ -73,7 +74,7 @@ if new_file:
 warnings = db.calculateVulnerabilities(cursor)
 if warnings:
     for x in warnings:
-        print x
+        print(x)
     sys.exit(1)
 
 # debsecan data


=====================================
lib/python/debian_support.py
=====================================
--- a/lib/python/debian_support.py
+++ b/lib/python/debian_support.py
@@ -14,6 +14,7 @@
 # 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
+from __future__ import print_function
 
 """This module implements facilities to deal with Debian-specific metadata."""
 
@@ -320,7 +321,7 @@ def updateFile(remote, local, verbose=None):
         local_file = file(local)
     except IOError:
         if verbose:
-            print "updateFile: no local copy, downloading full file"
+            print("updateFile: no local copy, downloading full file")
         return downloadFile(remote, local)
 
     lines = local_file.readlines()
@@ -338,11 +339,11 @@ def updateFile(remote, local, verbose=None):
         index_fields = list(PackageFile(index_name, index_url))
     except ParseError:
         if verbose:
-            print "updateFile: could not interpret patch index file"
+            print("updateFile: could not interpret patch index file")
         return downloadFile(remote, local)
     except IOError:
         if verbose:
-            print "updateFile: could not download patch index file"
+            print("updateFile: could not download patch index file")
         return downloadFile(remote, local)
 
     for fields in index_fields:
@@ -351,7 +352,7 @@ def updateFile(remote, local, verbose=None):
                 (remote_hash, remote_size) = re_whitespace.split(value)
                 if local_hash == remote_hash:
                     if verbose:
-                        print "updateFile: local file is up-to-date"
+                        print("updateFile: local file is up-to-date")
                     return lines
                 continue
 
@@ -379,16 +380,16 @@ def updateFile(remote, local, verbose=None):
                 continue
             
             if verbose:
-                print "updateFile: field %s ignored" % `field`
+                print("updateFile: field %s ignored" % repr(field))
         
     if not patches_to_apply:
         if verbose:
-            print "updateFile: could not find historic entry", local_hash
+            print("updateFile: could not find historic entry", local_hash)
         return downloadFile(remote, local)
 
     for patch_name in patches_to_apply:
         if verbose:
-            print "updateFile: downloading patch " + `patch_name`
+            print("updateFile: downloading patch " + repr(patch_name))
         try:
             patch_contents = downloadGunzipLines(remote + '.diff/' + patch_name
                                                  + '.gz')
@@ -396,15 +397,15 @@ def updateFile(remote, local, verbose=None):
             return downloadFile(remote, local)
         if readLinesSHA1(patch_contents ) != patch_hashes[patch_name]:
             if verbose:
-                print "updateFile: patch was garbled: " + repr(patch_name)
+                print("updateFile: patch was garbled: " + repr(patch_name))
             return downloadFile(remote, local)
         patchLines(lines, patchesFromEdScript(patch_contents))
         
     new_hash = readLinesSHA1(lines)
     if new_hash != remote_hash:
         if verbose:
-            print "updateFile: patch failed, got %s instead of %s" \
-                % (new_hash, remote_hash)
+            print("updateFile: patch failed, got %s instead of %s"
+                % (new_hash, remote_hash))
         return downloadFile(remote, local)
 
     replaceFile(lines, local)


=====================================
lib/python/secmaster.py
=====================================
--- a/lib/python/secmaster.py
+++ b/lib/python/secmaster.py
@@ -15,6 +15,7 @@
 # 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
+from __future__ import print_function
 
 # Name of the security-master host
 HOST = "seger.debian.org"
@@ -55,4 +56,4 @@ def listqueue():
 
 if __name__ == "__main__":
     for pkg, archs in listqueue():
-        print " ".join(pkg.astuple()), "=>", ", ".join(archs)
+        print(" ".join(pkg.astuple()), "=>", ", ".join(archs))


=====================================
lib/python/sectracker/repo.py
=====================================
--- a/lib/python/sectracker/repo.py
+++ b/lib/python/sectracker/repo.py
@@ -251,7 +251,7 @@ class RepoCollection(object):
 
     def warn(self, msg):
         if self.verbose:
-            print msg
+            print(msg)
 
 class Config(object):
     def __init__(self, config, root):


=====================================
lib/python/sectracker/xcollections.py
=====================================
--- a/lib/python/sectracker/xcollections.py
+++ b/lib/python/sectracker/xcollections.py
@@ -72,7 +72,7 @@ def namedtuple(typename, field_names, verbose=False):
     for i, name in enumerate(field_names):
         template += '        %s = _property(_itemgetter(%d))\n' % (name, i)
     if verbose:
-        print template
+        print(template)
 
     # Execute the template string in a temporary namespace and
     # support tracing utilities by setting a value for frame.f_globals['__name__']


=====================================
lib/python/sectracker_test/run.py
=====================================
--- a/lib/python/sectracker_test/run.py
+++ b/lib/python/sectracker_test/run.py
@@ -14,6 +14,7 @@
 # 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
+from __future__ import print_function
 
 if __name__ != "__main__":
     raise Exception("run must be executed directly")
@@ -45,13 +46,13 @@ for name in files:
     if name[-3:] != ".py" or name == "run.py":
         continue
     fullpath = "%s/%s" % (ourpath, name)
-    print "* Running", name
+    print("* Running", name)
     p = subprocess.Popen(("python", "--", fullpath), env=env)
     ret = p.wait()
     if ret != 0:
-        print "Test exited with status", ret
-        print
+        print("Test exited with status", ret)
+        print()
     errors = errors or ret != 0
 if errors:
-    print "ERROR: some tests aborted with errors"
+    print("ERROR: some tests aborted with errors")
     sys.exit(1)


=====================================
lib/python/sectracker_test/test_analyzers.py
=====================================
--- a/lib/python/sectracker_test/test_analyzers.py
+++ b/lib/python/sectracker_test/test_analyzers.py
@@ -14,6 +14,7 @@
 # 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
+from __future__ import print_function
 
 import os
 
@@ -43,7 +44,7 @@ if False:
     for r, pv in rpv.items():
         for p, v in pv.items():
             if len(v) > 1:
-                print r, p, v
+                print(r, p, v)
 
 # copysources
 copysrc = copysources(bugdb, diag)
@@ -54,12 +55,12 @@ assert "DSA-1472-1" in copysrc["CVE-2008-0225"]
 vdb = fixedversions(bugdb, copysrc, rpv, diag)
 if False:
     for v in vdb:
-        print v
+        print(v)
 
 assert bestversion(c, "sid", "bash").name == "bash"
 assert bestversion(c, "sid", "bash", ("unsupported", "supported")).name \
     == "bash"
 
 for err in diag.messages():
-    print "%s:%d: %s: %s" % (err.file, err.line, err.level, err.message)
+    print("%s:%d: %s: %s" % (err.file, err.line, err.level, err.message))
 assert not diag.messages()


=====================================
lib/python/sectracker_test/test_parsers.py
=====================================
--- a/lib/python/sectracker_test/test_parsers.py
+++ b/lib/python/sectracker_test/test_parsers.py
@@ -28,22 +28,22 @@ assert "bash" in o["bash"].binary
 safeunlink("../../data/CVE/list" + EXTENSION)
 o = cvelist("../../data/CVE/list")
 for err in o.messages:
-    print "%s:%d: %s: %s" % (err.file, err.line, err.level, err.message)
+    print("%s:%d: %s: %s" % (err.file, err.line, err.level, err.message))
 
 safeunlink("../../data/DSA/list" + EXTENSION)
 o = dsalist("../../data/DSA/list")
 for err in o.messages:
-    print "%s:%d: %s: %s" % (err.file, err.line, err.level, err.message)
+    print("%s:%d: %s: %s" % (err.file, err.line, err.level, err.message))
 
 safeunlink("../../data/DTSA/list" + EXTENSION)
 o = dtsalist("../../data/DTSA/list")
 for err in o.messages:
-    print "%s:%d: %s: %s" % (err.file, err.line, err.level, err.message)
+    print("%s:%d: %s: %s" % (err.file, err.line, err.level, err.message))
 
 safeunlink("../../data/DLA/list" + EXTENSION)
 o = dlalist("../../data/DLA/list")
 for err in o.messages:
-    print "%s:%d: %s: %s" % (err.file, err.line, err.level, err.message)
+    print("%s:%d: %s: %s" % (err.file, err.line, err.level, err.message))
 
 Message = sectracker.diagnostics.Message
 for (line, res, xmsgs) in [


=====================================
lib/python/security_db.py
=====================================
--- a/lib/python/security_db.py
+++ b/lib/python/security_db.py
@@ -14,6 +14,7 @@
 # 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
+from __future__ import print_function
 
 """This module implements a small database for tracking security bugs.
 
@@ -268,8 +269,8 @@ class DB:
                 c.execute("PRAGMA user_version = 22")
             elif v != self.schema_version:
                 if self.verbose:
-                    print "DB: schema version mismatch: expected %d, got %d" \
-                          % (self.schema_version, v)
+                    print("DB: schema version mismatch: expected %d, got %d"
+                          % (self.schema_version, v))
                 raise SchemaMismatch(repr(v))
             self._initViews(c)
             return
@@ -633,7 +634,7 @@ class DB:
 
         def do_parse(packages):
             if self.verbose:
-                print "    reading " + `filename`
+                print("    reading " + repr(filename))
 
             re_source = re.compile\
                 (r'^([a-zA-Z0-9.+-]+)(?:\s+\(([a-zA-Z0-9.+:~-]+)\))?$')
@@ -713,13 +714,13 @@ class DB:
         """Reads a directory of package files."""
 
         if self.verbose:
-            print "readPackages:"
+            print("readPackages:")
 
         self._readSourcePackages(cursor, directory)
         self._readBinaryPackages(cursor, directory)
 
         if self.verbose:
-            print "  finished"
+            print("  finished")
 
     def _readSourcePackages(self, cursor, directory):
         """Reads from directory with source package files."""
@@ -727,7 +728,7 @@ class DB:
         re_sources = re.compile(r'.*/([a-z-]+)_([a-z-]*)_([a-z-]+)_Sources$')
 
         if self.verbose:
-            print "  reading source packages"
+            print("  reading source packages")
 
         for filename in glob.glob(directory + '/*_Sources'):
             match = re_sources.match(filename)
@@ -768,7 +769,7 @@ class DB:
             r'.*/([a-z-]+)_([a-z-]*)_([a-z-]+)_([a-z0-9-]+)_Packages$')
 
         if self.verbose:
-            print "  reading binary packages"
+            print("  reading binary packages")
 
         # First check for any changes.
 
@@ -786,7 +787,7 @@ class DB:
                 break
         if not changed:
             if self.verbose:
-                print "    finished (no changes)"
+                print("    finished (no changes)")
             return
 
         # Real import.  We have to re-read all Packages files even if
@@ -825,11 +826,11 @@ class DB:
 
         if unchanged:
             if self.verbose:
-                print "    finished (no changes)"
+                print("    finished (no changes)")
             return
 
         if self.verbose:
-            print "    deleting old data"
+            print("    deleting old data")
         cursor.execute("DELETE FROM binary_packages")
         self._clearVersions(cursor)
 
@@ -847,7 +848,7 @@ class DB:
                 yield key + (archs,)
 
         if self.verbose:
-            print "    storing binary package data"
+            print("    storing binary package data")
 
         cursor.executemany(
             """INSERT INTO binary_packages
@@ -880,7 +881,7 @@ class DB:
 
     def readBugs(self, cursor, path):
         if self.verbose:
-            print "readBugs:"
+            print("readBugs:")
 
         def clear_db(cleared=[False]):
             # Avoid clearing the database multiple times.
@@ -908,7 +909,7 @@ class DB:
             clear_db()
 
             if self.verbose:
-                print "  reading " + `source.name`
+                print("  reading " + repr(source.name))
 
             for bug in source:
                 try:
@@ -945,7 +946,7 @@ class DB:
                 break
         if unchanged:
             if self.verbose:
-                print "  finished (no changes)"
+                print("  finished (no changes)")
             return
 
         clear_db()
@@ -966,13 +967,13 @@ class DB:
             read_one(cls(path + srcpath))
 
         if self.verbose:
-            print "  update removed packages"
+            print("  update removed packages")
         self.readRemovedPackages(cursor, path + source_removed_packages)
 
         errors = []
 
         if self.verbose:
-            print "  check cross-references"
+            print("  check cross-references")
 
         for (bug,) in cursor.execute(
             """SELECT DISTINCT target FROM bugs_xref
@@ -982,7 +983,7 @@ class DB:
             errors.append("reference to unknown bug " + bug)
 
         if self.verbose:
-            print "  copy notes"
+            print("  copy notes")
 
         # Copy notes from DSA/DTSA/DLA to CVE.
 
@@ -1037,7 +1038,7 @@ class DB:
             raise InsertError(errors)
 
         if self.verbose:
-            print "  finished"
+            print("  finished")
 
     def availableReleases(self, cursor=None):
         """Returns a list of tuples (RELEASE, ARCHIVE,
@@ -1088,15 +1089,15 @@ class DB:
         """Updates the linear version table."""
 
         if self.verbose:
-            print "updateVersions:"
+            print("updateVersions:")
 
         for x in cursor.execute("SELECT * FROM version_linear_order LIMIT 1"):
             if self.verbose:
-                print "  finished (no changes)"
+                print("  finished (no changes)")
             return
 
         if self.verbose:
-            print "  reading"
+            print("  reading")
 
         versions = []
         for (v,) in cursor.execute(
@@ -1107,18 +1108,18 @@ class DB:
             versions.append(debian_support.Version(v))
 
         if self.verbose:
-            print "  calculating linear order"
+            print("  calculating linear order")
         versions.sort()
 
         if self.verbose:
-            print "  storing linear order"
+            print("  storing linear order")
         for v in versions:
             cursor.execute(
                 "INSERT INTO version_linear_order (version) VALUES (?)",
                 (str(v),))
 
         if self.verbose:
-            print "  updating package notes"
+            print("  updating package notes")
         cursor.execute(
             """UPDATE package_notes
             SET fixed_version_id = (SELECT id FROM version_linear_order
@@ -1126,14 +1127,14 @@ class DB:
             WHERE fixed_version IS NOT NULL""")
 
         if self.verbose:
-            print "  updating source packages"
+            print("  updating source packages")
         cursor.execute(
             """UPDATE source_packages
             SET version_id = (SELECT id FROM version_linear_order
             WHERE version = source_packages.version)""")
 
         if self.verbose:
-            print "  finished"
+            print("  finished")
 
     def calculateVulnerabilities(self, cursor):
         """Calculate vulnerable packages.
@@ -1149,8 +1150,8 @@ class DB:
         self._updateVersions(cursor)
 
         if self.verbose:
-            print "calculateVulnerabilities:"
-            print "  checking version consistency in package notes"
+            print("calculateVulnerabilities:")
+            print("  checking version consistency in package notes")
 
         # The following does not work because stable->security ->
         # testing -> unstable propagation is no longer available.
@@ -1175,7 +1176,7 @@ class DB:
                               % (b.source_file, b.source_line, `rel`, rel_ver))
 
         if self.verbose:
-            print "  checking source packages"
+            print("  checking source packages")
         cursor.execute(
             """UPDATE package_notes SET package_kind = 'unknown'
             WHERE package_kind IN ('source', 'binary')""")
@@ -1206,13 +1207,13 @@ class DB:
             return result
 
         if self.verbose:
-            print "  remove old status"
+            print("  remove old status")
         cursor.execute("DELETE FROM source_package_status")
         cursor.execute("DELETE FROM bug_status")
 
         if self.verbose:
-            print "  calculate package status"
-            print "    source packages (unqualified)"
+            print("  calculate package status")
+            print("    source packages (unqualified)")
 
         cursor.execute(
             """INSERT INTO source_package_status
@@ -1229,7 +1230,7 @@ class DB:
         # therefore we use INSERT OR REPLACE.
 
         if self.verbose:
-            print "    source packages (qualified)"
+            print("    source packages (qualified)")
         cursor.execute(
             """INSERT OR REPLACE INTO source_package_status
             SELECT n.bug_name, p.rowid,
@@ -1244,7 +1245,7 @@ class DB:
 
         # assign nvd urgencies to those that have not yet been assigned
         if self.verbose:
-            print "    insert nvd urgencies"
+            print("    insert nvd urgencies")
         cursor.execute(
             """REPLACE INTO source_package_status
             SELECT s.bug_name, s.package, s.vulnerable,
@@ -1271,7 +1272,7 @@ class DB:
         # Calculate the release-specific bug status.
 
         if self.verbose:
-            print "  calculate release status"
+            print("  calculate release status")
 
         c = self.cursor()
 
@@ -2095,13 +2096,13 @@ class DB:
                     AND sp.release = binary_packages.release
                     AND sp.archive = binary_packages.archive)
             """):
-            print "error: binary package without source package"
-            print "  binary package:", package
-            print "  release:", release
+            print("error: binary package without source package")
+            print("  binary package:", package)
+            print("  release:", release)
             if archive:
-                print "  archive:", archive
-            print "  architecture:", architecture
-            print "  missing source package:", source
+                print("  archive:", archive)
+            print("  architecture:", architecture)
+            print("  missing source package:", source)
 
         for (package, release, archive, architecture, version,
              source, source_version) \
@@ -2118,15 +2119,15 @@ class DB:
                            debian_support.Version(source_version))
             assert relation != 0
             if relation <= 0:
-                print "error: binary package is older than source package"
+                print("error: binary package is older than source package")
             else:
-                print "warning: binary package is newer than source package"
-            print "  binary package: %s (%s)" % (package, version)
-            print "  source package: %s (%s)" % (source, source_version)
-            print "  release:", release
+                print("warning: binary package is newer than source package")
+            print("  binary package: %s (%s)" % (package, version))
+            print("  source package: %s (%s)" % (source, source_version))
+            print("  release:", release)
             if archive:
-                print "  archive:", archive
-            print "  architecture:", architecture
+                print("  archive:", archive)
+            print("  architecture:", architecture)
 
 def test():
     assert mergeLists(u'',u'') == [], mergeLists(u'', u'')



View it on GitLab: https://salsa.debian.org/security-tracker-team/security-tracker/compare/639397cce949f50ba509a9b243bfb2f3d633da12...a65236bb767326e1703f288bde3cc3694d146c2d

-- 
View it on GitLab: https://salsa.debian.org/security-tracker-team/security-tracker/compare/639397cce949f50ba509a9b243bfb2f3d633da12...a65236bb767326e1703f288bde3cc3694d146c2d
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-security-tracker-commits/attachments/20180818/0252366b/attachment-0001.html>


More information about the debian-security-tracker-commits mailing list