On Tue, Feb 26, 2019 at 03:00:58PM +0100, Andrea Bolognani wrote:
On Tue, 2019-02-26 at 11:00 +0000, Daniel P. Berrangé wrote:
> For example to prevent Xen being installed on any s390x
>
> xen:
> default-s390x:
> deb: libxen-dev
> Fedora: xen-devel
>
> Or the inverse to only install Xen on x86_64 on Debian, but allow
> it on all archs on Fedora
>
> xen:
> deb-x86_64: libxen-dev
> Fedora: xen-devel
>
> Note that the architecture specific matches are considered after
> all the non-architcture matches.
I feel like the order entries are processed with this implementation
can be quite counter-intuitive. The root problem of course is that up
until this point we have had a single axis to work on, and we're now
introducing a second one which is independent of the existing one but
which we still have to fit along with it into the same flat hierarchy
somehow...
Consider an example such as
foo:
Fedora: oldfoo
Fedora-s390x:
FedoraRawhide: foo
The general intuition up until now has been that appending something
to a label would make it more specific, and only one item on each
level would possibly match, but now both Fedora-s390x and
FedoraRawhide appear to be on the same level and *both* could apply
to an s390x Fedora Rawhide machine, making it less clear which one
would take precedence.
Yes, I wasn't entirely happy with that.
I suggest that the example above would be rewritten as
foo:
Fedora: oldfoo
FedoraRawhide: foo
s390x-Fedora:
where two changes happened: first of all, the lines have been
shuffled around to match the order they would actually be processed,
which is something that we could have done with the above as well,
but more importantly the architecture name is now *prepended* to the
existing labels to clearly signal that it's part of a completely
separate hierarchy. The ambiguity is now gone entirely, and which
entry has precedence is easier to see at a glance.
I wouldn't say its unambigous, but it is less bad than before which
is nice :-)
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|