Предлагается 1. Объявить нерекомендуемым makeinstall (поскольку это хак через переопределение prefix, который порой приводит к ошибкам (путям к данным с buildroot внутри например)). 2. Изменить make_install, добавив в него DESTDIR=%buildroot install Это не сломает сборку старых пакетов, поскольку а) две одинаковых цели не вызывают двойного их выполнения б) DESTDIR друг с другом не подерётся Если кто-то использовал make_install без DESTDIR, то это столь редкий случай, что его проще исправить, чем найти такой спек 3. makeinstall_std в связи с появлением нормально make_install тоже объявить нерекомендуемым к использованию. 4. Добавить необходимые замены в cleanup_spec. P.S. Как я понял, в определении макросов make_install используется только в определении _perl_vendor_MM_install()
Давайте не будем менять смысл макросов, которые существуют годами? Зачем нам искусственно создавать несовместимость?
Ну так очень плохо, что они годами существуют _такие_. Ладно, сдаюсь. Но в обмен на хорошее название нового макроса. Просто у меня такое впечатление (15 спеков против 250-ти), что make_install всегда используется в форме make_install install DESTDIR... Ну а в тех редких случаях когда там не make_install DESTDIR=, там обычно такие Makefile, которым INSTALL переопределять бессмысленно. Кстати, как я уже писал, несовместимость такое расширение make_install не создаёт, по крайней мере с 95% тех спеков, с которыми я имел дело.
Я против прибивания гвоздями таргета "install", какой бы он не был.
(In reply to comment #0) > 3. makeinstall_std в связи с появлением нормально make_install тоже объявить > нерекомендуемым к использованию. По факту, он уже давно нерекомендуем: http://lists.altlinux.ru/pipermail/devel/2005-June/034599.html
(В ответ на комментарий №4) > (In reply to comment #0) > > 3. makeinstall_std в связи с появлением нормально make_install тоже объявить > > нерекомендуемым к использованию. > > По факту, он уже давно нерекомендуем: > http://lists.altlinux.ru/pipermail/devel/2005-June/034599.html Там не написано, что он нерекомендуем. Лично меня его присутствие в rpm-build-compat несколько примирило с действительностью, хотя, конечно, это небольшое чудо, что определения в rpm-build-perl и в rpm-build-compat идентичны. Дабы удовлетворить raorn'а, предлагаю следующее определение: %define makeinstall_std %make_install DESTDIR=%buildroot %_makeinstall_target И таки да, хотелось бы его увидеть в более "официальном" месте, чем rpm-build-compat. И изжить дублирование с -perl, не к добру оно.
(In reply to comment #5) > Дабы удовлетворить raorn'а, предлагаю следующее определение: > > %define makeinstall_std %make_install DESTDIR=%buildroot %_makeinstall_target http://git.altlinux.org/people/ldv/packages/?p=rpm.git;h=4.0.4-alt96.15-1-g6fc32e7
Замечательно! В Sisyphus и в 5.0, пожалуйста.
%makeinstall_std was added in 4.0.4-alt96.16.
(Ответ для Vitaly Lipatov на комментарий #0) > Предлагается > 1. Объявить нерекомендуемым makeinstall (поскольку это хак через > переопределение prefix, который порой приводит к ошибкам (путям к данным с > buildroot внутри например)). Посмотрел на изменение этих макросов в апстриме rpm: https://github.com/rpm-software-management/rpm commit 0fddb3cbd80fc763ecacfea5b82631f7693915c2 Author: Florian Festi <ffesti@redhat.com> Date: Fri Mar 20 12:16:30 2015 +0100 Add deprecation warning to %makeinstall (rhbz #1148195) commit 89df36524bace71decee4ab4f979d4ffb449c9a7 Author: Panu Matilainen <pmatilai@redhat.com> Date: Wed Jan 22 10:56:00 2014 +0200 Add %make_build macro for hiding parallel-build magic from specs (ticket #115) > 2. Изменить make_install, добавив в него DESTDIR=%buildroot install > Это не сломает сборку старых пакетов, поскольку > а) две одинаковых цели не вызывают двойного их выполнения > б) DESTDIR друг с другом не подерётся commit 883253ea6af71f8063d7a045841c35bad22147e2 Author: Panu Matilainen <pmatilai@redhat.com> Date: Fri Aug 14 11:27:57 2009 +0300 Add %make_install macro that does the "right thing" wrt modern autotools - old %makeinstall for broken/ancient autotools left untouched for backwards compatibility
(Ответ для Dmitry V. Levin на комментарий #1) > Давайте не будем менять смысл макросов, которые существуют годами? > Зачем нам искусственно создавать несовместимость? Спасибо, что в апстриме make_install %{__make} install DESTDIR=%{?buildroot} INSTALL="%{__install} -p" а у нас make_install %_make_bin INSTALL="%__install -p" и это можно было изменить ещё в 2008 году, но у нас искусственно создана несовместимость, которая успешно просуществовала ещё 15 лет с момента предложения её устранить. При этом сейчас в Сизифе 539 make_install, из которых только 121 не содержат явного указания DESTDIR: $ git grep "%make_install" | wc -l 539