Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) (Новая страница: «== Аннотация == ;Докладчик: {{Speaker|Виталий Липатов}} <blockquote> </blockquote> == Видео == {{vimeoembed|134705166|800|4…») |
StasFomin (обсуждение | вклад) |
||
== Аннотация == ;Докладчик: {{Speaker|Виталий Липатов}} <blockquote> Чтобы прийти к качественной сборке пакетов за минимальное время, требуется пройти длительный путь, при этом учитывая происходящие изменения в процедуре сборки. Набор команд из etersoft-build-utils и предлагаемые типовые практики помогают сократить порог вхождения и облегчить затраты на первичную и последующую сборку пакетов. </blockquote> == Видео == {{vimeoembed|134705166|800|450}} <!-- {{youtubelink|}} --> == Слайды == [[File:Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf|left|page=-|256px]] {{----}} == Расширенные тезисы == Чтобы собрать даже простой пакет, нужно знать и учесть множество нюансов. С приобретением опыта сборка пакетов начинает казаться несложной, но рутинной задачей. С целью упростить сборку пакетов, то есть скрыть мелкие подробности и выполнить за человека рутинные задачи, и создаётся уже более 10 лет набор утилит <tt>etersoft-build-utils</tt>. Стоит упомянуть, что у каждого мантейнера с длительным опытом сборки пакетов собраны вспомогательные скрипты, которые ведомы только им, и не распространяются по причине их кустарности. На самом деле собрать пакет очень просто. Берём 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 пакета и используйте его в качестве образца. Если сборка пакетов всё ещё кажется вам сложной, просто [https://bugzilla.altlinux.org/enter_bug.cgi?product=New\%2Fproposed\%20packages создайте задачу на добавление нового пакета]: И когда кто-то соберёт пакет, вы сможете его скачать и улучшать, чтобы им можно было пользоваться. Или просто соберёте новую версию пакета командой $ rpmrb 4.32 которая скачает и закоммитит новую версию исходников, произведёт изменения в спеке, обновив версию и добавив запись в changelog, проверит собираемость в локальном hasher и отправит на сборку в Сизиф в случае успеха. == Примечания и отзывы == <!-- <blockquote>[©]</blockquote> --> <references/> [[Category:OSSDEVCONF-2015]] [[Category:Open-source]] <!-- topub --> |
Версия 10:43, 17 ноября 2015
Аннотация
- Докладчик
- Виталий Липатов
Чтобы прийти к качественной сборке пакетов за минимальное время, требуется пройти длительный путь, при этом учитывая происходящие изменения в процедуре сборки.
Набор команд из 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 и отправит на сборку в Сизиф в случае успеха.