商業產品釋出源碼的實用提醒

1.  BusyBox 設定檔

您需要提供 BusyBox 相關的設定資訊,讓他人可以根據這些資訊將 BusyBox 建置成為原始碼的一部分。而隨著 BusyBox 版本的不同,設定資訊相關檔案的名稱也會有所不同:在 BusyBox 0.60.5 及之前的版本,檔案名稱是 Config.h,在 BusyBox 1.00-pre1 及之後的版本,檔案名稱則是 .config。

 

2. Linux kernel 設定檔

假如您的產品利用到 Linux kernel,您必須要將相關的設定資訊提供出來,讓他人可以根據這些資訊將 Linux kernel 建置成為原始碼的一部分。

 

3. 額外的 Linux kernel 模組

假如您的產品有利用到額外的 kernel 驅動程式,您可能必須要提供這些驅動程式的原始碼。您應仔細了解這些驅動程式的授權條款內容,以確認是否需要提供原始碼。

 

4. C 函式庫

假如您的產品利用到 glibc 或 uClibc 函式庫,您必須要提供這些函式庫的原始碼。假如相關的軟體開發套件 (SDK) 只有二進位碼,並且是由您的上游供應商所提供的,此時您需要向上游供應商索取原始碼,以便這些函式庫的原始碼能提供出來。

 

5. 目的檔

假如您的程式將非自由軟體程式碼連結到 LGPL 2.1 授權的程式碼,那麼您就需要提供目的檔與建置所需要的設定資訊,這代表者編譯描述檔 (Makefile) 等資訊也在提供之列。

例如:

liborz-0.11 採用 LGPL 2.1 授權,您的程式 bar 中的 foo.o 檔案連結利用 liborz-0.11。此時,為了滿足 LGPL 的要求,您必須提供 liborz-0.11 的原始碼、foo.o 的目的檔以及結合這兩者的編譯描述案 (Makefile)。

 

6. 開機管理程式

許多裝置是包含著 GPL 授權的開機管理程式 (Bootloader) 出貨的,例如: ARMboot、PPCboot、RedBoot 或 u-boot 等。假如開機管理程式 GPL 授權的話,您必須要提供這些程式的原始碼給您的客戶。若這些開機管理程式是您的上游供應商提供的話,上游供應商必須依照 GPL 規定給您原始碼。

 

7. 工具程式

若您隨著產品裝置或是在網路上散布二進位的工具程式(編譯器、binutils、C 函式庫),您就需要讓他人也可以取得這些工具程式的原始碼。工具程式通常是包含在軟體開發套件 (SDK) 裡面,並且由您的上游供應商提供,因此您可以向他們索取原始碼。

 

8. 韌體

因為許多不同的產品都是從同一個原始碼樹狀結構 (source tree) 中產生出來,因此韌體中常會包含一些其他裝置才需要的多餘程式,假如這些多餘程式是採用 GPL 或 LGPL 授權的話,當散布韌體時,您也必須提供這些多餘程式的原始碼。此時您有兩種不同的解決方法:您可以如前面所描述的那樣,提供他人原始碼,或者您也可以將這些不會被用到的程式從原始碼樹狀結構中刪除。

 

9. 原始碼檔案

因為許多不同的產品都是從同一個原始碼樹狀結構 (source tree) 中產生出來,因此原始碼檔案中常會包含一些其他裝置才會需要的多餘程式,假如這些多餘程式是採用 GPL 或 LGPL 授權的話,當散布韌體時,您也必須要提供這些多餘程式的原始碼。此時您有兩種不同的解決方法:您可以如前面所描述的那樣,提供他人原始碼,或者您也可以將這些不會被用到的程式從原始碼樹狀結構中刪除。

 

© 2010,著作權所有。作者:Armijn Hemel, gpl-violations.org;譯者:葛冬梅,自由軟體鑄造場。

此中譯版之授權條款為:創用CC - 姓名標示 - 禁止改作 3.0 台灣

 

原文(英文版)檔案下載:ODT / PDF





分類: 開發者注意事項