[devel] О кодировке названий файлов при монтировании

Vitaly Lipatov =?iso-8859-1?q?lav_=CE=C1_altlinux=2Eru?=
Вт Фев 22 12:49:35 MSK 2005


On Tuesday 22 February 2005 11:58, Alexey Morozov wrote:
> On Mon, Feb 21, 2005 at 11:30:51PM +0300, Vitaly Lipatov wrote:
> > On Monday 21 February 2005 20:29, Alexey Morozov wrote:
> > > Народ, по-моему, вы маетесь ......
> >
> > Вы это скажите тем, кто пытается iocharset в fstab
> > запихивать.
>
> Те, кто пытаются, по крайней мере, представляют себе
> _алгоритм_ действий и степень его применимости. Возможно, я
Ну это заметно, особенно по советам на приведённой вами ссылке :)
> слишком невнимательно посмотрел на Ваше решение, но, извините,
> _system-wide_ алгоритма я там НЕ заметил.
Я думаю оно там есть, поскольку разрабатывалось именно так.
И с учётом не только ALT specific.

> О _какой_ кодировке? Что, если на машине три разноязыких
> пользователя, использующих, к тому же, 5-6 кодировок в сумме?
> Какую кодировку Вы будете использовать в этом случае?
Я уже ответил Антону рядом.
По текущей реализации при монтировании, например, будет
использоваться кодировка, полученная из локали пользователя.
Если это невозможно, будет использоваться общесистемная 
кодировка, полученная из системной локали.
Кого это не устроит?

> emacs), является UTF-8.
Это давно понятно. Начните с патчей к mc и чего там - zsh? :)

> > Мне кажется, в _системе_ все файлы должны именоваться в
> > одной кодировке. Если нужны исключения - объясните и
> > отдельно укажите.
>
> Да. Но такой кодировкой может быть только UTF-8.
Вы говорите об идеальном варианте. Не согласится нельзя.
Но сегодня у меня koi8-r, у других - cp1251, и продлится это ещё 
долго.

> > А кодировка пользователя - это что такое? Его локаль?
>
> Нет. В этом-то, вообще говоря, еще одна проблема. Мне не
> удалось с наскока провести в общем случае соответствие между
> локалью и кодировкой.
А я считаю, что мне удалось. И без наскока, а проанализировав
glibc, glib, wine, kernel, gettext, mount в нужных местах.

> То есть, речь о UTF-8? Так и запишем.
Не записывайте, о чём речь не понял.

>
> > Проблемы пользователей, имеющие отличную от системной
> > локаль, давайте обсудим отдельно:
> >  - примеры, зачем это нужно
>
> Хе-хе... Некоторые из наших друзей сочтут этот вопрос
> имперским шовинизмом ;-).
У нас общие друзья? Мои - не сочтут. Как и любые мои вопросы.

> > Это всё замечательно. Сначала я хотел бы решить проблемы 90%
> > пользователей, которых кормят словами, что кодировка

> Виталий, знаете, не надо никакой магии. Совсем. Юникс - это
> про простые, даже кондовые решения.
Вы это расскажите тем кускам кода, которые реализуют 
локале/чарсетные хаки, вшитые намертво кодировки iso8859-1 и пр. 
- в куче программ. И делают это недостаточно умело. Я всего лишь 
опыт обобщил в конкретный код.
А магии нет, а Линукс - для пользователя.

> Для тех устройств, монтирование которых не отдано на откуп
> HAL'у, настройка проводится в fstab. Причем, скорее всего,
> прямо таки инсталлятором, или соответствующей ему "runtime"
А потом я добавляю новый диск...
А потом я меняю системную локаль...

> частью. Для устройств, чьим монтированием заведует HAL,
> прописывается мале^H^H^H^H ну, не очень большой файлик, XML
> все-таки, понимать надо, там маленьких файлов не бывает по
> определению :-), где сказано: если файловая система fat (и
> производные) использовать koi8-r.
С какой стати koi8-r? Из добавленного параметра
SYSMOUNTCHARSET?
А если у меня нет HAL, если я не поставил этот параметр,
который - новая выдумка (с обоснованием?) на тему ALT specific.

> Хуже того, я публиковал уже решение, которое позволит
> автоматически настраивать HAL на ту кодировку, которая реально
> использовать в системе.
Когда увидим, тогда обсудим.

> > Решение хорошее. Как только в системе будет dbus и hal,
> > обязательно вернёмся.
>
> Мы уже там :-).
Только пока системы нет. Я не про Сизиф.

> > > /etc/sysconfig/i18n, а на основании этого параметра
> > > формировать настройки HAL'у. Будет работать для 90%
> > > случаев, по крайней мере.
> >
> > Этот параметр там уже есть в принципе (LANG), если нужен
> > другой - давайте обоснуем.
>
> Нет. Как я уже говорил, проставить соответствие между
> кодировкой и локалью в общем случае вот так вот запросто
А я говорю что можно. И дальше что?
> нельзя. Ну, точнее, я, глядя в info libc, такого способа не
> увидал.
Ну так посмотрите вывод
natspec -i и скажите в чём ощибка :)

> . /etc/sysconfig/i18n
>
> : ${SYSFONTACM:=koi8-r}
> : ${SYSMOUNTCHARSET:=$SYSFONTACM}
>
> echo $SYSMOUNTCHARSET
А все, кто потянутся, скажут что это проще?
А как я в программе на C узнаю эту переменную?


>
> http://lists.altlinux.ru/pipermail/devel/2005-February/017892.
>html
Читал. Не проникся простотой.

-- 
Lav
Виталий Липатов
Санкт-Петербург
GNU! ALT Linux Team! LaTeX! LyX!



Подробная информация о списке рассылки Devel