Summary: | /usr/bin/mtools uses iconv functions but mtools package does not require glibc-gconv-modules | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Ivan Ovcherenko <asdus> |
Component: | mtools | Assignee: | Michael Shigorin <mike> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | antohami, mike, zerg |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Ivan Ovcherenko
2012-07-06 18:55:52 MSK
Странно, сколько пользуюсь -- не натыкался. Можно пример? (добавить-то зависимость можно, но это ещё и ~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) Флэшмобим? :] |