Univention Bugzilla – Bug 26322
/etc/locale.gen sollte auch locale/default enthalten
Last modified: 2012-07-20 15:24:59 CEST
Aufgrund von Bug 26320 wurde ein System installiert, welches Werte ohne Schnittmenge in den UCR-Variablen "locale" und "localte/default" enthielt. Ggf. sollte in /etc/locale.gen auch der Wert aus "locale/default" eingetragen werden, falls der Wert nicht in der UCR-Variable "locale" enthalten ist. Dies würde z.B. Probleme wie in 26320 bzw. 24913 vermeiden.
Die Änderungen sind als Python-Code einzufügen in der Datei dev/branches/ucs-3.0/ucs/base/univention-base-files/conffiles/etc/locale.gen. Zur Laufzeit liegt die Datei unter /etc/univention/templates/files/etc/locale.gen und UCR erzeugt daraus die Datei /etc/locale.gen. Wie teste ich, ob die Lösung funktioniert ? Mit UCR einen Wert für locale/default setzen, der so noch nirgends existiert. Danach prüfen, ob dieser Wert auch in /etc/locale.gen ankommt (im Moment kommt er noch nicht an). ucr set locale/default=de_DE.UTF-16:UTF-16 cat /etc/locale.gen In /etc/locale.gen dürfen aber keine Zeilen doppelt vorkommen.
Ich habe die Änderung so implementiert wie von Sönke vorgeschlagen. Der Wert von ucr locale/default (falls es einen gibt) wird grundsätzlich als erster in /etc/locale.gen eingetragen. Dieser Wert wird nicht wiederholt generiert, falls er in der locale wiederholt vorkommt. Es wird aber nach wie vor NICHTS generiert, falls diese UCR-Variablen überhaupt nicht existieren (das ist OK so, sagt Stefan). Das fertig gebaute Paket habe ich lokal installiert und getestet. Getestet habe ich so wie oben beschrieben und es funktionierte gut. Im Handbuch/changelog hab ich die Änderung unter "other changes" eingetragen, weil es kein besseres Kapitel zum Thema locale gab.
-> ucr unset locale/default Unsetting locale/default File: /usr/share/univention-management-console-frontend/languages.json File: /etc/default/locale File: /etc/profile File: /etc/locale.gen Traceback (most recent call last): File "<stdin>", line 14, in <module> NameError: name 'dl' is not defined Generating locales (this might take a while)... Generation complete.
Ja, den Fall hatte ich leider übersehen. Der Fall einer ungesetzten ucr locale/default wird nun korrekt behandelt. Ich hab auch mit einer ungesetzten ucr locale getestet. Falls beide (locale/default und locale) ungesetzt sind, dann ist natürlich auch /etc/locale.gen leer, aber es gibt auf keinen Fall einen Python traceback. ucr get locale ucr get locale/default de_DE.UTF-8:UTF-8 ucr set locale="de_AT.UTF-8:UTF-8" Create locale File: /usr/share/univention-management-console-frontend/languages.json File: /etc/locale.gen Generating locales (this might take a while)... de_DE.UTF-8... done de_AT.UTF-8... done Generation complete. ucr unset locale Unsetting locale File: /usr/share/univention-management-console-frontend/languages.json File: /etc/locale.gen Generating locales (this might take a while)... de_DE.UTF-8... done Generation complete. cat /etc/locale.gen de_DE.UTF-8 UTF-8
OK, funktioniert Changelog Eintrag vorhanden.
UCS 3.0-2 has been released: http://forum.univention.de/viewtopic.php?f=54&t=1905 If this error occurs again, please use "Clone This Bug".