mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] How to express a dependency that can be satisfied by alternative packages
Date: Tue, 7 Jan 2020 12:29:25 +0100	[thread overview]
Message-ID: <20200107112925.dgsji42ypraj5mvm@pengutronix.de> (raw)
In-Reply-To: <CABDcavY_2HcvSvExFZyxJh_3j9GU7Hz-hLm9iqeJ79HcSkQebg@mail.gmail.com>

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).

Michael

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

  reply	other threads:[~2020-01-07 11:29 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 [this message]
2020-01-07 15:21         ` Guillermo Rodriguez Garcia

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=20200107112925.dgsji42ypraj5mvm@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --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