[PATCH] Python scripts audited for minimum compatible version and checks added.
From: Eric S. Raymond <hidden>
Date: 2016-06-15 22:55:34
Signed-off-by: Eric S. Raymond <redacted> --- contrib/ciabot/ciabot.py | 5 +++++ contrib/fast-import/import-zips.py | 5 +++++ contrib/hg-to-git/hg-to-git.py | 5 +++++ contrib/p4import/git-p4import.py | 5 +++++ contrib/svn-fe/svnrdump_sim.py | 4 ++++ git-p4.py | 5 +++++ git-remote-testgit.py | 5 +++++ git_remote_helpers/git/__init__.py | 4 ++++ 8 files changed, 38 insertions(+)
diff --git a/contrib/ciabot/ciabot.py b/contrib/ciabot/ciabot.py
index bd24395..b55648f 100755
--- a/contrib/ciabot/ciabot.py
+++ b/contrib/ciabot/ciabot.py@@ -50,6 +50,11 @@ import os, sys, commands, socket, urllib from xml.sax.saxutils import escape +if sys.hexversion < 0x02000000: + # The limiter is the xml.sax module + sys.stderr.write("import-zips.py: requires Python 2.0.0 or later.") + sys.exit(1) + # Changeset URL prefix for your repo: when the commit ID is appended # to this, it should point at a CGI that will display the commit # through gitweb or something similar. The defaults will probably
diff --git a/contrib/fast-import/import-zips.py b/contrib/fast-import/import-zips.py
index 82f5ed3..d9ad71d 100755
--- a/contrib/fast-import/import-zips.py
+++ b/contrib/fast-import/import-zips.py@@ -13,6 +13,11 @@ from sys import argv, exit from time import mktime from zipfile import ZipFile +if sys.hexversion < 0x01060000: + # The limiter is the zipfile module + sys.stderr.write("import-zips.py: requires Python 1.6.0 or later.") + sys.exit(1) + if len(argv) < 2: print 'Usage:', argv[0], '<zipfile>...' exit(1)
diff --git a/contrib/hg-to-git/hg-to-git.py b/contrib/hg-to-git/hg-to-git.py
index 046cb2b..9f39ce5 100755
--- a/contrib/hg-to-git/hg-to-git.py
+++ b/contrib/hg-to-git/hg-to-git.py@@ -23,6 +23,11 @@ import os, os.path, sys import tempfile, pickle, getopt import re +if sys.hexversion < 0x02030000: + # The behavior of the pickle module changed significantly in 2.3 + sys.stderr.write("hg-to-git.py: requires Python 2.3 or later.") + sys.exit(1) + # Maps hg version -> git version hgvers = {} # List of children for each hg revision
diff --git a/contrib/p4import/git-p4import.py b/contrib/p4import/git-p4import.py
index b6e534b..fb48e2a 100644
--- a/contrib/p4import/git-p4import.py
+++ b/contrib/p4import/git-p4import.py@@ -14,6 +14,11 @@ import sys import time import getopt +if sys.hexversion < 0x02020000: + # The behavior of the marshal module changed significantly in 2.2 + sys.stderr.write("git-p4import.py: requires Python 2.2 or later.") + sys.exit(1) + from signal import signal, \ SIGPIPE, SIGINT, SIG_DFL, \ default_int_handler
diff --git a/contrib/svn-fe/svnrdump_sim.py b/contrib/svn-fe/svnrdump_sim.py
index 1cfac4a..ed43dbb 100755
--- a/contrib/svn-fe/svnrdump_sim.py
+++ b/contrib/svn-fe/svnrdump_sim.py@@ -7,6 +7,10 @@ to the highest revision that should be available. """ import sys, os +if sys.hexversion < 0x02040000: + # The limiter is the ValueError() calls. This may be too conservative + sys.stderr.write("svnrdump-sim.py: requires Python 2.4 or later.") + sys.exit(1) def getrevlimit(): var = 'SVNRMAX'
diff --git a/git-p4.py b/git-p4.py
index 551aec9..ec060b4 100755
--- a/git-p4.py
+++ b/git-p4.py@@ -12,6 +12,11 @@ import optparse, sys, os, marshal, subprocess, shelve import tempfile, getopt, os.path, time, platform import re, shutil +if sys.hexversion < 0x02040000: + # The limiter is the subprocess module + sys.stderr.write("git-p4.py: requires Python 2.4 or later.") + sys.exit(1) + verbose = False # Only labels/tags matching this will be imported/exported
diff --git a/git-remote-testgit.py b/git-remote-testgit.py
index 5f3ebd2..22d2eb6 100644
--- a/git-remote-testgit.py
+++ b/git-remote-testgit.py@@ -31,6 +31,11 @@ from git_remote_helpers.git.exporter import GitExporter from git_remote_helpers.git.importer import GitImporter from git_remote_helpers.git.non_local import NonLocalGit +if sys.hexversion < 0x01050200: + # os.makedirs() is the limiter + sys.stderr.write("git-remote-testgit.py: requires Python 1.5.2 or later.") + sys.exit(1) + def get_repo(alias, url): """Returns a git repository object initialized for usage. """
diff --git a/git_remote_helpers/git/__init__.py b/git_remote_helpers/git/__init__.py
index e69de29..776e891 100644
--- a/git_remote_helpers/git/__init__.py
+++ b/git_remote_helpers/git/__init__.py@@ -0,0 +1,4 @@ +if sys.hexversion < 0x02040000: + # The limiter is the subprocess module + sys.stderr.write("git_remote_helpers: requires Python 2.4 or later.") + sys.exit(1)
--
1.8.1.rc2
--
<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>
"The state calls its own violence `law', but that of the individual `crime'"
-- Max Stirner