# HG changeset patch # User Gilles Duboscq # Date 1445271716 -7200 # Node ID af01df1b8f0d5465de8454bd858fb5f1fcf05767 # Parent a269bc93625bdc9d99a8b399f65d537d69070cf4 Fix release file patching diff -r a269bc93625b -r af01df1b8f0d mx.jvmci/mx_jvmci.py --- a/mx.jvmci/mx_jvmci.py Fri Oct 16 15:52:45 2015 -0700 +++ b/mx.jvmci/mx_jvmci.py Mon Oct 19 18:21:56 2015 +0200 @@ -29,6 +29,7 @@ from argparse import ArgumentParser, REMAINDER import xml.dom.minidom import json, textwrap +from collections import OrderedDict import mx import mx_unittest @@ -529,30 +530,6 @@ for line in jvmCfgLines: fp.write(line) - # patch 'release' file (append jvmci revision) - releaseFile = join(jdkDir, 'release') - if exists(releaseFile): - releaseFileLines = [] - with open(releaseFile) as f: - for line in f: - releaseFileLines.append(line) - - if mx.get_os() != 'windows': - os.chmod(releaseFile, JDK_UNIX_PERMISSIONS_FILE) - with open(releaseFile, 'w') as fp: - for line in releaseFileLines: - if line.startswith("SOURCE="): - try: - sourceLine = line[0:-2] # remove last char - hgcfg = mx.HgConfig() - hgcfg.check() - revision = hgcfg.tip('.')[:12] # take first 12 chars - fp.write(sourceLine + ' jvmci:' + revision + '\"\n') - except: - fp.write(line) - else: - fp.write(line) - # Install a copy of the disassembler library try: hsdis([], copyToDir=vmLibDirInJdk(jdkDir)) @@ -570,6 +547,41 @@ if exists(dist.path): _installDistInJdks(jdkDist) + # patch 'release' file (append jvmci revision) + releaseFile = join(jdkDir, 'release') + if exists(releaseFile): + releaseFileLines = [] + with open(releaseFile) as f: + for line in f: + releaseFileLines.append(line) + + if mx.get_os() != 'windows': + os.chmod(releaseFile, JDK_UNIX_PERMISSIONS_FILE) + print("open", releaseFile) + with open(releaseFile, 'w') as fp: + for line in releaseFileLines: + timmedLine = line.strip() + if timmedLine.startswith('SOURCE="') and timmedLine.endswith('"'): + try: + versions = OrderedDict() + for p in timmedLine[len('SOURCE="'):-len('"')].split(' '): + if p: + idx = p.index(':') + versions[p[:idx]] = p[idx+1:] + if _suite.vc: + versions['jvmci'] = _suite.vc.parent(_suite.dir)[:12] + else: + versions['jvmci'] = "unknown" + if 'hotspot' in versions: + del versions['hotspot'] + fp.write('SOURCE=" ' + ' '.join((k + ":" + v for k, v in versions.iteritems())) + '"' + os.linesep) + mx.logv("Updating " + releaseFile) + except: + mx.warn("Exception while updaing release file") + fp.write(line) + else: + fp.write(line) + if vmToCheck is not None: jvmCfg = getVmCfgInJdk(jdkDir) found = False