[devel] %makeinstall и %make DESTDIR=%buildroot install в спеке

Eugene Prokopiev =?iso-8859-1?q?prokopiev_=CE=C1_stc=2Edonpac=2Eru?=
Чт Июн 14 09:51:31 MSD 2007


Slava Semushin пишет:
> 2007/6/14, Eugene Prokopiev <prokopiev / stc.donpac.ru>:
> [...]
> 
>>$ make DESTDIR=~/callweaver-install install
>>
>>создает структуру каталогов с local:
> 
> 
> Обычно %configure вызывает ./configure скрипт с параметрами для
> установки в /usr. У вас, видимо, это не так. Сам make install не
> виноват -- ему всё равно что создавать и куда ставить.

Вы имеете ввиду --prefix? Сейчас попробовал ./configure 
--prefix=/usr/src/callweaver-install и make 
DESTDIR=/usr/src/callweaver-install install, результат странный:

$ ls /usr/src/callweaver-install
include  lib  sbin  share  usr  var
$ ls /usr/src/callweaver-install/sbin/
callweaver  callweaver_cli  safe_callweaver
$ ls /usr/src/callweaver-install/var/
lib  log  run  spool

пока нормально, но дальше хуже:

$ ls /usr/src/callweaver-install/lib/callweaver/modules/
icd
$ ls 
/usr/src/callweaver-install/usr/src/callweaver-install/lib/callweaver/modules/
app_adsiprog.la          app_getcpeid.so         app_setcdruserfield.la 
        cdr_odbc.so           format_g723_1.la      func_moh.so

т.е. то, что должно лежать в /lib/callweaver/modules/, уезжает очень 
далеко :(

да, без DESTDIR тоже все плохо, т.к. для установки содержимого /sbin 
прав оказывается недостаточно ...

> 
> [...]
> 
>>                 if test -z ""; \
>>                 then \
>>                         chown callweaver:callweaver ${install_dir}; \
>>                 fi; \
>>         done
>>chown: `callweaver:callweaver': invalid user
> 
> [...]
> 
> Он пытается устанавливать права в чруте и ему не дают. Я бы запатчил
> Makefile'ы, чтобы они не делали никаких chown'ов и выставил
> аналогичные права на файлы с в секции %files с помощью %attr.

Если бы это был единичный случай, но мне попадались и другие Makefile'ы, 
которые посредством %makeinstall пытались делать useradd/groupadd/chown, 
а посредством %make DESTDIR=%buildroot install - почему-то нет. Вот 
только посреднее средство потихоньку протухает - апстримы на новые 
autotools переезжают, что ли?

> PS: Возможно, мой совет неверный :)

Если других идей не будет, придется патчить Makefile'ы, но не хотелось 
бы ...

-- 
С уважением, Прокопьев Евгений



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