Сообщество GNOME

Вики русскоязычной команды

Инструменты пользователя

Инструменты сайта


sborka_gnome_s_pomoschju_jhbuild

С помощью JHBuild можно автоматически загрузить и скомпилировать «модули» (пакеты с исходными кодами). Модули перечислены в файле “module set”, в который также включена информация о зависимостях, т. о. JHBuild выбирает модули для сборки и собирает их в определённом порядке.

JHBuild изначально создавался для сборки GNOME, но этот инструмент также может оказаться полезным при сборке других проектов.

Установка JHBuild

Установка JHBuild происходит в несколько шагов. Для JHBuild требуются некоторые приложения, без которых невозможно выполнять сборку модулей.

Для работы JHBuild требуется Python версии не ниже 2.3. Проверьте, что он у вас установлен.

Для установки рекомендуется загрузить JHBuild с помощью системы контроля версий. Это можно сделать с помощью следующей команды. Команду рекомендуется выполнять в новом каталоге, в который будут устанавливаться все исходные коды, например, ~/checkout/gnome.

$ git clone git://git.gnome.org/jhbuild
...
$

JHBuild должен загрузиться в каталог с именем jhbuild, который находится в текущем каталоге. Теперь, чтобы собрать и установить JHBuild, выполните команды:

$ cd jhbuild
$ ./autogen.sh
...
$ make
...
$ make install
...
$

Если доступны gnome-common, gnome-doc-utils и autotools, autogen.sh настроит JHBuild на сборку с помощью autotools. Если эти инструменты недоступны, autogen.sh настроит JHBuild на установку с помощью обычного Makefile. Чтобы всегда использовать метод Makefile, передайте autogen.sh параметр --simple-install.

Если описанные выше шаги прошли успешно, в ~/.local/bin будет записан небольшой сценарий для запуска JHBuild. Добавьте ~/.local/bin в переменную среды PATH:

$ PATH=$PATH:~/.local/bin
$

Чтобы не добавлять каждый раз этот путь в переменную среды, выполните следующую команду:

$ echo PATH=$PATH:~/.local/bin >> ~/.bashrc
$ 

Перед запуском JHBuild необходимо настроить файл, находящийся в ~/.jhbuildrc.

Настройка JHBuild

В файле ~/.jhbuildrc для установки переменных используется синтаксис Python. Вместе с JHBuild поставляется пример: examples/sample.jhbuildrc. Скопируйте examples/sample.jhbuildrc в ~/.jhbuildrc и внесите необходимые изменения.

С помощью конфигурации из примера JHBuild собирает модули meta-gnome-core и meta-gnome-apps-tested, а также зависимости из gnome-apps-3.2. JHBuild извлечёт деревья с исходными кодами в каталог ~/checkout/gnome и установит все файлы в подкаталоги /opt/gnome. У вас должны быть права на запись в эти 2 каталога.

Переменные, использующиеся для настройки, описаны в руководстве по JHBuild в разделе 6 (Configuration File Reference). Далее описываются наиболее используемые переменные.

repos

Это словарь, который можно использовать для указания альтернативного местоположения репозитория. Это переменная полезна для разработчиков модулей. По умолчаниб JHBuild извлекает код из репозиториев, используя анонимное местоположение репозитория. Ключи словаря — это короткие имена, а значения — строки, указывающие на альтернативное местоположение репозитория. Например:

repos['git.gnome.org'] = 'ssh://username@git.gnome.org/git/'

moduleset

Строка или список строк с указанием одного или нескольких названий наборов модулей. Может быть либо именем файла набора модулей, включённых с помощью JHBuild (включая путь и расширение), либо полным HTTP-адресом URL к управляемому извне набору модулей. Если модуль с одним и тем же именем присутствует в нескольких наборах, то приоритетным является набор, находящийся последним в этом списке. Наборы, предоставляемые с помощью JHBuild, обновляются, чтобы соответствовать текущему разрабатываемому выпуску GNOME.

modules

Список строк, указывающий модули для сборки. Список модулей будет рекурсивно обрабатываться, чтобы включить все зависимости, только если не используется команда buildone. По умолчанию: ['meta-gnome-desktop'].

checkoutroot

Строка, указывающая каталог, в который будут распаковываться деревья с исходными кодами. Если переменная buildroot не установлена, сборки также будут происходить в этом каталоге. По умолчанию: ~/checkout/gnome.

prefix

Строка, указывающая префикс для установки модулей. Префикс должен быть записан в форме абсолютного пути. У вас должны быть права на запись в этот каталог. По умолчанию: /opt/gnome.

branches

Словарь, указывающий, какую ветвь использовать для определённых модулей. Для модулей Git — кортеж, первая пара которого состоит из необязательного репозитория (или None, если нет значения), а вторая — имя ветви. Например:

branches['modulename'] = (None, 'branchname')

autogenargs

Строка с аргментами, которые передаются сценарию autogen.sh всех модулей. Может быть перезаписано для определённых модулей с помощью словаря module_autogenargs. Например:

autogenargs='--disable-gtk-doc'
module_autogenargs['gtk+'] = '--enable-broadway-backend'

makeargs

Строка, в которой перечисляются аргументы, передаваемые make. По умолчанию используется пустая строка.

Перед началом сборки

Перед сборкой модулей необходимо удостовериться, что в системе установлены необходимые инструменты сборки. В эти инструменты входят: GNU Autotools (autoconf, automake, libtool and gettext), binutils, gcc, g++, pkg-config и интерпретатор Python.

JHBuild может проверить наличие инструментов с помощью команды sanitycheck:

$ jhbuild sanitycheck 

Чтобы проверка успешно прошла, необходимо установить следующие пакеты:

  • flex;
  • bison;
  • cvs;
  • docbook-style-xsl;
  • docbook-dtds.

Если sanitycheck ничего не вывел, значит все необходимые пакеты уже установлены, и вы можете перейти к следующему шагу. Если sanitycheck выводит сообщения об ошибках, их можно исправить двумя способами:

  1. установить необходимые пакеты из репозитория вашего дистрибутива. Список пакетов для различных дистрибутивов можно найти в JhbuildDependencies. После установки пакетов запустите команду sanitycheck ещё раз, чтобы убедиться, что теперь установлены все необходимые пакеты;
  2. выполните команду bootstrap, чтобы загрузить, собрать и установить необходимые инструменты:
    $ jhbuild bootstrap

    После этого снова выполните sanitycheck.

Команда bootstrap не собирает все зависимости, требуемые инструментами сборки. Если в вашем дистрибутиве нет необходимых пакетов, их необходимо собрать вне окружения JHBuild.

Зависимости для сборочных инструментов включают в себя следующие приложения: m4, perl и компилятор языка Си (например, gcc) (рекомендуется установить компилятор Си++ (gcc-c++), т. к. он также часто требуется).

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

Если вы всё настроили, тогда можно приступать к сборке программного обеспечения. Чтобы собрать все модули, перечисленные в файле ~/.jhbuildrc, выполните следующую команду:

$ jhbuild build

JHBuild загрузит, настроит, скомпилирует и установит каждый модуль. Если на каком-либо этапе происходит ошибка, JHBuild показывает меню и запрашивает дальнейшие действие. Вы можете выбрать следующие вариант:

  • вернуться к командной оболочке для исправления ошибки;
  • повторно запустить сборку с другого этапа;
  • пропустить этот модуль;
  • или игнорировать ошибку и продолжить работу.

Если вы пропустите модуль, то другие модули, зависящие от этого модуля, также не соберутся.

Далее представлен пример меню:

  [1] Rerun phase build
  [2] Ignore error and continue to install
  [3] Give up on module
  [4] Start shell
  [5] Reload configuration
  [6] Go to phase "wipe directory and start over"
  [7] Go to phase "configure"
  [8] Go to phase "clean"
  [9] Go to phase "distclean"
choice: 
sborka_gnome_s_pomoschju_jhbuild.txt · Последние изменения: 2014/08/24 14:47 — ymyasoedov

Инструменты страницы