Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] virtual-packages: the case for multiple providers selected
Date: Tue, 13 May 2014 20:09:45 +0200	[thread overview]
Message-ID: <20140513180945.GC3507@free.fr> (raw)

Hello All!

We have recently identified the reasons for some weird autobuilder
failures.

The failures happen when two or more providers of the same virtual
package are enabled at once in the same config.

Although this seems like a minor issue, as a carefull user will probably
never generate such a config on purpose, we're still exposed to this
isue for two reasons:

  - the autobuilders do random configurations to stress-test the
    packages combinations will continue to generate such configurations;

  - a user who does a configuration mistake that is thus hard to debug
    and understand.

So, we need to find away to avoid this situation.

Two options have been proposed by Thomas P. on IRC:

  - add a choice to select one and only provider at a time, and make all
    the providers prompt-less config options so it is not possible to
    choose more than one at a time;

  - add a pre-build check that verifies that not two providers of the
    same feature are selected, and bail out early in the build if that
    is the case.

Both of those options have issues.

  - going with the choice means that it is no longer possible to add a
    new provider in BR2_EXTERNAL without changing the Buildroot source
    tree, one of the main selling-point of BR2_EXTERNAL to begin with,

  - going with the check means that it will still possible to generate
    such configurations, which means we'd still get autobuild failures
    for those (unless the autobuilders are tweaked to recognise this,)
    while it would be a minimal annoyance to the user.

Thomas P. suggested that providers for our virtual packages would not be
supported in BR2_EXTERNAL. This would allow us to go with the choice
option.

I am rather opposed to this, since I believe allowing providers from
BR2_EXTERNAL is a requirement for BR2_EXTERNAL, and we do want to
support this situation. After all, I can easily see a BR2_EXTERNAL tree
with proprietary, non-public providers for 3d and/or video-decoding
hardware acceleration.

On the other hand, kconfig does not expose the number of config item
that select another one, e.g. it is not possible to know how many
packages did 'select HAS_EGL', we'd have to resort to the .mk to do the
calculations and the check. I think this should be doable in a
relatively non-invasive way, with some Makefile trickery.

So, what do you guys think of these two proposals? Do you have an
alternate solution to propose?

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

             reply	other threads:[~2014-05-13 18:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-13 18:09 Yann E. MORIN [this message]
2014-05-13 20:05 ` [Buildroot] virtual-packages: the case for multiple providers selected Thomas Petazzoni
2014-05-13 20:12 ` Thomas De Schampheleire
2014-05-13 20:18   ` Thomas Petazzoni
2014-05-14  7:21     ` Thomas De Schampheleire
2014-05-14  7:30       ` Thomas Petazzoni
2014-05-14  7:34         ` Thomas De Schampheleire
2014-05-14  7:36           ` Thomas Petazzoni
2014-05-13 21:47 ` [Buildroot] [PATCH] infra/pkg-virtual: validate only one provider provides an implementation Yann E. MORIN
2014-05-13 22:05   ` Thomas Petazzoni
2014-05-13 22:14     ` Yann E. MORIN
2014-05-14  8:10   ` Arnout Vandecappelle
2014-05-14 17:35     ` Yann E. MORIN
2014-05-14  8:11 ` [Buildroot] virtual-packages: the case for multiple providers selected Arnout Vandecappelle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140513180945.GC3507@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox