ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] нужна консультация по autotools (mc 4.8.6)
@ 2012-09-22 13:25 Sergey Y. Afonin
  2012-09-22 13:59 ` Mikhail Efremov
  0 siblings, 1 reply; 5+ messages in thread
From: Sergey Y. Afonin @ 2012-09-22 13:25 UTC (permalink / raw)
  To: ALT Devel discussion list

Приветствую.

Опять появилось время поковыряться с обновлением mc. Столкнулся
с проблемой, что не отрабатывается make install. При установке
вновь появившегося набора скриптов происходит попытка установки
не в сборочный каталог, а в корень. Makefile.am выглядит вот так:

https://www.midnight-commander.org/browser/misc/ext.d/Makefile.am

Сборка тормозится вот так:

Making install in misc
make[1]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/misc'
Making install in ext.d
make[2]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/misc/ext.d'
make[3]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/misc/ext.d'
make[3]: Nothing to be done for `install-exec-am'.
test -z "/usr/lib/mc/ext.d" || /bin/mkdir -p "/usr/lib/mc/ext.d"
/bin/mkdir: cannot create directory `/usr/lib/mc/ext.d': Permission denied
make[3]: *** [install-extSCRIPTS] Error 1

Соответствующее место в получившемся Makefile выглядит так:

install-extSCRIPTS: $(ext_SCRIPTS)
	@$(NORMAL_INSTALL)
	test -z "$(extdir)" || $(MKDIR_P) "$(DESTDIR)$(extdir)"

Почему тут $(DESTDIR) оказался пустой ? Или передача переменной из
вышестоящего Makefile должна описываться ? Всё равно, а как ?
С autotools у меня не ахти...

-- 
С уважением, Сергей Афонин


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] нужна консультация по autotools (mc 4.8.6)
  2012-09-22 13:25 [devel] нужна консультация по autotools (mc 4.8.6) Sergey Y. Afonin
@ 2012-09-22 13:59 ` Mikhail Efremov
  2012-09-22 18:07   ` Sergey Y. Afonin
  0 siblings, 1 reply; 5+ messages in thread
From: Mikhail Efremov @ 2012-09-22 13:59 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, 22 Sep 2012 17:25:01 +0400 Sergey Y. Afonin wrote:
> install-extSCRIPTS: $(ext_SCRIPTS)
> 	@$(NORMAL_INSTALL)
> 	test -z "$(extdir)" || $(MKDIR_P) "$(DESTDIR)$(extdir)"
> 
> Почему тут $(DESTDIR) оказался пустой ? Или передача переменной из
> вышестоящего Makefile должна описываться ? Всё равно, а как ?
> С autotools у меня не ахти...

Прежде чем подозревать ошибку в Makefile нужно убедиться, что DESTDIR
действительно определяется при make install. Есть %makeinstall_std,
кстати.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] нужна консультация по autotools (mc 4.8.6)
  2012-09-22 13:59 ` Mikhail Efremov
@ 2012-09-22 18:07   ` Sergey Y. Afonin
  2012-09-22 18:39     ` Mikhail Efremov
  0 siblings, 1 reply; 5+ messages in thread
From: Sergey Y. Afonin @ 2012-09-22 18:07 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Saturday 22 September 2012, Mikhail Efremov wrote:

> Прежде чем подозревать ошибку в Makefile нужно убедиться, что DESTDIR
> действительно определяется при make install. Есть %makeinstall_std,
> кстати.

Так 4.7.5.6 собирается, а там аналогичная конструкция тоже встречается.
Да и в 4.8.6 есть 

install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
        test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"

И оно работает:

Making install in man
make[2]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/doc/man'
Making install in es
make[3]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/doc/man/es'
make[4]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/doc/man/es'
make[4]: Nothing to be done for `install-exec-am'.
test -z "/home/asy/tmp-build/mc-buildroot/usr/share/man/man1" || /bin/mkdir -p "/home/asy/tmp-build/mc-buildroot/usr/share/man/man1"

То есть, тут DESTDIR получается определён. А попытка сделать как-то так
%makeinstall DESTDIR=$RPM_BUILD_ROOT,  предсказуемо приводит к помещению
основного набора файлов в $RPM_BUILD_ROOT$RPM_BUILD_ROOT. Можно, конечно,
вытащить всё это в правильное место и собрать пакет, но это как-то
неправильно.

-- 
С уважением, Сергей Афонин


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] нужна консультация по autotools (mc 4.8.6)
  2012-09-22 18:07   ` Sergey Y. Afonin
@ 2012-09-22 18:39     ` Mikhail Efremov
  2012-09-22 18:58       ` Sergey Y. Afonin
  0 siblings, 1 reply; 5+ messages in thread
From: Mikhail Efremov @ 2012-09-22 18:39 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, 22 Sep 2012 22:07:46 +0400 Sergey Y. Afonin wrote:
> On Saturday 22 September 2012, Mikhail Efremov wrote:
> 
> > Прежде чем подозревать ошибку в Makefile нужно убедиться, что
> > DESTDIR действительно определяется при make install. Есть
> > %makeinstall_std, кстати.
> 
> Так 4.7.5.6 собирается, а там аналогичная конструкция тоже
> встречается. Да и в 4.8.6 есть 
> 
> install-man1: $(man_MANS)
>         @$(NORMAL_INSTALL)
>         test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
> 
> И оно работает:
> 
> Making install in man
> make[2]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/doc/man'
> Making install in es
> make[3]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/doc/man/es'
> make[4]: Entering directory `/home/asy/RPM/BUILD/mc-4.8.6/doc/man/es'
> make[4]: Nothing to be done for `install-exec-am'.
> test -z "/home/asy/tmp-build/mc-buildroot/usr/share/man/man1"
> || /bin/mkdir -p "/home/asy/tmp-build/mc-buildroot/usr/share/man/man1"
> 
> То есть, тут DESTDIR получается определён. А попытка сделать как-то
> так %makeinstall DESTDIR=$RPM_BUILD_ROOT,  предсказуемо приводит к
> помещению основного набора файлов в $RPM_BUILD_ROOT$RPM_BUILD_ROOT.
> Можно, конечно, вытащить всё это в правильное место и собрать пакет,
> но это как-то неправильно.

%makeinstall не определяет DESTDIR. Зато переопределяет mandir и еще
кучу переменных куда-то в %buildroot. Поэтому при одновременном
определении DESTDIR в %buildroot и получается %buildroot%buildroot.
Используйте %makeinstall_std.

-- 
WBR, Mikhail Efremov


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] нужна консультация по autotools (mc 4.8.6)
  2012-09-22 18:39     ` Mikhail Efremov
@ 2012-09-22 18:58       ` Sergey Y. Afonin
  0 siblings, 0 replies; 5+ messages in thread
From: Sergey Y. Afonin @ 2012-09-22 18:58 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Saturday 22 September 2012, Mikhail Efremov wrote:

> Зато переопределяет mandir и еще кучу переменных куда-то
> в %buildroot. 

А, вот он как... Тогда понятно. С %makeinstall_std собралось.

-- 
С уважением, Сергей Афонин


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-09-22 18:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-22 13:25 [devel] нужна консультация по autotools (mc 4.8.6) Sergey Y. Afonin
2012-09-22 13:59 ` Mikhail Efremov
2012-09-22 18:07   ` Sergey Y. Afonin
2012-09-22 18:39     ` Mikhail Efremov
2012-09-22 18:58       ` Sergey Y. Afonin

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