開源的定義(opensource or free, they are different!)

開放源代碼並不僅僅意味着對源代碼的訪問權。開放源代碼軟件的發佈條款必須滿足以下條件:
    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提供一個滿足開放軟件源代碼定義的開放源代碼許可證表。這些許可證經過公衆的詳細審查並且被我們所批准。如果你有一個希望加入該列表的許可證,請與
    [email protected]聯繫,它啓動了獲得許可證批准的程序。
    * 如果你希望在你的軟件上設置OSI Certified標誌,你可以從列表中選擇一個獲得批准的許可證並根據它發佈軟件,並且適當地爲軟件做標誌。
    上面僅僅是一個概括。下面給出申請批准許可證和把OSI Certified標誌應用在你的軟件上的詳細說

   獲得許可證的批准
    1. 通過電子郵件把許可證發送給[email protected]。 在電子郵件中說明你是否願意以你的簽名或者匿名地把許可證發送到許可證討論列表中。(我們願意考慮那些根本不希望被髮送的許可證,但由於社團的評審是批准 的一個重要組成部分,我們將不得不把該許可證私下地發送給評審者:因此,對沒有被髮送到許可證討論列表中的許可證的批准,要花費更長的時間,並且通常要更 多地與你交流。)
    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)許可證。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章