Summary: | Изменить действие make_install :) | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly Lipatov <lav> |
Component: | rpm-build | Assignee: | placeholder <placeholder> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | enhancement | ||
Priority: | P2 | CC: | arseny, erthad, glebfm, ildar, imz, ktirf, ldv, mike, php-coder, placeholder, vt |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Vitaly Lipatov
2008-01-08 21:05:23 MSK
Давайте не будем менять смысл макросов, которые существуют годами? Зачем нам искусственно создавать несовместимость? Ну так очень плохо, что они годами существуют _такие_. Ладно, сдаюсь. Но в обмен на хорошее название нового макроса. Просто у меня такое впечатление (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 |