~fginther/jenkins-launchpad-plugin/mir-abi-version-patch

« back to all changes in this revision

Viewing changes to jlp/commands/autoland.py

  • Committer: Francis Ginther
  • Date: 2013-09-17 19:13:29 UTC
  • Revision ID: francis.ginther@canonical.com-20130917191329-ikyo3gh10pxd2jlu
Add mir abi patching.

Show diffs side-by-side

added added

removed removed

Lines of Context:
69
69
    launchpadutils.change_mp_status(mp, mp_state, message, args['revision'],
70
70
                                    vote)
71
71
 
 
72
def file_replace(filename, source, dest):
 
73
    data = file(filename).read()
 
74
    data = data.replace(source, dest)
 
75
    file(filename, 'w').write(data)
 
76
 
 
77
def mir_patch_abi_version(source_dir):
 
78
    # Get current ABI
 
79
    data = file(os.path.join(source_dir, 'src/server/CMakeLists.txt')).read()
 
80
    r = re.search('set\\s*\\(MIRSERVER_ABI\\s*(\\s*\\d+)\\s*\\)', data)
 
81
    current_abi = int(r.groups()[0])
 
82
    new_abi = current_abi + 1
 
83
    logger.debug('Current ABI version: %s', current_abi)
 
84
    logger.debug('Current ABI version: %s', new_abi)
 
85
 
 
86
    # Update build system
 
87
    file_replace(os.path.join(source_dir, 'src/server/CMakeLists.txt'),
 
88
                 r.string[r.start():r.end()],
 
89
                 'set(MIRSERVER_ABI %d)' % new_abi)
 
90
 
 
91
    # Update packaging
 
92
    os.system('cd %s;bzr mv debian/libmirserver%d.install debian/libmirserver%d.install' % (source_dir, current_abi, new_abi))
 
93
    file_replace(
 
94
        os.path.join(source_dir, 'debian/libmirserver%d.install' % new_abi),
 
95
        '.so.%d' % current_abi,
 
96
        '.so.%d' % new_abi)
 
97
    file_replace(
 
98
        os.path.join(source_dir, 'debian/control'),
 
99
        'libmirserver%d' % current_abi,
 
100
        'libmirserver%d' % new_abi)
 
101
 
 
102
    #os.system('ls %s/debian' % source_dir)
 
103
    #os.system('cat %s/debian/control' % source_dir)
72
104
 
73
105
def merge_and_commit(mp, args):
74
106
    #if there is no reviewed_revid then something went wrong
98
130
                     'source': str(mp.source_branch.bzr_identity),
99
131
                     'target': str(mp.target_branch.bzr_identity)})
100
132
        target.merge(source, str(mp.reviewed_revid))
 
133
        logger.debug('Patching mir abi version')
 
134
        mir_patch_abi_version(target.temp_tree_dir)
101
135
        reviews = launchpadutils.get_reviews(mp)
102
136
        logger.debug('Commiting previous merge')
103
137
        commit_message = launchpadutils.get_commit_message(