From ddbaad0ea618ce3bfd92db2cedc25ccc75a10f13 Mon Sep 17 00:00:00 2001 From: Raul Cuza Date: Thu, 7 Jul 2011 10:24:09 -0400 Subject: Add verification that version_info['micro'] is a single digit. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Because of restrictions in Mac OS X packaging, Bcfg2's Micro and Minor version numbers must be combined into an integer in the OS X package (IFMinorVersion attribute). In order for this to work, the micro version must be an integer, otherwise we'll run into cases where theĀ· IFMinorVersion will not be in sequence with the Bcfg2 Micro and Minor versions. --- tools/export.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'tools') diff --git a/tools/export.py b/tools/export.py index fa75686b6..b1c4d0ecb 100755 --- a/tools/export.py +++ b/tools/export.py @@ -97,24 +97,27 @@ def main(argv=None): vkeys = ["major", "minor", "microbuild"] try: version_info = dict(zip(vkeys,version.split("."))) - if not version_info["major"].isdigit() or not version_info["minor"].isdigit(): + version_info["micro"] = version_info["microbuild"][0:1] + version_info["build"] = version_info["microbuild"][1:] + version_release = "%s.%s.%s" % (version_info['major'], version_info['minor'], version_info['micro']) + + if options.debug: + print "version is %s" % version + print "version_info is %s" % version_info + print "version_release is %s" % version_release + + if not version_info["major"].isdigit() or not version_info["minor"].isdigit() or not version_info["micro"]: raise VersionError('isdigit() test failed') + if version_info["micro"] > 1: + raise VersionError('micro must be single digit because IFMinorVersion restrictions in Mac OS X Packaging') except: print """Version must be of the form Major.Minor.MicroBuild, where Major and Minor are integers and Micro is a single digit optionally followed by Build (i.e. pre##) E.G. 1.2.0pre1 is a valid version. - """ +""" quit() - version_info["micro"] = version_info["microbuild"][0:1] - version_info["build"] = version_info["microbuild"][1:] - version_release = "%s.%s.%s" % (version_info['major'], version_info['minor'], version_info['micro']) - - if options.debug: - print "version is %s" % version - print "version_info is %s" % version_info - print "version_release is %s" % version_release tarname = '/tmp/%s-%s.tar.gz' % (pkgname, version) @@ -199,7 +202,7 @@ E.G. 1.2.0pre1 is a valid version. startswith=True, dryrun=options.dryrun) find_and_replace('osx/Makefile', 'MINOR =', - 'MINOR = %s.%s\n' % (version_info['minor'], version_info['micro']), + 'MINOR = %s%s\n' % (version_info['minor'], version_info['micro']), startswith=True, dryrun=options.dryrun) -- cgit v1.2.3-1-g7c22