Re: RFC: Pass --auto-features=enabled in meson

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jul 23, 2018 at 8:27 PM, Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx> wrote:
My biggest objection here is that it blindly enables things, which
continues to make our package set a web of inter-dependencies and
makes any attempts at minimization harder.  I don't think we should
default to building everything in here.  I understand autotools might
do that, but I wouldn't necessarily call autotools a best practice to
begin with...

It's a bit confusing, but Igor is proposing that we *disable* auto feature detection by passing -Dauto_features=enabled. Um, what? Yes, the options are enabled, auto (default), and disabled, where both enabled and disabled turn off auto feature detection. enabled is used to fail the build whenever an auto dependency is missing, and disabled is used to allow the build to proceed without that feature.

-Dauto_features=auto is the meson default, and it's what we currently suffer with autotools: features get silently enabled or disabled depending on which BuildRequires are present in the spec file. This is the status quo, and it's a disaster. Auto dependencies are good if you're building packages locally and don't want to install unnecessary dependencies (hence a good default behavior), but very bad if you're a Linux distribution building packages for other people to use and now have a broken or inferior package due to a desireable dependency being disabled by mistake. I'm pretty sure there's no argument for keeping this behavior when building Fedora packages.

We had originally forbidden the use of meson's auto features in GNOME due to this problem (the automagic dependencies problem [1]), which annoyed the Meson developers and led to the creation of this -Dauto_features option. Now it's safe to recommend using auto features, because we assume distros will build with -Dauto_features=enabled. With this setting, if you want to disable a feature that's recommended by upstream, you'll now have to explicitly disable it, which is surely what we want to avoid features disappearing by mistake.

Then on the other end of the spectrum, -Dauto_features=disabled would disable all auto features... that would make packagers responsible for constantly monitoring the upstream feature set with every release and making choices about what to enable or disable. It sounds like you might be advocating this option, but that does not seem at all practical to me. Packagers sometimes know better than upstream which features should be enabled in Fedora, but not usually. And packagers might sometimes audit the upstream feature list after new releases to see if new features should be enabled... but that seems like a rarity to me. If we use -Dauto_features=disabled, a bunch of important features will go missing, and Fedora will suffer from that. So let's trust upstream by default, and override where it makes sense.

Michael

[1] https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Automagic_dependencies
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx/message/QIRIH5QL6EP7YR4BW3N7CLH2C2MQO7HL/




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux