It looks like that the feature made a user case with langpacks broken. See additional
reports:
Bug 2048394 - dnf should pull weak dependencies in install transaction
Bug 2033130 - exclude_from_weak_autodetect=true effectively renders rich weak dependencies
useless
Bug 2042808 - weakdeps not working on rawhide system
The feature was requested:
Bug 2005305 - dnf should not pull (already unmet) weak dependencies on updates
Bug 1699672 - RFE: dnf should not pull (already broken) weak dependencies on updates
Firs of all I need to clarify that the feature cannot be implemented only on upgrades -
because there are technical reasons for that -
1. DNF creates one transaction for all operations (install, upgrades are performed
together).
2.a Install operation or commands (not only install) also triggers update. (example - I
have already installed foo-1-1.noarch. Then I will install bar-2-2.noarch that requires
foo-2. It means the install command will trigger upgrade that dnf cannot detect in
advance. And if foo recommends something, it will be installed)
2.b Install operation with --best (default in RHEL) triggers always upgrade when package
is already installed but in lower version.
Be honest I do not know what to do. Basically I see only 3 option with one additional:
1. Keep it like it is
2. Disable autodetection
3. Start to ignore rich dependencies for autodetection of unmet weak dependencies.
We have a problem to detect rich dependencies correctly in autodetections because
we do not know whether their conditions were met or not in past.
4. In theory the auto-detection can be only triggered by upgrade command but it will
create an inconsistency in DNF behavior when upgrade operation is triggered by the another
command (install, buildeps, downgrade, ...) - not preferable, see above.