1. 自由地再發布
如果被發布的軟件是由不同來源的程序組成的,許可證不得限制任何當事人或組織(party)銷售或贈送作為被發布軟件成分之壹的開放源碼軟件。
許可證不得從此項銷售中索取使用費或其它任何費用。(理由)
2. 源代碼
程序必須包括源代碼,必須允許以源代碼方式發布、還必須允許以編譯後的形式發布。如果產品的某個部分沒有與源代碼壹同發布,那麽必須提供通行的、不需要支付合理範圍之外的任何費用的手段以獲得源代碼---從網絡上免費下載是壹種可取的方式。源代碼必須是程序員對其進行修改的最佳形式。故意地使源代碼變得含混晦澀是不允許的。也不允許給出預處理器或翻譯器處理的中間結果。(理由)
3. 派生作品
許可證必須允許修改軟件和派生軟件,並且必須允許它們按照原軟件的許可證的條款進行發布。(理由)
4. 作者的源代碼的完整性
只有在許可證允許與源代碼壹同發布"補丁文件"(該"補丁文件"以在創建時對程序進行修改為目的)時,許可證才能限制對修改形式的源代碼的發布。許可證必須明確地允許發布由修改後的源代碼生成的程序。許可證可以要求派生的作品采用不同的名稱或不同的版本號以區別於原來的軟件。(理由)
5. 不得歧視任何個人或團體
許可證不得歧視任何個人或者由多人組成的團體。(理由)
6. 不得歧視任何應用領域(fields of endeavor)
許可證不得限制任何人把程序應用於任何領域。例如,不得規定程序不能應用於商業領域或基因研究領域。(理由)
7. 許可證的發布
與程序有關的權利必須適用於該程序的任何使用者,並且程序的使用者也不需要為了使用該程序而獲得其它許可證的許可。(理由)
8. 許可證不能針對於壹個產品
與程序有關的權利不能由該程序是否作為某個軟件產品的壹部分來決定。如果程序從那個發布中被抽出來,並且按照程序的許可證的條款進行使用和發布,那麽得到該程序的當事人或組織將獲得與得到原程序的使用者相同的權利。(理由)
9. 許可證不能影響其它軟件
許可證不得向與采用它的軟件壹同發布的其它軟件提出任何限制。例如,許可證不能堅持要求在同壹媒體上發布的其它程序都是開放源代碼軟件。(理由)
Conformance
(本節不是開放源代碼定義的壹個部分)
我們認為本開放源代碼定義涵蓋了由絕大多數軟件團體使用的術語"開放源代碼"的最初含義和當前含義。然而,該術語被廣泛地應用,並且它的含義變得不精確了。OSI Certified標誌是某個軟件發布許可證是否服從開放源代碼定義的OST認證方式。壹般的術語"開放源代碼"並不提供這種擔保,但我們仍然鼓勵使用" 開放源代碼"這壹術語以表明它符合"開放源代碼定義"。關於OSI Certified標誌的信息,以及已經通過了OSI Certified、符合"開放源代碼定義"的許可證,請參見OSI Certified標誌與綱要。
開放源代碼定義之原理
給出開放源代碼的定義的目的是:把我們所確信的、由軟件開發團體所公認的"開放源代碼"的含義作為壹組具體的準則寫下來---該準則確保按照開放源代碼許可證發布的軟件可以得到與其它軟件同樣認真的評審、使軟件可以不斷地得到改良和遴選,從而提供非開放軟件所難以提供的可靠性與能力。
為了使此項工作持續發展,我們必須抵制人們為了短期利益而中止為軟件開發做出貢獻。這意味著,許可證的條款必須防止人們藏匿(lock up)源代碼從而導致只有很少的人才能夠閱讀和修改它。
當軟件的開發者按照由OSI認證的許可證發布他們的軟件時,他們可以在軟件中使用"OSI Certified"標誌。這種認證標誌告知用戶,該軟件所采用的許可證符合開放源代碼定義。關於我們的認證標誌的更多信息及其綱要,請參見OSI Certified標誌與綱要。
1. 自由地再發布
通過強制要求許可證允許自由地再發布,我們抵制了任何為了獲得少量短期銷售金額而放棄長期效益的誘惑。如果我們不這樣做,就會有很多壓力迫使合作者放棄承諾。
2. 源代碼
由於軟件只有通過修改才能夠得到改進,因此我們要求獲得易於理解的源代碼。因為我們的目的是使軟件易於改進,我們也就希望軟件易於修改。
3. 派生作品
僅僅提供可以閱讀的源代碼,對於實施認真的評審、對於軟件的快速改良與遴選來說都是不夠的。為了加快改進軟件的速度,人們需要能夠進行試驗和對修改進行重新發布。
4. 作者的源代碼的完整性
鼓勵對軟件進行各種改進是壹件好事,但使用者有權知道誰應該對他們所使用的軟件負責。軟件的作者和維護者都有權知道需要他們提供支持的軟件是什麽,以維護他們的名譽。
因此,開放軟件許可證必須保證可以容易地得到源代碼,但可以要求源代碼以原始源代碼和壹組補丁文件的形式發布。按照這種方式,就可以獲得"非正式的"的修改而同時又可以輕易地把它們從原始源代碼中區分出來。
5. 不得歧視任何個人或團體
為了從該進程中獲得最大的收益,應該給盡可能多的個人和團體以同等資格對開放源代碼軟件做出貢獻。為此我們禁止開放源代碼許可證把任何人排除在這個進程之外。
6. 不得歧視任何應用領域(fields of endeavor)
該條款的主要目的是禁止許可證中含有使開放源代碼軟件無法在商業上使用的規定。我們需要商業用戶參與我們的工作,而不讓他們感到被排除在外。
7. 許可證的發布
本條款的目的是禁止通過非直接的手段,例如需要簽署非公開的協定,使軟件無法公開。
8. 許可證不能針對於壹個產品
本條款用於預防其它許可證陷阱。
9. 許可證不能影響其它軟件
開放源代碼軟件的發布者有權為他們自己的軟件做出選擇。
是的,GPL滿足這條要求。按GPL發布的庫只影響(contaminate)在運行時與之連接的軟件,於僅僅和它壹同發布的軟件無關。
OSI Certified標誌與綱要
開放源代碼定義給出了開放源代碼軟件的基本性質。不幸的是,術語"開放源代碼"遭到了濫用,並且由於它的描述性,它不能作為壹個商標(這是我們的首選)被保護。由於社團需要壹種可靠的方式以確定壹份軟件是否真正是開放源代碼軟件。OSI為此目的而註冊了壹個認證標誌,OSI Certified。如果妳在壹份軟件上看到了該標誌,那麽該軟件就是必定是按照遵從開放源代碼定義的許可證發布的,否則,該發行人就是在濫用該標誌而且違反了法律。
OSI Certified標誌被用於軟件而不是許可證:人們需要知道的是組成軟件的包和它們的許可證是開放的源代碼。此外,單獨的許可證可能不是"貨物",它由美國專利和商標局註冊認證標誌。但是軟件的作者顯然必須能夠在不詢問我們的情況下(自我認證)、在適當的時刻確認他們的軟件是按照OSI Certified的開放源代碼方式發布的。所以認證按照兩步進行:
* OSI提供壹個滿足開放軟件源代碼定義的開放源代碼許可證表。這些許可證經過公眾的詳細審查並且被我們所批準。如果妳有壹個希望加入該列表的許可證,請與license-approval@opensource.org聯系,它啟動了獲得許可證批準的程序。
* 如果妳希望在妳的軟件上設置OSI Certified標誌,妳可以從列表中選擇壹個獲得批準的許可證並根據它發布軟件,並且適當地為軟件做標誌。
上面僅僅是壹個概括。下面給出申請批準許可證和把OSI Certified標誌應用在妳的軟件上的詳細說明。
獲得許可證的批準
1.通過電子郵件把許可證發送給license-approval@opensource.org。在電子郵件中說明妳是否願意以妳的簽名或者匿名地把許可證發送到許可證討論列表中。(我們願意考慮那些根本不希望被發送的許可證,但由於社團的評審是批準的壹個重要組成部分,我們將不得不把該許可證私下地發送給評審者:因此,對沒有被發送到許可證討論列表中的許可證的批準,要花費更長的時間,並且通常要更多地與妳交流。)
2. 如果我們發現妳的許可證不符合開放源代碼的定義,我們將與妳壹同解決這個問題。
3. 同時,我們將關註許可證論壇列表,並且與妳壹同工作以解決大家提出的任何未包含的問題。
4. 作為該過程的壹部分,我們還將就許可證問題向外界尋求法律上的建議。
5. 壹旦許可證符合了開放源代碼定義,並且在許可證論壇上經過了充分的討論或者其它的評審者沒有提出我們認為重要的問題,我們將通知妳,許可證已經被批準了,同時它被復制到我們的網站上,並且被加入以下的許可證列表。
使用該標誌
妳可以在這兩種軟件的發行上使用OSI Certified標誌。該軟件的發布包括並且達到了被批準的許可證列表中某個許可證的要求,或者該軟件的源代碼已經被明確地放到公眾可以得到的位置。
為了表明妳的軟件是按照OSI Certified發布的,妳必須不加任何修改地把下面兩者之壹,按照下述方式加入妳的軟件。完整的聲明是:
This software is OSI Certified Open Source Software.
OSI Certified is a certification mark of the Open Source Initiative.
較簡短的聲明是:
OSI Certified Open Source Software
妳的軟件的每種發布形式都有自身的要求:
* 如果軟件以電子的形式發布(而不是實物(tangible)的形式),妳必須把完整的聲明放在README文件或者類似的、人類用戶將首先閱讀的文件中。
* 如果軟件以實物形式發布,妳必須完成以下所有可行的任務:
* 如果軟件的發布包括印刷品,妳必須把完整的聲明加入該印刷品。
* 如果軟件發布在可擦寫的媒體(例如軟磁盤)、CD-ROM、磁帶等媒體上,它們在物理上可以添加能夠被人的裸眼所閱讀的簡短聲明,而不影響它們的功能,妳必須把完整的聲明或簡短的聲明標註在該媒體上。
* 如果軟件的發布是壹個的包,從而使其中的聲明不能被閱讀。妳必須在包的外面放置完整的聲明。
如果不能把以上任何條款用於發布,請與我們聯系,我們將把妳選擇的位置加入本列表。
獲得批準的許可證
以下許可證滿足開放源代碼的定義,並且已經被批準用於OSI Certified的開放源代碼軟件。沒有給出批準日期的許可證是在1999年1月1日以前批準的。
* The GNU General Public License(GPL);
* The GNU Library(Lesser) General Public License(LGPL);
* The BSD License;
* The X Consortium License;
* The Artistic License;
* The Mozilla Public License(MPL);
* The QPL;
其它符合定義的許可證包括:libpng許可證、zlib許可證、IJG JPEG許可證和OPL(Open LDAP Public License)許可證