From: Martin Jansa <martin.jansa@gmail.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: opkg dependencies and update-alternatives
Date: Mon, 18 Nov 2013 17:04:00 +0100 [thread overview]
Message-ID: <20131118160400.GG3727@jama> (raw)
In-Reply-To: <1384775852.6460.214.camel@ted>
[-- Attachment #1: Type: text/plain, Size: 3846 bytes --]
On Mon, Nov 18, 2013 at 11:57:32AM +0000, Richard Purdie wrote:
> On Mon, 2013-11-18 at 12:40 +0100, Martin Jansa wrote:
> > On Mon, Nov 18, 2013 at 10:54:47AM +0800, ChenQi wrote:
> > > On 11/18/2013 02:57 AM, Paul Barker wrote:
> > > > Hi all,
> > > >
> > > > I've been trying to add PACKAGECONFIG options to opkg and have ran
> > > > into a dependency loop whilst building with certain options. Enabling
> > > > curl support within opkg requires a dependency on curl. curl in turn
> > > > depends on ncurses (via a few intermediate dependencies) and ncurses
> > > > uses update-alternatives causing a dependency on
> > > > virtual/update-alternatives.
> > > > PREFERRED_PROVIDER_virtual/update-alternatives is set to "opkg" in
> > > > meta/conf/distro/include/default-providers.inc and so we have a
> > > > dependency loop if curl is enabled via the new PACKAGECONFIG options
> > > > for opkg.
> > > >
> > > > I can cause the same dependency loop by setting
> > > > PREFERRED_PROVIDER_virtual/update-alternatives to "dpkg" as dpkg
> > > > directly depends on ncurses (which uses update-alternatives). So if
> > > > someone wanted to use the more powerful update-alternatives from dpkg
> > > > on a target system it doesn't look like that is currently possible.
> > > >
> > > > This places quite a constraint on whichever recipe PROVIDES
> > > > update-alternatives. Going forward I'm hoping to use libarchive within
> > > > opkg and libarchive depends on bzip2 by default which uses
> > > > update-alternatives, which would cause the same problem.
> > > >
> > > > Does anyone have any clever solutions to this? Perhaps we could split
> > > > update-alternatives off into its own recipe which should be dependent
> > > > on very little, allowing opkg a little more freedom in its
> > > > dependencies.
> > > >
> > > > Thanks,
> > > >
> > >
> > > I opened a bug some time ago for this update-alternative problem.
> > > https://bugzilla.yoctoproject.org/show_bug.cgi?id=4836
> > >
> > > It would be really helpful if you could add some input in the comments
> > > of that bug.
> >
> > FWIW: current u-a implementation provided by opkg is in OE-classic and
> > was in older poky/oe-core provided also in standalone recipe
> > update-alternatives-cworth
> >
> > http://git.openembedded.org/openembedded/tree/recipes/update-alternatives/update-alternatives-cworth_0.99.154.bb
> >
> > commit 44b538eedab7c255051fa3375f9f2439cd2db3dd
> > Author: Marcin Juszkiewicz <hrw@openedhand.com>
> > Date: Wed Mar 19 15:36:01 2008 +0000
> >
> > update-alternatives-cworth: dropped as they are now generated with opkg recipe
>
> Turning this back into a standalone recipe might be worthwhile and seems
> like the best way to address the problems.
>
> Paul: Have you any opinion of moving update-alternatives to its own
> repository separate from opkg? or just check it into OE-Core as its just
> a single script? Its not as if it really needs much from opkg at this
> point?
>
> I'm also wondering how it compares to the dpkg version (which is C
> iirc). Should we switch to that? Does it give better performance?
Just note from someone who broke all upgrade paths in OE-classic and
then had to add hack to resolve upgrade paths:
http://git.openembedded.org/openembedded/tree/recipes/opkg/update-alternatives-merge.inc
Changing u-a implementation is very tricky for people who care about
upgrade paths.
Changing alternatives directory when switching from cworth to opkg, i.e.
from
${prefix}/lib/ipkg
to
${prefix}/lib/opkg
was fatal for all systems depending on busybox/coreutils - first
upgrade selected wrong alternatives, because it didn't know about
already installed alternatives in old directory.
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
prev parent reply other threads:[~2013-11-18 16:03 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-17 18:57 opkg dependencies and update-alternatives Paul Barker
2013-11-18 2:54 ` ChenQi
2013-11-18 9:21 ` Paul Barker
2013-11-18 11:40 ` Martin Jansa
2013-11-18 11:57 ` Richard Purdie
2013-11-18 15:31 ` Paul Barker
2013-11-18 16:20 ` Martin Jansa
2013-11-19 5:38 ` Chris Larson
2013-11-20 16:24 ` Paul Barker
2013-11-20 16:33 ` Richard Purdie
2013-11-18 16:04 ` Martin Jansa [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=20131118160400.GG3727@jama \
--to=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 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.