1. 程式人生 > >開源軟體版權

開源軟體版權

  • 將自己的協議宣告檔案 (LICENSE) 放在根目錄
  • 將其他上家的宣告檔案統一放在一個子目錄,比如 ./3rd_party_licenses/
  • 依照不同上家的名字繼續建立子目錄,然後將其宣告檔案放入。
  • 在 README / NOTICE 檔案中清楚說明使用了哪些上家的原始碼,以及他們的宣告檔案的具體位置。

 

無協議

如果不加任何協議,預設情況下“保留所有權利”,只有你擁有版權,別人甚至無法使用你的程式碼。

 

MIT 協議

收到該協議程式碼的使用者沒有開源義務,可以不做說明的修改程式碼,可以修改協議內容再次釋出,只要保留原始的協議內容。沒有明確授權軟體中包含的作者專利。與GPL相容。

Copyright <YEAR> <COPYRIGHT HOLDER>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

以上文字通常會保留為一個LICENSE檔案,可以修改,但是必須保留原始的 Copyright 和 Permission 部分。原始碼中版權說明可有可無。

/* MIT License By ... */

--------------------------------------------------

/**
 * --------------------------------------------------------------------------
 * Bootstrap (v4.1.3): dropdown.js
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */

--------------------------------------------------
PuTTY is copyright 1997-2017 Simon Tatham.

Portions copyright Robert de Bath, Joris van Rantwijk, Delian
Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry,
Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus
Kuhn, Colin Watson, Christopher Staite, and CORE SDI S.A.

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------

 

BSD-3 協議

收到該協議程式碼的使用者沒有開源義務,可以不做說明的修改程式碼,需要附原LICENSE文字。沒有明確授權軟體中包含的作者專利。與GPL相容。

Copyright <YEAR> <COPYRIGHT HOLDER>

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

以上文字通常會保留為一個LICENSE檔案,原始碼中版權說明可有可無。

https://github.com/nginx/nginx/blob/master/docs/text/LICENSE

https://vcs.pcre.org/pcre/code/trunk/LICENCE?view=markup

 

Apache v2 協議

收到該協議程式碼的使用者沒有開源義務,原始碼中必須有版權說明。明確授權軟體中包含的作者專利。與GPL v2不相容(專利授權不同),與 GPL v3相容。

(1)、需要給程式碼的使用者一份Apache License。

(2)、如果你修改了程式碼,需要在被修改的檔案中說明。

(3)、在延伸的程式碼中(修改和有原始碼衍生的程式碼中)需要帶有原來程式碼中的協議,商標,專利宣告和其他原來作者規定需要包含的說明。

(4)、如果再發布的產品中包含一個Notice檔案,則在Notice檔案中需要帶有Apache License。你可以在Notice中增加自己的許可,但不可以表現為對Apache License構成更改。

(5)、Apache License也是對商業應用友好的許可。使用者也可以在需要的時候修改程式碼來滿足需要並作為開源或商業產品釋出/銷售

http://svn.apache.org/repos/asf/jakarta/site/docs/LICENSE
 

GPL v2 協議

收到該協議程式碼的使用者有開源義務,修改程式碼需要做出說明,且原始碼中必須有版權說明。沒有明確授權軟體中包含的作者專利,但是隱式授權。

https://opensource.org/licenses/GPL-2.0

 

與GPL協議相容性

某些協議如 MIT,BSD-3 的程式碼可以使用GPL協議的程式碼,沒有衝突,但是新程式碼必須在是GPL協議下的。

GPL v3 和 v2 不相容,但是如果GPL v2 license 的程式碼包含一個 "or any later version" 的描述,那麼該程式碼可以用於GPL v3

https://linux.cn/article-9826-1.html

https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses

https://www.gnu.org/licenses/license-list.en.html#GPLIncompatibleLicenses

 

多重協議

 

如果你的程式或系統引用了別的GPL軟體,並且向用戶收費,那麼你就需 要向引用的GPL軟體購買版權。聽上去很合理,如果你用我的軟體賺錢,那你當然應該向我支付一定的費用。但其實是錯誤的,正確的概念是如果你用了我的 GPL軟體,那麼必須你的軟體也要開源,如果你不開源,那麼就不能使用我的軟體,你是否把你的軟體商用和我沒關係,如果你不能遵循GPL協議來開源,那麼你付再多的錢也不能用GPL的軟體.

GPL的條款是版權持有者為所有其他人設定的;而所有者可以自由的決定是否對其本身應用這些條款。雙許可證的吸引力在於,為自由軟體專案提供了一種可靠的收入來源。不幸的是,它也可能干擾開源專案本身的一般動力性。問題是任何為程式碼作出貢獻的志願者現在開始為兩個不同的實體貢獻:程式碼的自由版本和私有版本。當然,貢獻者會樂於貢獻自有版本,因為這是開源專案的標準,如果是為他人的半私有收入貢獻,她會感到可笑。由於雙許可證的這一事實加劇了這種尷尬,版權所有者確實需要從所有貢獻者收集正式的,簽署的版權授權,從而才能保護自身之後不會受到不滿的貢獻者對於從私有收入中獲取自己份額的指控。

不是所有的志願者會因此而困擾;畢竟他們的貢獻也進入了開源版本,這是他們的興趣所在。雖然如此,雙許可證是版權持有者賦予自己,而專案中的其他人所沒有的特權的一個例子,而且一定程度上會引起一些緊張,至少對某一些志願者。

在實踐中,我們看到許多基於雙許可證軟體的公司確實沒有真正平等的開發社群。他們只能從外部獲得很小規模的bug修正和清理補丁,而通過內部源做大量艱苦的工作。例如,Zack Urloker,MySQL的副主管告訴我,公司通常最終會僱傭最活躍的志願者。因而,儘管產品本身是開源的,使用GPL許可證,它的開發還是或多或少受到公司的控制,雖然也可能有人確實不滿意這個公司把持著這個軟體而分叉這個專案。一定程度上,這種威脅迫使公司政策的內容,但在也有一定機率,MySQL沒有發現在開源世界或之外存在著接受的問題。

MySQL作為一個開源資料庫,幾乎所有的使用者都只是通過自己的程式去操作這個資料庫,不涉及到改動原始碼的問題,根本不用去考慮是否要遵循 GPL的問題。只有在你修改MySQL原始碼的情況下,才需要考慮GPL。

所以GPL就是一個為了保護軟體自由的一個協議,它強調的是開源,與錢無關。MySQL是一個雙授權的軟體,Oracle現在賣的是年度的服務(編者加註:另外主要收入來源是銷售資料庫維護工具), 如果你只是使用MySQL而不是改寫MySQL,那麼在這些情況下你應該考慮購買Oracle的商業版本,一是Oracle的商用版本提供的附加元件(監 控器、備份工具等)對你有價值,二是Oracle的年度技術支援是你需要的,三是各種潛規則。而不應該是你想合法的使用MySQL才去購買其商業版本。另 外,如果你是基於MySQL的原始碼開發你自己的產品,那麼你需要購買的是商業授權,而不是subscription這些商業版本。

https://www.oschina.net/news/28937/oracle-mysql-gpl

https://producingoss.com/zh/dual-licensing.html