История изменений
Исправление wandrien, (текущая версия) :
Ну уж bash-лапша то намного лучше!
Всё, что нужно от скрипта сборки, это две вещи.
Объявить десяток переменных такие как название пакета, версия, откуда качать, какие чексуммы и т.п.
И иметь возможность объявить функции для prepare(), build() и package(). В случае source-based дистрибутива там еще USE-флаги нужно учесть. Всё.
bash не лучшее, что изобрела цивилизация, но этот язык:
- Всё равно знают все разработчики под linux.
- Достаточен, чтобы справиться с вышеуказанным.
Какой-нибудь лисп, как в nixos, подошел бы, конечно, намного лучше. С абстрактных позиций. А с практических позиций bash позволяет снизить порог вхождения и привлечь больше энтузиастов.
Как этой задаче помогает портянка на make с кучей внутренних потрохов сборочной автоматики, вытащенных наружу, мне непонятно.
Я не успеваю за вашим «взагали по загалям», извините.
Могу еще вот такой пример привести: https://git.alpinelinux.org/aports/tree/main/gmp/APKBUILD
Arch, Void, Gentoo, Alpine — это всё примеры дистрибутивов с качественной сборочной автоматикой, где труд мейнтейнера пакета сосредоточен на решении фактических сборочных задач, а не на борьбе с бесполезным низкоуровневым DSL.
Исходная версия wandrien, :
Ну уж bash-лапша то намного лучше!
Всё, что нужно от скрипта сборки, это две вещи.
Объявить десяток переменных типа названия пакета, версии, откуда качать, какие чексуммы и т.п.
И иметь возможность объявить функции для prepare(), build() и package(). В случае source-based дистрибутива там еще USE-флаги нужно учесть. Всё.
bash не лучшее, что изобрела цивилизация, но этот язык:
- Всё равно знают все разработчики под linux.
- Достаточен, чтобы справиться с вышеуказанным.
Какой-нибудь лисп, как в nixos, подошел бы, конечно, намного лучше. С абстрактных позиций. А с практических позиций bash позволяет снизить порог вхождения и привлечь больше энтузиастов.
Как этой задаче помогает портянка на make с кучей внутренних потрохов сборочной автоматики, вытащенных наружу, мне непонятно.
Я не успеваю за вашим «взагали по загалям», извините.
Могу еще вот такой пример привести: https://git.alpinelinux.org/aports/tree/main/gmp/APKBUILD
Arch, Void, Gentoo, Alpine — это всё примеры дистрибутивов с качественной сборочной автоматикой, где труд мейнтейнера пакета сосредоточен на решении фактических сборочных задач, а не на борьбе с бесполезным низкоуровневым DSL.