Bug 27525 - /usr/bin/mtools uses iconv functions but mtools package does not require glibc-gconv-modules
Summary: /usr/bin/mtools uses iconv functions but mtools package does not require glib...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: mtools (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Michael Shigorin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-06 18:55 MSK by Ivan Ovcherenko
Modified: 2012-07-10 15:21 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Ovcherenko 2012-07-06 18:55:52 MSK
Собирается и так, но при работе, в частности при использовании из syslinux-а ругается на невозможность перекодировки имени файла, лечится установкой iconv.
Comment 1 Michael Shigorin 2012-07-06 21:35:39 MSK
Странно, сколько пользуюсь -- не натыкался.  Можно пример?

(добавить-то зависимость можно, но это ещё и ~5.5M glibc-gconv-modules сразу)
Comment 2 Ivan Ovcherenko 2012-07-09 10:29:14 MSK
> Странно, сколько пользуюсь -- не натыкался.  Можно пример?
в хешерном 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
#
Comment 3 Michael Shigorin 2012-07-09 20:04:22 MSK
А это точно про mtools и не syslinux?  Возьмите образ, подготовленный в чруте с iconv, скопируйте его в чрут без iconv и mtools, но с syslinux, и проверьте.

Исходники mtools содержат #include <iconv.h>, но не exec*().
Comment 4 Ivan Ovcherenko 2012-07-10 10:40:14 MSK
Прежде чем написать - отследил, где вылетает...

Это вызовы из 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); // В первом вхождении
Comment 5 Michael Shigorin 2012-07-10 11:34:35 MSK
(In reply to comment #4)
> from = iconv_open(wcharCp, dosCp);
Спасибо; если удобно -- добавьте в чрут только glibc-gconv-modules, сам бинарник iconv там явно не нужен.  И зафиксим уже :)
Comment 6 Sergey V Turchin 2012-07-10 11:44:06 MSK
(В ответ на комментарий №4)
> Это вызовы из syslinux-а (syslinux/mtools/syslinux.c):
> system("mattrib
Т.к. там нет проверки на наличие, поставлю зависимость в syslinux
Comment 7 Ivan Ovcherenko 2012-07-10 11:45:42 MSK
(В ответ на комментарий №5)
> (In reply to comment #4)
> > from = iconv_open(wcharCp, dosCp);
> Спасибо; если удобно -- добавьте в чрут только glibc-gconv-modules, сам
> бинарник iconv там явно не нужен.  И зафиксим уже :)

Все хорошо собралось с glibc-gconv-modules вместо iconv.
Comment 8 Sergey V Turchin 2012-07-10 11:47:08 MSK
(В ответ на комментарий №6)
> Т.к. там нет проверки на наличие, поставлю зависимость в syslinux
Хотя, она стоит уже.
Comment 9 Ivan Ovcherenko 2012-07-10 11:50:37 MSK
(В ответ на комментарий №8)
> (В ответ на комментарий №6)
> > Т.к. там нет проверки на наличие, поставлю зависимость в syslinux
> Хотя, она стоит уже.

Разве? Не вижу...
Comment 10 Sergey V Turchin 2012-07-10 12:12:02 MSK
(В ответ на комментарий №9)
> > Хотя, она стоит уже.
> Разве? Не вижу...
rpm -q --requires syslinux
Comment 11 Sergey V Turchin 2012-07-10 12:14:33 MSK
(В ответ на комментарий №10)
> (В ответ на комментарий №9)
> > > Хотя, она стоит уже.
> > Разве? Не вижу...
> rpm -q --requires syslinux
Я про mtools. А вызовов выполения iconv нет в syslinux.
Comment 12 Dmitry V. Levin 2012-07-10 14:19:57 MSK
$ 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
Comment 13 Michael Shigorin 2012-07-10 14:23:38 MSK
(In reply to comment #8)
> > Т.к. там нет проверки на наличие, поставлю зависимость в syslinux
> Хотя, она стоит уже.
$ rpm -qR syslinux-4.04-alt3 mtools-4.0.17-alt2 | grep conv
$ _

Отправил 4.0.17-alt3.
Comment 14 Ivan Ovcherenko 2012-07-10 14:25:36 MSK
По поводу названия бага и его сути, скорее "mtools require glibc-gconv-modules" получается...
Comment 15 Repository Robot 2012-07-10 14:32:31 MSK
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)
Comment 16 Michael Shigorin 2012-07-10 15:21:23 MSK
Флэшмобим? :]