начиная с версии * Вск Фев 24 2008 Alexey Tourbin <at@> 4.0.4-alt87, - functions (ValidateBuildRoot): require RPM_BUILD_ROOT path be canonical Комментарии: > Ну, в двух словах, появляется две > сущности - RPM_BUILD_ROOT и канонический путь к RPM_BUILD_ROOT. > В скриптах поиска зависимостей приходится всё время учитывать эти > варианты. Например, представьте, что хочется узнать realpath какого-то > файла под RPM_BUILD_ROOT. Хорошо, я согласен с обоснованием. Но я не согласен с решением. Можно сделать так (не углубляясь в подробности реализации): 1. В самом начале работы rpmbuild сделать преобразование в канонический путь. 2. Использовать дальше везде преобразованный. Steps to Reproduce: 1. rpmbuild -bb X.spec Actual Results: find-lang: ERROR: non-canonical RPM_BUILD_ROOT=/home/ildar/tmp/RPM/gq-buildroot real_buildroot=/var/tmp/RPM/gq-buildroot ошибка: Неверный код возврата из /home/ildar/tmp/RPM/rpm-tmp.92244 (%install) Ошибки сборки пакетов: Неверный код возврата из /home/ildar/tmp/RPM/rpm-tmp.92244 (%install)
Да, некоторое время назад сделал $ ln -s "$TMPDIR" ~/tmp -v «/home/imz/tmp» -> «/tmp/.private/imz» $ (до этого ~/tmp/ вообще не было, а какая-то программа его захотела) и натолкнулся на эту проблему со сборкой. Я тогда просто удлалил ~/tmp/ в надежде, что rpm-build-4.0.4-alt100.46 будет использовать $TMPDIR (см. совет ниже; я предполагал, что м.б. он зашит в rpm-build теперь), а он на самом деле просто сам создал директорию ~/tmp/ ... Был ещё такой совет -- http://lists.altlinux.org/pipermail/devel/2008-March/152507.html : Выставить канонический шаблон для %buildroot в ~/.rpmmacros. Точнее, сам шаблон для %buildroot лучше не трогать, а просто выставить канонический %_tmppath. У меня написано: %_tmppath /tmp/.private/at Если нет желания привязываться к логину, то можно написать %_tmppath %(echo ${TMPDIR:-/tmp})