locales-c.utf-8 - Circumvent Debian locales packages using C.UTF-8

1. Description


"[A] locale is a set of parameters that defines the user's language, region and any special variant preferences that the user wants to see in their user interface."

locale-c.utf-8 provides the system integration to use C.UTF-8 within Debian based systems (see rational below).

2. Download

3. Installation

3.1 Source

  1. sudo apt install asciidoc git docbook-xml docbook-xsl libxml2-utils make xsltproc
  2. git clone https://sources.open-infrastructure.net/software/locales-c.utf-8
  3. cd locales-c.utf-8 && sudo make install

3.2 Debian 10 (buster) and newer

4. Development

Bug reports, feature requests, help, patches, support and everything else are welcome on the Open Infrastructure Software Mailing List.

Please base them against the 'next' Git branch using common sense.

Debian specific bugs can also be reported in the Debian Bug Tracking System.

See TODO for a list of items to work on.

5. Rational

5.1 Introduction

On Debian based systems the locales and locales-all packages contain the localization files (called locale, or locales) for all currently supported regions and languages.

The locales and locales-all packages also contain configuration files to define a default locale for a system. Other packages are relying on these settings in order to work properly.

If the locales or the configuration of the default locale is missing the automatic fallback of libc is used, which currently is C and not C.UTF-8:

5.2 Problem

Debian based systems expect a UTF-8 capable locale. Some packages behave differently when being run under a non-UTF-8 locale, such as:

Additionally some packages in Debian strictly depend on the locales or locales-all package eventhough only they require a proper UTF-8 locale to be used.

The C.UTF-8 locale is included in the libc-bin package which is a package marked essential and thus always present on any Debian based system.

5.3 Solution

The locale-c.utf-8 package provides the necessary glue on the system level (configuration files) as well as the on the package manager level (conflicts/breaks/provides on locales and locales-all) to allow using C.UTF-8 as the default locale by not breaking any other packages assumptions.

5.4 Use Case

On minimal systems such as servers and containers system administrators often prefer to use the C.UTF-8 locale instead of e.g. en_US.UTF-8:

6. Links

7. Authors