devtool: sdk-update: fix not using updateserver config file option

We read the updateserver setting from the config file but we never
actually used that value - the code then went on to use only the value
supplied on the command line.

Fix courtesy of Dmitry Rozhkov <dmitry.rozhkov@intel.com>

(From OE-Core rev: 1c85237803038fba539d5b03bf4de39d99380684)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2016-01-07 00:15:45 +13:00 committed by Richard Purdie
parent 9348c91ce1
commit efead10e6f

View File

@ -86,7 +86,7 @@ def sdk_update(args, config, basepath, workspace):
updateserver = config.get('SDK', 'updateserver', '') updateserver = config.get('SDK', 'updateserver', '')
if not updateserver: if not updateserver:
raise DevtoolError("Update server not specified in config file, you must specify it on the command line") raise DevtoolError("Update server not specified in config file, you must specify it on the command line")
logger.debug("updateserver: %s" % args.updateserver) logger.debug("updateserver: %s" % updateserver)
# Make sure we are using sdk-update from within SDK # Make sure we are using sdk-update from within SDK
logger.debug("basepath = %s" % basepath) logger.debug("basepath = %s" % basepath)
@ -97,35 +97,35 @@ def sdk_update(args, config, basepath, workspace):
else: else:
logger.debug("Found conf/locked-sigs.inc in %s" % basepath) logger.debug("Found conf/locked-sigs.inc in %s" % basepath)
if ':' in args.updateserver: if ':' in updateserver:
is_remote = True is_remote = True
else: else:
is_remote = False is_remote = False
if not is_remote: if not is_remote:
# devtool sdk-update /local/path/to/latest/sdk # devtool sdk-update /local/path/to/latest/sdk
new_locked_sig_file_path = os.path.join(args.updateserver, 'conf/locked-sigs.inc') new_locked_sig_file_path = os.path.join(updateserver, 'conf/locked-sigs.inc')
if not os.path.exists(new_locked_sig_file_path): if not os.path.exists(new_locked_sig_file_path):
logger.error("%s doesn't exist or is not an extensible SDK" % args.updateserver) logger.error("%s doesn't exist or is not an extensible SDK" % updateserver)
return -1 return -1
else: else:
logger.debug("Found conf/locked-sigs.inc in %s" % args.updateserver) logger.debug("Found conf/locked-sigs.inc in %s" % updateserver)
update_dict = generate_update_dict(new_locked_sig_file_path, old_locked_sig_file_path) update_dict = generate_update_dict(new_locked_sig_file_path, old_locked_sig_file_path)
logger.debug("update_dict = %s" % update_dict) logger.debug("update_dict = %s" % update_dict)
sstate_objects = get_sstate_objects(update_dict, args.updateserver) sstate_objects = get_sstate_objects(update_dict, updateserver)
logger.debug("sstate_objects = %s" % sstate_objects) logger.debug("sstate_objects = %s" % sstate_objects)
if len(sstate_objects) == 0: if len(sstate_objects) == 0:
logger.info("No need to update.") logger.info("No need to update.")
return 0 return 0
logger.info("Installing sstate objects into %s", basepath) logger.info("Installing sstate objects into %s", basepath)
install_sstate_objects(sstate_objects, args.updateserver.rstrip('/'), basepath) install_sstate_objects(sstate_objects, updateserver.rstrip('/'), basepath)
logger.info("Updating configuration files") logger.info("Updating configuration files")
new_conf_dir = os.path.join(args.updateserver, 'conf') new_conf_dir = os.path.join(updateserver, 'conf')
old_conf_dir = os.path.join(basepath, 'conf') old_conf_dir = os.path.join(basepath, 'conf')
shutil.rmtree(old_conf_dir) shutil.rmtree(old_conf_dir)
shutil.copytree(new_conf_dir, old_conf_dir) shutil.copytree(new_conf_dir, old_conf_dir)
logger.info("Updating layers") logger.info("Updating layers")
new_layers_dir = os.path.join(args.updateserver, 'layers') new_layers_dir = os.path.join(updateserver, 'layers')
old_layers_dir = os.path.join(basepath, 'layers') old_layers_dir = os.path.join(basepath, 'layers')
shutil.rmtree(old_layers_dir) shutil.rmtree(old_layers_dir)
ret = subprocess.call("cp -a %s %s" % (new_layers_dir, old_layers_dir), shell=True) ret = subprocess.call("cp -a %s %s" % (new_layers_dir, old_layers_dir), shell=True)
@ -140,12 +140,12 @@ def sdk_update(args, config, basepath, workspace):
os.makedirs(tmpsdk_dir) os.makedirs(tmpsdk_dir)
os.makedirs(os.path.join(tmpsdk_dir, 'conf')) os.makedirs(os.path.join(tmpsdk_dir, 'conf'))
# Fetch locked-sigs.inc from update server # Fetch locked-sigs.inc from update server
ret = subprocess.call("wget -q -O - %s/conf/locked-sigs.inc > %s/locked-sigs.inc" % (args.updateserver, os.path.join(tmpsdk_dir, 'conf')), shell=True) ret = subprocess.call("wget -q -O - %s/conf/locked-sigs.inc > %s/locked-sigs.inc" % (updateserver, os.path.join(tmpsdk_dir, 'conf')), shell=True)
if ret != 0: if ret != 0:
logger.error("Fetching conf/locked-sigs.inc from %s to %s/locked-sigs.inc failed" % (args.updateserver, os.path.join(tmpsdk_dir, 'conf'))) logger.error("Fetching conf/locked-sigs.inc from %s to %s/locked-sigs.inc failed" % (updateserver, os.path.join(tmpsdk_dir, 'conf')))
return ret return ret
else: else:
logger.info("Fetching conf/locked-sigs.inc from %s to %s/locked-sigs.inc succeeded" % (args.updateserver, os.path.join(tmpsdk_dir, 'conf'))) logger.info("Fetching conf/locked-sigs.inc from %s to %s/locked-sigs.inc succeeded" % (updateserver, os.path.join(tmpsdk_dir, 'conf')))
new_locked_sig_file_path = os.path.join(tmpsdk_dir, 'conf/locked-sigs.inc') new_locked_sig_file_path = os.path.join(tmpsdk_dir, 'conf/locked-sigs.inc')
update_dict = generate_update_dict(new_locked_sig_file_path, old_locked_sig_file_path) update_dict = generate_update_dict(new_locked_sig_file_path, old_locked_sig_file_path)
logger.debug("update_dict = %s" % update_dict) logger.debug("update_dict = %s" % update_dict)
@ -160,19 +160,19 @@ def sdk_update(args, config, basepath, workspace):
else: else:
ret = -1 ret = -1
if ret != 0: if ret != 0:
ret = subprocess.call("rm -rf layers && git clone %s/layers" % args.updateserver, shell=True) ret = subprocess.call("rm -rf layers && git clone %s/layers" % updateserver, shell=True)
if ret != 0: if ret != 0:
logger.error("Updating meta data via git failed") logger.error("Updating meta data via git failed")
return ret return ret
logger.debug("Updating conf files ...") logger.debug("Updating conf files ...")
conf_files = ['local.conf', 'bblayers.conf', 'devtool.conf', 'locked-sigs.inc'] conf_files = ['local.conf', 'bblayers.conf', 'devtool.conf', 'locked-sigs.inc']
for conf in conf_files: for conf in conf_files:
ret = subprocess.call("wget -q -O - %s/conf/%s > conf/%s" % (args.updateserver, conf, conf), shell=True) ret = subprocess.call("wget -q -O - %s/conf/%s > conf/%s" % (updateserver, conf, conf), shell=True)
if ret != 0: if ret != 0:
logger.error("Update %s failed" % conf) logger.error("Update %s failed" % conf)
return ret return ret
with open(os.path.join(basepath, 'conf/local.conf'), 'a') as f: with open(os.path.join(basepath, 'conf/local.conf'), 'a') as f:
f.write('SSTATE_MIRRORS_append = " file://.* %s/sstate-cache/PATH \\n "\n' % args.updateserver) f.write('SSTATE_MIRRORS_append = " file://.* %s/sstate-cache/PATH \\n "\n' % updateserver)
# Run bitbake command for the whole SDK # Run bitbake command for the whole SDK
sdk_targets = config.get('SDK', 'sdk_targets') sdk_targets = config.get('SDK', 'sdk_targets')