Bug 14885 - %_tmppath requires canonical path
Summary: %_tmppath requires canonical path
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: rpm-build (show other bugs)
Version: unstable
Hardware: all Linux
: P2 minor
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-03-13 09:54 MSK by ildar
Modified: 2012-02-24 15:13 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ildar 2008-03-13 09:54:21 MSK
начиная с версии * Вск Фев 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)
Comment 1 Ivan Zakharyaschev 2012-02-24 15:13:25 MSK
Да, некоторое время назад сделал

$ 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})