| # Provide some extensions to sanity.bbclass to handle poky-specific conf file upgrades |
| |
| python poky_update_bblayersconf() { |
| current_version = int(d.getVar('POKY_BBLAYERS_CONF_VERSION', True) or -1) |
| latest_version = int(d.getVar('REQUIRED_POKY_BBLAYERS_CONF_VERSION', True) or -1) |
| if current_version == -1 or latest_version == -1: |
| # one or the other missing => malformed configuration |
| raise NotImplementedError("You need to update bblayers.conf manually for this version transition") |
| |
| success = True |
| |
| # check for out of date templateconf.cfg file |
| lines = [] |
| fn = os.path.join(d.getVar('TOPDIR', True), 'conf/templateconf.cfg') |
| |
| lines = sanity_conf_read(fn) |
| index, meta_yocto_line = sanity_conf_find_line(r'^meta-yocto/', lines) |
| if meta_yocto_line: |
| lines[index] = meta_yocto_line.replace('meta-yocto', 'meta-poky') |
| with open(fn, "w") as f: |
| f.write(''.join(lines)) |
| bb.note("Your conf/templateconf.cfg file was updated from meta-yocto to meta-poky") |
| |
| # add any additional layer checks/changes here |
| |
| if success: |
| current_version = latest_version |
| bblayers_fn = bblayers_conf_file(d) |
| lines = sanity_conf_read(bblayers_fn) |
| # sanity_conf_update() will erroneously find a match when the var name |
| # is used in a comment, so do our own here. The code below can be |
| # removed when sanity_conf_update() is fixed in OE-Core. |
| #sanity_conf_update(bblayers_fn, lines, 'POKY_BBLAYERS_CONF_VERSION', current_version) |
| index, line = sanity_conf_find_line(r'^POKY_BBLAYERS_CONF_VERSION', lines) |
| lines[index] = 'POKY_BBLAYERS_CONF_VERSION = "%d"\n' % current_version |
| with open(bblayers_fn, "w") as f: |
| f.write(''.join(lines)) |
| bb.note("Your conf/bblayers.conf has been automatically updated.") |
| if success: |
| return |
| |
| raise NotImplementedError("You need to update bblayers.conf manually for this version transition") |
| } |
| |
| # ensure our function runs after the OE-Core one |
| BBLAYERS_CONF_UPDATE_FUNCS += "conf/bblayers.conf:POKY_BBLAYERS_CONF_VERSION:REQUIRED_POKY_BBLAYERS_CONF_VERSION:poky_update_bblayersconf" |