我公司開發的軟體使用到了開源軟體(如消息中間件)但不修改它,有版權問題嗎,自己的代碼是否也必須開源?

現在大型軟體免不了會集成其它的開源軟體,如消息中間件、Hadoop等,對我的軟體而言,這些開源軟體是必要的組成部分,但通常都是直接拿來用,並不修改。當我的軟體發行時版權怎麼講,也需要開源嗎?或者我要求用戶自備這些開源軟體,是否就沒有問題了?


1.取決於是否發布:比如運行於server side的軟體不算作發布,而是算作使用,因此不需要考慮協議。(某神奇協議除外)

2.取決於如何結合,如果開源代碼和私有代碼,或者協議A代碼和協議B代碼,屬於不同的可執行文件,那麼這時私有代碼/協議不兼容代碼不需要考慮協議,但是如果中間在開源代碼所在的可執行文件中加入了兼容層,那麼兼容層需要開源。(例子:android的私有驅動,linux發行版)

3.取決於開源協議:比如如果是gpl,那麼認栽吧,如果是bsd,那麼你隨便,還比如lgpl允許你在私有軟體中使用庫,但是如果修改了庫本身(比如加入兼容層)那麼修改的部分需要開源。

以上是有順序的,排在前面的優先考慮。

這是純粹按照協議文本的思路,但是,

是要按照基本的協議文本,但是當地法律的決定權也是很重要的:在中國gpl目前還沒有勝訴案例。

不過gpl表示,如果當地的法律要強行行使決定權,那麼gpl軟體是私有軟體。

不過,基本法和決定權鬥法,誰能贏呢(ˉ▽ˉ)~


看用的開源軟體是什麼lisence,有些lisence是商用有好的。一般來說,LGPL,MIT這樣的相對比較友好。


自備開源軟體當然沒問題,可能使用者會嫌麻煩,不買你的軟體,商業問題。

結合開源源碼製作的軟體仍然具有版權,可收益的版權。即使只是加了個易用性的殼,實現了方便使用的功能,也能為方便收費。比如linux的各種桌面版,紅旗,Ubuntu等。

但是,這種軟體不能就開源的代碼部分進行維權,因為是開源部分公有的。所以,基於開源代碼開發的軟體的版權只保護未開源的部分。也可以視為未開源的部分具有版權。


推薦閱讀:

每個軟體都可以開源嗎?
有什麼適合提高 C/C++ 網路編程能力的開源項目推薦?
那些開源軟體真的會有人去閱讀嗎?
開源軟體的開發是如何進行的?
為什麼很多開源軟體都用 C,而不是 C++ 寫成?

TAG:開源軟體 | 軟體著作權 |