[devel] RPM %_tmppath - что плохого в силинках?

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Мар 13 09:30:43 MSK 2008


On Wed, Mar 12, 2008 at 01:22:10PM +0600, Ildar Mulyukov wrote:
> 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)
> 
> После того, как я изменил %_topdir и %_tmppath на `readlink -f {}`,  
> стало собираться.

$ rpm -q --changelog rpm |grep canon
- functions (ValidateBuildRoot): require RPM_BUILD_ROOT path be canonical
$

> Мне, как пользователю RPM непонятно, почему неканонические пути - это  
> плохо?

Это вопрос или утверждение? :)  Ну, в двух словах, появляется две
сущности - RPM_BUILD_ROOT и канонический путь к RPM_BUILD_ROOT.
В скриптах поиска зависимостей приходится всё время учитывать эти
варианты.  Например, представьте, что хочется узнать realpath какого-то
файла под RPM_BUILD_ROOT.

	f=/etc/init.d/functions
	p=$(readlink -ve "$RPM_BUILD_ROOT$f")
	p=${p#$RPM_BUILD_ROOT}

Так вот, при каноническом RPM_BUILD_ROOT "отрезание пути спереди"
всегда просто работает.  А если RPM_BUILD_ROOT не канонический,
то встаёт вопрос, что нужно отрезать спереди в первую очередь.

> Более того, почему с неканоническими путями без find-lang пакеты  
> собираются?

Не собираются.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080313/c943efeb/attachment-0002.bin>


Подробная информация о списке рассылки Devel