web-dev-qa-db-ja.com

ソースから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.を批判し続けています。

私はファイルを抽出したのと同じディレクトリにいます。ソースはそこにあります。今のところ他のパッケージを変更する必要はありません。どうすればビルドできますか?

2
Tiago Pimenta

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

次に、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 Mercurialリポジトリのクローンを作成するために、この1つをダウンロードしながらお茶を飲みます:

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

3。 Firefoxのビルド:

最後に、ソースコード自体をビルドするために、もう1杯のお茶を飲み、おそらくサンドイッチを用意します。これは、最速のコンピューターでもビルドするのに非常に長い時間がかかります。

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。ソースの更新:

ソースディレクトリに変更し、標準のMercurialリポジトリコマンドで更新することにより、ソースを定期的に更新する必要があります。次の1行でこれを実現できます。

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システムで実行されている最新の「Nightly」のスクリーンショットです。

enter image description here

そして、覚えておいてください:「楽しんでください!!」

注:

  • Mozillaコードベースへの貢献 :パッチをFirefoxコードベースに組み込むための開始手順...
  • Mozilla Firefox:Linuxビルドの準備 :いくつかの修正と追加が必要でしたが、このプロジェクトの良いスターターです。 bootstrap.pyインストーラーを動作させることができなかったため、このための指示が手動で与えられました。
  • Ubuntu 17.04のRustコンパイラは古すぎたため、Rustサイトから直接インストールするための指示が与えられました。 Rustには6週間のリリースサイクルがあるので、これは出血しているEdgeを好む人にとってより良いオプションかもしれません。いくつかの注意事項 こちら...
  • Firefox Nightly :Firefox Nightly開発およびリリースモデルの詳細。
5
andrew.46