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' |