Сборка Firefox из исходного кода

Я просто хочу получить код, отредактировать кое-что и собрать его, просто так, почему это так сложно?

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

Я следую сценарию:

sudo apt-get build-dep firefox
sudo apt-get install -y fakeroot
apt-get source firefox
# here it gets firefox_55.0.2+build1-0ubuntu0.16.04.1.debian.tar.xz, firefox_55.0.2+build1-0ubuntu0.16.04.1.dsc and firefox_55.0.2+build1.orig.tar.xz
tar xf firefox_55.0.2+build1-0ubuntu0.16.04.1.debian.tar.xz
tar xf firefox_55.0.2+build1.orig.tar.xz
vim debian/config/mozconfig.in
# trying to fix https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1710993
# echo 'ac_add_options --enable-alsa' >> debian/config/mozconfig.in
dpkg-buildpackage -b -us -uc
# some bugs of missing SOURCE_CHANGESET file
touch SOURCE_CHANGESET
dpkg-buildpackage -b -us -uc
# some issues with missing browser/config/version.txt file
ln -s firefox-55.0.2+build1 browser
touch browser/config/version.txt
dpkg-buildpackage -b -us -uc

Кажется, что он зависит от множества локалей и продолжает критиковать сообщение debian/build/rules.mk:366: *** We aren't in the full source directory. Please use "TARBALL=<path_to_orig.tar.bzr>". Stop..

Я нахожусь в той же директории, где я распаковал файлы, источник там, мне не нужно сейчас менять какой-либо другой пакет, как мне его собрать?

3
задан 19 August 2017 в 14:49

1 ответ

Компиляция версии разработки Firefox ('Ночью') может быть сделана с некоторой тщательной подготовкой. (Это - лучшая версия для использования при создании патчей и улучшений для 'восходящего потока'). Это обязательно для выполнения такой задачи далеко от производственной установки Ubuntu, и я был бы очень настоятельно рекомендовать использование Виртуальной машины, выделенной этой задаче только.

техника ниже была протестирована с Ubuntu Пикантный Zerus 17.04 (работающий в выделенной Виртуальной машине!) и было бы лучше всегда использовать самую современную версию Ubuntu для компиляции Firefox, поскольку используемые зависимости по большей части будут довольно современны. Я не переделал бесконечные опции сборки, но не стесняюсь делать так себя на Вашей собственной сборке!

Примечание: системе сборки нужна огромная сумма RAM, а также очень большое количество Дискового пространства. Я предложил бы 8 ГБ RAM, 30 ГБ свободного пространства на диске и стольких же ядер, сколько Ваш VM позволит, эта комбинация, конечно, работала над моей системой.Примечание: система сборки перестанет работать с меньшими допусками RAM, пространства жесткого диска и доступных ядер...

1. Зависимости от сборки:

Первая установка некоторые зависимости от сборки, начиная с очень последнего стабильного компилятора ржавчины:

wget -O - https://static.rust-lang.org/rustup.sh | sh

Затем более стандартная установка из Репозиториев Ubuntu:

sudo apt-get install autoconf2.13 libgtk-3-dev mercurial llvm-4.0 clang-4.0 \
libgconf2-dev libdbus-glib-1-dev libpulse-dev yasm build-essential libgtk2.0-dev \
libxt-dev

2. Клонируйте Репозиторий Разработки Firefox:

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

cd $HOME && hg clone https://hg.mozilla.org/mozilla-central

3. Firefox сборки:

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

cd $HOME/mozilla-central && ./mach build

И когда это завершается, необходимо видеть это сообщение:

43:58.38 We know it took a while, but your build finally finished successfully!
To view resource usage of the build, run |mach resource-usage|.
To take your build for a test drive, run: |mach run|

, А также ссылка с несколькими подсказками на том, куда пойти затем...

4. Firefox выполнения:

теперь просто выполненный:

cd $HOME/mozilla-central && ./mach run

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

5. Обновление источника:

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

cd $HOME/mozilla-central && hg pull && hg update

Вот стандартное обновление, работает на моей собственной системе:

andrew@ithaca:~/mozilla-central$ hg pull
pulling from https://hg.mozilla.org/mozilla-central
searching for changes
adding changesets
adding manifests
adding file changes
added 767 changesets with 4619 changes to 3590 files                            
(run 'hg update' to get a working copy)
andrew@ithaca:~/mozilla-central$ hg update
3581 files updated, 0 files merged, 141 files removed, 0 files unresolved

После этого необходимо перекомпилировать:

cd $HOME/mozilla-central && ./mach build

И возможно гуляют, в то время как это перекомпилировало :).

6. Бесплатный снимок экрана:

Ниже снимок экрана последней 'Ночной' работы моих 17,04 систем:

enter image description here

И помните: 'Развлекайтесь!!'

Примечания:

  • Содействие в кодовую базу Mozilla : стартовые шаги к слиянию Ваших патчей в кодовую базу Firefox...
  • Mozilla Firefox: подготовка к сборке Linux : хороший начинающий для этого проекта, хотя несколько модификаций и дополнений требовались. Я не мог заставить bootstrap.py установщик работать так, инструкции для этого были даны вручную .
  • компилятор ржавчины в Ubuntu 17.04 был слишком стар, таким образом, инструкции для установки непосредственно от сайта ржавчины были даны. Ржавчина имеет 6-недельный цикл выпуска, таким образом, это может быть более оптимальным вариантом для тех, кто предпочитает новейшее. Некоторые примечания здесь...
  • Firefox Ночью : еще Некоторая деталь о Firefox Ночная модель разработки и выпуска.
5
ответ дан 20 August 2017 в 00:49

Другие вопросы по тегам:

Похожие вопросы: