懂你 2007-5-9 00:23
[转贴]开源软件及许可证
目录:
wm8~HN$H%O#W
jBks8n
y
*开源软件的定义&D^`+LS$s \]
*开源软件许可证
^3f4S:fl,fw'}G,~zI
开源软件的定义-H I _)vc
:l2?jt)y3fV;a,T8d0T
版本 1.9
\8p,k[}~x:tD
d@n~I6[
下面缩进的斜体部分是对于开源软件定义的注解,而非开源软件定义的一部分。开源软件的定义可以在 这里找到R;v,iX#NF
|h(S9|#p
xj$c
可打印版本的注解页可以在这里找到K(Px,K
L"f
\/u*wr#hFIvad
PDF版本的开源软件定义
+e+fI\r
.X)GtqPDTG^W8t
介绍
JVr'i5N C ~*Mk
XmKz/@6um9g
开源软件并不是指可以访问源代码。开源软件的发行必须遵守如下的标准:3Z.k Z"~Pv4EI8a
1. 自由重新发行yJ R8~2a
6DQE@_(A9X0v-I?
许可证不应该限制任何参与者销售或者将软件作为另一包含不同程序的集合软件的一部分发行。许可证不应要求为销售支付版税或其它费用。
&A\FUC B(Hs.@N
$dJ-}3Ad:C;I:s\F'`4t&o
基本原理:通过限制许可证来拥有自由的重新发行,我们排除了由放弃长期收获来获得短期利益的诱惑。如果我们不这么做,合作者将面临很大的压力,甚至可能不再选择开源软件。.8w9dK/YbHqU
+w+vli:}/m
2. 源代码
)qj+?-rv{
h`?
lXtk^
程序中必须包含源代码,同时也必须允许以源代码形式或编辑的形式来发行。如果某一形态的产品并没有和源代码一起发行,那么也必须要有一个众所周知的获取源代码的方法。这种获取仅仅是为了节省成本,可以免费从网络上下载。源代码必须以一种对程序员友好的格式下载,便于他们编辑。那些故意写得很模糊的源代码是不允许的。中间形态例如计算机与处理程序或译码机的输出是不可接受的。Ho }t*M;J$|
+JpwsF1G?
基本原理:我们要求能够接触清晰的源代码是因为离开这些源代码,我们无法设计程序。既然我们的目的是使进化更简化,我们需要修改液变得更容易。.
y/kY'tfr*V
zR.pXwft
3. 衍生作品
lk
}7F&n ~q*~
\HDJ:@-XGZ
许可证必须允许修改和衍生作品,并且必须允许他们在源软件的许可证条例下得以发行。t-A0oytU"m
!t2N(i'EX%r
基本原理:仅仅能够阅读源代码并不能帮助程序员独立阅读和快速改进程序。为了能够高效率的修改程序,人们需要对修改进行测试和再发行。.
#o:s^r4}-q
*W/VT;{*|c$O Wfe[
4. 源代码的完整性
r*p.\-w]4fv|]"CD
*KMJb3d,~$\
只有当许可证允许发行还有源代码的补丁文件时,才会限制源代码的发行。许可证会要求衍生作品用不同于原作品的文件名或版本号。
K6a e9ee^+t;~
;qzV/?v:hC
基本原理:鼓励进步是件好事,但是用户有权知道谁对他们正在使用的软件负责。作者和维护人员相应的也有权知道他们要提供什么样的支持,并保护他们的声誉。.
CH/I y#@9r#g;D3d-O.d
aQN:LE&r'rW0B
因此,开源软件许可证 必须 保证源代码可以被访问,但是可以要求他们以原始的基础代码加补丁的方式发行。这样,“非正式“的改动就可见,同时也有别于基础代码。$[ G'HF%^8\ X7~
3v`B
A0E qT
5. 禁止歧视个人或组织
I
a ql|h'kR
r.z8q-rO'sx.T/V
许可证不得歧视任何个人和组织。
!q&h W4S[8q0y
#nc!mH3R(svp[8RH
基本原理:为了从过程中将利益最大化,最大化的人员和组织的多样性也可以为开源做出贡献。因此我们禁止任何开源许可证将任何人排除在外。.I;YW S9l^1|v
P/\7Lo3NN.d9A
在某些国家,包括美国,对某些软件有出口限制。OSD许可证可能向一些获许可的人发出警告,提醒他们要遵守法律。然而,许可证本身可能并不包括这些限制条款。.