From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Mark Hatle <mark.hatle@windriver.com>
Cc: Martin Jansa <martin.jansa@gmail.com>,
openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 03/22] update-alternatives.bbclass: Add missing runtime dependency
Date: Wed, 05 Dec 2012 09:17:08 +0000 [thread overview]
Message-ID: <1354699028.25268.79.camel@ted> (raw)
In-Reply-To: <50BEA7A8.2070600@windriver.com>
On Tue, 2012-12-04 at 19:47 -0600, Mark Hatle wrote:
> On 12/4/12 2:46 PM, Richard Purdie wrote:
> > On Tue, 2012-12-04 at 11:34 -0600, Mark Hatle wrote:
> > I keep telling people this and people keep ignoring me.
> >
> > We DO NOT SUPPORT switching providers at runtime since its a package
> > manager specific problem for which we currently have no general
> > abstraction.
>
> We do support switching providers already, that's the whole alternatives system
> itself. What is different is in this case we can't use the update-alternatives.
We do support update alternatives, yes. We're talking about something
else here though.
> But with the RPROVIDE of update-alternatives within the dpkg and opkg code.. We
> can certainly require 'update-alterantives' and the packaging systems will do
> the right thing (they have so far...)
Ok, let me put this a different way. What exactly tells tells the
package manager what it should be installing as "update-alternatives"?
Where is the variable that controls this?
I think you will find there isn't any mechanism for it. The only reason
it does the right thing is a combination of:
a) We've configured things to only build one provider in most cases
b) We use the VIRTUAL-RUNTIME_update-alternatives substitution that
Martin mentions.
> > This leads to patches like:
> >
> > http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=fe21ace36e19e06cbfdb83f73e60623bd4e382af
> >
> > since the virtual/ space does not somehow magically work at runtime,
> > worse it breaks the deb package backend.
>
> It works in RPM... but if it doesn't in deb (and ipk) I understand the
> limitations we are bound to. Limiting the character space (i.e. no '/') is
> different then saying we don't support RPROVIDES...
We support RPROVIDES, no argument. What we don't have is any mechanism
to indicate to *any* of the package managers that if there are two
providers, which one should be preferred.
The character was just a detail, the whole approach was also flawed, at
least as the system stands today :(.
> > PREFERRED_PROVIDER is a build time thing. virtual/ is a build time
> > thing. How do I explain this any clearer?
>
> I'm still confused on the PREFERRED_PROVIDER honestly.
That much is clear from the email :/. It only works for build time
resolution, not package management.
> conf/distro/include/default-providers.inc:PREFERRED_PROVIDER_virtual/update-alternatives
> ?= "update-alternatives-cworth"
> conf/distro/include/default-providers.inc:PREFERRED_PROVIDER_virtual/update-alternatives-native
> ?= "opkg-native"
>
> There is no 'update-alternatives-cworth' recipe.. but there is an opkg recipe
> that happens to provide an update-alternatives-cworth -package-. So does
> PREFERRED_PROVIDER select packages or recipes?
It works in "build" namespace, namely DEPENDS and PROVIDES, so recipes.
Recipes can have additional PROVIDES other than their name, not to be
confused with RPROVIDES which is package namespace and separate.
We have no support for PREFERRED_RPROVIDER for example since that would
have to get communicated to the package manager. It would be interesting
to see that work...
> > The only mechanism for distro selection of runtime is VIRTUAL-RUNTIME_
> > which is pretty horrible and likely would be better done with something
> > debian package renaming like since we already have that mangling code.
>
> And the VIRTUAL-RUNTIME isn't a runtime selection, it's a build-time selection.
I realise that. As I said earlier, we don't support runtime selection
and we allow distro selection of some things (at build time) using this
rather ugly mechanism. I'd love to have something neater but its hard to
interface that into all the packaging backends.
> If we need to select this at build-time, we can.
Rightly or wrongly, we need to.
> I'm happy with changing the
> patch, but as a distribution person I really don't care who provides this as
> long as something does.
We care about deterministic builds so we have to care about details like
this.
Cheers,
Richard
next prev parent reply other threads:[~2012-12-05 9:31 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-04 17:14 [PATCH 00/22] Misc fixes Mark Hatle
2012-12-04 17:14 ` [PATCH 01/22] cpio: Split RMT from cpio Mark Hatle
2012-12-04 17:14 ` [PATCH 02/22] tar: Split RMT from tar Mark Hatle
2012-12-04 17:14 ` [PATCH 03/22] update-alternatives.bbclass: Add missing runtime dependency Mark Hatle
2012-12-04 17:04 ` Martin Jansa
2012-12-04 17:34 ` Mark Hatle
2012-12-04 20:46 ` Richard Purdie
2012-12-05 1:47 ` Mark Hatle
2012-12-05 9:17 ` Richard Purdie [this message]
2012-12-04 17:14 ` [PATCH 04/22] package_rpm.bbclass: Add the runtime dependencies to the pre/post scriptlets Mark Hatle
2012-12-04 17:14 ` [PATCH 05/22] rpm: enable _openall_before_chroot by default Mark Hatle
2012-12-04 17:14 ` [PATCH 06/22] rpm: Move rpmdb_loadcvt from base to dev package Mark Hatle
2012-12-04 17:14 ` [PATCH 07/22] rpm: Fix rpm relocation macro usage Mark Hatle
2012-12-04 17:14 ` [PATCH 08/22] rpm: Fixup platform matching code Mark Hatle
2012-12-04 17:14 ` [PATCH 09/22] rpm: Fix Upstream-Status fields Mark Hatle
2012-12-04 17:14 ` [PATCH 10/22] createrepo: implement support for recommends Mark Hatle
2012-12-04 17:14 ` [PATCH 11/22] python-smartpm: add " Mark Hatle
2012-12-04 17:14 ` [PATCH 12/22] python-smartpm: style fixes Mark Hatle
2012-12-04 17:14 ` [PATCH 13/22] python-smartpm: fix package metadata not being read from rpm-md feeds Mark Hatle
2012-12-04 17:14 ` [PATCH 14/22] python-smartpm: don't create /var/tmp on every rpm database open Mark Hatle
2012-12-04 17:14 ` [PATCH 15/22] python-smartpm: support nolinktos and noparentdirs rpm options Mark Hatle
2012-12-04 17:14 ` [PATCH 16/22] python-smartpm: allow setting arbitrary macros in smart config Mark Hatle
2012-12-04 17:14 ` [PATCH 17/22] python-smartpm: Fix incorrect comparison arguments Mark Hatle
2012-12-04 17:14 ` [PATCH 18/22] shadow: add runtime dependency on base-passwd Mark Hatle
2012-12-04 17:14 ` [PATCH 19/22] package_deb: Dependencies with a ( or ) in them are invalid in debs Mark Hatle
2012-12-04 17:14 ` [PATCH 20/22] pkgconfig: Add a manual dependency of pkgconfig(pkg-config) Mark Hatle
2012-12-06 13:16 ` Paul Eggleton
2012-12-06 17:13 ` Mark Hatle
2012-12-06 13:30 ` Otavio Salvador
2012-12-06 17:12 ` Mark Hatle
2012-12-04 17:14 ` [PATCH 21/22] pseudo: Rework target, native and nativesdk pseudo intergration Mark Hatle
2012-12-06 5:06 ` Saul Wold
2012-12-06 17:03 ` Mark Hatle
2012-12-06 17:21 ` Saul Wold
2012-12-06 17:28 ` Mark Hatle
2012-12-06 17:39 ` Saul Wold
2012-12-04 17:14 ` [PATCH 22/22] license.bbclass: Avoid grep error message Mark Hatle
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=1354699028.25268.79.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=mark.hatle@windriver.com \
--cc=martin.jansa@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.