summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Reyna <David.Reyna@windriver.com>2023-08-28 01:45:19 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-08-30 10:41:54 +0100
commit6553377beaded3fa7841dd2da4d4d0a0d04cffce (patch)
tree749a4e9178a9ece3e461c4cc32483fc921fcf6ed
parent9ccaee95d6afc65d528b469d16b4719733768ef6 (diff)
downloadpoky-6553377beaded3fa7841dd2da4d4d0a0d04cffce.tar.gz
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>
-rw-r--r--bitbake/lib/toaster/orm/models.py28
-rw-r--r--bitbake/lib/toaster/toastergui/views.py2
-rw-r--r--bitbake/lib/toaster/toastermain/management/commands/buildimport.py2
3 files changed, 16 insertions, 16 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index 2cb7d7e049..f9fcf9e4fb 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -107,7 +107,7 @@ class ToasterSetting(models.Model):
107 107
108 108
109class ProjectManager(models.Manager): 109class ProjectManager(models.Manager):
110 def create_project(self, name, release, existing_project=None): 110 def create_project(self, name, release, existing_project=None, imported=False):
111 if existing_project and (release is not None): 111 if existing_project and (release is not None):
112 prj = existing_project 112 prj = existing_project
113 prj.bitbake_version = release.bitbake_version 113 prj.bitbake_version = release.bitbake_version
@@ -134,19 +134,19 @@ class ProjectManager(models.Manager):
134 134
135 if release is None: 135 if release is None:
136 return prj 136 return prj
137 137 if not imported:
138 for rdl in release.releasedefaultlayer_set.all(): 138 for rdl in release.releasedefaultlayer_set.all():
139 lv = Layer_Version.objects.filter( 139 lv = Layer_Version.objects.filter(
140 layer__name=rdl.layer_name, 140 layer__name=rdl.layer_name,
141 release=release).first() 141 release=release).first()
142 142
143 if lv: 143 if lv:
144 ProjectLayer.objects.create(project=prj, 144 ProjectLayer.objects.create(project=prj,
145 layercommit=lv, 145 layercommit=lv,
146 optional=False) 146 optional=False)
147 else: 147 else:
148 logger.warning("Default project layer %s not found" % 148 logger.warning("Default project layer %s not found" %
149 rdl.layer_name) 149 rdl.layer_name)
150 150
151 return prj 151 return prj
152 152
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py
index bf92510cdc..552ff1649b 100644
--- a/bitbake/lib/toaster/toastergui/views.py
+++ b/bitbake/lib/toaster/toastergui/views.py
@@ -1404,7 +1404,7 @@ if True:
1404 if not os.path.isdir('%s/conf' % request.POST['importdir']): 1404 if not os.path.isdir('%s/conf' % request.POST['importdir']):
1405 raise BadParameterException("Bad path or missing 'conf' directory (%s)" % request.POST['importdir']) 1405 raise BadParameterException("Bad path or missing 'conf' directory (%s)" % request.POST['importdir'])
1406 from django.core import management 1406 from django.core import management
1407 management.call_command('buildimport', '--command=import', '--name=%s' % request.POST['projectname'], '--path=%s' % request.POST['importdir'], interactive=False) 1407 management.call_command('buildimport', '--command=import', '--name=%s' % request.POST['projectname'], '--path=%s' % request.POST['importdir'])
1408 prj = Project.objects.get(name = request.POST['projectname']) 1408 prj = Project.objects.get(name = request.POST['projectname'])
1409 prj.merged_attr = True 1409 prj.merged_attr = True
1410 prj.save() 1410 prj.save()
diff --git a/bitbake/lib/toaster/toastermain/management/commands/buildimport.py b/bitbake/lib/toaster/toastermain/management/commands/buildimport.py
index e25b55e5ab..f7139aa041 100644
--- a/bitbake/lib/toaster/toastermain/management/commands/buildimport.py
+++ b/bitbake/lib/toaster/toastermain/management/commands/buildimport.py
@@ -545,7 +545,7 @@ class Command(BaseCommand):
545 # Find the directory's release, and promote to default_release if local paths 545 # Find the directory's release, and promote to default_release if local paths
546 release = self.find_import_release(layers_list,lv_dict,default_release) 546 release = self.find_import_release(layers_list,lv_dict,default_release)
547 # create project, SANITY: reuse any project of same name 547 # create project, SANITY: reuse any project of same name
548 project = Project.objects.create_project(project_name,release,project) 548 project = Project.objects.create_project(project_name,release,project, imported=True)
549 # Apply any new layers or variables 549 # Apply any new layers or variables
550 self.apply_conf_variables(project,layers_list,lv_dict,release) 550 self.apply_conf_variables(project,layers_list,lv_dict,release)
551 # WORKAROUND: since we now derive the release, redirect 'newproject_specific' to 'project_specific' 551 # WORKAROUND: since we now derive the release, redirect 'newproject_specific' to 'project_specific'