Jason Cheng 您好,我是自由軟體鑄造場的法政研究林珈宏 Richard J.H. Lin。
1.我會在Linux平台上開發軟體(可能會使用Embedded類型的Linux),當我產品開發完後,跟硬體一起販售時是否會有問題呢?
2.如果我的軟體有使用到GPL的程式碼,就會導致我的軟體必須公開原始碼對嗎?
問題1及2一併回答:
嵌入式裝置的特性就是在於,產品出貨之後,內含的軟體當然是一併散佈的。因您內含的是Linux類型的軟體,以GPL授權為例,則在出貨之後,拿到這個嵌入式裝置的人有權利向您索取軟體的原始碼。所以若您的軟體有用到GPL的code,就會導致您有義務在他人(已取得該嵌入式裝置或軟體目的碼的該他人)向您索取時,您必須給他原始碼。
3.如果我的軟體有使用Linux內建的函式庫,是否也需要公開原始碼?
Linux內建的函式庫大多的授權條款為LGPL,但也有以GPL甚至APACHE來授權的,所以可能請您要看一下您所使用的library的授權條款為何。在此先以較為常見的LGPL來說明。若您使用的library是LGPL授權,須視您是如何使用,以判斷是否應該提供原始碼。若是以link的方式來呼叫library,這時通常會認為您的主程式並不會受到LGPL的感染,故無須提供原始碼;但若您有修改了該library,或是將主程式與library合併散布(例如結合成單一的執行檔),則較容易被認為已受LGPL的感染,而必須提供您的原始碼。
在此提供一篇較詳細的說明文章給您參考:
更為彈性中庸的 LGPL3。
4.若我的軟體開發時一定得用到GPL的函式庫或原始碼,是否有辦法透過授權或是權利金的方式解決必需公開原始碼的問題呢?
這裡就必須談到自由軟體的商業應用模式:雙重授權。
雙重授權指的是,某一軟體的著作權人一方面以自由軟體授權條款(例如GPL)將其軟體授權給公眾、公開其原始碼,另一方面又居於著作權人的地位,同時進行商業授權,因此這時被授權人有支付商業授權費用,並非GPL授權,故可規避開放原始碼的義務。也就是說,原著作權人有權利採行雙重授權,但也可以不提供商業授權,完全採行單一的自由軟體授權。
現實上會採用雙重授權的會是公司,例如MySQL或Trolltech;而社群開發的專案則不會採用雙重授權。故若您希望以支付授權金的方式取得授權以規避GPL提供原始碼的義務,則要確定您取用的code的原著作權是究為公司或為社群,才能知道是否有辦法跟對方談商業授權的事誼。
在此提供一篇較詳細的說明文章給您參考:
自由軟體的商業應用模式(下)-雙重授權篇
有什麼想法問題歡迎繼續深入討論!
林珈宏 Richard J.H. Lin
20090703 1443