[OE-core] [PATCH] Add and use 'localedir' variable

Khem Raj raj.khem at gmail.com
Mon Sep 24 21:00:40 UTC 2012


On Mon, Sep 24, 2012 at 12:00 PM, Christopher Larson <kergoth at gmail.com> wrote:
> From: Christopher Larson <chris_larson at mentor.com>
>
> This avoids the hardcoding of ${libdir}/locale which is all over the place,
> and will facilitate use of ${exec_prefix}/lib/locale instead of
> ${libdir}/locale.

what is adavantage of letting use ${exec_prefix}/lib/locale ? Do you have a case
where you share locale between multilibs ?

>
> This doesn't actually change any output at this time. Verified this with
> buildhistory against the packages produced from core-image-base.
>
> Signed-off-by: Christopher Larson <chris_larson at mentor.com>
> ---
>  meta/classes/libc-common.bbclass            |    2 +-
>  meta/classes/libc-package.bbclass           |   27 ++++++++++++++-------------
>  meta/conf/bitbake.conf                      |    1 +
>  meta/recipes-core/eglibc/eglibc-locale.inc  |    6 +++---
>  meta/recipes-core/eglibc/eglibc-package.inc |   11 ++++++++---
>  meta/recipes-core/eglibc/eglibc.inc         |    1 +
>  6 files changed, 28 insertions(+), 20 deletions(-)
>
> diff --git a/meta/classes/libc-common.bbclass b/meta/classes/libc-common.bbclass
> index 06d5201..0f49936 100644
> --- a/meta/classes/libc-common.bbclass
> +++ b/meta/classes/libc-common.bbclass
> @@ -5,7 +5,7 @@ do_install() {
>                 install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
>         done
>         install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/
> -       install -d ${D}${libdir}/locale
> +       install -d ${D}${localedir}
>         make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
>         # get rid of some broken files...
>         for i in ${GLIBC_BROKEN_LOCALES}; do
> diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
> index 70490ef..80d7124 100644
> --- a/meta/classes/libc-package.bbclass
> +++ b/meta/classes/libc-package.bbclass
> @@ -65,12 +65,12 @@ fi
>
>  rm -rf ${TMP_LOCALE}
>  mkdir -p ${TMP_LOCALE}
> -if [ -f ${libdir}/locale/locale-archive ]; then
> -        cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/
> +if [ -f ${localedir}/locale-archive ]; then
> +        cp ${localedir}/locale-archive ${TMP_LOCALE}/
>  fi
>  localedef --inputfile=${datadir}/i18n/locales/%s --charmap=%s --prefix=/tmp/locale %s
> -mkdir -p ${libdir}/locale/
> -mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/
> +mkdir -p ${localedir}/
> +mv ${TMP_LOCALE}/locale-archive ${localedir}/
>  rm -rf ${TMP_LOCALE}
>  }
>
> @@ -80,22 +80,22 @@ locale_base_postrm() {
>
>  rm -rf ${TMP_LOCALE}
>  mkdir -p ${TMP_LOCALE}
> -if [ -f ${libdir}/locale/locale-archive ]; then
> -       cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/
> +if [ -f ${localedir}/locale-archive ]; then
> +       cp ${localedir}/locale-archive ${TMP_LOCALE}/
>  fi
>  localedef --delete-from-archive --inputfile=${datadir}/locales/%s --charmap=%s --prefix=/tmp/locale %s
> -mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/
> +mv ${TMP_LOCALE}/locale-archive ${localedir}/
>  rm -rf ${TMP_LOCALE}
>  }
>
>
> -TMP_LOCALE="/tmp/locale${libdir}/locale"
> +TMP_LOCALE="/tmp/locale${localedir}"
>  LOCALETREESRC ?= "${PKGD}"
>
>  do_prep_locale_tree() {
>         treedir=${WORKDIR}/locale-tree
>         rm -rf $treedir
> -       mkdir -p $treedir/${base_bindir} $treedir/${base_libdir} $treedir/${datadir} $treedir/${libdir}/locale
> +       mkdir -p $treedir/${base_bindir} $treedir/${base_libdir} $treedir/${datadir} $treedir/${localedir}
>         tar -cf - -C ${LOCALETREESRC}${datadir} -ps i18n | tar -xf - -C $treedir/${datadir}
>         # unzip to avoid parsing errors
>         for i in $treedir/${datadir}/i18n/charmaps/*gz; do
> @@ -111,8 +111,9 @@ do_prep_locale_tree() {
>  do_collect_bins_from_locale_tree() {
>         treedir=${WORKDIR}/locale-tree
>
> -       mkdir -p ${PKGD}${libdir}
> -       tar -cf - -C $treedir/${libdir} -ps locale | tar -xf - -C ${PKGD}${libdir}
> +       parent=$(dirname ${localedir})
> +       mkdir -p ${PKGD}/$parent
> +       tar -cf - -C $treedir/$parent -ps $(basename ${localedir}) | tar -xf - -C ${PKGD}$parent
>  }
>
>  inherit qemu
> @@ -141,7 +142,7 @@ python package_do_split_gconvs () {
>      gconv_libdir = base_path_join(libdir, "gconv")
>      charmap_dir = base_path_join(datadir, "i18n", "charmaps")
>      locales_dir = base_path_join(datadir, "i18n", "locales")
> -    binary_locales_dir = base_path_join(libdir, "locale")
> +    binary_locales_dir = d.getVar('localedir', True)
>
>      def calc_gconv_deps(fn, pkg, file_regex, output_pattern, group):
>          deps = []
> @@ -259,7 +260,7 @@ python package_do_split_gconvs () {
>          path = d.getVar("PATH", True)
>          i18npath = base_path_join(treedir, datadir, "i18n")
>          gconvpath = base_path_join(treedir, "iconvdata")
> -        outputpath = base_path_join(treedir, libdir, "locale")
> +        outputpath = base_path_join(treedir, binary_locales_dir)
>
>          use_cross_localedef = d.getVar("LOCALE_GENERATION_WITH_CROSS-LOCALEDEF", True) or "0"
>          if use_cross_localedef == "1":
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index 9b41749..3496d2b 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -40,6 +40,7 @@ export libdir = "${exec_prefix}/${baselib}"
>  export includedir = "${exec_prefix}/include"
>  export oldincludedir = "${exec_prefix}/include"
>  export systemd_unitdir = "${base_libdir}/systemd"
> +localedir = "${libdir}/locale"
>
>  # Linkage between native/cross/nativesdk layouts
>  base_bindir_native = "/bin"
> diff --git a/meta/recipes-core/eglibc/eglibc-locale.inc b/meta/recipes-core/eglibc/eglibc-locale.inc
> index 296afde..105cf2e 100644
> --- a/meta/recipes-core/eglibc/eglibc-locale.inc
> +++ b/meta/recipes-core/eglibc/eglibc-locale.inc
> @@ -69,12 +69,12 @@ FILES_localedef = "${bindir}/localedef"
>  LOCALETREESRC = "${STAGING_INCDIR}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}"
>
>  do_install () {
> -       mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir}
> +       mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir} ${D}${localedir}
>         if [ -n "$(ls ${LOCALETREESRC}/${bindir})" ]; then
>                 cp -fpPR ${LOCALETREESRC}/${bindir}/* ${D}${bindir}
>         fi
> -       if [ -e ${LOCALETREESRC}/${libdir}/locale ]; then
> -               cp -fpPR ${LOCALETREESRC}/${libdir}/locale ${D}${libdir}
> +       if [ -n "$(ls ${LOCALETREESRC}/${localedir})" ]; then
> +               cp -fpPR ${LOCALETREESRC}/${localedir}/* ${D}${localedir}
>         fi
>         if [ -e ${LOCALETREESRC}/${libdir}/gconv ]; then
>                 cp -fpPR ${LOCALETREESRC}/${libdir}/gconv ${D}${libdir}
> diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
> index ab7540a..0059bcf 100644
> --- a/meta/recipes-core/eglibc/eglibc-package.inc
> +++ b/meta/recipes-core/eglibc/eglibc-package.inc
> @@ -98,7 +98,9 @@ do_install_locale () {
>         if [ -e ${D}${libdir}/gconv ]; then
>                 mv -f ${D}${libdir}/gconv ${dest}${libdir}
>         fi
> -       cp -fpPR ${D}${libdir}/* ${dest}${libdir}
> +       if [ -e ${D}${exec_prefix}/lib ]; then
> +               cp -fpPR ${D}${exec_prefix}/lib ${dest}${exec_prefix}
> +       fi
>         if [ -e ${D}${datadir}/i18n ]; then
>                 mv ${D}${datadir}/i18n ${dest}${datadir}
>         fi
> @@ -113,6 +115,9 @@ PACKAGE_PREPROCESS_FUNCS += "eglibc_package_preprocess"
>
>  eglibc_package_preprocess () {
>         rm -rf ${PKGD}/${includedir}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}
> -       rm -rf ${PKGD}/${libdir}/locale
> +       rm -rf ${PKGD}/${localedir}
> +       if [ "${libdir}" != "${exec_prefix}/lib" ]; then
> +               # This dir only exists to hold locales
> +               rm -rf ${PKGD}${exec_prefix}/lib
> +       fi
>  }
> -
> diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc
> index 29e303f..cae955d 100644
> --- a/meta/recipes-core/eglibc/eglibc.inc
> +++ b/meta/recipes-core/eglibc/eglibc.inc
> @@ -34,6 +34,7 @@ LEAD_SONAME = "libc.so"
>
>  CACHED_CONFIGUREVARS += "ac_cv_path_KSH=${base_bindir}/bash \
>                         ac_cv_path_BASH_SHELL=${base_bindir}/bash \
> +                       libc_cv_localedir=${localedir} \
>                        libc_cv_ssp=no \
>                        "
>
> --
> 1.7.9.5
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list