軟體界有很多常用的協議,開源和閉源協議皆有。而每種協議都有它的特色和限制,在開發產品時需要多加注意。這邊分析了一下常見開源協議,以及它們的特性和限制。
首先先來看一張比較簡單的分類圖,這張圖主要是針對會變更原始碼的部分--我們在後面會說明,有一個協議會因為不變更原始碼而可以轉成閉源。
常見協議一覽
- GPL
- LGPL
- Mozilla
- BSD
- MIT
- Apache
GPL
流氓。有四大自由標準必須遵守
- 基於任何目的,按你的意願執行軟體的自由。
- 學習軟體如何工作的自由,按你的意願修改軟體以符合你的計算的自由。可存取原始碼是此項自由的先決條件。
- 分發軟體副本的自由。
- 將你修改過的軟體版本再分發給其他人的自由。這樣可以讓整個社區有機會共享你對軟體的改動。可存取原始碼是此項自由的先決條件。
強迫完全開源,只要沾到GPL就全滅
LGPL
GNU較寬鬆公共授權條款(英語:GNU Lesser General Public License,簡稱:LGPL)是由自由軟體基金會公布的自由軟體授權條款。
它允許企業與軟體開發者使用,或將LGPL授權的軟體整合至他們自己的軟體內(即使該軟體是私有軟體也被允許)
屬於"可商用但不可變更原始碼的協議" 比GPL(完全強迫開源)緩和一點,不強迫開源其他授權的檔案。
Mozilla Public License
MPL允許在其授權下的原始碼與其他授權的檔案進行混合,包括私有授權條款。但在MPL授權下的代碼檔案必須保持MPL授權,並且保持開源。
比GPL(完全強迫開源)緩和一點,不強迫開源其他授權的檔案。
BSD
遵守BSD License的軟體,允許用作商業用途,甚至可按照專屬授權條款進行再釋出。
所有從以BSD授權條款授權的軟體衍生著作,都必須要包含一段文字(滿長的,這邊容許我不貼上)以交代原始碼的來源。 符合以上要求的時候就可以商業運用。
MIT
被授權人有權利使用、複製、修改、合併、出版發行、散布、再授權和/或販售軟體及軟體的副本,及授予被供應人同等權利,惟服從以下義務。
在軟體和軟體的所有副本中都必須包含以上著作權聲明和MIT的許可聲明。
此授權條款並非屬copyleft的自由軟體授權條款,允許在自由及開放原始碼軟體或非自由軟體(proprietary software)所使用。
必填的版權宣告比BSD少,其餘差不多。
Apache
Apache不會強制衍生和修改產物使用相同的授權條款進行釋出(與一些著作權授權條款不同)。
但它仍然要求對所有未修改的部分應用相同的授權條款,並且在每個授權檔案中,必須保留再分發代碼中的任何原始著作權,專利,商標和歸屬通知(不需要包括任何部分的衍生作品);並且在每個更改的授權檔案中,都必須添加一條通知,說明對該檔案進行了更改。
一種比較特殊的,可更動原始碼但必須說明的可商業用條款授權。
若以後各位有機會開發自己的產品時,都要小心注意自己是不是有使用到不可商用的協議,否則可能產生著作權上面的問題喔!
整理來自ChatGPT
授權類型 | 保留授權要求 | GUI / Logo 替換 | 發佈開源要求 | 其他注意事項 | 程式內 header 範例 |
---|---|---|---|---|---|
GPL (v2 / v3) | 必須保留原作者版權與 LICENSE | 可以替換為自己的 logo 或留空白,但不得隱藏原作者 | 基於 GPL 元件的程式通常需整體 GPL 開源 | 如果修改程式碼,須公開修改部分 | /*\nThis file is part of ProjectName.\nCopyright (C) 2025 Original Author\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n*/ |
LGPL | 必須保留原作者版權與 LICENSE | GUI logo 可替換或留空白 | 只要求修改或衍生的 LGPL 元件開源,整體程式可閉源 | 需提供可替換或連結到 LGPL 元件的方式 | /*\nThis library is free software; you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation.\n*/ |
MIT | 必須保留原作者版權與 LICENSE | 可自由替換 logo 或留空白 | 不要求開源 | 簡單寬鬆,僅需保留授權資訊 | /*\nCopyright (c) 2025 Original Author\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the "Software"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software.\n*/ |
Apache 2.0 | 必須保留 LICENSE、NOTICE、版權資訊 | 可替換 logo,但不能使用原作者商標 | 不要求開源,但修改需在 NOTICE 中註明 | 禁止用原作者名稱作推廣 | /*\nCopyright 2025 Original Author\nLicensed under the Apache License, Version 2.0 (the "License");\nyou may not use this file except in compliance with the License.\n*/ |
BSD 2-Clause | 必須保留版權與授權資訊 | 可替換 logo 或留空白 | 不要求開源 | 無附加限制 | /*\nCopyright (c) 2025, Original Author\nAll rights reserved.\n*/ |
BSD 3-Clause | 必須保留版權與授權資訊 | 可替換 logo 或留空白 | 不要求開源 | 禁止使用原作者名字作推廣或認證 | /*\nCopyright (c) 2025, Original Author\nAll rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n*/ |
CC BY | 必須標明原作者與授權 | 可以替換 logo,但需標明原作者 | 視用途決定是否開源 | 非軟體用居多,須標明出處 | /*\nCreative Commons Attribution 4.0 International License\nCopyright 2025 Original Author\n*/ |
CC BY-SA | 必須標明原作者與授權 | 可以替換 logo,但需標明原作者 | 修改後作品需同樣授權 | 強制採相同授權釋出衍生作品 | /*\nCreative Commons Attribution-ShareAlike 4.0 International License\nCopyright 2025 Original Author\n*/ |
沒有留言:
張貼留言