[OE-core] [PATCH 1/2] libc-package bbclass: fix binary localedata dependency code

Koen Kooi koen at dominion.thruhere.net
Fri Aug 26 15:26:14 UTC 2011


Op 26 aug. 2011, om 16:12 heeft Phil Blundell het volgende geschreven:

> On Thu, 2011-08-25 at 07:58 -0700, Richard Purdie wrote:
>> On Thu, 2011-08-25 at 10:24 +0100, Phil Blundell wrote:
>>> On Wed, 2011-08-24 at 20:32 +0200, Koen Kooi wrote:
>>>> diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
>>>> index 0d5ce20..d3b33d6 100644
>>>> --- a/meta/classes/libc-package.bbclass
>>>> +++ b/meta/classes/libc-package.bbclass
>>>> @@ -243,7 +243,7 @@ python package_do_split_gconvs () {
>>>> 	def output_locale_binary_rdepends(name, pkgname, locale, encoding):
>>>> 		m = re.match("(.*)_(.*)", name)
>>>> 		if m:
>>>> -			libc_name = "%s.%s" % (m.group(1), m.group(2).lower().replace("-",""))
>>>> +			libc_name = "%s-%s" % (m.group(1), m.group(2).lower().replace("-",""))
>>>> 		else:
>>>> 			libc_name = name
>>>> 		bb.data.setVar('RDEPENDS_%s' % pkgname, legitimize_package_name('%s-binary-localedata-%s' \
>>> 
>>> For what it's worth (probably not much), this is not quite the right
>>> fix.  Joining with "." was correct; it was the splitting on "_" that was
>>> wrong.  The right thing would be to put it back how it was before the
>>> glibc/eglibc merge commit, i.e. change the re to "(*.)\.(*.)" and leave
>>> the output pattern alone.  That ought to fix your problem and also allow
>>> the encoding to be correctly canonicalised.
>> 
>> Can someone please send me the correct patch against master? :)
> 
> I think the attached is what you need.  Koen, maybe you could confirm
> whether this does indeed fix your original problem.

I built some images before applying this patch and then:

bitbake -ccleansstate eglibc eglibc-locale
bitbake systemd-image

And that gives me http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/testlab/commit/?h=yocto&id=9b2e08e0c4da4881ba8c83be39697a40a63b75fd

-locale_base_en_us -> eglibc_binary_localedata_en_us;
+locale_base_en_us -> eglibc_binary_localedata_en_u_;

So something regexp is being a bit too greedy by the looks of it.



More information about the Openembedded-core mailing list