mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
bitbake: toaster: import only used layers
If you import a build directory, Toaster still adds openembedded-core, meta-poky and meta-yocto-bsp to the newly created project. Toaster should only be including in the project the layers that it imported. [YOCTO #13764] (Bitbake rev: e73c4d7685a3bd6b806a8f1a3600a3a86266f0b6) Signed-off-by: Kieran McNulty <Kieran.McNulty@windriver.com> Signed-off-by: David Reyna <David.Reyna@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
9ccaee95d6
commit
6553377bea
@@ -107,7 +107,7 @@ class ToasterSetting(models.Model):
|
||||
|
||||
|
||||
class ProjectManager(models.Manager):
|
||||
def create_project(self, name, release, existing_project=None):
|
||||
def create_project(self, name, release, existing_project=None, imported=False):
|
||||
if existing_project and (release is not None):
|
||||
prj = existing_project
|
||||
prj.bitbake_version = release.bitbake_version
|
||||
@@ -134,19 +134,19 @@ class ProjectManager(models.Manager):
|
||||
|
||||
if release is None:
|
||||
return prj
|
||||
if not imported:
|
||||
for rdl in release.releasedefaultlayer_set.all():
|
||||
lv = Layer_Version.objects.filter(
|
||||
layer__name=rdl.layer_name,
|
||||
release=release).first()
|
||||
|
||||
for rdl in release.releasedefaultlayer_set.all():
|
||||
lv = Layer_Version.objects.filter(
|
||||
layer__name=rdl.layer_name,
|
||||
release=release).first()
|
||||
|
||||
if lv:
|
||||
ProjectLayer.objects.create(project=prj,
|
||||
layercommit=lv,
|
||||
optional=False)
|
||||
else:
|
||||
logger.warning("Default project layer %s not found" %
|
||||
rdl.layer_name)
|
||||
if lv:
|
||||
ProjectLayer.objects.create(project=prj,
|
||||
layercommit=lv,
|
||||
optional=False)
|
||||
else:
|
||||
logger.warning("Default project layer %s not found" %
|
||||
rdl.layer_name)
|
||||
|
||||
return prj
|
||||
|
||||
|
||||
@@ -1404,7 +1404,7 @@ if True:
|
||||
if not os.path.isdir('%s/conf' % request.POST['importdir']):
|
||||
raise BadParameterException("Bad path or missing 'conf' directory (%s)" % request.POST['importdir'])
|
||||
from django.core import management
|
||||
management.call_command('buildimport', '--command=import', '--name=%s' % request.POST['projectname'], '--path=%s' % request.POST['importdir'], interactive=False)
|
||||
management.call_command('buildimport', '--command=import', '--name=%s' % request.POST['projectname'], '--path=%s' % request.POST['importdir'])
|
||||
prj = Project.objects.get(name = request.POST['projectname'])
|
||||
prj.merged_attr = True
|
||||
prj.save()
|
||||
|
||||
@@ -545,7 +545,7 @@ class Command(BaseCommand):
|
||||
# Find the directory's release, and promote to default_release if local paths
|
||||
release = self.find_import_release(layers_list,lv_dict,default_release)
|
||||
# create project, SANITY: reuse any project of same name
|
||||
project = Project.objects.create_project(project_name,release,project)
|
||||
project = Project.objects.create_project(project_name,release,project, imported=True)
|
||||
# Apply any new layers or variables
|
||||
self.apply_conf_variables(project,layers_list,lv_dict,release)
|
||||
# WORKAROUND: since we now derive the release, redirect 'newproject_specific' to 'project_specific'
|
||||
|
||||
Reference in New Issue
Block a user