OpenWrt, libiconv и Full Language Support

Бывают ситуации, когда в OpenWrt не хватает полной языковой поддержки. Особенно, когда дело касается работы с кириллицей в кодировке UTF-8. Для таких случаев в OpenWrt предусмотрена неурезанная версия библиотеки libiconv-full, а также глобальная опция Compile with full language support.

Вот только скомпилировав прошивку с данными опциями выясняется, что никакой поддержки кириллических кодировок как не было, так и нет.

Разгадка кроется в малозаметном патче к libiconv-full под названием 100-strip-charsets.patch. Пролистав его можно с удивлением обнаружить, что пакет, вроде бы имеющий в названии слово “full”, ничего общего с этим словом не имеет: доблестные разработчики OpenWrt в “полной” версии libiconv просто выпилили 97% всех кодировок, включая все упоминания кириллических, и оставив лишь несколько западноевропейских.

Наиболее простое решение – просто удалить патч 100-strip-charsets.patch из пакета libiconv-full. Но так размер данной библиотеки увеличится в несколько раз! По этой причине мы сделали исправленную версию исходного патча, в которой оставлены кириллические кодировки, но вырезано большинство прочих.

Скачать исходный код модифицированного libiconv-full можно из нашего архива.

This entry was posted in Сеть и интернет and tagged , . Bookmark the permalink.

14 Responses to OpenWrt, libiconv и Full Language Support

  1. Sergey says:

    У меня с флагом Compile with full language support. Монтирование davfs2 не работает. Пишет mount.davfs: can’t mount using fuse kernel file system
    Так же не работает монтирование CIFS =(

    • root says:

      Т.е. без этого флага монтирование работает, а именно с ним – нет? Может, сейчас внесли какие-то изменения в код openwrt и от этого что-то сломалось, я последний раз пересобирал несколько месяцев назад – никаких проблем не возникало.
      Будет время – перепроверю и обновлю пост, если что-то выяснится.

      • Sergey says:

        Ок, буду ждать. Я пробовал стабильный релиз и пробовал последнюю версию транка. В транке поставил поддержку Full Language Support. Получил такую же проблему =( Отписался на форум там тишина. Проблема именно с файловыми системами. Хотя модули файловых систем в ядро загружаются корректно и ошибок не пишут.
        Вот мой тикет
        https://dev.openwrt.org/ticket/19805
        Тестировал на mr3020

      • Sergey says:

        Хотя похоже проблема в другом, сейчас убрал поддержку языков. Все равно не монтируется файловая система та же CIFS. Странно…

        • Sergey says:

          Скачал Chaos Calmer 15.05-rc2 поставил уже готовую прошивку. CIFS так же не монтируется, хотя раньше работал. Либо я криворук, либо что-то сломали в последних версиях(

          • Sergey says:

            Так с этим разобрался в новой версии нет репрозитории пакета cifsmount. А без него монтирование cifs не работает. Осталось разобраться почему davfs отказал и почему в моей сборке cifsmount не работает.

          • Sergey says:

            У меня fuse криво собрался поэтому и не работал dav2fs. Пакет был собран но весил 1 килобайт и ставился без ошибок. Я на размер не обратил внимания.

      • Aleksander Sukhorukov says:

        На openwrt в apache листинг русских букв знаками вопросов. Это по этой же причине? Из-за libiconv ?
        У меня листинг каталога в котором лежит .htaccess в котором написано IndexOptions +Charset=UTF-8 , но при открытии все равно вместо русских знаки вопроса.

  2. Sergey says:

    А еще когда пытаешься скачать всю папку в архиве tar. Архив в итоге получаешь битый.

    • root says:

      На какой именно папке проблема? Проверил несколько разных, включая ту, на которую ссылка в посте – везде tar-архивы генерируются корректные.

      • Sergey says:

        Хм, у меня хром ругается что сайт с вирусами. Ссылка на libiconv-full.
        После подтверждения того что я все таки хочу скачать файл. Архиватор пишет что неожиданный конец архива. Пробовал скачивать и открывать этот архив в линуксе, получил подобную ошибку…

        • root says:

          Проблема с хромом и блокированием доступа решена. Она была из-за того, что Google решил считать те сайты, где выложен дистрибутив uTorrent’а – “завирусованными”. Как по мне – откровенная дурь.

          Насчет “неожиданного конца архива”: попробовал скачать libiconv-full – WinRAR все корректно открыл. Как и tar под Linux.

          • Sergey says:

            Сейчас попробовал скачать и распаковать. Все прошло без ошибок. Странно, хотя раньше пробовал качать разными средствами и все равно был неожиданный конец архива. Может быть мой провайдер чудил или блокировка как-то влияла.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>