Сборка/отладка/логгировани firefox из исходников под Ubuntu
От: Jakop Россия https://wmspanel.com
Дата: 09.05.19 08:11
Оценка:
Надеюсь описанное ниже никогда вам не понадобится

1)Копируем source пакет firefox-а в текущую папку

sudo apt-get build-dep firefox
sudo apt-get install -y fakeroot
apt-get source firefox


2)можно попробовать пофиксать параметры mach-а в файле debian/config/mozconfig.in перед тем как запустить build. например можно сделать дебажный билд как описано тут https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_build/Linux_and_MacOS_build_preparation
Так же можно если надо ограничить число ядер задействованных в билде. В моем случае если на задать этот параметр на ноуте невозможно работать пока идет билд. Я бы поставил его в число доступных ядер — 20-30%, например так

mk_add_options MOZ_MAKE_FLAGS="-j4


как описано тут здесь

3)Билдаем

dpkg-buildpackage -b -us -uc


это займет кучу времени. У меня такой билд прошел нормально, а билд по инструкции firefox-а на том же релизе сфейлился. Видимо что-то maintainer-ы пакета пофиксали в патчах для пакета(а их было штук 5. не разбирался, когда построилось просто был рад), потому что билдил все на той же тачке. Да и вообще билдить это все лучше в контейнере, чтобы если что-то пошло не так снести его и не угробить рабочую машину. Я использовал LXD и новый контейнер 18.04 в нем.

Эта часть инструкции заимствована преимущественно отсюда
здесь


После успешной постройки артифакты билда лежат в папке obj-x86_64-linux-gnu
Бинарники firefox-а в папке obj-x86_64-linux-gnu/dist/bin


Если перестраивать код после фиксов, в например папке media, перестраивается только библиотека libxul.so. Линкуется она кучу времени.

Чтобы построить только те файлы, которые поменял, например в libpng и не ждать линковки каждый раз идем в фолдер
obj-x86_64-linux-gnu/media/libpng, чтобы make не ходил по неизмененным папкам, чтобы проверить что они не менялись
и делаем
make

после того как фиксы скомпилировались и мы хотим пересобрать libxul.so идем в корневой фолдер и делаем
make
джем кучу времени пока она слинкуется

запускается все это добро как обычно
./mach run

Статья про отладку https://developer.mozilla.org/en-US/docs/Mozilla/Debugging/Debugging_Mozilla_with_gdb надеюсь вам это не понадобится
Надеюсь что хватит логгирования здесь
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming

https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.