mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
lib/oe/package: add LOCALE_PATHS to add define all locations for locales
Some packages may contain localized files not located in default path
${datadir}/locale. Add the new variable LOCALE_PATHS to allow a recipe
to define extra paths or even fully override the scanned directories.
LOCALE_PATHS is set at ${datadir}/locale by default to keep the exact
same behavior for the recipes which did not need modification.
(From OE-Core rev: 0ffc7cf01225743789ac30dd325fca05b9203be1)
Signed-off-by: Jonathan GUILLOT <jonathan@joggee.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
c381ca7243
commit
c2a7c008e1
@@ -335,6 +335,7 @@ python package_convert_pr_autoinc() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
LOCALEBASEPN ??= "${PN}"
|
LOCALEBASEPN ??= "${PN}"
|
||||||
|
LOCALE_PATHS ?= "${datadir}/locale"
|
||||||
|
|
||||||
python package_do_split_locales() {
|
python package_do_split_locales() {
|
||||||
oe.package.split_locales(d)
|
oe.package.split_locales(d)
|
||||||
|
|||||||
@@ -271,6 +271,7 @@ LICENSE_PATH[doc] = "Path to additional licenses used during the build."
|
|||||||
LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
|
LINUX_KERNEL_TYPE[doc] = "Defines the kernel type to be used in assembling the configuration."
|
||||||
LINUX_VERSION[doc] = "The Linux version from kernel.org on which the Linux kernel image being built using the OpenEmbedded build system is based. You define this variable in the kernel recipe."
|
LINUX_VERSION[doc] = "The Linux version from kernel.org on which the Linux kernel image being built using the OpenEmbedded build system is based. You define this variable in the kernel recipe."
|
||||||
LINUX_VERSION_EXTENSION[doc] = "A string extension compiled into the version string of the Linux kernel built with the OpenEmbedded build system. You define this variable in the kernel recipe."
|
LINUX_VERSION_EXTENSION[doc] = "A string extension compiled into the version string of the Linux kernel built with the OpenEmbedded build system. You define this variable in the kernel recipe."
|
||||||
|
LOCALE_PATHS[doc] = "Whitespace separated list of paths that are scanned to construct locale packages. The list already contains ${datadir}/locale by default."
|
||||||
LOCALE_UTF8_IS_DEFAULT[doc] = "If set, locale names are renamed such that those lacking an explicit encoding (e.g. en_US) will always be UTF-8, and non-UTF-8 encodings are renamed to, e.g., en_US.ISO-8859-1. Otherwise, the encoding is specified by glibc's SUPPORTED file. Not supported for precompiled locales."
|
LOCALE_UTF8_IS_DEFAULT[doc] = "If set, locale names are renamed such that those lacking an explicit encoding (e.g. en_US) will always be UTF-8, and non-UTF-8 encodings are renamed to, e.g., en_US.ISO-8859-1. Otherwise, the encoding is specified by glibc's SUPPORTED file. Not supported for precompiled locales."
|
||||||
LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
|
LOG_DIR[doc] = "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
|
||||||
|
|
||||||
|
|||||||
@@ -639,11 +639,6 @@ def split_locales(d):
|
|||||||
|
|
||||||
packages = (d.getVar('PACKAGES') or "").split()
|
packages = (d.getVar('PACKAGES') or "").split()
|
||||||
|
|
||||||
datadir = d.getVar('datadir')
|
|
||||||
if not datadir:
|
|
||||||
bb.note("datadir not defined")
|
|
||||||
return
|
|
||||||
|
|
||||||
dvar = d.getVar('PKGD')
|
dvar = d.getVar('PKGD')
|
||||||
pn = d.getVar('LOCALEBASEPN')
|
pn = d.getVar('LOCALEBASEPN')
|
||||||
|
|
||||||
@@ -653,14 +648,20 @@ def split_locales(d):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
locale_index = len(packages)
|
locale_index = len(packages)
|
||||||
|
|
||||||
localedir = os.path.join(dvar + datadir, 'locale')
|
localepaths = []
|
||||||
|
locales = set()
|
||||||
|
for localepath in (d.getVar('LOCALE_PATHS') or "").split():
|
||||||
|
localedir = dvar + localepath
|
||||||
|
if cpath.isdir(localedir):
|
||||||
|
locales.update(os.listdir(localedir))
|
||||||
|
localepaths.append(localepath)
|
||||||
|
else:
|
||||||
|
bb.debug(1, "No locale files in %s" % localepath)
|
||||||
|
|
||||||
if not cpath.isdir(localedir):
|
if len(locales) == 0:
|
||||||
bb.debug(1, "No locale files in this package")
|
bb.debug(1, "No locale files in this package")
|
||||||
return
|
return
|
||||||
|
|
||||||
locales = os.listdir(localedir)
|
|
||||||
|
|
||||||
summary = d.getVar('SUMMARY') or pn
|
summary = d.getVar('SUMMARY') or pn
|
||||||
description = d.getVar('DESCRIPTION') or ""
|
description = d.getVar('DESCRIPTION') or ""
|
||||||
locale_section = d.getVar('LOCALE_SECTION')
|
locale_section = d.getVar('LOCALE_SECTION')
|
||||||
@@ -670,7 +671,10 @@ def split_locales(d):
|
|||||||
pkg = pn + '-locale-' + ln
|
pkg = pn + '-locale-' + ln
|
||||||
packages.insert(locale_index, pkg)
|
packages.insert(locale_index, pkg)
|
||||||
locale_index += 1
|
locale_index += 1
|
||||||
d.setVar('FILES:' + pkg, os.path.join(datadir, 'locale', l))
|
files = []
|
||||||
|
for localepath in localepaths:
|
||||||
|
files.append(os.path.join(localepath, l))
|
||||||
|
d.setVar('FILES:' + pkg, " ".join(files))
|
||||||
d.setVar('RRECOMMENDS:' + pkg, '%svirtual-locale-%s' % (mlprefix, ln))
|
d.setVar('RRECOMMENDS:' + pkg, '%svirtual-locale-%s' % (mlprefix, ln))
|
||||||
d.setVar('RPROVIDES:' + pkg, '%s-locale %s%s-translation' % (pn, mlprefix, ln))
|
d.setVar('RPROVIDES:' + pkg, '%s-locale %s%s-translation' % (pn, mlprefix, ln))
|
||||||
d.setVar('SUMMARY:' + pkg, '%s - %s translations' % (summary, l))
|
d.setVar('SUMMARY:' + pkg, '%s - %s translations' % (summary, l))
|
||||||
|
|||||||
Reference in New Issue
Block a user