[oe] Problems with generating and installing locale packages of eglibc/glibc

Hauser, Wolfgang (external) Wolfgang.Hauser.external at cassidian.com
Wed Aug 17 08:17:16 UTC 2011


Hello,

we generated some locale packages of eglibc and wanted to install them
while offline image generation. The locale-base* packages are installed
properly, but the corresponding packages e.g. eglibc-binary-localedata-*
are not installed.(the same occurs with glibc).
we use following settings:

2011.03-mainenance branch

local.conf:
***
ENABLE_BINARY_LOCALE_GENERATION = "1"
LOCALE_GENERATION_WITH_CROSS-LOCALEDEF = "1"
GLIBC_INTERNAL_USE_BINARY_LOCALE = "compile"
GLIBC_GENERATE_LOCALES = "en_US.UTF-8 en_GB.UTF-8 de_DE.UTF-8
de_CH.UTF-8 es_ES.
UTF-8 fr_FR.UTF-8 fr_CH.UTF-8 it_IT.UTF-8 it_CH.UTF-8"
***

xx-image.bb:
***
IMAGE_LINGUAS = "en-us en-gb de-de de-ch es-es fr-fr fr-ch it-it it-ch"

ROOTFS_POSTPROCESS_COMMAND += "install_linguas;"
***

The "locale-base-*" packages (e.g de-de) got following package
description:

****
dpkg-deb -I locale-base-de-de_2.12-r21.8+svnr12323.9_armv7a.ipk
 new debian package, version 2.0.
 size 906 bytes: control archive= 608 bytes.
     808 bytes,    14 lines      control              
 Package: locale-base-de-de
 Version: 2.12-r21.8+svnr12323.9
 Description: Embedded GNU C Library
 Section: libs
 Priority: required
 Maintainer: Angstrom Developers <angstrom-distro-devel at linuxtogo.org>
 License: LGPL
 Architecture: armv7a
 OE: eglibc
 Homepage: http://www.eglibc.org/home
 Build: <unknown>/9426
 Depends: eglibc-binary-localedata-de.de
 Provides: virtual-locale-de-de, virtual-locale-de,
eglibc-binary-localedata-de.de
 Source: svn://svn.eglibc.org/branches;module=eglibc-2_12;proto=svn
file://eglibc-svn-arm-lowlevellock-include-tls.patch
file://IO-acquire-lock-fix.patch file://shorten-build-commands.patch
file://sh4_set_fpscr_2.12.patch file://sh4_local-fpscr_values.patch
file://eglibc-dont-cache-slibdir.patch
file://armv4-eabi-compile-fix.patch file://etc/ld.so.conf
file://generate-supported.mk 
***

this causes that the corresponding eglibc-binary-localedata-* packages
are not installed while offline image creation.

The problem is the wrong dependency entry (here: "Depends:
eglibc-binary-localedata-de.de" package name is
eglibc-binary-localedata-de-de) and the "self providing" entry (here:
"Provides: virtual-locale-de-de, virtual-locale-de,
eglibc-binary-localedata-de.de").

After examine the history of the locale generation, we found a change
from glibc-package.bbclass to libc-package.bbclass after the
release-2010.12. Hereby the function "output_locale_binary_rdepends" is
different.

Version release-2010.12
glibc-packages.bbclass

***
	def output_locale_binary_rdepends(name, pkgname, locale,
encoding):
		m = re.match("(.*)\.(.*)", name)
		if m:
			glibc_name = "%s.%s" % (m.group(1),
m.group(2).lower().replace("-",""))
		else:
			glibc_name = name
		bb.data.setVar('RDEPENDS_%s' % pkgname,
legitimize_package_name('glibc-binary-localedata-%s' % glibc_name), d)
***

Version 2011.03-maintenance:
libc-packages.bbclass

***
	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("-",""))
		else:
			libc_name = name
		bb.data.setVar('RDEPENDS_%s' % pkgname,
legitimize_package_name('%s-binary-localedata-%s' \
			% (bpn, libc_name)), d)
		rprovides = (bb.data.getVar('RPROVIDES_%s' % pkgname, d,
True) or "").split()
	
rprovides.append(legitimize_package_name('%s-binary-localedata-%s' %
(bpn, libc_name)))
		bb.data.setVar('RPROVIDES_%s' % pkgname, "
".join(rprovides), d)
***

If we use the old function, the locale packages are processed and
installed properly.

The "locale-base-*" package description now was:

***
dpkg-deb -I locale-base-de-de_2.12-r21.8+svnr12323.9_armv7a.ipk
 new debian package, version 2.0.
 size 902 bytes: control archive= 604 bytes.
     776 bytes,    14 lines      control              
 Package: locale-base-de-de
 Version: 2.12-r21.8+svnr12323.9
 Description: Embedded GNU C Library
 Section: libs
 Priority: required
 Maintainer: Angstrom Developers <angstrom-distro-devel at linuxtogo.org>
 License: LGPL
 Architecture: armv7a
 OE: eglibc
 Homepage: http://www.eglibc.org/home
 Build: <unknown>/9196
 Depends: eglibc-binary-localedata-de-de
 Provides: virtual-locale-de-de, virtual-locale-de
 Source: svn://svn.eglibc.org/branches;module=eglibc-2_12;proto=svn
file://eglibc-svn-arm-lowlevellock-include-tls.patch
file://IO-acquire-lock-fix.patch file://shorten-build-commands.patch
file://sh4_set_fpscr_2.12.patch file://sh4_local-fpscr_values.patch
file://eglibc-dont-cache-slibdir.patch
file://armv4-eabi-compile-fix.patch file://etc/ld.so.conf
file://generate-supported.mk
***

Our questions now:

What was the intention of the changes in the function
"output_locale_binary_rdepends"?
Is there a problem using the old function for our local installation ?
What language definition patterns (in GLIBC_GENERATE_LOCALES) should be
covered by the new function ?
Is this a bug ?

Regards
Wolfgang Hauser




More information about the Openembedded-devel mailing list