diff options
| author | David Reyna <David.Reyna@windriver.com> | 2023-08-28 01:45:19 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-08-30 10:41:54 +0100 |
| commit | 6553377beaded3fa7841dd2da4d4d0a0d04cffce (patch) | |
| tree | 749a4e9178a9ece3e461c4cc32483fc921fcf6ed /bitbake | |
| parent | 9ccaee95d6afc65d528b469d16b4719733768ef6 (diff) | |
| download | poky-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>
Diffstat (limited to 'bitbake')
| -rw-r--r-- | bitbake/lib/toaster/orm/models.py | 28 | ||||
| -rw-r--r-- | bitbake/lib/toaster/toastergui/views.py | 2 | ||||
| -rw-r--r-- | bitbake/lib/toaster/toastermain/management/commands/buildimport.py | 2 |
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 | ||
| 109 | class ProjectManager(models.Manager): | 109 | class 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' |
