On Tue, Jul 24, 2018 at 3:43 PM Stephen Gallagher <sgall...@redhat.com>
wrote:

> On Mon, Jul 23, 2018 at 10:28 PM <mcatanz...@gnome.org> wrote:
>
>> On Mon, Jul 23, 2018 at 8:27 PM, Josh Boyer <jwbo...@fedoraproject.org>
>> 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.
>>
>>
>
> Thank you for the detailed explanation, Michael. That does make it much
> clearer. So the effect of this change (which should probably be proposed as
> a System-Wide Change to FESCo, since it affects the default build flags[*])
> is to make the build deterministic by not quietly suppressing some of the
> output if their build dependencies are unsatisfied. This then forces
> packagers to use explicit enablement and disablement flags if they want to
> diverge from upstream.
>

I don't think this has anything to do with system-wide changes. It affects
only components which use meson. However I might submit self-contained one
if you feel strongly about this.


> I don't think this will really have a meaningful impact on the dependency
> creep, other than to make it more accurately represent the upstream
> preferred state. We can then choose to diverge as needed.
>
> I'm in favor of this change, but as I said above, I'd like to see this go
> through the Change process since it potentially impacts anything using
> meson to build.
>
>
> [*] This is minimally-invasive, so I'd be willing to consider it as a late
> proposal for F29.
> _______________________________________________
> devel mailing list -- devel@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> 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@lists.fedoraproject.org/message/XJI7GUKAS4IQLWN2H3MCPKTGQLSW5DBA/
>
-- 

-Igor Gnatenko
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
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@lists.fedoraproject.org/message/QSPKRVM7GVWKQPF2FSC3XPNNGZCDSS5T/

Reply via email to