Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015)
Материал из 0x1.tv
Аннотация
- Докладчик
- Виталий Липатов
Чтобы прийти к качественной сборке пакетов за минимальное время, требуется пройти длительный путь, при этом учитывая происходящие изменения в процедуре сборки.
Набор команд из etersoft-build-utils и предлагаемые типовые практики помогают сократить порог вхождения и облегчить затраты на первичную и последующую сборку пакетов.
Видео
Слайды
Расширенные тезисы
Чтобы собрать даже простой пакет, нужно знать и учесть множество нюансов. С приобретением опыта сборка пакетов начинает казаться несложной, но рутинной задачей. С целью упростить сборку пакетов, то есть скрыть мелкие подробности и выполнить за человека рутинные задачи, и создаётся уже более 10 лет набор утилит etersoft-build-utils.
Стоит упомянуть, что у каждого мантейнера с длительным опытом сборки пакетов собраны вспомогательные скрипты, которые ведомы только им, и не распространяются по причине их кустарности.
На самом деле собрать пакет очень просто. Берём git-репозиторий с пакетом и запускаем
$ rpmbb
если мы хотим собрать пакет в своей системе, или
$ rpmbsh
если мы хотим собрать пакет в hasher, или
$ rpmbs -u
если мы хотим отправить пакет на сборку в ALT Linux Sisyphus, или
$ rpmbph -b p7 -u
если мы хотим отправить пакет на сборку для ALT Linux p7.
При этом вам не нужно беспокоиться о временных коммитах, создании рабочего каталога для \Sys{hasher}, публикации репозитория, создании и публикации тэга для сборки, создании задания на сборку.
Но где же взять git-репозиторий с пакетом? Помимо очевидного решения с созданием такого репозитория с нуля самостоятельно, есть дополнительные пути:
Можно склонировать репозиторий из ALT Linux, если такой пакет уже собран:
$ rpmgp -g normalize
а можно посмотреть, нет ли такого пакета в других системах:
$ rpmgp -a normalize List for altautoimports: nodejs-normalize-package-data-0.2.1-alt1_1.src.rpm ... List for rosa2012: normalize-0.7.7-11.src.rpm
и скачать его, указав полное название файла, а потом преобразовать в git-репозиторий:
$ rpmgp -a -d normalize-0.7.7-11.src.rpm && rpmgp -m normalize-0.7.7-11.src.rpm
Если нужную вам программу вы вчера написали сами, и она ещё не собрана ни в одну из популярных систем, придётся писать спек для сборки самому. Но ни в коем случае не пишите спек с нуля. Возьмите подходящий пример отсюда: https://www.altlinux.org/SampleSpecs или загрузите репозиторий другого, уже собранного в ALT Linux Sisyphus пакета и используйте его в качестве образца.
Если сборка пакетов всё ещё кажется вам сложной, просто создайте задачу на добавление нового пакета:
И когда кто-то соберёт пакет, вы сможете его скачать и улучшать, чтобы им можно было пользоваться. Или просто соберёте новую версию пакета командой
$ rpmrb 4.32
которая скачает и закоммитит новую версию исходников, произведёт изменения в спеке, обновив версию и добавив запись в changelog, проверит собираемость в локальном hasher и отправит на сборку в Сизиф в случае успеха.
Примечания и отзывы
Plays:53
Comments:0