mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Guillermo Rodriguez Garcia <guille.rodriguez@gmail.com>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] How to express a dependency that can be satisfied by alternative packages
Date: Tue, 7 Jan 2020 16:21:47 +0100	[thread overview]
Message-ID: <CABDcavbjR4LjvZVWV83pDG8JxnTptx+dP=FE2FhntHMmN0Z5VQ@mail.gmail.com> (raw)
In-Reply-To: <20200107112925.dgsji42ypraj5mvm@pengutronix.de>

El mar., 7 ene. 2020 a las 12:29, Michael Olbrich
(<m.olbrich@pengutronix.de>) escribió:
>
> On Tue, Jan 07, 2020 at 12:11:19PM +0100, Guillermo Rodriguez Garcia wrote:
> > El jue., 2 ene. 2020 a las 16:15, Michael Olbrich
> > (<m.olbrich@pengutronix.de>) escribió:
> > > On Thu, Jan 02, 2020 at 12:53:36PM +0100, Roland Hieber wrote:
> > > > On Mon, Dec 16, 2019 at 07:23:13PM +0100, Guillermo Rodriguez Garcia wrote:
> > > > > Let's say I have a package that requires a specific cmd line utility
> > > > > (e.g. openvt).
> > > > > This can be provided by two different packages (e.g. busybox or kbd)
> > > > > How to express that dependency in the .in file of my package ?
> > > >
> > > > PTXdist (or rather kconfig) does not have a notion of "provides" or
> > > > metapackages. I think is currently no way other than making a choice
> > > > option that selects the one or the other, or letting your config option
> > > > deoend on BUSYBOX_OPENVT || KBD_OPENVT. In the latter case it is
> > > > probably good to add a comment above it that depends on the opposite
> > > > value notifying the user that neither one of them is selected (see the
> > > > comment above IPTABLES_INSTALL_IPTABLES_APPLY in iptables.in for
> > > > example).
> > >
> > > Actually, the correct way to do this is probably:
> > >
> > >         select KBD              if !BUSYBOX_OPENVT && RUNTIME
> > >         select KBD_OPENVT       if !BUSYBOX_OPENVT && RUNTIME
> >
> > What is exactly the meaning of RUNTIME? Why is it needed here?
>
> This means, that kbd is only needed at runtime and not at buildtime. This
> relaxes the build dependencies a bit and allows more parallelization.
> It's really only needed for the first line, but we add it to both for
> consistency reasons.
>
> > Apart from that. What about the following:
> >
> > select KBD            if !BUSYBOX
> > select KBD_OPENVT     if !BUSYBOX
> > select BUSYBOX_OPENVT if BUSYBOX && !KBD_OPENVT
> >
> > This would prefer the Busybox version of openvt if none is explicitly
> > selected and Busybox is already present (thus avoiding to pull in the
> > kbd package if we can avoid it)
>
> Does that work? kconfig sometimes produces circular dependency errors, even
> if they don't really exist.
> If it works, then that's ok too (with the '&& RUNTIME' added).

Uhm, indeed Kconfig complains.

What would then be the way to achieve this:
- If busybox is selected, then select BUSYBOX_OPENVT, unless
KBD_OPENVT is already selected
- If busybox is NOT selected, then select KBD_OPENVT
?

The closest I've got is this:

select KBD            if !BUSYBOX
select KBD_OPENVT     if !BUSYBOX
select BUSYBOX_OPENVT if BUSYBOX

But this will end up selecting both versions of openvt if KBD_OPENVT
was already selected...

Guillermo

-- 
Guillermo Rodriguez Garcia
guille.rodriguez@gmail.com

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

      reply	other threads:[~2020-01-07 15:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-16 18:23 Guillermo Rodriguez Garcia
2020-01-02 11:53 ` Roland Hieber
2020-01-02 15:15   ` Michael Olbrich
2020-01-07 11:11     ` Guillermo Rodriguez Garcia
2020-01-07 11:29       ` Michael Olbrich
2020-01-07 15:21         ` Guillermo Rodriguez Garcia [this message]

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='CABDcavbjR4LjvZVWV83pDG8JxnTptx+dP=FE2FhntHMmN0Z5VQ@mail.gmail.com' \
    --to=guille.rodriguez@gmail.com \
    --cc=ptxdist@pengutronix.de \
    /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