Package: prebaseconfig Severity: wishlist Tags: l10n patch d-i * Recai Oktas [2004-07-11 21:08:04+0300] > Hi, > > I'm planning to work on a patch which generates the locale for the > selected language at the prebaseconfig stage. There are some pretty > good reasons to do so: > > * As a critical step for i18n, the locale generation should not be part > of a kludgy script like termwrap. It deserves a well-defined conf > script on its own right. > > * Some initialization scripts of the installed system may need to reach > the locale info found in the /etc/environment file. Indeed, this is > the case for console-screen.sh of console-tools and another bug report > (#258681) has been filed for keymap.sh of console-common, which refers > to this file. In the current implementation, /etc/environment is > created at the end of the base-config, which introduces a problem for > unicode consoles as explained below. > > * We modified the keymap handling to resolve a (IMO) serious d-i bug > (#251550) somewhat related with the unicode consoles. It seems that a > similar solution will be needed for languages using a UTF-8 locale > (confirmed for tr_TR.UTF-8). The console must be in the unicode mode > under the unicode locales, but _unless_ we consider to rehack [1] the > keymap loading mechanism, /etc/environment is the only source to > extract the locale info which mandates to install it in the first > stage d-i and later use it to switch the unicode mode. In fact, IMHO, > such an approach would present the most simple and natural solution > for the problem at hand. > > * By moving the locale generation code to prebaseconfig, one of the > central duties of termwrap will be transfered to this package, so we > will be able to simplify the termwrap. According to my tests, I can > safely state that, termwrap would not be needed at all for languages > having a charset of ISO-8859-[1-15]. But it would have to be used > mainly for Asian and Cyrillic consoles (not sure for the latter). > > As a side note, please notice that we wouldn't need to touch the > termwrap in an effort to simplify it, till the proposed patch matures > enough. > > So, have you any comments or objections? > > Regards, > > [1] The current code base of 'loadkeys' is rather messy, which makes > such modifications difficult. Hi, In accordance with my proposal, I prepared a patch set. Please consult to my previous post quoted above to see the rationale behind these changes. Here goes the descriptions of patches attached. Feel free to review them. * 75generate-locales.gz: Prebaseconfig script to install the locale for the selected language. It gets the localecode from the debconf registery and does the following things: (1) Parse (and validate) the localecode (2) Generate the locale (3) Save the generated locale entry in /target/etc/locale.gen (4) Setup the locale environment in /target/environment Considering some possibilites for the future, the script is somewhat over-designed. It is driven by the 'debian-installer/locale' for the moment, but it is quite easy to make it work with multiple locales (changing a few line should be sufficient), though the current i18n design of d-i doesn't supply a "multiple language selection" feature (providing that one of them is the default). As I confirm from my real life experiences, this feature comes handy when people from different nations share the same computing environment. Perhaps we may add a new debconf menu in languagechooser which could be shown at the low priority. Another possibility which comes to mind regarding the multiple locales feature is that, almost all languages have a Unicode (UTF-8) and a non-Unicode variant locale (e.g. fr_FR@euro and fr_FR.UTF-8), so we could install both of them for the user's convenience. I choosed the prebaseconfig package for the script and set the order to '75' (somewhere after the similar scripts, 65languagechooser and 70kbd-chooser). It is perfectly possible to put it another package like languagechooser or even in a separate package of its own. * prebaseconfig-generate-locales.patch: Required patch to add the script to the prebaseconfig package. The script has been heavily tested with a number of languages (to name a few; French, Turkish, Russian, Japanese and Ukrainian), so I think it should be safe to add it to d-i. Please note that, in order to resolve the bug #258681 completely, inclusion of this script is _mandatory_ since it creates the /etc/environment before the 2nd stage installation, and hence, feeds the /etc/init.d/keymap.sh with the locale environment. Regards, -- roktas
Attachment:
75generate-locales.gz
Description: Binary data
diff -ruN prebaseconfig.orig/debian/templates prebaseconfig/debian/templates --- prebaseconfig.orig/debian/templates Fri Jul 16 14:18:09 2004 +++ prebaseconfig/debian/templates Fri Jul 16 14:23:11 2004 @@ -19,6 +19,10 @@ Type: text _Description: Setting up frame buffer... +Template: prebaseconfig/progress/generate-locales +Type: text +_Description: Generating locale... + Template: prebaseconfig/progress/prepare-base-config Type: text _Description: Preparing for base-config...
Attachment:
signature.asc
Description: Digital signature