Fixing FTBFS packages

在Ubuntu裡可以使用package之前,它必須要被建置過。如果建置失敗的話,就會在狀態「-proposed」裡等待,或是將不會在Ubuntu archives裡面。你可以在網站『http://qa.ubuntuwire.org/ftbfs/』找到建制失敗的package清單。這邊有五種主要的分類:

  • Package failed to build (F) : 在建制過程出錯了。
  • Cancelled build (X) : 因故被取消建制。這些就應該避免去建制它。
  • Package is waiting on another package (M):這個套件在等其他的相依性套件。
  • Failure in the chroot (C) : 部份的chroot失敗了,通常這樣子的話只要重新建制就好了。
  • Failed to upload (U):這個套件無法被上傳。通常只要在要求重新建制就會好了,但是建議先檢查一下log。

9.1. First steps

第一件事,你必須確認你是否可以複製出這個FTBFS。你可以藉由兩個方式取得你的程式碼:

  • 執行 「bzr branch lp:ubuntu/PACKAGE」,然後取得tarball。
  • 從Launchpad上的.dsc檔案執行「 dget PACKAGE_DSC 」。

一旦你拿到你的程式碼了,接下來就可以在schroot建置了。

如果你不能複製出 FTBFS,這時候就要檢查你是否沒有下載到相依檔案,意思是你必須要在debian/contorl裡面說明建置相依性。在你的環境裡面建置package也可以順便幫忙檢查一下這個issue是否是因為清單忘記列出相依性所造成的(本地端建置但是實際上是在schroot裡面失敗的)。

9.2. Checking Debian

一旦你複製出來這個issue了,接下來就是試著找出問題並解決它。如果這個package也在Debian可取得,你可以藉由到網站「 http://packages.qa.debian.org/PACKAGE 」來檢查是否在那邊已經有被建置了。如果Debian有新版本了,那你就應該要merge它,如果沒有,那就檢查在頁面上的buildlogs 或是 bugs連結看是否有額外的資訊是關於ftbfs或是patch的。Debian也在網站「 https://wiki.debian.org/qa.debian.org/FTBFS 」維護一份FTBFS的命令清單,並且包含要怎麼修復它,你也可以在這網頁上找到一些solutions。

9.3. Other causes of a package to FTBFS

如果一個package在main裡面,但是main裡面沒有相依套件,你就必須發起一個MIR bug,網站「 https://wiki.ubuntu.com/MainInclusionProcess 」裡面有詳細的資料。

9.4. Fixing the issue

一旦你找到了這個問題的解法,接下來就遵循著像解一般bug的流程。建立一個patch,將其加到bzr branch或是bug上,訂閱 ubuntu-sponsors,然後試著將其上傳到upstream或是Debian上。


Ref:
http://packaging.ubuntu.com/html/fixing-ftbfs.html

results matching ""

    No results matching ""