On 03/05/2017 03:40 AM, Zac Medico wrote: > > A new --with-bdeps-auto=<y|n> option is provided, making it possible to > enable or disable the program logic that causes --with-bdeps to be > automatically enabled. Use --with-bdeps-auto=n to prevent --with-bdeps > from being automatically enabled for installation actions. This is useful > for some rare cases in which --with-bdeps triggers unsolvable dependency > conflicts (and putting --with-bdeps=n in EMERGE_DEFAULT_OPTS would cause > undesirable --depclean behavior). >
If I understand correctly, the end result of this is two --flags that combine in a (rather complicated) way to let the user control the default bdeps behavior of both "emerge --update" and "emerge --depclean" separately. I'll try to summarize my understanding: I. emerge --update I.a. Some people want to --update the build dependencies they have installed for e.g. security purposes. I.b. Others don't want build deps pulled in by "emerge --update", because they're using binary packages or because it causes conflicts in the resolver (llvm). II. emerge --depclean II.a. The default behavior is to not remove build-only dependencies because, generally, they will just have to rebuilt again. II.b. However, some people want to remove the build-only deps that aren't strictly in use -- particularly if those build-only deps are not being updated by emerge --update. To choose between those four options... i. --with-bdeps=n and --with-bdeps-auto=y gives you I.a. + II.b. ii. --with-bdeps=n and --with-bdeps-auto=n gives you I.b. + II.b. iii. --with-bdeps=y and --with-bdeps-auto=y gives you I.a. + II.a. iv. --with-bdeps=y and --with-bdeps-auto=n gives you I.a. + II.a. That only gets you three out of the four options. You have to read the fine print to get the other: v. passing no flags explicitly gives you I.b. and II.a. If there's going to be two flags, can't we do better? Why not just name the flags after what we want them to do: --update-bdeps=<y|n> (default: y) --clean-bdeps=<y|n> (default: n) With those two options, it's easy to tell portage exactly what you want. If I don't like the defaults, I can turn one of them off without affecting the other. But what about the --usepkg magic? I think the workaround can be left as-is. When --usepkg is enabled, switch the default for --update-bdeps to "n" unless it is explicitly set. Food for thought. Anyway, thanks for working on this.