Коринф – система сборки пакетов под различные целевые системы на основе единого src.rpm.
Название Korinf (Коринф) предложено Алексеем Новодворским. Как известно, Сизиф был царём Коринфа.
Проект развивается из системы сборки, применяемой в Etersoft для сборки бинарных пакетов WINE@Etersoft, haspd, Postgre SQL?, freenx и прочего.
Система в настоящий момент готовится к публикации, и не до конца готова к самостоятельному использованию. Можно обращаться к wine@etersoft.ru.
Исходной единицей, отправляемой на сборку, является src.rpm со спеком, написанным согласно
принятым в ALT Linux правилам.
Спек желательно иметь идеальный (вычитанный согласно новейшим представлениям о его красоте).
Поддерживаемые целевые основные системы:
Коринф выполняет организационную работу по передаче задания на сборку пакета и публикацию результата.
rpm-спек для целевой системы преобразуется из спека для ALT Linux с помощью команды rpmbph (из etersoft-build-utils) и выполняется его сборка. Задействуется пакет rpm-build-altlinux-compat (обеспечивающий совместимость спека по макросам с целевой системой).
Сборка происходит на сборочной машине в chroot'е целевой системы под специальным пользователем, либо в удалённой системе, доступной через ssh.
Для не rpm-систем с помощью alien производится конвертирование пакета (в deb или tgz).
Результат сборки публикуется (копируется на ftp-сервер в соответствующий каталог).
Успешность сборки контролируется, но в любом случае протокол сборки также публикуется.
Для систем, в которые невозможно преобразование из rpm (Free BSD, Gentoo, Solaris) пишутся собственные правила сборки (портежи и ебилды).
Возможно реально разработать конвертор в портежи и ебилды.
Сборочные фермы:
http://www.pgbuildfarm.org/cgi-bin/show_status.pl
http://build.samba.org/
http://sisyphus.sen.cwi.nl:8080/
http://bf.openpkg.net/openpkg-cgi/openpkg-tools/bf-ui.cgi
Canonical, Ltd., вчера представила свой новый публичный сервис под названием “Personal Package Archives”.
“Personal Package Archives” полностью интегрируется в другой бесплатный сервис Launchpad, и дает каждому своему пользователю 1 Gb дискового пространства для загрузки любого программного обеспечения. “Personal Package Archives” автоматически скомпилирует его, и сделает deb пакет для Ubuntu Linux.
Плюс, в “Personal Package Archives” доступен сервис оповещения о ошибках (bug reporting) и локализированное програмное обеспечение через веб-интерфейс.
В настоящий момент Korinf развёрнут на сборочных серверах Etersoft. Инструкция по использованию для тех, у кого есть логин:
$ cvs checkout eterbuild
$ cd tools
$ ./login.sh Дистрибутив/версия [-r]
Дистрибутив/версия – в стиле ALTLinux/4.0 или SUSE/10.3
-r – вход под root, а не под пользователем
Для сборки пакета нужно выполнить скрипт вида build-пакет.sh:
$ cd eterbuild
$ build-пакет.sh
Например, выполнить скрипт build-wine.sh.
В этом скрипте должна присутствовать строка
export REBUILDLIST="Дистрибутив/версия (Список дистрибутивов)"
для сборки в тестовой системе (наборе систем).
В строке build_rpm необходимо указать собираемый пакет:
build_rpm Пакет.
Вспомогательные скрипты Korinf работают следующим образом:
Из скрипта build-%{пакет} вызывается функция build_rpm, описанная в ./functions/helpers.sh, которая запускает скрипт functions/autobuild-functions.sh. В нем используется функция build_in_dist, описанная в build-main.sh. Эта функция позволяет собирать пакеты для Free BSD (с помощью скрипта build-freebsd.sh), Open Solaris? (build-solaris.sh), Gentoo (build-gentoo.sh) (для этих систем сборка происходит на отдельных машинах), ALTLinux (./functions/build-hasher.sh) и других дистрибутивов (build_rpms из ./functions/build-rpm.sh) (для deb дистрибутивов производится конвертирование из rpm с помощью функции convert_rpm; с ее же помощью происходит конвертирование в tgz и tar.gz). Для 2 последних случаев монтируется файловая система соответствующего дистрибутива (системы указываются в переменной REBUILDLIST скрипта build-%{пакет}) (с помощью mount-linux из ./functions/mount.sh). Сборка для Linux при этом происходит в чруте в подмонтированной файловой системе с помощью средств из пакета etersoft-build-utils:
rpmbb и rpmbph.
С результатом сборки можно ознакомиться в eterbuild/log/Система/Пакет.log, а также в соответствующем каталоге на ftp-сервере.