Hephaestus писал: ↑02.11.2020 09:59
ТС получил от makepkg непонятный запрос и спросил, что с этим делать.
При чем тут фаза сборки и добросовестность разработчика?
ТС получил запрос от makepkg, но спросил про сборку:
нужно ли запускать сборку от root или от пользователя?
Поскольку мне точно известно, что спрашивает это начинающий пользователь Slackware, а из вопроса не следует, что конкретно он имеет в виду под сборкой (сборка собственно софта (например, make), подготовка дерева будущего пакета (например, make install), собственно построение пакета (makepkg) или это все вместе), то посчитал необходимым хоть как-то внести ясность, где чья шерсть ;-)
Иногда вместо заданного вопроса "как" лучше ответить на незаданный вопрос "почему так" ;-) (имхо)
Hephaestus писал: ↑02.11.2020 09:38
Если текущая схема действительно может представлять опасность, её давно бы уже поменяли.
Может. Равно как молоток или нож. И не меняют ровно по той же причине -- сам по себе инструмент намного сильно проще, чем построение условий для его безопасного применения. Поэтому и применяют исходя из ситуации, от "как есть" до "в стерильной комнате".
Hephaestus писал: ↑02.11.2020 09:59
При чем тут фаза сборки и добросовестность разработчика?
Один маленький типовой пример.
Дано: Разработчик ПО в одном или нескольких местах на фазе установки упустил $(DESTDIR).
Следствие: По make install DESTDIR=... эти файлы нацелены не во временный каталог назначения, а в систему.
Результат $ make; make install DESTDIR=... # makepkg ...; upgradepkg --install-new ...
-- при запуске make install от root:
* на машине сборщика получится комплектное ПО: файлы, не попавшие в пакет, попадут в систему напрямую, минуя пакетный менеджер;
* на машине, где установлен пакет -- некомплектное ПО;
-- при запуске от пользователя: в критичные части системы ничего не попадет (не хватит прав), установка из пакета даст некомплектное ПО.
При этом еще на фазе сборки целевые пути вполне могут быть сразу $(DESTDIR)/... ;-)
Добавлено (10:58):
UnixNoob писал: ↑01.11.2020 22:36
Он должен лежать в исходниках или, если он генерируется, то после команды make?
Если почитать "man make", то станет понятно, что make обрабатывает заданные ему правила, по умолчанию в файле Makefile. Поэтому, если на вызове make правил не будет, make выскажет все, что о нас думает по этому поводу.
Смотреть удобнее начинать с файлов README, INSTALL, там часто бывают инструкции, ориентированные на чтение человеком ;-)
Но если документация молчит, то да, код -- лучшая документация.