public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: Robert Yang <liezhi.yang@windriver.com>
To: Hongxu Jia <hongxu.jia@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 14:54:06 +0800	[thread overview]
Message-ID: <5697460E.8030705@windriver.com> (raw)
In-Reply-To: <54cd9261fec878206933940c7b097835d738e3f7.1449743618.git.hongxu.jia@windriver.com>



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.

// 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", "")
>


  reply	other threads:[~2016-01-14  6:54 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 [this message]
2016-01-14  7:08     ` Hongxu Jia
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=5697460E.8030705@windriver.com \
    --to=liezhi.yang@windriver.com \
    --cc=hongxu.jia@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