Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Mark Hatle <mark.hatle@windriver.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
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: Tue, 4 Dec 2012 19:47:20 -0600	[thread overview]
Message-ID: <50BEA7A8.2070600@windriver.com> (raw)
In-Reply-To: <1354654017.25268.65.camel@ted>

On 12/4/12 2:46 PM, Richard Purdie wrote:
> On Tue, 2012-12-04 at 11:34 -0600, Mark Hatle wrote:
>> On 12/4/12 11:04 AM, Martin Jansa wrote:
>>> On Tue, Dec 04, 2012 at 11:14:35AM -0600, Mark Hatle wrote:
>>>> When using update-alternatives, there should be a runtime dependency on
>>>> update-alternatives.  Without this, it's possible to get into a situation
>>>> where the package is not installable.
>>>>
>>>> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
>>>> ---
>>>>    meta/classes/update-alternatives.bbclass |    6 ++++++
>>>>    1 files changed, 6 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass
>>>> index 4e1ff27..e432506 100644
>>>> --- a/meta/classes/update-alternatives.bbclass
>>>> +++ b/meta/classes/update-alternatives.bbclass
>>>> @@ -304,6 +304,12 @@ python populate_packages_prepend () {
>>>>                alt_remove_links += '\tupdate-alternatives --remove  %s %s\n' % (alt_name, alt_target)
>>>>
>>>>            if alt_setup_links:
>>>> +            # RDEPENDS setup
>>>> +            bb.note('adding runtime requirement for update-alternatives for %s' % pkg)
>>>> +            rdepends = d.getVar('RDEPENDS_%s' % pkg, True) or ""
>>>> +            rdepends += ' ' + d.getVar('MLPREFIX') + 'update-alternatives'
>>>> +            d.setVar("RDEPENDS_%s" % pkg, rdepends)
>>>> +
>>>
>>> I guess you should use VIRTUAL-RUNTIME_update-alternatives here
>>
>> I believe what I have here is correct.
>
> No, Martin is right.
>
>>    We don't care which update-alternatives
>> we use, just that one is used.
>>
>> recipes-devtools/dpkg/dpkg.inc:RPROVIDES_update-alternatives-dpkg +=
>> "update-alternatives"
>> recipes-devtools/opkg/opkg.inc:RPROVIDES_update-alternatives-cworth +=
>> "update-alternatives"
>>
>> If I use the ${VIRTUAL-RUNTIME_update-alternatives} that has the effect or hard
>> coding which specific version of update-alternatives we're going to use.. (-dpg
>> vs -cworth)  I'm not sure this is really the desired behavior in this case -- if
>> it is, it's easy enough to change of course.
>
> 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.

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

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

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

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?

> 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. 
  If we need to select this at build-time, we can.  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.

--Mark

> Cheers,
>
> Richard
>
>




  reply	other threads:[~2012-12-05  2:01 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 [this message]
2012-12-05  9:17           ` Richard Purdie
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=50BEA7A8.2070600@windriver.com \
    --to=mark.hatle@windriver.com \
    --cc=martin.jansa@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=richard.purdie@linuxfoundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox