2016-12-22 03:13:56 +00:00
|
|
|
require glibc-collateral.inc
|
2011-06-28 12:30:47 +00:00
|
|
|
|
2014-08-28 06:00:54 +00:00
|
|
|
SUMMARY = "Locale data from glibc"
|
2013-04-24 16:45:04 +00:00
|
|
|
|
2014-08-28 06:00:54 +00:00
|
|
|
BPN = "glibc"
|
|
|
|
LOCALEBASEPN = "${MLPREFIX}glibc"
|
2011-06-28 12:30:47 +00:00
|
|
|
|
2014-08-28 06:00:54 +00:00
|
|
|
# glibc-collateral.inc inhibits all default deps, but do_package needs objcopy
|
|
|
|
# ERROR: objcopy failed with exit code 127 (cmd was 'i586-webos-linux-objcopy' --only-keep-debug 'glibc-locale/2.17-r0/package/usr/lib/gconv/IBM1166.so' 'glibc-locale/2.17-r0/package/usr/lib/gconv/.debug/IBM1166.so')
|
2013-07-05 01:17:51 +00:00
|
|
|
# ERROR: Function failed: split_and_strip_files
|
2014-01-14 21:49:33 +00:00
|
|
|
BINUTILSDEP = "virtual/${MLPREFIX}${TARGET_PREFIX}binutils:do_populate_sysroot"
|
2014-01-14 17:54:12 +00:00
|
|
|
BINUTILSDEP_class-nativesdk = "virtual/${TARGET_PREFIX}binutils-crosssdk:do_populate_sysroot"
|
|
|
|
do_package[depends] += "${BINUTILSDEP}"
|
2013-07-05 01:17:51 +00:00
|
|
|
|
glibc-locale: add runtime dependency on glibc
* the libc.so.6 dependency is detected always:
$ grep FILERDEPENDS BUILD-*/pkgdata/qemux86/runtime/localedef
BUILD-bad/pkgdata/qemux86/runtime/localedef:FILERDEPENDSFLIST_localedef: /usr/bin/localedef
BUILD-bad/pkgdata/qemux86/runtime/localedef:FILERDEPENDS_/usr/bin/localedef_localedef: libc.so.6(GLIBC_2.15) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.0) libc.so.6
BUILD-ok/pkgdata/qemux86/runtime/localedef:FILERDEPENDSFLIST_localedef: /usr/bin/localedef
BUILD-ok/pkgdata/qemux86/runtime/localedef:FILERDEPENDS_/usr/bin/localedef_localedef: libc.so.6(GLIBC_2.15) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.0) libc.so.6
* but in some builds the glibc dependency isn't built soon enough:
$ diff -uNr BUILD-*/pkgdata/qemux86/runtime/localedef
--- BUILD-bad/pkgdata/qemux86/runtime/localedef 2017-09-02 21:17:50.000000000 +0000
+++ BUILD-ok/pkgdata/qemux86/runtime/localedef 2017-09-11 10:15:49.954381592 +0000
@@ -6,6 +6,7 @@
LICENSE: GPLv2 & LGPLv2.1
DESCRIPTION_localedef: glibc: compile locale definition files
SUMMARY: Locale data from glibc
+RDEPENDS_localedef: glibc (>= 2.26)
SECTION: base
PKG_localedef: localedef
FILES_localedef: /usr/bin/localedef
and the build fails with QA issues:
http://errors.yoctoproject.org/Errors/Details/155529/
ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.0), but no providers found in RDEPENDS_localedef? [file-rdeps]
ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.15), but no providers found in RDEPENDS_localedef? [file-rdeps]
ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.3), but no providers found in RDEPENDS_localedef? [file-rdeps]
ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.2), but no providers found in RDEPENDS_localedef? [file-rdeps]
ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.1), but no providers found in RDEPENDS_localedef? [file-rdeps]
ERROR: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6, but no providers found in RDEPENDS_localedef? [file-rdeps]
ERROR: QA run found fatal errors. Please consider fixing them.
* reproducible with Yocto 2.2 Morty as well, with slightly different
error message:
ERROR: glibc-locale-2.24-r0 do_package_qa: QA Issue: /usr/bin/localedef contained in package localedef requires libc.so.6(GLIBC_2.4), but no providers found in RDEPENDS_localedef? [file-rdeps]
* cherry-picked from master 2d2b4d7383c93174fe8eeb72440e81345df71295
(From OE-Core rev: eade33d548bd1a16f5397a44299ac809707efd60)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-13 15:49:10 +00:00
|
|
|
# localedef links with libc.so and glibc-collateral.incinhibits all default deps
|
|
|
|
# cannot add virtual/libc to DEPENDS, because it would conflict with libc-initial in RSS
|
|
|
|
RDEPENDS_localedef += "glibc"
|
|
|
|
|
2011-06-28 12:30:47 +00:00
|
|
|
# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
|
|
|
|
# is set. The idea is to avoid running localedef on the target (at first boot)
|
|
|
|
# to decrease initial boot time and avoid localedef being killed by the OOM
|
|
|
|
# killer which used to effectively break i18n on machines with < 128MB RAM.
|
|
|
|
|
|
|
|
# default to disabled
|
|
|
|
ENABLE_BINARY_LOCALE_GENERATION ?= "0"
|
2016-05-21 10:53:08 +00:00
|
|
|
ENABLE_BINARY_LOCALE_GENERATION_pn-nativesdk-glibc-locale = "1"
|
2011-06-28 12:30:47 +00:00
|
|
|
|
|
|
|
#enable locale generation on these arches
|
|
|
|
# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
|
2014-12-18 08:51:01 +00:00
|
|
|
BINARY_LOCALE_ARCHES ?= "arm.* aarch64 i[3-6]86 x86_64 powerpc mips mips64"
|
2011-06-28 12:30:47 +00:00
|
|
|
|
|
|
|
# set "1" to use cross-localedef for locale generation
|
|
|
|
# set "0" for qemu emulation of native localedef for locale generation
|
|
|
|
LOCALE_GENERATION_WITH_CROSS-LOCALEDEF = "1"
|
|
|
|
|
2011-12-22 17:43:33 +00:00
|
|
|
PROVIDES = "virtual/libc-locale"
|
2011-06-28 12:30:47 +00:00
|
|
|
|
2011-12-22 17:43:33 +00:00
|
|
|
PACKAGES = "localedef ${PN}-dbg"
|
2011-06-28 12:30:47 +00:00
|
|
|
|
2012-10-12 10:46:38 +00:00
|
|
|
PACKAGES_DYNAMIC = "^locale-base-.* \
|
2014-08-28 06:00:54 +00:00
|
|
|
^glibc-gconv-.* ^glibc-charmap-.* ^glibc-localedata-.* ^glibc-binary-localedata-.* \
|
2014-02-17 14:22:28 +00:00
|
|
|
^glibc-gconv-.* ^glibc-charmap-.* ^glibc-localedata-.* ^glibc-binary-localedata-.* \
|
2014-08-28 06:00:54 +00:00
|
|
|
^${MLPREFIX}glibc-gconv$"
|
2011-06-28 12:30:47 +00:00
|
|
|
|
2014-08-28 06:00:54 +00:00
|
|
|
# Create a glibc-binaries package
|
2011-08-26 09:29:44 +00:00
|
|
|
ALLOW_EMPTY_${BPN}-binaries = "1"
|
|
|
|
PACKAGES += "${BPN}-binaries"
|
2016-12-14 21:13:04 +00:00
|
|
|
RRECOMMENDS_${BPN}-binaries = "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-binary") != -1])}"
|
2011-08-26 09:29:44 +00:00
|
|
|
|
2014-08-28 06:00:54 +00:00
|
|
|
# Create a glibc-charmaps package
|
2011-08-26 09:29:44 +00:00
|
|
|
ALLOW_EMPTY_${BPN}-charmaps = "1"
|
|
|
|
PACKAGES += "${BPN}-charmaps"
|
2016-12-14 21:13:04 +00:00
|
|
|
RRECOMMENDS_${BPN}-charmaps = "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-charmap") != -1])}"
|
2011-08-26 09:29:44 +00:00
|
|
|
|
2014-08-28 06:00:54 +00:00
|
|
|
# Create a glibc-gconvs package
|
2011-08-26 09:29:44 +00:00
|
|
|
ALLOW_EMPTY_${BPN}-gconvs = "1"
|
|
|
|
PACKAGES += "${BPN}-gconvs"
|
2016-12-14 21:13:04 +00:00
|
|
|
RRECOMMENDS_${BPN}-gconvs = "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-gconv") != -1])}"
|
2011-08-26 09:29:44 +00:00
|
|
|
|
2014-08-28 06:00:54 +00:00
|
|
|
# Create a glibc-localedatas package
|
2011-08-26 09:29:44 +00:00
|
|
|
ALLOW_EMPTY_${BPN}-localedatas = "1"
|
|
|
|
PACKAGES += "${BPN}-localedatas"
|
2016-12-14 21:13:04 +00:00
|
|
|
RRECOMMENDS_${BPN}-localedatas = "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-localedata") != -1])}"
|
2011-08-26 09:29:44 +00:00
|
|
|
|
2014-08-28 06:00:54 +00:00
|
|
|
DESCRIPTION_localedef = "glibc: compile locale definition files"
|
2011-06-28 12:30:47 +00:00
|
|
|
|
2014-08-28 06:00:54 +00:00
|
|
|
# glibc-gconv is dynamically added into PACKAGES, thus
|
|
|
|
# FILES_glibc-gconv will not be automatically extended in multilib.
|
|
|
|
# Explicitly add ${MLPREFIX} for FILES_glibc-gconv.
|
|
|
|
FILES_${MLPREFIX}glibc-gconv = "${libdir}/gconv/*"
|
2011-12-22 17:43:33 +00:00
|
|
|
FILES_localedef = "${bindir}/localedef"
|
2011-06-28 12:30:47 +00:00
|
|
|
|
2017-05-03 21:13:38 +00:00
|
|
|
LOCALETREESRC = "${COMPONENTS_DIR}/${PACKAGE_ARCH}/glibc-stash-locale"
|
2011-06-29 12:04:40 +00:00
|
|
|
|
2011-06-28 12:30:47 +00:00
|
|
|
do_install () {
|
2013-11-01 07:03:53 +00:00
|
|
|
mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir}
|
2012-02-15 08:49:07 +00:00
|
|
|
if [ -n "$(ls ${LOCALETREESRC}/${bindir})" ]; then
|
|
|
|
cp -fpPR ${LOCALETREESRC}/${bindir}/* ${D}${bindir}
|
|
|
|
fi
|
2012-09-24 19:00:41 +00:00
|
|
|
if [ -n "$(ls ${LOCALETREESRC}/${localedir})" ]; then
|
2013-11-01 07:03:53 +00:00
|
|
|
mkdir -p ${D}${localedir}
|
2012-09-24 19:00:41 +00:00
|
|
|
cp -fpPR ${LOCALETREESRC}/${localedir}/* ${D}${localedir}
|
2012-02-15 08:49:07 +00:00
|
|
|
fi
|
|
|
|
if [ -e ${LOCALETREESRC}/${libdir}/gconv ]; then
|
|
|
|
cp -fpPR ${LOCALETREESRC}/${libdir}/gconv ${D}${libdir}
|
|
|
|
fi
|
|
|
|
if [ -e ${LOCALETREESRC}/${datadir}/i18n ]; then
|
|
|
|
cp -fpPR ${LOCALETREESRC}/${datadir}/i18n ${D}${datadir}
|
|
|
|
fi
|
|
|
|
if [ -e ${LOCALETREESRC}/${datadir}/locale ]; then
|
|
|
|
cp -fpPR ${LOCALETREESRC}/${datadir}/locale ${D}${datadir}
|
|
|
|
fi
|
2016-01-31 19:55:30 +00:00
|
|
|
chown root:root -R ${D}
|
2011-06-29 12:04:40 +00:00
|
|
|
cp -fpPR ${LOCALETREESRC}/SUPPORTED ${WORKDIR}
|
2011-06-28 12:30:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
inherit libc-package
|
|
|
|
|
|
|
|
BBCLASSEXTEND = "nativesdk"
|