|author||Thomas Petazzoni <firstname.lastname@example.org>||2017-07-04 16:47:49 +0200|
|committer||Thomas Petazzoni <email@example.com>||2017-07-04 19:09:55 +0200|
system: introduce BR2_SYSTEM_ENABLE_NLS
Until now, the option BR2_ENABLE_LOCALE was more-or-less controlling whether NLS support was enabled in packages. More precisely, if BR2_ENABLE_LOCALE=y, we were not doing anything (so some packages could have NLS support enabled, some not). And only when BR2_ENABLE_LOCALE was disabled we were explicitly passing --disable-nls to packages. This doesn't make much sense, and there is no reason to tie NLS support to locale support. You may want locale support, but not necessarily NLS support. Therefore, this commit introduces BR2_SYSTEM_ENABLE_NLS, which allows to enable/disable NLS support globally. When this option is enabled, we pass --enable-nls to packages, otherwise we pass --disable-nls. In addition, when this option is enabled and the C library doesn't provide a full-blown implementation of gettext, we select the gettext package, which will provide the full blown implementation. It is worth mentioning that this commit has a visible impact for users: - Prior to this commit, as soon as BR2_ENABLE_LOCALE=y, packages *could* provide NLS support. It was up to each package to decide whether they wanted to provide NLS support or not (we were not passing --enable-nls nor --disable-nls). - After this commit, it's BR2_SYSTEM_ENABLE_NLS that controls whether NLS is enabled or disabled, and this option is disabled by default. Bottom line: with the default of BR2_SYSTEM_ENABLE_NLS disabled, some packages may lose NLS support that they used to provide. But we believe it's a reasonable default behavior for Buildroot, where generally NLS support is not necessary. Signed-off-by: Thomas Petazzoni <firstname.lastname@example.org> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <email@example.com> Signed-off-by: Thomas Petazzoni <firstname.lastname@example.org>
Diffstat (limited to 'system')
1 files changed, 19 insertions, 0 deletions
diff --git a/system/Config.in b/system/Config.in
index 858883955e..828df4217e 100644
@@ -420,6 +420,25 @@ config BR2_GENERATE_LOCALE
specified, UTF-8 is assumed. Examples of locales: en_US,
+ bool "Enable Native Language Support (NLS)"
+ depends on BR2_USE_WCHAR
+ # - glibc has built-in NLS support, but anyway doesn't
+ # support static linking
+ # - musl and uclibc support static linking, but they don't
+ # have built-in NLS support, which is provided by the
+ # libintl library from gettext. The fact that it is a
+ # separate library causes too many problems for static
+ # linking.
+ depends on !BR2_STATIC_LIBS
+ select BR2_PACKAGE_GETTEXT if !BR2_TOOLCHAIN_HAS_FULL_GETTEXT
+ This option will enable Native Language Support, which will
+ allow software packages to support translations.
+comment "NLS support needs a toolchain w/ wchar, dynamic library"
+ depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS
bool "Install timezone info"
select BR2_PACKAGE_TZDATA if BR2_TOOLCHAIN_USES_GLIBC