$ rpm --checksig /var/ftp/pub/Etersoft/CIFS@Etersoft/5.4.7/sources/etercifs-5.4.7-alt1.src.rpm error: /var/ftp/pub/Etersoft/CIFS@Etersoft/5.4.7/sources/etercifs-5.4.7-alt1.src.rpm: rpmReadSignature failed Небольшое расследование выявило, что у файла inode >4ГБ: это видно по вызову из rpm: fstat64(3</var/ftp/pub/Etersoft/CIFS@Etersoft/5.4.7/sources/etercifs-5.4.7-alt1.src.rpm>, {st_dev=makedev(253, 0), st_ino=4496308953, st_mode=S_IFREG|0644, st_nlink=1, st_uid=1706, st_gid=100, st_blksize=4096, st_blocks=15592, st_size=7981458, st_atime=2013/06/27-22:11:08, st_mtime=2013/06/27-22:19:54, st_ctime=2013/06/27-22:19:54}) = 0 и просто # stat /var/ftp/pub/Etersoft/CIFS@Etersoft/5.4.7/sources/etercifs-5.4.7-alt1.src.rpm Размер: 7981458 Блоков: 15592 Блок В/В: 4096 обычный файл Устройство: fd00h/64768d Inode: 4496308953 Ссылки: 1 Условия возникновения: файловая система XFS (700ГБ размером) подошла к краю и решила создавать inode > 4Гб (несмотря на описанное здесь https://bugzilla.altlinux.org/show_bug.cgi?id=28214#c14 где проблемы обещались только при ФС размером > 1ТБ)
Удобно, что мы всё это уже обсуждали: >Комментарий #12 от Dmitry V. Levin 2013-01-12 06:06:26 >Чего гадать, когда можно просто в linux/fs/stat.c исходный код посмотреть. >Например, там написано, что stat(2) возвращает EOVERFLOW, когда st_ino, >st_nlink или st_size недостаточного размера. >Комментарий #4 от Dmitry V. Levin 2012-12-20 18:37:37 >Достаточно просто добавить AC_SYS_LARGEFILE, который does the right thing.
(In reply to comment #1) > Удобно, что мы всё это уже обсуждали: > > >Комментарий #12 от Dmitry V. Levin 2013-01-12 06:06:26 > >Чего гадать, когда можно просто в linux/fs/stat.c исходный код посмотреть. > >Например, там написано, что stat(2) возвращает EOVERFLOW, когда st_ino, > >st_nlink или st_size недостаточного размера. > > >Комментарий #4 от Dmitry V. Levin 2012-12-20 18:37:37 > >Достаточно просто добавить AC_SYS_LARGEFILE, который does the right thing. В некоторые пакеты просто добавить AC_SYS_LARGEFILE нельзя. Например, в rpm используется fts, соответственно, все взрывается: In file included from files.c:1573:0: /usr/include/fts.h:41:3: error: #error "<fts.h> cannot be used with -D_FILE_OFFSET_BITS==64" В rpm>=4.1 (видимо, для объезда) jbj просто взял и скопировал fts.{c,h} из glibc в rpm. см. тж. http://sourceware.org/bugzilla/show_bug.cgi?id=11460 http://sourceware.org/bugzilla/show_bug.cgi?id=15838
rpm 4.13.0 использует LFS на i586.