web-dev-qa-db-fra.com

Comment recompiler le paquet Debian firefox 57 en utilisant debuild?

J'essaie de recompiler Firefox 57 (l'objectif est d'ajouter quelques correctifs) dans Ubuntu 16.04.

J'effectue la procédure habituelle:

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

Sur le build-dep, j'obtiens l'erreur suivante:

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.

J'ai tous les référentiels standard pour xenial (y compris universe, multivers), et il n'existe aucun package de ce type. Le dernier rustc a la version 1.17.

J'ai essayé:

  1. Installer localement de la nouvelle solution Rustc & cargo et passer son chemin à debuild via --prepend-path
  2. Installation de rustc & cargo globalement avec ppa:jonathonf/rustlang.
  3. Installation de rustc, cargo & clang/llvm à partir de ppa: ubuntu-mozilla-security/ppa.

Mais je reçois une erreur de compilation:

/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>

Quel type d’environnement de compilation est nécessaire pour reconstruire firefox 57 deb dans Ubuntu xenial?

2
Iakov Davydov

J'ai réussi à résoudre ce problème. Il y avait deux problèmes:

Aucun paquet pour build-dep

Pour cela, la bonne manière consistait à ajouter le ppa correspondant:

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

Erreur de compilation

Cela était probablement lié à l'espace libre disponible sur le disque. Firefox nécessite 30 Go d’espace libre et au moins 2 Go de RAM à compiler. J'ai essayé sur une autre machine avec beaucoup de ressources, et cela a bien fonctionné.

1
Iakov Davydov