Сегодня мы с вами займемся таким интересным процессом, как сборка браузера Mozilla Firefox из исходников под Windows x64. Зачем это нужно делать? Ну если я скажу что таким образом вы сможете приобщиться к сообществу разработчиков Open Source и собрать собственный build браузера, то это прозвучит наверное смешно ;) На самом деле release'ные сборки Firefox'а содержат "компоненты", которые нужны далеко не всем, плюс как пишут на некоторых форумах собственноручно собранный build Firefox работает немного быстрее, к тому же можно "поиграть" с различными флагами оптимизации в компиляторе и т.д. и т.п. Как говорится, есть кастомные прошивки, почему бы и не быть кастомным браузерам? Несколько полезных ссылок, которыми я руководствовался при сборке:
- Простой метод сборки Firefox
- Windows build prerequisites
- Configuring Build Options
- Build:MozillaBuild For x64
Читаем, и делаем все по написанному. А именно, вначале устанавливаем MSVC, у меня уже была установленной Visual Studio 2013, поэтому этот шаг я пропустил. Далее нам могут понадобиться DirectX SDK и Windows SDK. Опять же, я ни то ни другое не качал, т.к. решил что какая-то часть DirectX SDK у меня была установлена вместе с MSVC, поэтому я пренебрег этим пунктом. Далее качаем MozillaBuild и устанавливаем его в папку по-умолчанию, т.е. в C:\mozilla-build .
Далее заходим в нее и запускаем файл start-shell-msvc2013-x64.bat (в моем случае, в вашем случае - возможно другой, если версия MSVC у вас другая, например 2015-я, кстати в последней версии набора MozillaBuild поддерживаются только эти два компилятора) и попадаем в консоль. Предварительно я создал папку "D:\Work\Mozilla Firefox\" , именно в ней у нас будет "копия исходников". После запуска start-shell-msvc2013-x64.bat у нас открывается консоль. Набираем в ней:
cd /d/work/Mozilla_Firefox для перехода в данную папку
hg clone https://hg.mozilla.org/mozilla-central для загрузки исходников (~4 Gb)
В результате, после того как исходники скачаются получаем следующее:
Теперь создаем в папке "D:\Work\Mozilla_Firefox\mozilla-central" файл конфига .mozconfig со следующим содержанием:
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-ff
ac_add_options --disable-gamepad
ac_add_options --target=x86_64-pc-mingw32
ac_add_options --host=x86_64-pc-mingw32
И запускаем сборку в консоли:
cd /d/work/Mozilla_Firefox/mozilla-central
./mach mercurial-setup здесь отвечаем на вопросы по настройке Mercurial
./mach clobber очищаем результаты предыдущей сборки
./mach build и запускаем сборку
Обратите внимание, путь к папке с исходниками не должен содержать пробелов. Т.е. изначально я создал папку D:\Work\Mozilla Firefox (это можно видеть на скрине), но перед сборкой переименовал ее в D:\Work\Mozilla_Firefox.
Результат успешной сборки:
Собранные файлы находятся в D:\Work\Mozilla_Firefox\mozilla-central\obj-ff\dist\bin\ ... чтобы запустить собранный Firefox можно набрать ./mach run в консоли, или запустить exe'шник firefox'а из папки bin.
Как видно, все работает:
Обратите внимание, что т.к. мы брали исходники из mozilla-central у нас получилась Nightly сборка.
Ну и давайте попробуем подтвердить или опровергнуть миф о том, что "собственноручная сборка" браузера работает быстрее или медленнее официального релиза. Понятно, что в данном случае тестирование будет достаточно субъективным, т.к. нашу Nightly сборку мы будем сравнивать с релизной версией, в данном случае с Firefox 45.0.1 x64 отсюда. Для начала результаты теста на http://html5test.com/ :
- Релизная сборка - 478 из 555 очков.
- Наша Nightly сборка - 482 из 555 очков.
Следующий тест на котором мы будем проводить испытания - это Peacekeeper от Futuremark:
Для тех интересны получившиеся у меня в результате бинарники - взять их можно здесь - Firefox_Nightly_48.0a1_(2016-03-27).7z . На всякий случай напомню, что это сборка только для x64 систем. Сборка с русской локализацией - Firefox_Nightly_48.0a1_(2016-03-27)_ru.7z, конфиг использовавшийся для сборки build'а с русской локалью:
Полезные материалы по теме
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-ff
ac_add_options --disable-gamepad
ac_add_options --target=x86_64-pc-mingw32
ac_add_options --host=x86_64-pc-mingw32
mk_add_options MOZ_MAKE_FLAGS="-j4"
ac_add_options --enable-optimize="-O2"
ac_add_options --disable-debug
ac_add_options --disable-tests
mk_add_options MOZ_CO_LOCALES=ru
ac_add_options --enable-ui-locale=ru
ac_add_options --with-l10n-base=D:\\Work\\Mozilla_Firefox\\l10n-central\\
Полезные материалы по теме
- Creating a Language Pack - инструкция как перековать английскую версию в русскую.
- Репозитарии c локализациями:
http://hg.mozilla.org/l10n-central/ru/ - nightly
http://hg.mozilla.org/releases/l10n/mozilla-aurora/ru - aurora
http://hg.mozilla.org/releases/l10n/mozilla-beta/ru - beta
http://hg.mozilla.org/releases/l10n/mozilla-release/ru - release
comment 0 التعليقات:
more_vertsentiment_satisfied Emoticon