Содержание

Обзор

mock-urpm - программа, собирающая rpm пакеты внутри chroot. Содержимое этого chroot определяется конфигурационными файлами, которых может быть несколько (нужный выбирается опцией -r).

Что умеет mock-urpm

(ну и mock в федоре, конечно же):

при сборке одного пакета все результаты (логи и собранные rpm) можно найти в /var/lib/mock-urpm/{rootname}/results

Как использовать

Установка

Установить пакет можно командой sudo urpmi mock-urpm, при этом произойдёт автоматическая настройка пользователя для работы с mock-urpm.

Настройка

Все конфигурационные файлы лежат в /etc/mock-urpm.

Настройки по умолчанию вшиты в скрипт, поэтому все конфигурационные файлы могут быть пустыми.

Основной файл, site-defaults.cfg, содержит закомментированные настройки по умолчанию. В первую очередь применяются настройки из site-defaults.cfg, затем из конкретного пользовательсткого конфигурационного файла (default.cfg, если не указан другой опцией -r)

Запуск

Команда mock-urpm /path/to/src.rpm --enable tmpfs соберет rpm из указанного src.rpm.

Chroot контейнеры создаются в папке /var/lib/mock-urpm.

После сборки контейнер содержит каталог results/, там складываются логи процесса сборки и собранные пакеты.

Также всё подробно описано в man mock-urpm.

Использование с Git

Файл site-defaults.cfg содержит заготовку настроек SCM, в том числе и Git:

# Things that must be adjusted if SCM integration is used:
#
# config_opts['scm'] = True
# config_opts['scm_opts']['method'] = 'git'
# config_opts['scm_opts']['cvs_get'] = 'cvs -d /srv/cvs co SCM_BRN SCM_PKG'
# config_opts['scm_opts']['git_get'] = 'git clone SCM_BRN git://localhost/SCM_PKG.git SCM_PKG'

Изменение конфига на примере ABF:

# Things that must be adjusted if SCM integration is used:
#
config_opts['scm'] = True
config_opts['scm_opts']['method'] = 'git'
config_opts['scm_opts']['git_get'] = 'git clone SCM_BRN https://username@abf.rosalinux.ru/import/SCM_PKG.git SCM_PKG'

Запуск на примере пакета kernel и ветки rosa2012lts:

mock-urpm --scm-enable --scm-option package=kernel --scm-option branch=rosa2012lts

Полезные статьи

http://fedoraproject.org/wiki/Using_Mock_to_test_package_builds