summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/package_manager/__init__.py
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@arm.com>2022-06-24 16:31:04 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-06-28 23:49:37 +0100
commit4705dd264681d908f144dd4d9bf1f6175f68d8b9 (patch)
treeefd7301a7b394e9f87d81630f4cab19766258303 /meta/lib/oe/package_manager/__init__.py
parente8f188c510a4438c10731e09b379023859992f82 (diff)
downloadpoky-4705dd264681d908f144dd4d9bf1f6175f68d8b9.tar.gz
package_manager: Change complementary package handling to not include soft dependencies
We've some long standing bugs where the RDEPENDS from -dev packages causes problems, e.g. dropbear and openssh components on an image working fine together but then the SDK failing to build as the main openssh and dropbear packages conflict with each other (pulled in by openssh-dev and dropbear-dev). We propose changing the behavour of complementary package installation to ignore RRECOMMENDS. If we then change the ${PN}-dev dependency on ${PN} to a RRECOMMENDS, we can avoid many of the issues people run into yet still have the desired behaviour of ${PN}-dev pulling in ${PN}. This therefore changes the package manager code so that it doesn't follow RRECOMMENDS for completementary package globs. [RP: Added deb support] (From OE-Core rev: b44b0b9294675f89aa51ff84f532664f4c479677) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe/package_manager/__init__.py')
-rw-r--r--meta/lib/oe/package_manager/__init__.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/meta/lib/oe/package_manager/__init__.py b/meta/lib/oe/package_manager/__init__.py
index 80bc1a6bc6..d3b45705ec 100644
--- a/meta/lib/oe/package_manager/__init__.py
+++ b/meta/lib/oe/package_manager/__init__.py
@@ -266,7 +266,7 @@ class PackageManager(object, metaclass=ABCMeta):
266 pass 266 pass
267 267
268 @abstractmethod 268 @abstractmethod
269 def install(self, pkgs, attempt_only=False): 269 def install(self, pkgs, attempt_only=False, hard_depends_only=False):
270 """ 270 """
271 Install a list of packages. 'pkgs' is a list object. If 'attempt_only' is 271 Install a list of packages. 'pkgs' is a list object. If 'attempt_only' is
272 True, installation failures are ignored. 272 True, installation failures are ignored.
@@ -396,7 +396,7 @@ class PackageManager(object, metaclass=ABCMeta):
396 bb.note("Installing complementary packages ... %s (skipped already provided packages %s)" % ( 396 bb.note("Installing complementary packages ... %s (skipped already provided packages %s)" % (
397 ' '.join(install_pkgs), 397 ' '.join(install_pkgs),
398 ' '.join(skip_pkgs))) 398 ' '.join(skip_pkgs)))
399 self.install(install_pkgs) 399 self.install(install_pkgs, hard_depends_only=True)
400 except subprocess.CalledProcessError as e: 400 except subprocess.CalledProcessError as e:
401 bb.fatal("Could not compute complementary packages list. Command " 401 bb.fatal("Could not compute complementary packages list. Command "
402 "'%s' returned %d:\n%s" % 402 "'%s' returned %d:\n%s" %