mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 17:19:20 +00: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):
|
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):
|
if existing_project and (release is not None):
|
||||||
prj = existing_project
|
prj = existing_project
|
||||||
prj.bitbake_version = release.bitbake_version
|
prj.bitbake_version = release.bitbake_version
|
||||||
@@ -134,19 +134,19 @@ class ProjectManager(models.Manager):
|
|||||||
|
|
||||||
if release is None:
|
if release is None:
|
||||||
return prj
|
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():
|
if lv:
|
||||||
lv = Layer_Version.objects.filter(
|
ProjectLayer.objects.create(project=prj,
|
||||||
layer__name=rdl.layer_name,
|
layercommit=lv,
|
||||||
release=release).first()
|
optional=False)
|
||||||
|
else:
|
||||||
if lv:
|
logger.warning("Default project layer %s not found" %
|
||||||
ProjectLayer.objects.create(project=prj,
|
rdl.layer_name)
|
||||||
layercommit=lv,
|
|
||||||
optional=False)
|
|
||||||
else:
|
|
||||||
logger.warning("Default project layer %s not found" %
|
|
||||||
rdl.layer_name)
|
|
||||||
|
|
||||||
return prj
|
return prj
|
||||||
|
|
||||||
|
|||||||
@@ -1404,7 +1404,7 @@ if True:
|
|||||||
if not os.path.isdir('%s/conf' % request.POST['importdir']):
|
if not os.path.isdir('%s/conf' % request.POST['importdir']):
|
||||||
raise BadParameterException("Bad path or missing 'conf' directory (%s)" % request.POST['importdir'])
|
raise BadParameterException("Bad path or missing 'conf' directory (%s)" % request.POST['importdir'])
|
||||||
from django.core import management
|
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 = Project.objects.get(name = request.POST['projectname'])
|
||||||
prj.merged_attr = True
|
prj.merged_attr = True
|
||||||
prj.save()
|
prj.save()
|
||||||
|
|||||||
@@ -545,7 +545,7 @@ class Command(BaseCommand):
|
|||||||
# Find the directory's release, and promote to default_release if local paths
|
# Find the directory's release, and promote to default_release if local paths
|
||||||
release = self.find_import_release(layers_list,lv_dict,default_release)
|
release = self.find_import_release(layers_list,lv_dict,default_release)
|
||||||
# create project, SANITY: reuse any project of same name
|
# 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
|
# Apply any new layers or variables
|
||||||
self.apply_conf_variables(project,layers_list,lv_dict,release)
|
self.apply_conf_variables(project,layers_list,lv_dict,release)
|
||||||
# WORKAROUND: since we now derive the release, redirect 'newproject_specific' to 'project_specific'
|
# WORKAROUND: since we now derive the release, redirect 'newproject_specific' to 'project_specific'
|
||||||
|
|||||||
Reference in New Issue
Block a user