Using the Mozilla build VM

Примечание: эта статья, по-видимому, не содержит рабочей альтернативы. Пока мы будем выяснять что происходит, возможно, вам стоит взглянуть на Building Firefox.

Если вы когда-нибудь думали, что вклад в Firefox был бы не плох, но у вас никогда не было времени, чтобы прочитать и следовать нашему instructions to setup a build environment или вы хотите избежать внесения изменений в стандартные инструменты и конфигурацию, тогда это может быть для вас полезно. Mozilla предоставляет виртуальную машину (VM), которая совместима с бесплатным VirtualBox, программным обеспечением для виртуализации (а также другим, в том числе VMWare/VMWare Fusion).

В этой статье приведены простые инструкции по загрузке, установке и настройке этой среды сборки build machine; как только вы выполните следующие действия, у вас будет готовая виртуальная машина для изменения и настройки Firefox.

Надеюсь, что эта виртуальная машина особенно поможет разработчикам или потенциальным разработчикам, которые не имеют полной среды разработки C++, доступной для них, а также опытным разработчикам, не имеющим времени на настройку системы сборки, следуя обычным инструкциям.

Установка VirtualBox

Посетите VirtualBox downloads page и загрузите последнюю версию программного обеспечения для вашей операционной системы.

Примечание: если у вас уже установлен продукт виртуализации, такой как VirtualBox, VMWare или VMWare Fusion, вы можете использовать его вместо загрузки новой копии VirtualBox. Просто убедитесь, что у вас есть последняя версия программного обеспечения. Обратите внимание, что Parallels Desktop не поддерживает формат OVF.

Загрузка VM

Затем загрузите виртуальную машину среды разработки Firefox.

Download the VM

SHA-256: 1c84eaf97ea2a9a3c990051306a038da9541a450fd600878e7c1f984fa930f35

Примечание: этот файл занимает около 4,4 ГБ, поэтому его загрузка может занять некоторое время.

Установка VM

Когда .ova файл загружен, дважды щелкните по нему. Это запустит процесс импорта виртуальной машины в VirtualBox. Пожалуйста, дайте виртуальной машине минимум 4096 МБ оперативной памяти (8192 Мб или больше, если вы можете) и установите для нее то же количество процессоров, что и у вашего хост-компьютера. Построение Firefox использует много системных ресурсов, и лучше, чтобы он строился как можно быстрее.

Screen shot of the Import Virtual Appliance window

После завершения импорта виртуальной машины вы можете выполнить дополнительные настройки, если хотите, или просто загрузить виртуальную машину и дождаться появления рабочего стола Ubuntu. Окно терминала автоматически появится и выполнит некоторые заключительные действия по настройке. Как только они закончат работать, Sublime Text запустится, и вы сможете приступить к работе!

Screen shot of the Sublime Text editor running in the VM

Примечание: Если вам когда-нибудь понадобятся учетные данные root, используйте "firefox-dev" в качестве пароля. Если вы хотите изменить язык и настройки клавиатуры, следуйте инструкциям в разделе How to change the UI language in Ubuntu.

Сборка Firefox

Чтобы собрать Firefox в виртуальной машине, откройте меню Сервис и выберите опцию построить. Процесс сборки начнется, и у вас будет время для выпивки, хорошей еды или, возможно, короткого отпуска, в зависимости от того, насколько быстр ваш компьютер. Тебе нужно набраться терпения.

После завершения сборки (successfully), выберите пункт Run в меню Tools, чтобы запустить пользовательскую сборку Firefox. Убедитесь, что все работает, как и ожидалось.

По умолчанию виртуальная машина настроена на создание оптимизированной сборки Firefox. Вы можете легко переключиться на построение для отладки. Просто откройте меню Tools, а затем подменю Build System в нем. В последней из систем сборки, которая появляется в подменю, выберите "Firefox (Debug)". Вот и все! Ваша следующая сборка будет сборкой отладчика.

Screen shot showing how to switch between debug; and optimized builds

Работа в VM

Отсюда вы работаете в виртуальной машине так же, как и в любом другом месте. Чтобы вытащить последний код из mozilla-central, просто используйте Mercurial как обычно:

hg pull

И вы submit your patches так же, как обычно.

Что теперь?

Теперь, когда вы успешно встроили Firefox в свою новую виртуальную машину, вам может быть интересно, что делать дальше. Отличный способ начать - выбрать небольшую, легко исправляемую ошибку и внести код, который исправит ее. Представьте, как здорово, когда написанный вами код отправляется полумиллиарду пользователей по всему миру!

Вот некоторые ссылки, которые помогут вам найти то, что вы можете сделать, чтобы сделать Firefox лучше:

  • Code Firefox Lessons предоставляет ряд видео-уроков для новых пользователей Firefox.
  • Bugs Ahoy! (инструмент, который поможет вам найти ошибки, которые могут вас заинтересовать).
  • firefox-dev.tools (инструмент, который поможет вам найти ошибки, связанные с инструментами разработчика Firefox, которые могут вас заинтересовать).
  • Developer guide (документация о разработке на и для проектов Mozilla).
  • Mentored bugs получите наставника, который берет на себя обязательство помогать вам на каждом этапе пути. Как правило, в баге должно быть достаточно информации для начала работы. Всякий раз, когда вам нужна помощь, свяжитесь с наставником через Matrix, в самом баге или по электронной почте. Когда вы уберёте ошибку, они помогут вам поместить ваш код в дерево.
  • "Good" first bugs может быть, они немного устарели, но в какой-то момент своей жизни мы посчитали, что они станут хорошим первым шагом для новичков в Mozilla. Мы находимся в процессе миграции этих ошибок в наставнические ошибки, но более поздние "хорошие первые ошибки" могут быть хорошими отправными точками, если нет подходящих наставнических ошибок.
  • How to submit a patch (информация о том, как создать файл патча и поместить его в исходный код).

Вы также можете задать начальные вопросы в разделе Introduction chat room в Matrix, и любые вопросы по развитию Firefox в developers room.

Я сделал этот перевод, как только убедился в его отсутствии. Надеюсь, что и вы внесёте свой посильный вклад в доработку проектов Mozilla!