summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oe/package_manager/__init__.py4
-rw-r--r--meta/lib/oe/package_manager/deb/__init__.py10
-rw-r--r--meta/lib/oe/package_manager/ipk/__init__.py4
-rw-r--r--meta/lib/oe/package_manager/rpm/__init__.py4
4 files changed, 14 insertions, 8 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" %
diff --git a/meta/lib/oe/package_manager/deb/__init__.py b/meta/lib/oe/package_manager/deb/__init__.py
index 86ddb130ad..b96ea0bad4 100644
--- a/meta/lib/oe/package_manager/deb/__init__.py
+++ b/meta/lib/oe/package_manager/deb/__init__.py
@@ -289,14 +289,18 @@ class DpkgPM(OpkgDpkgPM):
289 289
290 self.deploy_dir_unlock() 290 self.deploy_dir_unlock()
291 291
292 def install(self, pkgs, attempt_only=False): 292 def install(self, pkgs, attempt_only=False, hard_depends_only=False):
293 if attempt_only and len(pkgs) == 0: 293 if attempt_only and len(pkgs) == 0:
294 return 294 return
295 295
296 os.environ['APT_CONFIG'] = self.apt_conf_file 296 os.environ['APT_CONFIG'] = self.apt_conf_file
297 297
298 cmd = "%s %s install --allow-downgrades --allow-remove-essential --allow-change-held-packages --allow-unauthenticated --no-remove %s" % \ 298 extra_args = ""
299 (self.apt_get_cmd, self.apt_args, ' '.join(pkgs)) 299 if hard_depends_only:
300 extra_args = "--no-install-recommends"
301
302 cmd = "%s %s install --allow-downgrades --allow-remove-essential --allow-change-held-packages --allow-unauthenticated --no-remove %s %s" % \
303 (self.apt_get_cmd, self.apt_args, extra_args, ' '.join(pkgs))
300 304
301 try: 305 try:
302 bb.note("Installing the following packages: %s" % ' '.join(pkgs)) 306 bb.note("Installing the following packages: %s" % ' '.join(pkgs))
diff --git a/meta/lib/oe/package_manager/ipk/__init__.py b/meta/lib/oe/package_manager/ipk/__init__.py
index 4cd3963111..6fd2f021b6 100644
--- a/meta/lib/oe/package_manager/ipk/__init__.py
+++ b/meta/lib/oe/package_manager/ipk/__init__.py
@@ -337,7 +337,7 @@ class OpkgPM(OpkgDpkgPM):
337 337
338 self.deploy_dir_unlock() 338 self.deploy_dir_unlock()
339 339
340 def install(self, pkgs, attempt_only=False): 340 def install(self, pkgs, attempt_only=False, hard_depends_only=False):
341 if not pkgs: 341 if not pkgs:
342 return 342 return
343 343
@@ -346,6 +346,8 @@ class OpkgPM(OpkgDpkgPM):
346 cmd += " --add-exclude %s" % exclude 346 cmd += " --add-exclude %s" % exclude
347 for bad_recommendation in (self.d.getVar("BAD_RECOMMENDATIONS") or "").split(): 347 for bad_recommendation in (self.d.getVar("BAD_RECOMMENDATIONS") or "").split():
348 cmd += " --add-ignore-recommends %s" % bad_recommendation 348 cmd += " --add-ignore-recommends %s" % bad_recommendation
349 if hard_depends_only:
350 cmd += " --no-install-recommends"
349 cmd += " install " 351 cmd += " install "
350 cmd += " ".join(pkgs) 352 cmd += " ".join(pkgs)
351 353
diff --git a/meta/lib/oe/package_manager/rpm/__init__.py b/meta/lib/oe/package_manager/rpm/__init__.py
index b392581069..d97dab3293 100644
--- a/meta/lib/oe/package_manager/rpm/__init__.py
+++ b/meta/lib/oe/package_manager/rpm/__init__.py
@@ -181,7 +181,7 @@ class RpmPM(PackageManager):
181 os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE') 181 os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE')
182 182
183 183
184 def install(self, pkgs, attempt_only = False): 184 def install(self, pkgs, attempt_only=False, hard_depends_only=False):
185 if len(pkgs) == 0: 185 if len(pkgs) == 0:
186 return 186 return
187 self._prepare_pkg_transaction() 187 self._prepare_pkg_transaction()
@@ -192,7 +192,7 @@ class RpmPM(PackageManager):
192 192
193 output = self._invoke_dnf((["--skip-broken"] if attempt_only else []) + 193 output = self._invoke_dnf((["--skip-broken"] if attempt_only else []) +
194 (["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) > 0 else []) + 194 (["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) > 0 else []) +
195 (["--setopt=install_weak_deps=False"] if self.d.getVar('NO_RECOMMENDATIONS') == "1" else []) + 195 (["--setopt=install_weak_deps=False"] if (hard_depends_only or self.d.getVar('NO_RECOMMENDATIONS') == "1") else []) +
196 (["--nogpgcheck"] if self.d.getVar('RPM_SIGN_PACKAGES') != '1' else ["--setopt=gpgcheck=True"]) + 196 (["--nogpgcheck"] if self.d.getVar('RPM_SIGN_PACKAGES') != '1' else ["--setopt=gpgcheck=True"]) +
197 ["install"] + 197 ["install"] +
198 pkgs) 198 pkgs)