summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@arm.com>2024-05-14 16:15:19 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-05-15 16:39:19 +0100
commit6582436a1d1af7775a6bb651aff47a9db773e32b (patch)
treede51048ead77efba9f14dc63b45cb7f860894a9d /meta/lib/oe
parenta9dd9f92ba5881d09713304ceeb230e47c31d5c1 (diff)
downloadpoky-6582436a1d1af7775a6bb651aff47a9db773e32b.tar.gz
lib/oe/package-manager: allow including self in create_packages_dir
This function is typically used to construct a limited feed for image creation, but there are other cases when you might want a limited feed and include the current recipe's packages in it. To ensure that existing behaviour is preserved, add a boolean to control this behaviour and default it to False. (From OE-Core rev: aada7fda2b118152d82b1ab295d92b8251afe4ac) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe')
-rw-r--r--meta/lib/oe/package_manager/__init__.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/meta/lib/oe/package_manager/__init__.py b/meta/lib/oe/package_manager/__init__.py
index 6774cdb794..d3b2317894 100644
--- a/meta/lib/oe/package_manager/__init__.py
+++ b/meta/lib/oe/package_manager/__init__.py
@@ -449,7 +449,7 @@ class PackageManager(object, metaclass=ABCMeta):
449 return res 449 return res
450 return _append(uris, base_paths) 450 return _append(uris, base_paths)
451 451
452def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencies): 452def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencies, include_self=False):
453 """ 453 """
454 Go through our do_package_write_X dependencies and hardlink the packages we depend 454 Go through our do_package_write_X dependencies and hardlink the packages we depend
455 upon into the repo directory. This prevents us seeing other packages that may 455 upon into the repo directory. This prevents us seeing other packages that may
@@ -486,14 +486,17 @@ def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencie
486 bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?") 486 bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?")
487 pkgdeps = set() 487 pkgdeps = set()
488 start = [start] 488 start = [start]
489 seen = set(start) 489 if include_self:
490 seen = set()
491 else:
492 seen = set(start)
490 # Support direct dependencies (do_rootfs -> do_package_write_X) 493 # Support direct dependencies (do_rootfs -> do_package_write_X)
491 # or indirect dependencies within PN (do_populate_sdk_ext -> do_rootfs -> do_package_write_X) 494 # or indirect dependencies within PN (do_populate_sdk_ext -> do_rootfs -> do_package_write_X)
492 while start: 495 while start:
493 next = [] 496 next = []
494 for dep2 in start: 497 for dep2 in start:
495 for dep in taskdepdata[dep2][3]: 498 for dep in taskdepdata[dep2][3]:
496 if taskdepdata[dep][0] != pn: 499 if include_self or taskdepdata[dep][0] != pn:
497 if "do_" + taskname in dep: 500 if "do_" + taskname in dep:
498 pkgdeps.add(dep) 501 pkgdeps.add(dep)
499 elif dep not in seen: 502 elif dep not in seen: