From 453d47aec1a82cef50b71befaceae17a3df6e5d3 Mon Sep 17 00:00:00 2001 Message-Id: <453d47aec1a82cef50b71befaceae17a3df6e5d3.1715226424.git.mdw@distorted.org.uk> From: Mark Wooding Date: Fri, 7 Dec 2007 21:16:36 +0000 Subject: [PATCH] Check the minimum required versions of GIT and Python (bug #10218) Organization: Straylight/Edgeware From: Catalin Marinas The patch modifies the setup.py script to check the minimum versions of GIT and Python required for building and installing StGIT. They are currently set to git-1.5.2 and Python-2.4. Signed-off-by: Catalin Marinas --- setup.py | 47 +++++++++++++++++++++++++++++++++++++++++++++-- stgit/version.py | 4 ++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index cf5b1da..7b0ded5 100755 --- a/setup.py +++ b/setup.py @@ -1,9 +1,52 @@ #!/usr/bin/env python -import glob +import sys, glob from distutils.core import setup -from stgit.version import version +from stgit.version import version, git_min_ver, python_min_ver +from stgit.run import Run + +def __version_to_list(version): + """Convert a version string to a list of numbers or strings + """ + ver_list = [] + for p in version.split('.'): + try: + n = int(p) + except ValueError: + n = p + ver_list.append(n) + return ver_list + +def __check_min_version(min_ver, ver): + """Check whether ver is greater or equal to min_ver + """ + min_ver_list = __version_to_list(min_ver) + ver_list = __version_to_list(ver) + return min_ver_list <= ver_list + +def __check_python_version(): + """Check the minimum Python version + """ + pyver = '.'.join(str(n) for n in sys.version_info) + if not __check_min_version(python_min_ver, pyver): + print >> sys.stderr, 'Python version %s or newer required. Found %s' \ + % (python_min_ver, pyver) + sys.exit(1) + +def __check_git_version(): + """Check the minimum GIT version + """ + gitver = Run('git', '--version').output_one_line().split()[2] + if not __check_min_version(git_min_ver, gitver): + print >> sys.stderr, 'GIT version %s or newer required. Found %s' \ + % (git_min_ver, gitver) + sys.exit(1) + +# Check the minimum versions required +if sys.argv[1] in ['install', 'build']: + __check_python_version() + __check_git_version() setup(name = 'stgit', version = version, diff --git a/stgit/version.py b/stgit/version.py index e8dfdaf..edd79e0 100644 --- a/stgit/version.py +++ b/stgit/version.py @@ -1 +1,5 @@ version = '0.13' + +# minimum version requirements +git_min_ver = '1.5.2' +python_min_ver = '2.5' -- [mdw]