summaryrefslogtreecommitdiff
path: root/docs/free-sw.md
blob: 6b37cab941a7c96186d80278ca137be10095d4ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
1. What Is Free Software? {#what-is-free-software .chapter}
=========================
1. 什么是自由软件?
=========================

### The Free Software Definition {#the-free-software-definition .subheading}

### 自由软件的定义

> The free software definition presents the criteria for whether a
> particular software program qualifies as free software. From time to
> time we revise this definition, to clarify it or to resolve questions
> about subtle issues. For a list of the changes we’ve made to the
> definition of free software, please see the “History” section,
> following the definition, at <http://gnu.org/philosophy/free-sw.html>.

> 自由软件的定义是一系列特定标准的软件。通过不断的修改这一定义,可以让我们更好的澄清和解决与之相关的各种问题。有关自由软件的变化,可以参考<http://gnu.org/philosophy/free-sw.html>中定义下面的“历史”一节。

“Free software” means software that respects users’ freedom and
community. Roughly, it means that **the users have the freedom to run,
copy, distribute, study, change and improve the software.** Thus, “free
software” is a matter of liberty, not price. To understand the concept,
you should think of “free” as in “free speech,” not as in “free beer.”
We sometimes call it “libre software” to show we do not mean it is
gratis.

“自由软件”(Free Software)表示的是那些尊重用户和社群自由的软件。粗略的说,它表示**用户有运行、拷贝、再发行、学习、修改并改进软件的自由**。因此,“自由软件”是有关用户自由权益(liberty),而不是指免费(free)的价格。为了理解这个概念,你需要将“free”一词理解成“言论自由”中的“自由”,而不是“免费啤酒”里的“免费”。有时我们会称之为“Libre Software”,以避免表示免费的意思。

We campaign for these freedoms because everyone deserves them. With
these freedoms, the users (both individually and collectively) control
the program and what it does for them. When users don’t control the
program, we call it a “nonfree” or “proprietary” program. The nonfree
program controls the users, and the developer controls the program; this
makes the program an instrument of unjust power.[(1)](#FOOT1)

我们争取这些自由,盖因为每个人都应该拥有这些。有了这些自由,用户(包括个体和团体)就可以控制程序为己所用。当用户无法控制程序时,我们称之为“非自由”(Nonfree)或“专有”程序。非自由的程序控制了用户,而开发者控制着程序:这就让程序成为了非正义权力的帮凶[^1]。

>>> Copyright © 1996–2002,
2004–2007, 2009–2015 Free Software Foundation, Inc.
 {The free software definition was first published in 1996, on
 <http://gnu.org>. This version is part of @fsfsthreecite}

A program is free software if the program’s users have the four
essential freedoms:

自由软件表示用户拥有四个必不可少的自由:

-   The freedom to run the program as you wish, for any
purpose (freedom 0).

-   基于任何目的,按你的意愿运行软件的自由(自由之零)。

-   The freedom to study how the program works, and change it so it does
    your computing as you wish (freedom 1). Access to the source code is
    a precondition for this.

-   学习软件如何工作的自由,按你的意愿修改软件以符合你的计算机的自由(自由之一)。可访问源代码是先决条件。

-   The freedom to redistribute copies so you can help your
neighbor (freedom 2).

-   再发行软件副本的自由,因此你可以帮助你的邻居(自由之二)。

-   The freedom to distribute copies of your modified versions to
    others (freedom 3). By doing this you can give the whole community a
    chance to benefit from your changes. Access to the source code is a
    precondition for this.

-   将你修改过的软件版本再发行给其他人的自由(自由之三)。这样可以让整个社群有机会享受到你对软件的改动。可以访问源代码是先决条件。

A program is free software if it gives users adequately all of these
freedoms. Otherwise, it is nonfree. While we can distinguish various
nonfree distribution schemes in terms of how far they fall short of
being free, we consider them all equally unethical.

如果一个软件可以充分授予用户所有这些自由,它就是自由软件,否则就是非自由软件。即使我们可以分清不同非自由发行方式和它们与自由有多大的差异,我们依然认为这些非自由软件是不道德的。

In any given scenario, these freedoms must apply to whatever code we
plan to make use of, or lead others to make use of. For instance,
consider a program A which automatically launches a program B to handle
some cases. If we plan to distribute A as it stands, that implies users
will need B, so we need to judge whether both A and B are free. However,
if we plan to modify A so that it doesn’t use B, only A needs to be
free; we can ignore B.

任何情况下,这些自由都必须应用于我们计划使用的任何代码,或引导其他人使用之。例如,程序 A 会自动启动程序 B 来处理一些事情,如果我们独立发布 A 也意味着用户还需要 B,因此我们需要判断 A 和 B 是否都是自由的。如果我们修改了 A 使得它不再需要 B,那么只需要 A 是自由的,可以忽略 B。

The rest of this page clarifies certain points about what makes specific
freedoms adequate or not.

本页余下的内容,则会澄清特定自由是否适用的关键点。

Freedom to distribute (freedoms 2 and 3) means you are free to
redistribute copies, either with or without modifications, either gratis
or charging a fee for distribution, to anyone anywhere. Being free to do
these things means (among other things) that you do not have to ask or
pay for permission to do so.

再发行软件的自由(自由之二和自由之三)表示你可以在任何地方发布软件的副本给任何人,无论是否有过修改,无论是免费或收取发行费用。自由的再发行意味着(排除其他因素)你不需要强制索要再发行许可或为此付费。

You should also have the freedom to make modifications and use them
privately in your own work or play, without even mentioning that they
exist. If you do publish your changes, you should not be required to
notify anyone in particular, or in any particular way.

你应该有修改软件的自由并将其用于私人的工作或娱乐,甚至不需要提到你的修改。如果你发布了自己的修改版,你不应被要求通知特定的人或以特定的方式发布。

The freedom to run the program means the freedom for any kind of person
or organization to use it on any kind of computer system, for any kind
of overall job and purpose, without being required to communicate about
it with the developer or any other specific entity. In this freedom, it
is the *user’s* purpose that matters, not the *developer’s* purpose; you
as a user are free to run the program for your purposes, and if you
distribute it to someone else, she is then free to run it for her
purposes, but you are not entitled to impose your purposes on her.

运行软件的自由,赋予任何个人或组织在任何计算机系统上,基于任何工作方式或任何目的运行软件的自由,而无需与任何开发者或特定实体沟通。在这个自由中,重要的只是*用户的*目的,而非*开发者的*的目的;作为用户你有基于任何目的运行软件的自由,如果你将软件发布给了其他人,则她也有按自己目的运行软件的自由,而你不能将自己的目的强加给她。

The freedom to run the program as you wish means that you are not
forbidden or stopped from doing so. It has nothing to do with what
functionality the program has, or whether it is useful for what you want
to do.

以你的意愿运行软件的自由也表示你不能被要求禁止或停止运行,它无关软件的功能,或对你来说它是否有用。

The freedom to redistribute copies must include binary or executable
forms of the program, as well as source code, for both modified and
unmodified versions. (Distributing programs in runnable form is
necessary for conveniently installable free operating systems.) It is OK
if there is no way to produce a binary or executable form for a certain
program (since some languages don’t support that feature), but you must
have the freedom to redistribute such forms should you find or develop a
way to make them.

重新发布软件副本的自由必须包括该程序的二进制可执行格式,以及源代码,包括已修改和未修改版。(以可运行格式发布程序可以方便在自由的操作系统上安装)。对特定程序也可以不发布和产生二进制可执行格式(因为一些编程语言不支持这个特性),但你也有发布这些格式的自由,或开发一种方法来产生这些格式文件。

In order for freedoms 1 and 3 (the freedom to make changes and the
freedom to publish the changed versions) to be meaningful, you must have
access to the source code of the program. Therefore, accessibility of
source code is a necessary condition for free software. Obfuscated
“source code” is not real source code and does not count as source code.

为了实现自由之一和自由之三(修改软件并发布修改版的自由),你必须能够访问程序的源代码,因此能访问程序的源代码对自由软件来说是一个必要条件。混淆的“源代码”不能算真正的源代码。

Freedom 1 includes the freedom to use your changed version in place of
the original. If the program is delivered in a product designed to run
someone else’s modified versions but refuse to run yours—a practice
known as “tivoization” or “lockdown,” or (in its practitioners’ perverse
terminology) as “secure boot”—freedom 1 becomes an empty pretense rather
than a practical reality. These binaries are not free software even if
the source code they are compiled from is free.

自由之一包括了用你修改的版本来替代原始的。如果一个程序从产品设计的角度发布只能用其他人修过的版本而不能用你的修改版——例如所谓的“tivo化”或“锁定”,或者(用行业内的话来说)就是“安全启动”(Secure Boot)——这样自由之一就被架空而无法实现,即便这些软件的二进制是从自由的源代码编译而来,也不能算是自由软件。

One important way to modify a program is by merging in available free
subroutines and modules. If the program’s license says that you cannot
merge in a suitably licensed existing module—for instance, if it
requires you to be the copyright holder of any code you add—then the
license is too restrictive to qualify as free.

修改软件的一个重要方法是合并可用的自由子程序或模块。如果一个程序的许可证让你不能将一个按适当的许可证发布的现有模块融合进来——例如要求你成为你修改过代码的版权所有者,因此该许可证过于严苛以致不能分类为自由的。

Freedom 3 includes the freedom to release your modified versions as free
software. A free license may also permit other ways of releasing them;
in other words, it does not have to be a copyleft license. However, a
license that requires modified versions to be nonfree does not qualify
as a free license.

自由之三包括你可以自由软件的方式发布修改版。一个自由许可证可能允许以其他形式发布;也就是说,这不一定是 copyleft 许可证。不过如果一个许可证要求以非自由的方式发布修改版,则是非自由的。

In order for these freedoms to be real, they must be permanent and
irrevocable as long as you do nothing wrong; if the developer of the
software has the power to revoke the license, or retroactively add
restrictions to its terms, without your doing anything wrong to give
cause, the software is not free.

为了让这些自由得以实现,在你没有做错的情况下,这些条款必须是永久且不可撤销的。如果软件的开发者有权力撤销,或者添加限制性条款。在你没有做错的情况下,该软件就不是自由的。

However, certain kinds of rules about the manner of distributing free
software are acceptable, when they don’t conflict with the central
freedoms. For example, copyleft (very simply stated) is the rule that
when redistributing the program, you cannot add restrictions to deny
other people the central freedoms. This rule does not conflict with the
central freedoms; rather it protects them.

然而,一些对自由软件发布方式的规则是可以接受的,前提是与核心自由不冲突。例如,copyleft(最简单的说)规定你不能在分发程序的时候添加限制性条款以拒绝其他人的核心自由。这一规则与核心自由并不冲突,反而是保护核心自由。

In the GNU Project, we use copyleft to protect the four freedoms legally
for everyone. We believe there are important reasons why it is better to
use copyleft. However, noncopylefted free software is ethical too. See
“Categories of Free Software” (@pageref{Categories}) for a description
of how “free software,” “copylefted software” and other categories of
software relate to each other.

在 GNU 项目中,我们用 copyleft 合法保护每个人的四个自由,我们相信使用 copyleft 是非常重要的。然而非 copyleft 的许可证也是合乎道德的。有关“自由软件”、“copyleft 软件”和其他类型软件的话题可以参见[《自由软件的分类》]()一文。

“Free software” does not mean “noncommercial.” A free program must be
available for commercial use, commercial development, and commercial
distribution. Commercial development of free software is no longer
unusual; such free commercial software is very important. You may have
paid money to get copies of free software, or you may have obtained
copies at no charge. But regardless of how you got your copies, you
always have the freedom to copy and change the software, even to sell
copies.

"自由软件"并不意味着“非商业”。一个自由软件能够商业使用,商业开发以及商业发布。自由软件的商业开发已经不是一件特殊的事情。这对自由软件是非常重要的,你也许需要为获取自由软件的副本而付费,也可能不需要付费。但是无论如何获得副本,你都有复制并修改软件的自由,甚至有自由重新销售。

Whether a change constitutes an improvement is a subjective matter. If
your right to modify a program is limited, in substance, to changes that
someone else considers an improvement, that program is not free.

对程序的改动是不是改进只是一个主观判断。如果你对软件的修改权实际上仅限于作出被他人认作改进的修改,该程序并不自由。

However, rules about how to package a modified version are acceptable,
if they don’t substantively limit your freedom to release modified
versions, or your freedom to make and use modified versions privately.
Thus, it is acceptable for the license to require that you change the
name of the modified version, remove a logo, or identify your
modifications as yours. As long as these requirements are not so
burdensome that they effectively hamper you from releasing your changes,
they are acceptable; you’re already making other changes to the program,
so you won’t have trouble making a few more.

不过,规范修改版打包行为的条款是可以接受的,如果他们实质上没有限制你发布修改版的自由,或者私下使用的自由。那么要求你改变修改版的名字,移除 LOGO,或者修改版为你自己所有。只要这些要求不那么繁冗以至于影响了正常发布,都是可以接受的。既然你都已经做过一些修改,也就无所谓再多做一些了。

Rules that “if you make your version available in this way, you must
make it available in that way also” can be acceptable too, on the same
condition. An example of such an acceptable rule is one saying that if
you have distributed a modified version and a previous developer asks
for a copy of it, you must send one. (Note that such a rule still leaves
you the choice of whether to distribute your version at all.) Rules that
require release of source code to the users for versions that you put
into public use are also acceptable.

如果有“你的版本可以这样,也必须能以另一种方式”这样的条款也是可以接受的。同样的,比如有规则要求如果你发布了修改版,也必须给前一个开发者发送一份,也是可以接受的。(注意这样的条款仍然让你有自由选择是否发布的权力)。要求你为用户发布公开发布版的源代码,也是可以接受的。

A special issue arises when a license requires changing the name by
which the program will be invoked from other programs. That effectively
hampers you from releasing your changed version so that it can replace
the original when invoked by those other programs. This sort of
requirement is acceptable only if there’s a suitable aliasing facility
that allows you to specify the original program’s name as an alias for
the modified version.

有个特殊问题是一个许可要求改变一个程序用来被其他程序调用的名字。这样实际上是阻碍了你的修改版的发布,以便通过修改名字来取代原始版。这种情况仅当通过一种别名机制来标示原始程序名是修改版的别名时可被接受。

Sometimes government export control regulations and trade sanctions can
constrain your freedom to distribute copies of programs internationally.
Software developers do not have the power to eliminate or override these
restrictions, but what they can and must do is refuse to impose them as
conditions of use of the program. In this way, the restrictions will not
affect activities and people outside the jurisdictions of these
governments. Thus, free software licenses must not require obedience to
any nontrivial export regulations as a condition of exercising any of
the essential freedoms.

有时政府的出口管制或者贸易制裁会压抑你国际性地分发软件的自由。软件的开发者没有权力消除或覆盖这些限制,但他们可以做的是拒绝强制要求使用程序时接受这些条件。这样,这些限制就不会影响到政府管辖以外的国家和人民的活动。因此自由软件许可证为了行使这些必要的自由,不能要求服从任何这些出口限制条款。

Merely mentioning the existence of export regulations, without making
them a condition of the license itself, is acceptable since it does not
restrict users. If an export regulation is actually trivial for free
software, then requiring it as a condition is not an actual problem;
however, it is a potential problem, since a later change in export law
could make the requirement nontrivial and thus render the software
nonfree.

仅仅只是提到这些出口限制条款即可,而没有将这些条款作为软件许可证的条件,因为这样并没有限制用户所以也是可以接受的。如果该出口限制条款对自由软件并不重要,将其作为需要的条件也不是一个问题。然而这会产生一个潜在问题,出口限制法规若之后有一定修改,可能会让软件变成非自由的。

A free license may not require compliance with the license of a nonfree
program. Thus, for instance, if a license requires you to comply with
the licenses of “all the programs you use,” in the case of a user that
runs nonfree programs this would require compliance with the licenses of
those nonfree programs; that makes the license nonfree.

自由的许可证不能要求遵守非自由程序的许可证。所以,比如,如果一个许可证要求你必须遵守“你使用的所有程序”的许可证,运行非自由程序的用户在这种情况下会需要遵守非自由程序的许可证,那么这将使得该许可证变成非自由的。

It is acceptable for a free license to specify which jurisdiction’s law
applies, or where litigation must be done, or both.

自由的许可证里可以指定适用的法律范围或诉讼时必须做的事情,亦可兼而有之。

Most free software licenses are based on copyright, and there are limits
on what kinds of requirements can be imposed through copyright. If a
copyright-based license respects freedom in the ways described above, it
is unlikely to have some other sort of problem that we never anticipated
(though this does happen occasionally). However, some free software
licenses are based on contracts, and contracts can impose a much larger
range of possible restrictions. That means there are many possible ways
such a license could be unacceptably restrictive and nonfree.

大多数自由软件许可证是基于版权的,而何种要求能通过版权施加是有限制的。如果一个基于版权的许可证尊重如上文所说的自由,那么也就不会发生我们意料之外的问题(尽管这也许会发生)。然而有些自由软件许可证是基于合同的,而合同可以增加更大范围的限制。这样就有更大可能性使得该许可证出现无法接受的限制或非自由。

We can’t possibly list all the ways that might happen. If a
contract-based license restricts the user in an unusual way that
copyright-based licenses cannot, and which isn’t mentioned here as
legitimate, we will have to think about it, and we will probably
conclude it is nonfree.

我们无法将这些可能的情形一一列出。如果一个基于合同的许可证以不同于基于版权许可证的方式限制了用户,此处也没有表明其为合法,那么我们需要考察这个许可证,并且很可能会将之视为非自由的。

When talking about free software, it is best to avoid using terms like
“give away” or “for free,” because those terms imply that the issue is
about price, not freedom. Some common terms such as “piracy” embody
opinions we hope you won’t endorse. See “Words to Avoid (or Use with
Care) Because They Are Loaded or Confusing” (@pageref{Words to Avoid})
for a discussion of these terms. We also have a list of proper
translations of “free software” into various languages
(@pageref{Appendix B}).

在谈到自由软件的时候,尽量不要用“白给”(Give Away)或“免费”(For Free),因为这些词都是暗示免费价格而非自由的。一些常用语比如“盗版”也体现了一些我们希望你不会认同的意见。相关请详见[《避免使用容易混淆的词语》](words-to-avoid.html)一文。我们同时还有根据不同语言列出了“自由软件”(Free Software)一词的翻译,请见[附录B](appendix-b.html)。

Finally, note that criteria such as those stated in this free software
definition require careful thought for their interpretation. To decide
whether a specific software license qualifies as a free software
license, we judge it based on these criteria to determine whether it
fits their spirit as well as the precise words. If a license includes
unconscionable restrictions, we reject it, even if we did not anticipate
the issue in these criteria. Sometimes a license requirement raises an
issue that calls for extensive thought, including discussions with a
lawyer, before we can decide if the requirement is acceptable. When we
reach a conclusion about a new issue, we often update these criteria to
make it easier to see why certain licenses do or don’t qualify.

最后,这些有关自由软件的标准需要谨慎的解读。判断一个软件许可证是否是自由软件,标准就是看它是否符合自由软件精神以及用语是否精确。如果一个许可证包含了不合理的限制,我们会拒绝它,即便是此文中我们没有预料的问题。有些时候一个许可证会带来新的问题和思考,这需要我们与律师咨询以后,共同判断和思考。当我们最终得出结论,会更新这份标准以使其能更容易体现特定的许可证是否符合标准。

If you are interested in whether a specific license qualifies as a free
software license, see our list of licenses, at
<http://gnu.org/licenses/license-list.html>. If the license you are
concerned with is not listed there, you can ask us about it by sending
us email at <licensing@gnu.org>.

如果你对特定的许可证感兴趣,可以看我们的[许可证列表](http://gnu.org/licenses/license-list.html)。如果里面没有列出你关心的,可以发邮件询问我们:<licensing@gnu.org>。

If you are contemplating writing a new license, please contact the Free
Software Foundation first by writing to that address. The proliferation
of different free software licenses means increased work for users in
understanding the licenses; we may be able to help you find an existing
free software license that meets your needs.

如果你打算写一个新的许可证,请首先向通过上面这个邮件联系自由软件基金会。不同的自由软件许可证意味着用户需要花费更多精力来理解;我们也许可以帮你从现有的自由软件许可证里找到符合你需要的。

If that isn’t possible, if you really need a new license, with our help
you can ensure that the license really is a free software license and
avoid various practical problems.

如果这样依然不行,如果真的需要一张新的许可证,有了我们的帮助也可以确保许可证符合自由软件标准并避免一些现实问题。

### Beyond Software {#beyond-software .subheading}

### 软件之外

Software manuals must be free,[(2)](#FOOT2) for the same reasons that
software must be free, and because the manuals are in effect part of the
software.

软件手册必须是自由的[^2],就如同软件必须是自由的一样,因为手册会部分影响软件。

The same arguments also make sense for other kinds of works of practical
use—that is to say, works that embody useful knowledge, such as
educational works and reference works. Wikipedia is the best-known
example.

同理可证其他领域——也就是说,任何体现知识可用性的——也应该如此,比如教育资源和参考资料。维基百科(Wikipedia)就是最著名的例子。

Any kind of work *can* be free, and the definition of free software has
been extended to a definition of free cultural works[(3)](#FOOT3)
applicable to any kind of works.

任何领域的作品都*可以*是自由的,对自由软件的定义已经扩展为了对自由文化的定义,可应用于任何领域的作品[^3]。

### Open Source? {#open-source .subheading}

### 开放源代码?

Another group users the term “open source” to mean something close (but
not identical) to “free software.” We prefer the term “free software”
because, once you have heard that it refers to freedom rather than
price, it calls to mind freedom. The word “open” never refers to
freedom.[(4)](#FOOT4)

另一些用户组织使用“开放源代码”(“开源”,Open Source)一词来表示与“自由软件”相近(但不尽相同)的意思。我们倾向于使用“自由软件”一词,因为一旦你理解它表示自由而不是价格,这么称呼可以表达自由。“开放”(Open)一词并不能表达自由之要义。

[^1]: 可参见《自由软件更加重要了》一文。

[^2]: 可参加《为什么自由软件需要自由文档》一文

[^3]: 可参见 <http://freedomdefined.org>

[^4]: 可参见《为什么开源软件没有抓住自由软件的要点》一文