Вот вывод от k3b: Devices ----------------------- _NEC DVD_RW ND-3520A 1.04 (/dev/cdroms/cdwriter0, ) at /media/cdrom [CD-R; CD-RW; CD-ROM; DVD-ROM; DVD-R; DVD-RW; DVD+R; DVD+RW] [DVD-ROM; Продолжение DVD-R; Ограниченная перезапись DVD-RW; DVD-RW с продолжением; DVD+RW; DVD+R; DVD+R Double Layer; CD-ROM; CD-R; CD-RW] [SAO; TAO; RAW; RAW/R96R] System ----------------------- K3b Version: 0.11.24 KDE Version: 3.4.1 QT Version: 3.3.4 Kernel: 2.6.12-std26-up-alt1 mkisofs ----------------------- Unknown charset Known charsets are: cp10081 cp10079 cp10029 cp10007 cp10006 cp10000 koi8-u koi8-r cp1251 cp1250 cp874 cp869 cp866 cp865 cp864 cp863 cp862 cp861 cp860 cp857 cp855 cp852 cp850 cp775 cp737 cp437 iso8859-15 iso8859-14 iso8859-9 iso8859-8 iso8859-7 iso8859-6 iso8859-5 iso8859-4 iso8859-3 iso8859-2 iso8859-1 Предлагаю оторвать чего-нить автору natspec Говорят что natspec крив по определению, смотрит не на те переменные, не туда и не в том месте.
мало ли что говорят, я вот не вижу в списке допустимых кодировок utf8. Приведите пример командной строки с явным указанием utf8-кодировки для mkisofs, который работает.
про переменные: согласно коду natspec: tmp = getenv ("LANGUAGE"); - LANGUAGE для опеределения кодировок - это труба. Нужно смотреть на LANG natspec_get_system_locale() - get_from_system_i18n("LANG"); - это конечно все правильно, но зачем тогда брать пользовательскую LANGUAGE, где черт знает что может быть написано ?
1. Тестируется след. версия natspec, где анализ LANGUAGE убран, поскольку он относится только к выводу сообщения. 2. Вот весь патч к mkisofs, который был: +#ifdef HAVE_NATSPEC + nls = load_nls(natspec_get_filename_encoding("")); +#else nls = load_nls("iso8859-1"); +#endif То есть влияет только на кодировку по умолчанию. Если iso8859-1 в UTF системе незаметно подменяется на utf8 где-то дальше, то это бага mkisofs, я готов помочь с поиском/исправлением. Судя по ругани k3b, которая приведена в баге, mkisofs вызывается с явно указанной кодировкой. Хотелось бы видеть, 1) что k3b выводит в консоль про запуск mkisofs при попытке создания образа 2) Если есть вопросы к natspec, то что говорит в локали UTF8 $ natspec -fv
$ natspec -fv System locale: ru_RU.UTF-8 Filename encoding in iconv/nls form: utf8 При этом явно сказано, что mkisofs не поддерживает utf8. Т.е. - для него не надо заводить такую перекодировку. Т.е. - в этом случае: +#ifdef HAVE_NATSPEC + nls = load_nls(natspec_get_filename_encoding("")); +#else nls = load_nls("iso8859-1"); +#endif nls получается равным utf8, которого нет в списке, в итоге вылетает ошибка Тут нужно или убирать natspec вообще, или делать проверку на наличие полученной кодировки в списке поддерживаемых mkisofs'ом.
Предлагается применить патч, чтобы mkisofs узнал что такое utf8: --- nls_base.c.o 2001-01-21 00:18:33 +0300 +++ libunls/nls_base.c 2005-07-21 16:08:48 +0400 @@ -113,6 +113,8 @@ int ret; #endif + if (!strcmp(charset,"utf8")) + charset = "iso8859-1"; nls = find_nls(charset); if (nls) { nls->inc_use_count();
(In reply to comment #5) > + if (!strcmp(charset,"utf8")) > + charset = "iso8859-1"; Т.к. по-умолчанию у нас будет "iso8859-1", то natspec получается не нужен :-(
(In reply to comment #6) > (In reply to comment #5) > > + if (!strcmp(charset,"utf8")) > > + charset = "iso8859-1"; > Т.к. по-умолчанию у нас будет "iso8859-1", то natspec получается не нужен :-( По умолчанию будет utf8
> Предлагаю оторвать чего-нить автору natspec Человек решает проблемы. А то, что новые вылазят на последних стадиях тестирования -- проблема организации оного тестирования. Предлагаю одуматься.
Created attachment 1010 [details] Обновлённый патч для natspec Я добавил распознавание utf8 к основному патчу, пакет нужно просто пересобрать с новым патчем. На всякий случай выложил пакеты с исправленными исходным пакетом и бинарниками на ftp://ftp.altlinux.ru/pub/people/lav/cdrtools
Кто-нить проверял сборки, которые выложил Виталий? Собственно, я могу просто пересобрать cdrtools с новым libnatspec, т.к. уникодного окружения у меня нет.
пересобери, плз.
Кстати, насколько я понял - пересобирать надо с новым патчем, а не с новым libnatspec.
Проверил сборки Виталия - вроде всё работает.
раз ничего не сломалось, закрываю.