From: Hongxu Jia <hongxu.jia@windriver.com>
To: Robert Yang <liezhi.yang@windriver.com>,
<openembedded-core@lists.openembedded.org>,
<ross.burton@intel.com>
Subject: Re: [PATCH 1/1] image/multilib bbclass: install multilib and non-multilib language pkgs for image recipes
Date: Thu, 14 Jan 2016 15:08:57 +0800 [thread overview]
Message-ID: <56974989.6070305@windriver.com> (raw)
In-Reply-To: <5697460E.8030705@windriver.com>
On 01/14/2016 02:54 PM, Robert Yang wrote:
>
>
> On 12/10/2015 06:41 PM, Hongxu Jia wrote:
>> Previously if multilib enabled and IMAGE_LINGUAS is assigned,
>> according to the type of image (multilib or non-multilib),
>> only the mapped language pkgs (multilib or non-multilib)
>> is installed to the image. It caused the other part could
>> not work.
>>
>> Such as qemux86-64, the multilib prefix is lib32, and assign
>> IMAGE_LINGUAS_append = " en-us". For core-image-minimal image,
>> only locale-base-en-us is installed; and for lib32-core-image-
>> minimal image, only lib32-locale-base-en-us is installed.
>> For the core-image-minimal image, it did not support the
>> multilib version app to invoke setlocale(LC_CTYPE, "en_US.UTF-8")
>
> I'm not sure whether this is right or not, if all of the installed
> pkgs are lib32 (or allarch), then 64bit locales should not be installed,
> and also, if all of the installed packages are 64bit, then lib32 locales
> should not be installed.
Got it, as you said, it is not proper to install both of multilib and
non-multilib in this situation. So please drop it.
//Hongxu
>
> // Robert
>
>> in C.
>>
>> Install multilib and non-multilib language pkgs for image
>> recipes could fix it.
>>
>> The fix in image.bbclass is for non-multilib image recipes
>> (such as core-image-minimal); the fix in multilib.bbclass
>> is for multilib image (such as lib32-core-image-minimal)
>>
>> [YOCTO #8784]
>>
>> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
>> ---
>> meta/classes/image.bbclass | 20 +++++++++++++++++++-
>> meta/classes/multilib.bbclass | 9 +++++++++
>> 2 files changed, 28 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
>> index d2f8105..06b4003 100644
>> --- a/meta/classes/image.bbclass
>> +++ b/meta/classes/image.bbclass
>> @@ -220,7 +220,25 @@ ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;'
>> # some default locales
>> IMAGE_LINGUAS ?= "de-de fr-fr en-gb"
>>
>> -LINGUAS_INSTALL ?= "${@" ".join(map(lambda s: "locale-base-%s" % s,
>> d.getVar('IMAGE_LINGUAS', True).split()))}"
>> +# Need all non-multilib and multilib of LINGUAS_INSTALL
>> +LINGUAS_INSTALL ?= "${@locale_base_packages(d)}"
>> +def locale_base_packages(d):
>> + pkgs = []
>> + imagelinguas = (d.getVar('IMAGE_LINGUAS', True) or "").split()
>> + mlvars = (d.getVar("MULTILIB_VARIANTS", True) or "").split()
>> + for lang in imagelinguas:
>> + # Add non-multilib packages
>> + pkg = "locale-base-%s" % lang
>> + if pkg not in pkgs:
>> + pkgs.append(pkg)
>> +
>> + for prefix in mlvars:
>> + # Add multilib packages
>> + mlpkg = "%s-%s" % (prefix, pkg)
>> + if mlpkg not in pkgs:
>> + pkgs.append(mlpkg)
>> +
>> + return ' '.join(pkgs)
>>
>> # Prefer image, but use the fallback files for lookups if the image
>> ones
>> # aren't yet available.
>> diff --git a/meta/classes/multilib.bbclass
>> b/meta/classes/multilib.bbclass
>> index 052f911..ec8beb5 100644
>> --- a/meta/classes/multilib.bbclass
>> +++ b/meta/classes/multilib.bbclass
>> @@ -86,8 +86,17 @@ python __anonymous () {
>>
>> if bb.data.inherits_class('image', d):
>> clsextend.map_depends_variable("PACKAGE_INSTALL")
>> +
>> + # Need all non-multilib and multilib of LINGUAS_INSTALL
>> + linguasinstall = (d.getVar("LINGUAS_INSTALL", True) or
>> "").split()
>> clsextend.map_depends_variable("LINGUAS_INSTALL")
>> + for lang in linguasinstall:
>> + if lang not in (d.getVar("LINGUAS_INSTALL", True) or
>> "").split():
>> + d.appendVar("LINGUAS_INSTALL", " " + lang)
>> clsextend.map_depends_variable("RDEPENDS")
>> + for lang in linguasinstall:
>> + if lang not in (d.getVar("RDEPENDS", True) or "").split():
>> + d.appendVar("RDEPENDS", " " + lang)
>> pinstall = d.getVar("LINGUAS_INSTALL", True) + " " +
>> d.getVar("PACKAGE_INSTALL", True)
>> d.setVar("PACKAGE_INSTALL", pinstall)
>> d.setVar("LINGUAS_INSTALL", "")
>>
next prev parent reply other threads:[~2016-01-14 7:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-10 10:41 [PATCH 0/1] fix IMAGE_LINGUAS did not support multilib correctly Hongxu Jia
2015-12-10 10:41 ` [PATCH 1/1] image/multilib bbclass: install multilib and non-multilib language pkgs for image recipes Hongxu Jia
2016-01-14 6:54 ` Robert Yang
2016-01-14 7:08 ` Hongxu Jia [this message]
2016-01-14 6:48 ` [PATCH 0/1] fix IMAGE_LINGUAS did not support multilib correctly Hongxu Jia
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=56974989.6070305@windriver.com \
--to=hongxu.jia@windriver.com \
--cc=liezhi.yang@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=ross.burton@intel.com \
/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