On Thu, Mar 13, 2008 at 10:02:59AM +0300, Alexey Tourbin wrote: > On Thu, Mar 13, 2008 at 12:52:24PM +0600, Ildar Mulyukov wrote: > > >сущности - 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 не канонический, то > > >встаёт вопрос, что нужно отрезать спереди в первую очередь. > > > > Хорошо, я согласен с обоснованием. Но я не согласен с решением. Можно > > сделать так (не углубляясь в подробности реализации): > > 1. В самом начале работы rpmbuild сделать преобразование в канонический > > путь. > > В принципе, да. Но проблема ещё и в том, что каталог RPM_BUILD_ROOT > может просто не существовать. То есть тут нужна каноникализация типа > "readlink -m" (или, может быть, "readlink -f"). А %_tmppath тоже можно попробовать преобразовать в канонический вид, но ведь и %_tmppath может не существовать; в librpm в этом случае работает алгоритм, аналогичный mkdir -p. Впрочем, никто не мешает сделать это преобразование сразу после того, как каталог %_tmppath создан. -- ldv