= Сборка бинарных пакетов для Fedora/RHEL/CentOS = ВНИМАНИЕ: RHEL4 с набором пакетов из официальных репозиториев официально не поддерживается, поскольку там используется устаревшая версия glib (<2.6) отсутствуют slang2 и ncursesw. == Соглашения и обозначения == Для исключения неоднозначных толкований необходимо определиться с используемыми далее по тексту терминами и обозначениями: * ${SRC_DIR} - каталог, в котором находится дерево исходных текстов; * ${RPMBUILD_DIR} - каталог, используемый утилитой rpmbuild для сборки пакетов. Обычно это каталог {{{~/rpmbuild}}}, но может быть и {{{/usr/src/rpmbuild}}}. Также вы можете переопределить этот каталог в любое удобное для вас место. См. [https://fedoraproject.org/wiki/PackagingGuidelines руководство по сборке RPM-пакетов] для более полной информации == Подготовка к сборке == Вам необходимо иметь копию нашего репозитория. В дереве исходных текстов выполните команды: {{{ cd ${SRC_DIR} ./autogen.sh ./configure make dist }}} После завершения работы этих команд в дереве исходных текстов появится архив вида {{{mc-<версия>.tar.gz}}} == Использование утилиты rpmbuild == Вы можете собрать бинарный rpm-пакет при помощи утилиты rpmbuild. При этом в вашей ОС должны быть установлены все [wiki:ru/doc/buildAndInstall/req необходимые для сборки пакеты]. 1. Скопируйте файл ${SRC_DIR}/contrib/dist/redhat/mc.spec в ${RPMBUILD_DIR}/SPECS. 1. Скопируйте файл ${SRC_DIR}/mc-<версия>.tar.gz в ${RPMBUILD_DIR}/SOURCES. 1. Выполните сборку бинарного пакета. 1. Выполните сборку пакета исходных текстов. В виде shell-команд это выглядит так: {{{ cp ${SRC_DIR}/contrib/dist/redhat/mc.spec ${RPMBUILD_DIR}/SPECS cp ${SRC_DIR}/mc-*.tar.gz ${RPMBUILD_DIR}/SOURCES rpmbuild -bb ${RPMBUILD_DIR}/SPECS/mc.spec rpmbuild -bs ${RPMBUILD_DIR}/SPECS/mc.spec }}} Сборка бинарного пакета и пакета исходных текстов может быть выполнена одной командой: {{{ rpmbuild -ba ${RPMBUILD_DIR}/SPECS/mc.spec }}} Для получения более подробной информации обратитесь к {{{man rpmbuild}}}. == Использование утилиты mock == При использовании утилиты [https://fedoraproject.org/wiki/Projects/Mock mock] нет необходимости держать в ОС установленные пакеты, необходимые для сборки нашего проекта. 1. Скопируйте файл ${SRC_DIR}/contrib/dist/redhat/mc.spec в ${RPMBUILD_DIR}/SPECS. 1. Скопируйте файл ${SRC_DIR}/mc-<версия>.tar.gz в ${RPMBUILD_DIR}/SOURCES. 1. Выполните сборку пакета исходных текстов. 1. Запустите утилиту mock с указанием необходимой ОС для сборки. В виде shell-команд это выглядит так: {{{ cp ${SRC_DIR}/contrib/dist/redhat/mc.spec ${RPMBUILD_DIR}/SPECS cp ${SRC_DIR}/mc-*.tar.gz ${RPMBUILD_DIR}/SOURCES rpmbuild --nodeps -bs ${RPMBUILD_DIR}/SPECS/mc.spec mock ${RPMBUILD_DIR}/SRPMS/mc-*.src.rpm -r fedora-11-i386 }}} Для получения более подробной информации обратитесь к {{{man mock}}}. == Использование build-ферм koji == TODO: красиво расписать. Hubbitus: help, please :)