From: Martin Jansa <martin.jansa@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 2/5] package.bbclass: show warning when package is trying to provide already provided shlib
Date: Sun, 19 Jan 2014 14:13:00 +0100 [thread overview]
Message-ID: <20140119131300.GA5565@jama> (raw)
In-Reply-To: <c121197f51f33bbfe6a4322597205d51287bc261.1390052636.git.Martin.Jansa@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2865 bytes --]
On Sat, Jan 18, 2014 at 03:02:07PM +0100, Martin Jansa wrote:
> * move read_shlib_providers before registering package as provider
> and don't change provider if it already exists, show warning instead
>
> [YOCTO #4628]
>
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
> meta/classes/package.bbclass | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index 7dcec5e..aa8156d 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -1356,6 +1356,7 @@ python package_do_shlibs() {
> list_re = re.compile('^(.*)\.list$')
> # Go from least to most specific since the last one found wins
> for dir in reversed(shlibs_dirs):
> + bb.debug(2, "Reading shlib providers in %s" % (dir))
> if not os.path.exists(dir):
> continue
> for file in os.listdir(dir):
> @@ -1471,6 +1472,8 @@ python package_do_shlibs() {
>
> needed = {}
> shlib_provider = {}
> + read_shlib_providers()
> +
> for pkg in packages.split():
> private_libs = d.getVar('PRIVATE_LIBS_' + pkg, True) or d.getVar('PRIVATE_LIBS', True)
> needs_ldconfig = False
> @@ -1504,6 +1507,12 @@ python package_do_shlibs() {
> if len(sonames):
> fd = open(shlibs_file, 'w')
> for s in sonames:
> + if s in shlib_provider:
> + (old_pkg, old_pkgver) = shlib_provider[s]
> + if old_pkg != pkg:
> + bb.warn('%s-%s is already registered as shlib provider for %s, ignoring %s-%s trying to register the same' % (old_pkg, old_pkgver, s, pkg, pkgver))
> + continue
I'll drop continue and update warning message, changing registered
provider for last built is still undeterministic but slightly better
e.g. when changing packaging and the shlib is moved between packages
(I've run into this in efl, when moving to split packages and they were
still getting runtime dependency on old efl package).
> + bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s))
> fd.write(s + '\n')
> shlib_provider[s] = (pkg, pkgver)
> fd.close()
> @@ -1517,8 +1526,7 @@ python package_do_shlibs() {
> postinst = '#!/bin/sh\n'
> postinst += d.getVar('ldconfig_postinst_fragment', True)
> d.setVar('pkg_postinst_%s' % pkg, postinst)
> -
> - read_shlib_providers()
> + bb.debug(1, 'LIBNAMES: pkg %s sonames %s' % (pkg, sonames))
>
> bb.utils.unlockfile(lf)
>
> --
> 1.8.5.2
>
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
next prev parent reply other threads:[~2014-01-19 13:13 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-18 14:02 [PATCH 0/5] shlibs providers improvements Martin Jansa
2014-01-18 14:02 ` [PATCH 1/5] package.bbclass: move reading shlibs providers to separate function Martin Jansa
2014-01-18 14:02 ` [PATCH 2/5] package.bbclass: show warning when package is trying to provide already provided shlib Martin Jansa
2014-01-19 13:13 ` Martin Jansa [this message]
[not found] ` <cover.1390138091.git.Martin.Jansa@gmail.com>
2014-01-19 13:28 ` [PATCHv2 " Martin Jansa
2014-01-19 14:42 ` Phil Blundell
2014-01-19 15:23 ` [PATCHv2 3/5] package.bbclass: add SHLIBSSEARCHDIRS to define where to search for shlib providers Martin Jansa
2014-01-19 15:25 ` Martin Jansa
2014-01-19 15:24 ` [PATCHv3 2/5] package.bbclass: show warning when package is providing already provided shlib Martin Jansa
2014-01-18 14:02 ` [PATCH 3/5] package.bbclass: add SHLIBSSEARCHDIRS to define where to search for shlib providers Martin Jansa
2014-01-19 17:13 ` Richard Purdie
2014-01-19 18:55 ` Martin Jansa
2014-01-18 14:02 ` [PATCH 4/5] package.bbclass: Don't search for prividers of PRIVATE_LIBS Martin Jansa
2014-01-18 14:02 ` [PATCH 5/5] package.bbclass: Show which files require given dependency in debug output Martin Jansa
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=20140119131300.GA5565@jama \
--to=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox