* [devel] %makeinstall и %make DESTDIR=%buildroot install в спеке
@ 2007-06-14 4:50 Eugene Prokopiev
2007-06-14 5:01 ` Slava Semushin
0 siblings, 1 reply; 5+ messages in thread
From: Eugene Prokopiev @ 2007-06-14 4:50 UTC (permalink / raw)
To: Devel
Здравствуйте!
Собирая новую версию callweaver, столкнулся со следующей проблемой в
инсталл-скриптах:
$ make DESTDIR=~/callweaver-install install
создает структуру каталогов с local:
$ ls ~/callweaver-install/usr/
local
$ ls ~/callweaver-install/usr/local/
bin etc include lib sbin share var
С такой проблемой я сталкивался, собирая dbmail, и решил ее
использованием %makeinstall. Но если сказать (именно в это раскрывается
%makeinstall):
$ make 'INSTALL=/bin/install -p' prefix=~/callweaver-install/usr
exec_prefix=~/callweaver-install/usr bindir=~/callweaver-install/usr/bin
sbindir=~/callweaver-install/usr/sbin
sysconfdir=~/callweaver-install/etc
datadir=~/callweaver-install/usr/share
includedir=~/callweaver-install/usr/include
libdir=~/callweaver-install/usr/lib
libexecdir=~/callweaver-install/usr/lib
localstatedir=~/callweaver-install/var/lib
sharedstatedir=~/callweaver-install/usr/com
mandir=~/callweaver-install/usr/share/man
infodir=~/callweaver-install/usr/share/info install
То получим очень странное сообщение:
test -z "/usr/src/callweaver-install/usr/lib/callweaver" || /bin/mkdir
-p "/usr/src/callweaver-install/usr/lib/callweaver"
/bin/sh ../libtool --mode=install /bin/install -p 'libcallweaver.la'
'/usr/src/callweaver-install/usr/lib/callweaver/libcallweaver.la'
libtool: install: error: cannot install `libcallweaver.la' to a
directory not ending in /usr/local/lib/callweaver
make[4]: *** [install-opbxlibLTLIBRARIES] Error 1
Если задействовать %makeinstall в спеке, то ошибка будет другой:
/usr/bin/make install-data-hook
make[3]: Entering directory `/usr/src/RPM/BUILD/callweaver-1.1.99.20070614'
for install_dir in
/usr/src/tmp/callweaver-buildroot/var/lib/lib/callweaver
/usr/src/tmp/callweaver-buildroot/var/lib/lib/callweaver
/usr/src/tmp/callweaver-buildroot/var/lib/lib/callweaver
/usr/src/tmp/callweaver-buildroot/usr/lib/callweaver/modules
/usr/src/tmp/callweaver-buildroot/usr/lib/callweaver/modules/icd
/usr/src/tmp/callweaver-buildroot/var/lib/log/callweaver
/usr/src/tmp/callweaver-buildroot/var/lib/log/callweaver/cdr-custom
/usr/src/tmp/callweaver-buildroot/var/lib/log/callweaver/cdr-csv
/usr/src/tmp/callweaver-buildroot/var/lib/run/callweaver
/usr/src/tmp/callweaver-buildroot/var/lib/spool/callweaver
/usr/src/tmp/callweaver-buildroot/var/lib/spool/callweaver/outgoing
/usr/src/tmp/callweaver-buildroot/var/lib/spool/callweaver/voicemail
/usr/src/tmp/callweaver-buildroot/usr/share/callweaver/moh
/usr/src/tmp/callweaver-buildroot/usr/share/callweaver/keys
/usr/src/tmp/callweaver-buildroot/usr/share/callweaver/images; \
do \
if test ! -d "${install_dir}"; \
then \
mkdir -p ${install_dir}; \
chmod 0750 ${install_dir}; \
fi; \
if test -z ""; \
then \
chown callweaver:callweaver ${install_dir}; \
fi; \
done
chown: `callweaver:callweaver': invalid user
...
Кажется, именно поэтому предыдущую версию callweaver я собирал с make
DESTDIR=%buildroot install.
Что делать теперь?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [devel] %makeinstall и %make DESTDIR=%buildroot install в спеке
2007-06-14 4:50 [devel] %makeinstall и %make DESTDIR=%buildroot install в спеке Eugene Prokopiev
@ 2007-06-14 5:01 ` Slava Semushin
2007-06-14 5:51 ` Eugene Prokopiev
0 siblings, 1 reply; 5+ messages in thread
From: Slava Semushin @ 2007-06-14 5:01 UTC (permalink / raw)
To: ALT Devel discussion list
2007/6/14, Eugene Prokopiev <prokopiev / stc.donpac.ru>:
[...]
> $ make DESTDIR=~/callweaver-install install
>
> создает структуру каталогов с local:
Обычно %configure вызывает ./configure скрипт с параметрами для
установки в /usr. У вас, видимо, это не так. Сам make install не
виноват -- ему всё равно что создавать и куда ставить.
[...]
> if test -z ""; \
> then \
> chown callweaver:callweaver ${install_dir}; \
> fi; \
> done
> chown: `callweaver:callweaver': invalid user
[...]
Он пытается устанавливать права в чруте и ему не дают. Я бы запатчил
Makefile'ы, чтобы они не делали никаких chown'ов и выставил
аналогичные права на файлы с в секции %files с помощью %attr.
PS: Возможно, мой совет неверный :)
--
+ Slava Semushin | slava.semushin @ gmail.com
+ ALT Linux Team | php-coder @ altlinux.ru
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [devel] %makeinstall и %make DESTDIR=%buildroot install в спеке
2007-06-14 5:01 ` Slava Semushin
@ 2007-06-14 5:51 ` Eugene Prokopiev
2007-06-14 7:11 ` Damir Shayhutdinov
0 siblings, 1 reply; 5+ messages in thread
From: Eugene Prokopiev @ 2007-06-14 5:51 UTC (permalink / raw)
To: ALT Devel discussion list
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'ы, но не хотелось
бы ...
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [devel] %makeinstall и %make DESTDIR=%buildroot install в спеке
2007-06-14 5:51 ` Eugene Prokopiev
@ 2007-06-14 7:11 ` Damir Shayhutdinov
2007-06-14 9:55 ` Eugene Prokopiev
0 siblings, 1 reply; 5+ messages in thread
From: Damir Shayhutdinov @ 2007-06-14 7:11 UTC (permalink / raw)
To: ALT Devel discussion list
> Вы имеете ввиду --prefix? Сейчас попробовал ./configure
> --prefix=/usr/src/callweaver-install и make
./configure --prefix=/usr
Вообще вдумчивей читайте ./configure --help - там много полезного пишут.
А в спеке пользуйтесь просто %configure
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [devel] %makeinstall и %make DESTDIR=%buildroot install в спеке
2007-06-14 7:11 ` Damir Shayhutdinov
@ 2007-06-14 9:55 ` Eugene Prokopiev
0 siblings, 0 replies; 5+ messages in thread
From: Eugene Prokopiev @ 2007-06-14 9:55 UTC (permalink / raw)
To: ALT Devel discussion list
Damir Shayhutdinov пишет:
>>Вы имеете ввиду --prefix? Сейчас попробовал ./configure
>>--prefix=/usr/src/callweaver-install и make
>
>
> ./configure --prefix=/usr
> Вообще вдумчивей читайте ./configure --help - там много полезного пишут.
>
> А в спеке пользуйтесь просто %configure
Прошу у всех прощения,
%configure
и
%make DESTDIR=%buildroot install
замечательно работают, а сбило меня с толку, то что callweaver разучился
читать старый конфиг и полез за модулями, логами и т.д. в те каталоги,
которые были вшиты в него на случай невозможности загрузить конфиг ;)
мне надо было читать дифф до того, как спрашивать :)
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-06-14 9:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-14 4:50 [devel] %makeinstall и %make DESTDIR=%buildroot install в спеке Eugene Prokopiev
2007-06-14 5:01 ` Slava Semushin
2007-06-14 5:51 ` Eugene Prokopiev
2007-06-14 7:11 ` Damir Shayhutdinov
2007-06-14 9:55 ` Eugene Prokopiev
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git