MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Простая сборка Thunderbird

Эта страница охватывает базовые шаги, необходимые по сборке конечной  разрабатываемой версии Thunderbird. Для дополнительной, более детальной информации, смотрите документацию по сборке.

Требования к сборке

Требования к характеристикам компьютера:

  • Рекомендовано: 4Гб ОЗУ (имея только 2Гб ОЗУ и 2Гб свап могут возникнуть ошибки при компиляции)
  • Высокоскоростной интернет

Подготовка:

В зависимости от вашей операционной системы вам нужно выполнить разные процессы по подготовке вашей машины. Сперва выполните инструкции для вашей ОС и затем следуйте этим инструкциям по сборке. Пожалуйста обратите внимание при сборке на  Linux/MacOS  следует игнорировать bootstrap скрипты  при клонировании mozilla-central репозитория и обратиться к этому документу.

подготовка к сборке на Windows [ru-RU] 

 подготовка к сборке Linux и MacOS [ru-RU]

Получение исходного кода

Примечание: На Windows, Вы не сможете собрать Thunderbird из исходного кода, если это директория с пробелами в пути (например, не используйте "Мои документы"). Вы можете выбрать какую-нибудь другую папку, как этот новый каталог C:\thunderbird-src.
Примечание: Местами в процессе сборки также возникнут проблемы, когда исходный код  находится в каталоге, путь к которому очень длинный  (вложенном во много уровней в глубину). На Linux, это может проявляться как проблемы с настройкой virtualenv для запуска тестов (ошибка установки pip or virtualenv приведет  к ошибкам доступа к ОС , где  доступ запрещен не из-за проблем с разрешением, а потому что  пути были усечены и теперь не существуют). При нахождении исходного кода глубоко в иерархии файловой системы могут также возникнуть проблемы со сборкой pymake на Windows. Если Вы столкнетесь с казалось бы произвольными проблемами при сборке и глубоко вложенным исходным кодом, попробуйте переместить его, закрыть  root на вашей машине и пересобрать.

Получите исходный код из Mozilla's comm-central Mercurial репозитория:

hg clone http://hg.mozilla.org/comm-central 

Затем, получите все зависимые репозитории. comm-central репозиторий включает скрипт,который выполнит именно это действие. Это может занять некоторое время, код огромный! Сперва, перейдите в поддиректорию comm-central (которая была создана автоматически при выполнении предыдущей команды):

cd comm-central

затем запустите:

python client.py checkout
На некоторых типах соединений, "hg clone" вызывает ошибки,прерывания. Если ваша команда "hg clone" не завершилась успешно, попробуйте использовать Mercurial bundle.

исходный код требует 1.5 Гб свободного места или более.

Более подробную информацию смотрите на странице Getting comm-central Source Code Using Mercurial [en-US].

Конфигурирование сборки

Чтобы собрать thunderbird, Вам нужно добавить файл с именем .mozconfig в comm-central директорию со следущей строчкой:

ac_add_options --enable-application=mail

Если Вы не пропишите эту строку, система будет собирать Firefox. Другие опции конфигурации могут быть также добавлены в этот файл, хотя строго рекоммендуется использовать только опции, которые  Вам полностью понятны. Например, чтобы создать отладочную сборку вместо релизной, файл будет содержать:

ac_add_options --enable-debug

Более подробнее об опциях конфигурации, смотрите страницу  build options. Обратите внимание на то, что если Вы используете MOZ_OBJDIR, то он не может быть расположен в подпапке с Вашим исходным кодом. Используйте абсолютные пути, чтобы быть уверенным!

Примечание к OS X 10.9 

Поскольку проблема при сборке связана с 10.9 OS X SDK, Вы должны использовать SDK версии ниже. Для этого  добавьте следующее в Ваш  .mozconfig:

ac_add_options --with-macos-sdk=path/to/older/sdk

SDK располагается по пути  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/.

Смотрите Баг 976183  для подробной информации.

Сборка Thunderbird

Запустите сборку, перейдя в поддиректорию comm-central  (создана автоматически при выполнении команды hg), и запустите:

./mozilla/mach build

mach наш консольный инструмент для упрощения общих задач разработки. Смотрите статью mach для подробностей. 

Сборка может занять некоторое время, в зависимости от вашей машины, OS, и выбранных опций. Linux сборки на мощной машине могут занят 15 минут, но Windows сборки на слабой машине могут занять несколько часов. Советы по ускорению сборок.

Из-за бага 863409 Вы можете увидеть сообщение с ошибкой " Binary expected at ... does not exist." Вы можете спокойно игнорировать это сообщение. Исполняемый код будет запущен по адресу, указанному ниже

Сборка Thunderbird и Lightning

Если Вы настроили переменные сборки как было показано выше, тогда Вам необходимо выполнить :

echo 'ac_add_options --enable-calendar' >> .mozconfig

в папке comm-central или только добавить  строку ac_add_options --enable-calendar в ваш .mozconfig с помощью вашего любимого редактора.

Затем перезапустить команду mach как показано выше (Вы можете добавить это до  выполнения первого запуска).

Запуск

Различные временные файлы, библиотеки и исполняемый файл Thunderbird будут расположены в вашем объектном каталоге (ниже comm-central/), который с приставкой obj-. Точное название зависит от Вашей системы и ОС. Например, пользователь Mac получит имя директории obj-x86_64-apple-darwin10.7.3/.

Исполняемый файл Thunderbird в частности и его зависимости располагаются ниже объектного каталога в dist/bin. Запустите исполняемый файл из вашей рабочей директории comm-central:

  • Windows: obj-.../dist/bin/thunderbird.exe
  • Linux: obj-.../dist/bin/thunderbird
  • OS X: obj-.../dist/Daily.app/Contents/MacOS/thunderbird

Как обновлять и собирать снова

В вашей директории comm-central, запустите команду как показано ниже:

python client.py checkout

Затем пересоберите командой mach как показывалось выше. Будут пересобраны только измененные файлы, но все же это долго. Дополнительная сборка может быть быстрее.

Проблемы сборки?

Что  у Вас:

  • Проверялся Thunderbird tbpl для известных ошибок в то время как Вы вытягивали код?
    • Если дерево сломано, Вы можете собрать с одной из веток ( вытянуть исходный код из ветки, просто заменив ссылку на репозиторий в hg clone инструкции).
  • Проверили,чтобы убедиться,что путь, в который Вы поместили исходный код имеет достаточно места?
  • Вы искали в баг базе вопросы, связанные с Вашей проблемой(например, вопросы по конкректным платформам)?
  • Попробуйте узнать на mozilla.dev.builds - не забудьте включить детали содержания Вашего mozconfig, и какие ошибки возникли.
  • Вы делали символьную ссылку на mozilla/? Она не работает.
  • У Вас имеется @ДИРЕКТОРИЯИСХОДНИКОВ@ или  относительные пути в Вашем mozconfig? Они вызвали несколько проблем  и как правило  плохо тестируются, когда внесены изменения в систему сборки.

Реккомендации

Метки документа и участники

 Внесли вклад в эту страницу: pantera31752, valner, sa9devil
 Обновлялась последний раз: pantera31752,