| Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 1 | # Provide some extensions to sanity.bbclass to handle poky-specific conf file upgrades | 
 | 2 |  | 
 | 3 | python poky_update_bblayersconf() { | 
 | 4 |     current_version = int(d.getVar('POKY_BBLAYERS_CONF_VERSION', True) or -1) | 
 | 5 |     latest_version = int(d.getVar('REQUIRED_POKY_BBLAYERS_CONF_VERSION', True) or -1) | 
 | 6 |     if current_version == -1 or latest_version == -1: | 
 | 7 |         # one or the other missing => malformed configuration | 
 | 8 |         raise NotImplementedError("You need to update bblayers.conf manually for this version transition") | 
 | 9 |  | 
 | 10 |     success = True | 
 | 11 |  | 
 | 12 |     # check for out of date templateconf.cfg file | 
 | 13 |     lines = [] | 
 | 14 |     fn = os.path.join(d.getVar('TOPDIR', True), 'conf/templateconf.cfg') | 
 | 15 |  | 
 | 16 |     lines = sanity_conf_read(fn) | 
 | 17 |     index, meta_yocto_line = sanity_conf_find_line(r'^meta-yocto/', lines) | 
 | 18 |     if meta_yocto_line: | 
 | 19 |         lines[index] = meta_yocto_line.replace('meta-yocto', 'meta-poky') | 
 | 20 |         with open(fn, "w") as f: | 
 | 21 |             f.write(''.join(lines)) | 
 | 22 |         bb.note("Your conf/templateconf.cfg file was updated from meta-yocto to meta-poky") | 
 | 23 |  | 
 | 24 |     # add any additional layer checks/changes here | 
 | 25 |  | 
 | 26 |     if success: | 
 | 27 |         current_version = latest_version | 
 | 28 |         bblayers_fn = bblayers_conf_file(d) | 
 | 29 |         lines = sanity_conf_read(bblayers_fn) | 
 | 30 |         # sanity_conf_update() will erroneously find a match when the var name | 
 | 31 |         # is used in a comment, so do our own here. The code below can be | 
 | 32 |         # removed when sanity_conf_update() is fixed in OE-Core. | 
 | 33 |         #sanity_conf_update(bblayers_fn, lines, 'POKY_BBLAYERS_CONF_VERSION', current_version) | 
 | 34 |         index, line = sanity_conf_find_line(r'^POKY_BBLAYERS_CONF_VERSION', lines) | 
 | 35 |         lines[index] = 'POKY_BBLAYERS_CONF_VERSION = "%d"\n' % current_version | 
 | 36 |         with open(bblayers_fn, "w") as f: | 
 | 37 |             f.write(''.join(lines)) | 
 | 38 |         bb.note("Your conf/bblayers.conf has been automatically updated.") | 
 | 39 |     if success: | 
 | 40 |         return | 
 | 41 |  | 
 | 42 |     raise NotImplementedError("You need to update bblayers.conf manually for this version transition") | 
 | 43 | } | 
 | 44 |  | 
 | 45 | # ensure our function runs after the OE-Core one | 
 | 46 | BBLAYERS_CONF_UPDATE_FUNCS += "conf/bblayers.conf:POKY_BBLAYERS_CONF_VERSION:REQUIRED_POKY_BBLAYERS_CONF_VERSION:poky_update_bblayersconf" |