由於86Duino軟體遵循Arduino軟體,因此本文檔重點介紹QEC中使用的軟體。 請參閱基於以下產品的許可Arduino 了解詳細資訊。
這些規則適用於所有衍生產品和項目,無論是否商業、開源與否。
注意:
- 您可以出於個人目的或在您的公司或組織內自由使用 Arduino 硬體和軟體,沒有任何限制。 本文檔中所述的規則僅適用於您向第三方分發基於 Arduino 的產品或以任何形式公開這些產品時。
- 如果您遵守Arduino的開源許可證,您可以免費或商業地分發您的軟體/硬體產品。 為了您的方便,本文件提供了此類規則的摘要,並且並不免除您尋求專業法律建議的需要。
衍生產品可以基於 Arduino 硬體設計、Arduino 軟體組件或兩者。 對於每個類別,適用不同的規則,您的產品必須遵守所有這些規則。
軟體產品
任何使用 Arduino 製作的軟體專案都將受到多個元件的許可,包括:
- 您正在編譯的特定板的 Arduino 核心(即提供 Arduino API 的底層硬體抽象層)
- 項目中使用的任何庫
- 包含或複製到草圖資料夾中的任何第三方程式碼
無論在此過程中使用 Arduino IDE、Arduino CLI 或任何其他開發工具,都不會影響您的專案的授權。 重要的是涵蓋最終二進位工件中編譯和連結的所有程式碼元件的授權組合。
在本節中,我們將介紹最常見的情況,假設您使用的是 Arduino 維護的核心之一(即 Arduino 製造的板的官方核心)。 如果您使用第三方核心,這些指南可能不適用,並且您需要仔細檢查相應的許可證。
將 Arduino 草圖發佈為開源項目
如果您開發了基於 Arduino 的 sketch,並且希望以原始程式碼形式發佈為開源項目,則不受任何限制。 我們建議選擇流行的許可證,例如 MIT、Apache-2.0、MPL-2.0 或 AGPLv3。
以預編譯形式(或預先載入硬體產品)分發 Arduino 草圖或函式庫,而不公開其原始碼
在這種情況下,您需要經過三個步驟:
- 首先要做的是檢查您是否使用 GNU 通用公共授權 (GPL) 涵蓋的任何程式碼片段或程式庫。 不幸的是,在這種情況下,您必須公開整個專案的原始程式碼。 為了避免這種情況,您需要將該程式碼或程式庫替換為根據更寬鬆的授權(例如 LGPL、MIT、BSD、Apache-2.0 或 MPL-2.0)提供的另一個程式碼或程式庫。 作為替代方案,您可以聯繫作者並要求商業許可。
注意:如果您需要根據 GNU GPL 許可的 Arduino 開發的官方庫的商業許可證,請透過license@arduino.cc與我們聯繫。
- 準備一份綜合文檔,其中包含所涉及的所有開源元件的清單以及版權聲明和許可證,並將其作為文檔的一部分提供給最終用戶。
- 最後但並非最不重要的一點是,您需要遵守 LGPL 授權的第 4.d 條,該條具有特定且非常技術性的要求。 遵守此類要求(源自 Arduino 核心中使用的 LGPL)通常需要向最終用戶提供一些文件和二進位。
注意:我們可以為公司提供支援和工具,使他們能夠以簡單且自動化的方式滿足此要求。 如需了解更多信息,請透過license@arduino.cc聯繫我們。
分發 Arduino 核心或庫的修改版本而不公開其原始程式碼
在這種情況下,您需要檢查您修改的特定程式碼部分的許可證。 如果程式碼是根據 LGPL、GPL 或 MPL-2.0 獲得許可的,則您必須將修改保持開源。 如果使用 MIT、BSD 或 Apache-2.0 等寬鬆許可證,則不強制要求您將修改保持開源,但必須保留原始程式碼庫的版權聲明。
重新分發 Arduino IDE 或 CLI
如果您打算以二進位形式向您的用戶提供 Arduino IDE、CLI 或 Cloud-CLI,無需任何修改,可以直接下載或作為更大發行版的一部分,您可以自由地這樣做。 這包括將 CLI 作為與另一個程式分開的可執行二進位檔案來呼叫的情況。
如果您打算將CLI 包含在專案中並將其作為庫調用(而不是將其作為可執行二進位檔案呼叫),則其GPLv3 許可證也將適用於您的程式碼,這導致您有義務保持整個程式碼庫開源。
注意:如果您仍需要在派生產品中將 CLI 作為庫調用,而無需將組合作品作為開源發布,請透過 license@arduino.cc 與我們聯繫以獲得此規則的例外。
如果您打算分發經過修改的 IDE 或 CLI,則必須將修改保持開源。 此外,您無法在產生的工件的名稱中使用「Arduino」商標。
來自 QEC 團隊
本節由 QEC 團隊和 86Duino 團隊針對 86Duino 許可證和 Arduino 許可證整理而成。
Arduino授權大致可以分為兩個部分:Arduino IDE(UI)-GPL v2授權和Arduino核心(標準函式庫)-LGPL授權。
- LGPL:與 GPL 不同,LGPL 在某些情況下允許 LGPL 許可的程式碼靜態或動態連結到未根據 LGPL 許可的軟體,而不需要整個軟體作品都根據 LGPL 許可。 如果您的程式碼僅連結到 LGPL 程式碼而不修改 LGPL 部分,您可以使用單獨的授權來維護您的程式碼。 簡而言之,LGPL 比 GPL 更寬鬆。 只要不加修改地使用原始程式碼,就無需公開額外合併的程式碼。
- GPL:即使不加修改地使用原始程式碼,使用者新增的任何附加程式碼也必須公開。 與 LGPL 相比,它具有更嚴格的條款。 因此,當使用者使用在 LGPL 下授權的 Arduino 標準函式庫開發程式時,他們不必公開自己的程式碼。
關於 86Duino 函式庫
86Duino標準庫(不包括獨立開發的庫)也採用LGPL授權。 如果使用者不做任何修改直接使用,可以將自己開發的程式碼保密。
值得注意的是,Arduino 還允許下載/新增第三方函式庫。 這些第三方庫使用的授權可能是 GPL 或 LGPL,通常在 .h 或 .cpp 檔案的頂部聲明。 是否使用第三方函式庫由使用者自行決定。
發現聲明:下面是來自 Arduino 標準庫的圖像,特別是 Arduino.h 檔案。 從突出顯示的框中可以看出它使用 LGPL 授權。 在其他 .h 或 .cpp 檔案中可以找到許多類似的授權聲明。
使用86Duino IDE開發程式時,只要您使用的API和程式庫限制在以下範圍內,您就可以將您的產品閉源發布,並且不受GPL限制:
- 86Duino 核心內的 API。 (本頁列出的所有內容均包括:https://www.qec.tw/86duino/86duino-language-reference/)
- The built-in “Arduino Standard Libraries” in the 86Duino IDE. (Refer to the list on this page: https://www.qec.tw/86duino/libraries/)
- 86Duino IDE 內建「86Duino Only Libraries」。 (參考本頁清單:https://www.qec.tw/86duino/libraries/ )
- 來自 QEC 的所有 EtherCAT 相關庫,以及使用 86EVA 和 86HMI 工具自動產生的庫。
如果客戶在進行 86Duino 開發時,下載並使用了其他人編寫的第三方程式庫,並且該程式庫已獲得 GPL v2/v3 許可,則必須遵守 GPL 並開源其程式。
還需要幫忙嗎?
如果授權條款對您的專案限制過多,或者您需要進一步協助,請透過 info@86duino.com 與我們聯絡,或info@icop.com.tw 探索可能的授權選項。