Bug 28290

Summary: Добавить в verify-elf проверку на использование stat в 32-битных программах
Product: Sisyphus Reporter: Vitaly Lipatov <lav>
Component: rpm-buildAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: arseny, evg, glebfm, imz, iv, ldv, mike, piastry, placeholder, real.altlinux.org, sin, vt
Version: unstable   
Hardware: all   
OS: Linux   

Description Vitaly Lipatov 2012-12-28 13:10:31 MSK
В связи с тем, что программы, использующие устаревший stat (скомпилированные без AC_SYS_LARGEFILE / -D_FILE_OFFSET_BITS=64) не будут корректно работать с 64-битными сетевыми файловыми системами (да и всё ядро уже переведено на 64-битные номера inode), требуется отучить такие программы использовать stat.

Начать это предлагается с добавления предупреждения (WARNING) по результатам проверки /usr/lib/rpm/verify-elf 32-битных бинарников, использующих функцию stat из glibc.
https://bugzilla.altlinux.org/show_bug.cgi?id=28214
Comment 1 Dmitry V. Levin 2013-01-11 03:11:09 MSK
В libc+zlib таких 32-битных функций с 64-битными аналогами 57 штук:
_IO_fgetpos
_IO_fsetpos
__fxstat
__fxstatat
__lxstat
__open
__xstat
adler32_combine
alphasort
crc32_combine
creat
fallocate
fgetpos
fopen
freopen
fseeko
fsetpos
fstatfs
fstatvfs
ftello
ftruncate
ftw
getdirentries
getrlimit
glob
globfree
gzoffset
gzopen
gzseek
gztell
lockf
lseek
mkostemp
mkostemps
mkstemp
mkstemps
mmap
nftw
open
openat
posix_fadvise
posix_fallocate
pread
preadv
prlimit
pwrite
pwritev
readdir
scandir
scandirat
sendfile
setrlimit
statfs
statvfs
tmpfile
truncate
versionsort
Comment 2 Repository Robot 2013-01-11 04:39:30 MSK
rpm-4.0.4-alt100.60 -> sisyphus:

* Fri Jan 11 2013 Dmitry V. Levin <ldv@altlinux> 4.0.4-alt100.60
- verify-elf: implemented LFS check (closes: #28290).
Comment 3 Dmitry V. Levin 2013-01-12 21:37:35 MSK
(In reply to comment #1)
> В libc+zlib таких 32-битных функций с 64-битными аналогами 57 штук:

Тестовая пересборка выявила 2615 пакетов, использующих non-LFS API.
В этом множестве есть пакеты на любой вкус и цвет, начиная с glibc.
Comment 4 Vitaly Lipatov 2013-02-03 22:23:43 MSK
(В ответ на комментарий №3)
> Тестовая пересборка выявила 2615 пакетов, использующих non-LFS API.
> В этом множестве есть пакеты на любой вкус и цвет, начиная с glibc.
Может быть нужный флаг сборки стоит добавить в optflags? А то получается, что касается большинства бинарных пакетов. Ну по примеру FORTIFY_SOURCE.
Comment 5 Vitaly Lipatov 2013-02-03 22:33:37 MSK
(В ответ на комментарий №4)
> (В ответ на комментарий №3)
> > Тестовая пересборка выявила 2615 пакетов, использующих non-LFS API.
> > В этом множестве есть пакеты на любой вкус и цвет, начиная с glibc.
> Может быть нужный флаг сборки стоит добавить в optflags? А то получается, что
> касается большинства бинарных пакетов. Ну по примеру FORTIFY_SOURCE.
Обсуждение в https://bugzilla.altlinux.org/show_bug.cgi?id=28214 прочитал, можно не отвечать :)