Packaging

錯誤修復在發行版中究竟是如何工作的?上游與下游

  • October 30, 2015

我想知道錯誤修復在 Linux 發行版中究竟是如何工作的。我的意思是,畢竟發行版是由外部開發人員製作的開源軟體組成的,然後由發行版的維護人員打包。那麼為什麼每個發行版都有自己的錯誤跟踪器呢?這些bug不應該送出給此類軟體的原作者嗎?

(我將原始作者或原始軟體稱為上游作者和上游軟體,因為我習慣這樣稱呼他們。)

從最終使用者的角度來看,最好有一個地方來報告錯誤,而不必為他們使用的所有軟體在各種上游錯誤跟踪器中註冊帳戶。

從上游作者的角度來看,避免發布版使用者的錯誤報告是件好事,原因如下:

  • 發行版的維護者可能會自己引入錯誤(或者由於發行版包之間的互動,可能會出現錯誤),不應該由上游作者來解決這些問題;
  • 發行版可能有上游軟體作者不關心或無法處理的要求(例如各種硬體架構)。

請注意,這並不意味著上游軟體中的錯誤不會被轉發;如果使用者在分發錯誤跟踪器中送出了錯誤,並且該錯誤是上游的責任,那麼該錯誤將被轉發到上游錯誤跟踪器。但通常發行版維護者會處理這個問題。對於復雜的錯誤,使用者可能會被指示跟進上游,以避免中間人。分發錯誤跟踪器很好地支持這一點,並且會隨著上游錯誤跟踪器中的錯誤更改而自動更新錯誤的狀態。

從發行版維護者的角度來看,有必要有一些特定於發行版的錯誤跟踪器來跟踪要在發行版本身中完成的工作(庫版本更改、新工具鏈、新架構、新發行工具……)。

此外,在許多情況下,發行版提供對舊版本軟體包的支持,即使上游作者已經在較新版本的軟體中修復了這些錯誤,這些錯誤仍可能存在。在這種情況下,使用者要求上游作者修復錯誤有點煩人,因為從上游的角度來看它們已經修復了;如果該錯誤非常煩人,則應該由發行版的維護人員來支持修復。(這對於重要軟體包中的安全修復是有爭議的;許多上游為舊版本本身提供安全修復。)

另一個需要考慮的因素是,某些仍然很重要的軟體可能不再有上游;例如,長期以來就是這種情況cron。如果發行版沒有自己的錯誤跟踪器,那麼使用者將無處可報告此類軟體中的錯誤。

在大多數項目中,這一切都以一種友好的方式很自然地發生:發行版維護者幫助上游修復錯誤,反之亦然,發行版維護者與其他發行版共享錯誤修復。

引用自:https://unix.stackexchange.com/questions/211413