从源代码构建 Firefox

Tia*_*nta 3 configuration package-management dpkg compiling

我只想得到代码,编辑一些东西,然后构建它,就这样,为什么它这么复杂?

我尝试了这个似乎是我需要的指南,但是如果您看到原始指南,它是完全不同且复杂的,使用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
Run Code Online (Sandbox Code Playgroud)

它似乎取决于很多语言环境并不断批评该消息debian/build/rules.mk:366: *** We aren't in the full source directory. Please use "TARBALL=<path_to_orig.tar.bzr>". Stop.

我在提取文件的同一目录中,源在那里,我现在不需要更改任何其他包,我该如何构建它?

and*_*.46 5

编译 Firefox 的开发版本('Nightly')可以通过一些仔细的准备来完成。(这是为“上游”制作补丁和改进时使用的最佳版本)。必须在远离 Ubuntu 生产安装的地方执行这样的任务,我强烈建议使用专用于此任务的虚拟机。

下面的技术已使用 Ubuntu Zesty Zerus 17.04(在专用虚拟机中运行!)进行测试,最好始终使用最现代的 Ubuntu 版本来编译 Firefox,因为所使用的依赖项在很大程度上将非常现代。我没有修改无穷无尽的构建选项,但您可以在自己的构建中自由地这样做!

注意:构建系统需要大量 RAM 以及大量磁盘空间。我建议 8GB RAM、30GB 可用磁盘空间和 VM 允许的尽可能多的内核,这种组合肯定适用于我的系统。注意:构建系统将因 RAM、HDD 空间和可用内核的余量较小而失败...

1. 构建依赖:

首先安装一些构建依赖项,从最新的稳定 Rust 编译器开始:

wget -O - https://static.rust-lang.org/rustup.sh | sh
Run Code Online (Sandbox Code Playgroud)

然后从 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
Run Code Online (Sandbox Code Playgroud)

2. 克隆 Firefox 开发库:

接下来要克隆 Firefox Mercurial 存储库,请在下载此存储库时给自己喝杯茶:

cd $HOME && hg clone https://hg.mozilla.org/mozilla-central
Run Code Online (Sandbox Code Playgroud)

3. 构建火狐:

最后构建源代码本身,再喝一杯茶,可能还有一个三明治,即使在最快的计算机上构建也需要很长时间:

cd $HOME/mozilla-central && ./mach build
Run Code Online (Sandbox Code Playgroud)

完成后,您应该会看到以下消息:

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|
Run Code Online (Sandbox Code Playgroud)

以及包含有关下一步去哪里的一些提示的链接...

4. 运行火狐:

现在只需运行:

cd $HOME/mozilla-central && ./mach run
Run Code Online (Sandbox Code Playgroud)

并且您正在运行最新的 Firefox 开发版本!您现在可以开始破解源代码,如果您的补丁符合标准,您就可以提交它们并让您的工作包含在这个出色的浏览器中。

5.更新源:

您应该通过更改源目录并使用标准 mercurial 存储库命令进行更新来定期更新源。以下一行应该为您完成此操作:

cd $HOME/mozilla-central && hg pull && hg update
Run Code Online (Sandbox Code Playgroud)

这是在我自己的系统上运行的标准更新:

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
Run Code Online (Sandbox Code Playgroud)

在此之后,您应该重新编译:

cd $HOME/mozilla-central && ./mach build
Run Code Online (Sandbox Code Playgroud)

也许在重新编译时走一走:)。

6.免费截图:

下面是在我的 17.04 系统上运行的最新“Nightly”的屏幕截图:

在此处输入图片说明

并记住:“玩得开心!!”

笔记:

  • 为 Mozilla 代码库做贡献:将补丁合并到 Firefox 代码库的开始步骤...
  • Mozilla Firefox:Linux 构建准备:尽管需要进行一些修改和添加,但该项目是该项目的良好开端。我无法让bootstrap.py安装程序工作,因此手动给出了相关说明。
  • Ubuntu 17.04 中的 Rust 编译器太旧,因此给出了直接从 Rust 站点安装的说明。Rust 的发布周期为 6 周,因此对于那些喜欢前沿技术的人来说,这可能是更好的选择。这里有一些注意事项...
  • Firefox Nightly:有关 Firefox Nightly 开发和发布模型的更多详细信息。