aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/lib/devtool
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/devtool')
-rw-r--r--scripts/lib/devtool/__init__.py31
-rw-r--r--scripts/lib/devtool/standard.py34
2 files changed, 8 insertions, 57 deletions
diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py
index 29c4c05071..bba0721543 100644
--- a/scripts/lib/devtool/__init__.py
+++ b/scripts/lib/devtool/__init__.py
@@ -261,34 +261,3 @@ def get_bbclassextend_targets(recipefile, pn):
targets.append('%s-%s' % (pn, variant))
return targets
-def ensure_npm(config, basepath, fixed_setup=False, check_exists=True):
- """
- Ensure that npm is available and either build it or show a
- reasonable error message
- """
- if check_exists:
- tinfoil = setup_tinfoil(config_only=False, basepath=basepath)
- try:
- rd = tinfoil.parse_recipe('nodejs-native')
- nativepath = rd.getVar('STAGING_BINDIR_NATIVE')
- finally:
- tinfoil.shutdown()
- npmpath = os.path.join(nativepath, 'npm')
- build_npm = not os.path.exists(npmpath)
- else:
- build_npm = True
-
- if build_npm:
- logger.info('Building nodejs-native')
- try:
- exec_build_env_command(config.init_path, basepath,
- 'bitbake -q nodejs-native -c addto_recipe_sysroot', watch=True)
- except bb.process.ExecutionError as e:
- if "Nothing PROVIDES 'nodejs-native'" in e.stdout:
- if fixed_setup:
- msg = 'nodejs-native is required for npm but is not available within this SDK'
- else:
- msg = 'nodejs-native is required for npm but is not available - you will likely need to add a layer that provides nodejs'
- raise DevtoolError(msg)
- else:
- raise
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index 0104e675db..54558ce799 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -30,7 +30,7 @@ import errno
import glob
import filecmp
from collections import OrderedDict
-from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, ensure_npm, DevtoolError
+from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, DevtoolError
from devtool import parse_recipe
logger = logging.getLogger('devtool')
@@ -128,9 +128,6 @@ def add(args, config, basepath, workspace):
color = args.color
extracmdopts = ''
if args.fetchuri:
- if args.fetchuri.startswith('npm://'):
- ensure_npm(config, basepath, args.fixed_setup)
-
source = args.fetchuri
if srctree:
extracmdopts += ' -x %s' % srctree
@@ -155,28 +152,13 @@ def add(args, config, basepath, workspace):
tempdir = tempfile.mkdtemp(prefix='devtool')
try:
- builtnpm = False
- while True:
- try:
- stdout, _ = exec_build_env_command(config.init_path, basepath, 'recipetool --color=%s create --devtool -o %s \'%s\' %s' % (color, tempdir, source, extracmdopts), watch=True)
- except bb.process.ExecutionError as e:
- if e.exitcode == 14:
- if builtnpm:
- raise DevtoolError('Re-running recipetool still failed to find npm')
- # FIXME this is a horrible hack that is unfortunately
- # necessary due to the fact that we can't run bitbake from
- # inside recipetool since recipetool keeps tinfoil active
- # with references to it throughout the code, so we have
- # to exit out and come back here to do it.
- ensure_npm(config, basepath, args.fixed_setup, check_exists=False)
- logger.info('Re-running recipe creation process after building nodejs')
- builtnpm = True
- continue
- elif e.exitcode == 15:
- raise DevtoolError('Could not auto-determine recipe name, please specify it on the command line')
- else:
- raise DevtoolError('Command \'%s\' failed' % e.command)
- break
+ try:
+ stdout, _ = exec_build_env_command(config.init_path, basepath, 'recipetool --color=%s create --devtool -o %s \'%s\' %s' % (color, tempdir, source, extracmdopts), watch=True)
+ except bb.process.ExecutionError as e:
+ if e.exitcode == 15:
+ raise DevtoolError('Could not auto-determine recipe name, please specify it on the command line')
+ else:
+ raise DevtoolError('Command \'%s\' failed' % e.command)
recipes = glob.glob(os.path.join(tempdir, '*.bb'))
if recipes: