Bug 1874 - locale-base-en-us package generated with bogus depends/provides
Summary: locale-base-en-us package generated with bogus depends/provides
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: core (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium normal
Target Milestone: 1.2 M2
Assignee: Nitin Kamble
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2012-01-04 10:27 UTC by Jin
Modified: 2012-01-19 15:45 UTC (History)
2 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jin 2012-01-04 10:27:47 UTC
I need to install some binary locales during rootfs generation; the problem happens with each language, let's assume German here.

My image recipe specifies IMAGE_LINGUAS = "de-de", this correctly installs locale-base-de-de.

I do not know if locale-base-de-de is supposed to automatically pull in eglibc-binary-localedata-de-de, the actual problem is that there is no way to tell OE to install eglibc-binary-localedata-de-de in the image. Normally I would add it to RDEPENDS of one of my task, but in this case it has no effect.

The reason is, that locale-base-de-de tells opkg that it provides eglibc-binary-localedata-de-de, here's a sniplet from Packages (opkg Packages feed file generated by bitbake package-index):

Package: locale-base-de-de
Version: 2.12-r19
Depends: eglibc-binary-localedata-de-de
Provides: virtual-locale-de-de, virtual-locale-de, eglibc-binary-localedata-de-de

Btw now I also see that it lists eglibc-binary-localedata-de-de in Depends, so something is wrong here.

As a side note: the reason why I want to have eglibc-binary-localedata-de-de is, that I am using gettext to translate some shell stuff depending on locale settings. For this purpose gettext-runtime ships a /usr/bin/gettext.sh script that depends on the correct locale setting, for example LC_ALL="de_DE.UTF8" for selecting the desired language. However, translation fails if the binary localedata package is not installed on the system.


To reproduce, simply build eglibc and analyse the generated locale-base-* packages. 


Exactly the same problem is already described on the mailing list:
http://lists.linuxtogo.org/pipermail/openembedded-core/2011-August/008510.html
Comment 1 Nitin Kamble 2012-01-19 15:36:04 UTC
I commit went in the oecore to fix this.

commit 3754d75e49f285e530a3989888410b0877846eb6
Author: Nitin A Kamble <nitin.a.kamble@intel.com>
Date:   Mon Jan 9 11:33:09 2012 -0800

    locale: fix package's "provides" tag
    
    Fixes this bug: [YOCTO #1874]
    
    Fixes an issue where a locale package depends on one package while it
    also provides the same, as seen bellow.
    
    Package: locale-base-de-de
    Version: 2.12-r19
    Depends: eglibc-binary-localedata-de-de
    Provides: virtual-locale-de-de, virtual-locale-de,
    eglibc-binary-localedata-de-de
    
    Actually the eglibc-binary-localedata-de-de is ia separate package,
     and it should not be part of provides of the locale-base-de-de.
    
    (From OE-Core rev: 49c5ff7197b44c7d29d31506c2425b86bc2c1ff6)
    
    Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
    Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Comment 2 Nitin Kamble 2012-01-19 15:45:14 UTC
Closing the issue, if still see the same issue reopen this bug.