Support FEATURES=qa-unresolved-soname-deps so that it's possible to disable the QA warning that was introduced for bug 704320. This is useful for systems that may have incomplete PROVIDES metadata due to alternative package managers or experimentation with a new architecture.
Bug: https://bugs.gentoo.org/708448 Bug: https://bugs.gentoo.org/704320 Signed-off-by: Zac Medico <zmed...@gentoo.org> --- cnf/make.globals | 3 ++- lib/_emerge/EbuildPhase.py | 13 ++++++++----- lib/portage/const.py | 1 + man/make.conf.5 | 4 ++++ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/cnf/make.globals b/cnf/make.globals index 50511e812..139e1ce97 100644 --- a/cnf/make.globals +++ b/cnf/make.globals @@ -53,7 +53,8 @@ FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox - preserve-libs protect-owned sandbox sfperms strict + preserve-libs protect-owned qa-unresolved-soname-deps + sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" diff --git a/lib/_emerge/EbuildPhase.py b/lib/_emerge/EbuildPhase.py index 828e6e126..234a273a0 100644 --- a/lib/_emerge/EbuildPhase.py +++ b/lib/_emerge/EbuildPhase.py @@ -453,11 +453,14 @@ class _PostPhaseCommands(CompositeTask): if msg: self.scheduler.output(msg, log_path=self.settings.get("PORTAGE_LOG_FILE")) - # This operates on REQUIRES metadata generated by the above function call. - future = self._soname_deps_qa() - # If an unexpected exception occurs, then this will raise it. - future.add_done_callback(lambda future: future.result()) - self._start_task(AsyncTaskFuture(future=future), self._default_final_exit) + if 'qa-unresolved-soname-deps' in self.settings.features: + # This operates on REQUIRES metadata generated by the above function call. + future = self._soname_deps_qa() + # If an unexpected exception occurs, then this will raise it. + future.add_done_callback(lambda future: future.result()) + self._start_task(AsyncTaskFuture(future=future), self._default_final_exit) + else: + self._default_final_exit(task) else: self._default_final_exit(task) diff --git a/lib/portage/const.py b/lib/portage/const.py index e95039fd5..f6be9258f 100644 --- a/lib/portage/const.py +++ b/lib/portage/const.py @@ -180,6 +180,7 @@ SUPPORTED_FEATURES = frozenset([ "preserve-libs", "protect-owned", "python-trace", + "qa-unresolved-soname-deps", "sandbox", "selinux", "sesandbox", diff --git a/man/make.conf.5 b/man/make.conf.5 index 494d5f003..f82fed65a 100644 --- a/man/make.conf.5 +++ b/man/make.conf.5 @@ -607,6 +607,10 @@ If \fIcollision\-protect\fR is enabled then it takes precedence over Output a verbose trace of python execution to stderr when a command's \-\-debug option is enabled. .TP +.B qa\-unresolved\-soname\-deps +Trigger a QA warning when a package installs files with unresolved soname +dependencies. +.TP .B sandbox Enable sandbox\-ing when running \fBemerge\fR(1) and \fBebuild\fR(1). .TP -- 2.24.1