Как упрощается сборка пакетов в 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 и отправит на сборку в Сизиф в случае успеха.
