Собирается и так, но при работе, в частности при использовании из syslinux-а ругается на невозможность перекодировки имени файла, лечится установкой iconv.
Странно, сколько пользуюсь -- не натыкался. Можно пример? (добавить-то зависимость можно, но это ещё и ~5.5M glibc-gconv-modules сразу)
> Странно, сколько пользуюсь -- не натыкался. Можно пример? в хешерном chroot-е, без установленного iconv # rpm -q syslinux mtools iconv syslinux-4.04-alt3 mtools-4.0.17-alt2 warning: package iconv is not installed # dd if=/dev/zero of=/.image/test.img bs=512 count=262144 262144+0 records in 262144+0 records out 134217728 bytes (134 MB) copied, 1.4348 s, 93.5 MB/s # parted /.image/test.img mklabel msdos # parted /.image/test.img unit b mkpartfs primary fat16 1048576 134217727 WARNING: you are attempting to use parted to operate on (mkpartfs) a file system. parted's file system manipulation code is not as robust as what you'll find in dedicated, file-system-specific packages like e2fsprogs. We recommend you use parted only to manipulate partition tables, whenever possible. Support for performing most operations on most types of file systems will be removed in an upcoming release. # parted /.image/test.img toggle 1 boot # syslinux --install --stupid --offset 16384 /.image/test.img Error converting to codepage 850 Invalid argument Cannot initialize 'S:' Bad target s:/ldlinux.sys syslinux: failed to create ldlinux.sys # # rpm -q syslinux mtools iconv syslinux-4.04-alt3 mtools-4.0.17-alt2 iconv-2.11.3-alt8 # dd if=/dev/zero of=/.image/test.img bs=512 count=262144 262144+0 records in 262144+0 records out 134217728 bytes (134 MB) copied, 1.14089 s, 118 MB/s # parted /.image/test.img mklabel msdos # parted /.image/test.img unit b mkpartfs primary fat16 1048576 134217727 WARNING: you are attempting to use parted to operate on (mkpartfs) a file system. parted's file system manipulation code is not as robust as what you'll find in dedicated, file-system-specific packages like e2fsprogs. We recommend you use parted only to manipulate partition tables, whenever possible. Support for performing most operations on most types of file systems will be removed in an upcoming release. # parted /.image/test.img toggle 1 boot # syslinux --install --stupid --offset 16384 /.image/test.img #
А это точно про mtools и не syslinux? Возьмите образ, подготовленный в чруте с iconv, скопируйте его в чрут без iconv и mtools, но с syslinux, и проверьте. Исходники mtools содержат #include <iconv.h>, но не exec*().
Прежде чем написать - отследил, где вылетает... Это вызовы из syslinux-а (syslinux/mtools/syslinux.c): status = system("mattrib -h -r -s s:/ldlinux.sys 2>/dev/null"); // ... skipped ... mtp = popen("mcopy -D o -D O -o - s:/ldlinux.sys", "w"); А это кусок, где вылетает mtools (mtools/charsetConv.c): from = iconv_open(wcharCp, dosCp); // В первом вхождении
(In reply to comment #4) > from = iconv_open(wcharCp, dosCp); Спасибо; если удобно -- добавьте в чрут только glibc-gconv-modules, сам бинарник iconv там явно не нужен. И зафиксим уже :)
(В ответ на комментарий №4) > Это вызовы из syslinux-а (syslinux/mtools/syslinux.c): > system("mattrib Т.к. там нет проверки на наличие, поставлю зависимость в syslinux
(В ответ на комментарий №5) > (In reply to comment #4) > > from = iconv_open(wcharCp, dosCp); > Спасибо; если удобно -- добавьте в чрут только glibc-gconv-modules, сам > бинарник iconv там явно не нужен. И зафиксим уже :) Все хорошо собралось с glibc-gconv-modules вместо iconv.
(В ответ на комментарий №6) > Т.к. там нет проверки на наличие, поставлю зависимость в syslinux Хотя, она стоит уже.
(В ответ на комментарий №8) > (В ответ на комментарий №6) > > Т.к. там нет проверки на наличие, поставлю зависимость в syslinux > Хотя, она стоит уже. Разве? Не вижу...
(В ответ на комментарий №9) > > Хотя, она стоит уже. > Разве? Не вижу... rpm -q --requires syslinux
(В ответ на комментарий №10) > (В ответ на комментарий №9) > > > Хотя, она стоит уже. > > Разве? Не вижу... > rpm -q --requires syslinux Я про mtools. А вызовов выполения iconv нет в syslinux.
$ rpmelfsym Sisyphus/files/x86_64/RPMS/mtools-4.0.17-alt2.x86_64.rpm |grep iconv /usr/bin/mtools U iconv /usr/bin/mtools U iconv_close /usr/bin/mtools U iconv_open
(In reply to comment #8) > > Т.к. там нет проверки на наличие, поставлю зависимость в syslinux > Хотя, она стоит уже. $ rpm -qR syslinux-4.04-alt3 mtools-4.0.17-alt2 | grep conv $ _ Отправил 4.0.17-alt3.
По поводу названия бага и его сути, скорее "mtools require glibc-gconv-modules" получается...
mtools-4.0.17-alt3 -> sisyphus: * Tue Jul 10 2012 Michael Shigorin <mike@altlinux> 4.0.17-alt3 - added Requires: glibc-gconv-modules (closes: #27525)
Флэшмобим? :]