Summary: | [FR] Прошу добавить возможность добавления пакетов в образ на основании содержимого определённых пакетов | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | jqt4 <jqt4> |
Component: | mkimage | Assignee: | Gleb F-Malinovskiy <glebfm> |
Status: | NEW --- | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | antohami, glebfm, iv, legion, mike, sin |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
jqt4@altlinux.org
2025-03-05 13:52:49 MSK
> Если переменная EDITION_PACKAGES пуста, то в образ ничего не добавляется.
Но mki-alt-components-extract, и editions2packages в нём, всё равно будут вызваны? Как это работает на профилях, которые ничего не знают про редакции?
Вообще, я ожидал более общего решения. Чтобы не только список пакетов для чрута, но и команда, взываемая в нём, были частью профиля. А то получается странная история, что профиль должен подобрать пакеты, в которых будет указаный в исходниках mkimage исполняемый файл.
(In reply to Ivan A. Melnikov from comment #1) > Вообще, я ожидал более общего решения. Чтобы не только список пакетов для > чрута, но и команда, взываемая в нём, были частью профиля. А то получается > странная история, что профиль должен подобрать пакеты, в которых будет > указаный в исходниках mkimage исполняемый файл. Вычисляемый набор пакетов. Мы просто переменную задаём в профиле, а пакеты приезжают те, что в компоненте прописаны. Почему должно быть иначе? И как должно быть иначе? А вот то, что это не документировано в mkimage, неправильно. Надо обязательно добавить в документацию про переменную EDITION_PACKAGES. Те, кто не используют mkimage-profiles, также могут задействовать эту переменную в своём Makefile. (Ответ для Ivan A. Melnikov на комментарий #1) > > Если переменная EDITION_PACKAGES пуста, то в образ ничего не добавляется. > > Но mki-alt-components-extract, и editions2packages в нём, всё равно будут > вызваны? Как это работает на профилях, которые ничего не знают про редакции? Тестировал такой сценарий В лог сборки выдано что-то подобное: mkimage: Processing 'copy-packages' ... mki-cache: has started executing. mki-install: has started executing. /.host/entry: line 10: exec: editions2packages: not found Сборке образа не помешало. > > Вообще, я ожидал более общего решения. Чтобы не только список пакетов для > чрута, но и команда, взываемая в нём, были частью профиля. А то получается > странная история, что профиль должен подобрать пакеты, в которых будет > указаный в исходниках mkimage исполняемый файл. (In reply to jqt4@altlinux.org from comment #3) > (Ответ для Ivan A. Melnikov на комментарий #1) > > > Если переменная EDITION_PACKAGES пуста, то в образ ничего не добавляется. > > > > Но mki-alt-components-extract, и editions2packages в нём, всё равно будут > > вызваны? Как это работает на профилях, которые ничего не знают про редакции? > Тестировал такой сценарий > В лог сборки выдано что-то подобное: > > mkimage: Processing 'copy-packages' ... > mki-cache: has started executing. > mki-install: has started executing. > /.host/entry: line 10: exec: editions2packages: not found > > Сборке образа не помешало. Да. Такое не годится. (In reply to Антон Мидюков from comment #2) > (In reply to Ivan A. Melnikov from comment #1) >> Вообще, я ожидал более общего решения [...] > Вычисляемый набор пакетов. Мы просто переменную задаём в профиле, а пакеты > приезжают те, что в компоненте прописаны. Почему должно быть иначе? И как > должно быть иначе? Я имелл в виду, что mkimage не обязательно что-то знать про редакции, а редакциям про mkimage. Вычисляемый набор пакетов может в теории быть полезен и за пределами редакций. Можно, например, задавать в профиле не только EDITION_PACKAGES (что поставить в chroot), но и EDITION_COMMAND (что выполнить в чруте). Так мы даём возможность разработчикам редакций возможность переименовать бинарник editions2packages во что-то ещё (мало ли что им в голову придёт) не ломая mkimage, а только профили; возможность разработчикам профилей передать в эту команду дополнительные опции (а есть ощущение, что они понадобятся в будущем) и вообще получаем достаточно общий и гибкий инструмент. Надо только подумать над nameing'ом. Ему не обязательно даже содержать слово EDITION. (Ответ для Ivan A. Melnikov на комментарий #5) > (In reply to Антон Мидюков from comment #2) > > (In reply to Ivan A. Melnikov from comment #1) > >> Вообще, я ожидал более общего решения [...] > > Вычисляемый набор пакетов. Мы просто переменную задаём в профиле, а пакеты > > приезжают те, что в компоненте прописаны. Почему должно быть иначе? И как > > должно быть иначе? > > Я имелл в виду, что mkimage не обязательно что-то знать про редакции, а > редакциям про mkimage. > > Вычисляемый набор пакетов может в теории быть полезен и за пределами > редакций. > > Можно, например, задавать в профиле не только EDITION_PACKAGES (что > поставить в chroot), но и EDITION_COMMAND (что выполнить в чруте). Так мы > даём возможность разработчикам редакций возможность переименовать бинарник > editions2packages во что-то ещё (мало ли что им в голову придёт) не ломая > mkimage, а только профили; возможность разработчикам профилей передать в эту > команду дополнительные опции (а есть ощущение, что они понадобятся в > будущем) и вообще получаем достаточно общий и гибкий инструмент. > > Надо только подумать над nameing'ом. Ему не обязательно даже содержать слово > EDITION. https://git.altlinux.org/people/jqt4/packages/?p=mkimage.git;a=commitdiff;h=ef47c1eb268218b0e268929d2a15d97b42178f4e Сделал название более общим, добавил переменную для команды. Если любая переменная не заполнена скрипт завершится без ошибки и в лог ничего не напишет. Добавил описание переменных в документацию. (In reply to jqt4@altlinux.org from comment #6) > https://git.altlinux.org/people/jqt4/packages/?p=mkimage.git;a=commitdiff; > h=ef47c1eb268218b0e268929d2a15d97b42178f4e > Сделал название более общим, добавил переменную для команды. > Если любая переменная не заполнена скрипт завершится без ошибки и в лог > ничего не напишет. > Добавил описание переменных в документацию. Спасибо! Небольшой вопрос: > [ -z "$pkgs" -o -z "$cmds" ] && exit 0 Надо ли здесь проверять пакеты на пустоту, если команда задана? (Ответ для Ivan A. Melnikov на комментарий #7) ... > Спасибо! > > Небольшой вопрос: > > > [ -z "$pkgs" -o -z "$cmds" ] && exit 0 > > Надо ли здесь проверять пакеты на пустоту, если команда задана? Согласен, здесь не нужно. Нужно перед установкой пакетов. Исправил. Также убрал кавычки, чтобы воспринимались аргументы команды. https://git.altlinux.org/people/jqt4/packages/?p=mkimage.git;a=commitdiff;h=87406a2b670151b3f7c1eef36b4cde3c502e7276 Прошу рассмотреть исправления, и если нет возражений и замечаний, принять. |