CEX.io

воскресенье, 9 сентября 2012 г.

Midnight Commander (mc) [mc-4.8.4.tar.bz2], cross compiling на optware + поддержка русского языка UTF-8

1. меняем версию в файле (~/optware/cs05q1armel/make/mc.mk):

на самую последнюю (на данный момент)

#MC_VERSION=4.7.5.5
MC_VERSION=4.8.4

номер последней версии смотрим тут:
http://www.midnight-commander.org/downloads

2. заходим в папку ($ cd ~/optware/cs05q1armel):

и выполняем:

$ package=mc
$ make ${package}-unpack
$ make ${package}

после определенного времени, возникает след. ошибка:

mountlist.c: In function `get_fs_usage':
mountlist.c:1450: error: `fsd' undeclared (first use in this function)
mountlist.c:1450: error: (Each undeclared identifier is reported only once
mountlist.c:1450: error: for each function it appears in.)
mountlist.c: At top level:
mountlist.c:1301: warning: unused parameter 'file'

3. если возникнет выше указанная ошибка компиляции:

выполняем:

$ make ${package}-clean

добавляем в (~/optware/cs05q1armel/builds/mc/configure):

## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
fu_cv_sys_stat_statfs2_bsize=yes

4. исправляем поддержку UTF-8 (русский язык)
для встроенного редактора и просмотрщика,
а также для правильного отображения имен файлов в панелях
(оригинал патча найден тут:
http://zyxel-keenetic-packages.googlecode.com/svn/trunk/package/built/mc/patches/010-uft8_fix.patch
)

в ~/optware/cs05q1armel/builds/mc/lib/tty/tty-slang.c (строка 277)

//SLutf8_enable (-1);
SLutf8_enable (1);

в ~/optware/cs05q1armel/builds/mc/lib/strutil/strutil.c (строка 334)

//term_encoding = g_ascii_strup (nl_langinfo (CODESET), -1);
term_encoding = g_ascii_strup ("UTF-8", -1);

5. собираем пакет

$ make ${package}-check

6. копируем на устройство:

$ cd ~/optware/cs05q1armel/builds
$ scp mc_4.8.4-1_arm.ipk root@[youip]:/root/

7. Устанавливаем на устройство

$ ssh root@[youip]

ipkg remove mc
ipkg install mc_4.8.4-1_arm.ipk

8. Добавляем в файл: /etc/profile

export GCONV_PATH=/opt/lib/gconv
export TERMINFO=/opt/share/terminfo
export LANG=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8
export TERM=xterm
alias mc="mc -c"


PS:

- получить все необходимые инструменты
для разработки пакетов для  optware можно тут:
http://mybookworld.wikidot.com/cross-compile-for-mbwe-using-optware

- установить готовые пакеты optware на устройство можно, по след. инструкции
http://mybookworld.wikidot.com/optware

Комментариев нет: