web-dev-qa-db-ja.com

debuildを使用してfirefox 57 debianパッケージを再コンパイルする方法は?

Ubuntu 16.04でfirefox 57を再コンパイルしようとしています(目標はいくつかのパッチを追加することです)。

私は通常の手順を実行しています:

Sudo apt-get source firefox
Sudo apt-get build-dep firefox
cd firefox-57.0.1+build2/
debuild -us -uc

Build-depステージで、次のエラーが表示されます。

The following packages have unmet dependencies:
 builddeps:firefox : Depends: cargo (>= 0.20)
                     Depends: rustc (>= 1.19.0)
E: Unable to correct problems, you have held broken packages.

Xenialのすべての標準リポジトリ(universemultiversを含む)があり、そのようなパッケージはありません。最新のrustcのバージョンは1.17です。

私は試した:

  1. 新鮮なrustcと貨物をローカルにインストールし、--prepend-pathを介してデビルドへのパスを渡します
  2. ppa:jonathonf/rustlangを使用してrustcと貨物をグローバルにインストールします。
  3. Rustc、cargo、clang/llvmをppa:ubuntu-mozilla-security/ppaからインストールします。

しかし、コンパイルエラーが発生します。

/home/idavydov/src/ff/firefox-57.0.1+build2/obj-x86_64-linux-gnu/dist/include/mozilla/Compiler.h:49:12: fatal error: 'cstddef' file not found, err: true
/home/idavydov/src/ff/firefox-57.0.1+build2/obj-x86_64-linux-gnu/dist/include/mozilla/mozalloc.h:16:12: fatal error: 'new' file not found, err: true
/home/idavydov/src/ff/firefox-57.0.1+build2/obj-x86_64-linux-gnu/dist/include/mozilla/mozalloc.h:16:12: fatal error: 'new' file not found, err: true
...
    stack backtrace:
       0:     0x5584a7075fb3 - std::sys::imp::backtrace::tracing::imp::unwind_backtrace::h8ed7485deb8ab958
                                   at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
       1:     0x5584a7072520 - std::sys_common::backtrace::_print::h3d4f9ea58578e60f
                                   at /checkout/src/libstd/sys_common/backtrace.rs:69
...
      11:     0x5584a707aa9b - std::sys::imp::thread::Thread::new::thread_start::hbaf1b5aa1ca8e3ea
                                   at /checkout/src/liballoc/boxed.rs:736
                                   at /checkout/src/libstd/sys_common/thread.rs:24
                                   at /checkout/src/libstd/sys/unix/thread.rs:90
      12:     0x2b1467a296b9 - start_thread
      13:     0x2b1467f5c3dc - clone
      14:                0x0 - <unknown>

buntu xenialでfirefox 57 debを再構築するには、どのようなコンパイル環境が必要ですか?

2
Iakov Davydov

これをなんとか解決できました。 2つの問題がありました。

build-depのパッケージはありません

そのための正しい方法は、関連するPPAを追加することでした。

Sudo apt-get source firefox
Sudo add-apt-repository ppa:ubuntu-mozilla-security/ppa
Sudo apt-get update
Sudo apt-get build-dep firefox
cd firefox-57.0.1+build2/
debuild -uc -us -b

コンパイルエラー

これはおそらく、ディスク上の利用可能な空き領域に関連していました。 Firefox 必須 30GBの空き容量と、コンパイルするために少なくとも2GBのRAM。多くのリソースを備えた別のマシンで試しましたが、うまくいきました。

1
Iakov Davydov