《勇敢 GNU 世界》

 [image of the Head of a GNU] (jpeg 7k) (jpeg 21k) 由於专利权问题,因此没有 gifs 图像


乔格的

《勇敢 GNU 世界》

中文翻译:柯 科 <tempnetbar@mail.china.com>

许可声明 如下

〈第四期〉

[CN | DE | FR | JA | ES | ZH]

Hello everybody, I am glad to present the fourth issue of the Brave GNU World. I'll begin this month's column by picking up some reaction I received after the first issue.

大家好,我很高兴能发表第四期《勇敢的 GNU 世界》。我会从选取在第一期之后我收到的一些反馈开始这期的专栏。

商业 GPL 软件?

After my article about the renaming of the LGPL I got some email complaining about my favoring the GPL over the LGPL. As an example let me quote an email by Marcel Ruff (note: the author translated this quote into English so you would understand it; the original quote can be found in the German version): "I think that all free Software should be released under the LGPL because it is of utmost importance for mixtures of commercial and free Software." This argument appears logical but it is based on a flawed assumption - let me elaborate.

在我的关於 LGPL 重新命名的文章发表之后,我收到了一些抱怨我更赞成 GPL 而不是 LGPL 的电子邮件。作为例子,让我引用 Marcel Ruff 的电子邮件。(注意:作者已经将对於 Marcel Ruff 的引用翻译成英语,这样你们就可以看得懂;原来的引用是德文的):「我认为所有的自由软件(Free Software)都应该在 LGPL 许可之下发行,因为这对於商业和自由软件的混合是极其重要的。」这个论点看上去合乎逻辑,但它是建立在一个有缺陷的假设上的 — 请让我详细地阐述。

What exactly is the difference between the LGPL and the GPL? The GNU General Public License grants each user the right to use, modify and copy software however he or she desires. To protect this right, code licensed by the GPL may never be used within proprietary programs. This is not the case with the LGPL. Even if the license of the code may never be changed, it explicitly allows use in all (even proprietary) programs. Proprietary means that a person or firm demands to be the only authority regarding who may possess or use a certain piece of software. But we have been talking about commercial software, which is software people or firms earn money with. This raises the main question, which is whether commercial software needs to be proprietary. The GNU Project has been saying for a long time that this is not the case, and the success of GNU/Linux has proven it.

LGPL 和 GPL 到底有什么不同呢? GNU 的 General Public License 准予每个使用者使用、任意修改和复制的权利。为了保护这个权力,得到 GPL 许可的代码不能用於私权(proprietary)的程序。这不是 LGPL 〔所要面对〕的问题。即使代码的许可证不能被改变,即使它明确地允许代码可在所有(甚至是私权的)的程序中使用。私权意思是一个人或一个公司要求成为唯一的,在关於谁能拥有或使用某份软件方面的权威〔地位〕。但我们所谈的商业软件是指人们或公司能够用来赚钱的软件。这就引出了主要的问题 — 商业软件究竟要不要成为私权的。 GNU 工程已经强调很久了,这并不是个问题,而且 GNU/Linux 的成功已经证明了一切。

There are a lot of reasons to release software as Free Software. The attempt to explain this to the managers has kept a lot of people busy for years, the most prominent example of these attempts being the "Open Source" movement.

有很多将软件作为自由软件发行的原因。向管理阶层解释这一切的试图,已经使许多人忙了好几年,这些努力最显著的例子就是「开放源码」(Open Source)运动。

But this is not about the advantages of Free Software, it is about the question whether the GPL or LGPL should be preferred. It certainly makes more sense to release some software under the LGPL, though this should be decided on a case by case basis. In general the GNU Project thinks the GPL should be preferred. One of the reasons for this is to give commercial Free Software an extra edge in competition. This extra edge combined with the advantages of Free Software may just be what a small firm needs to succeed.

而这并不是关於自由软件的优点的问题,而是关於是 GPL 还是 LGPL 应当被更推崇的问题。某些软件在 LGPL 之下发行当然比较有道理些,虽然这应该是由个别状况〔的判断〕基础上来加以决定的。一般而言, GNU 工程认为 GPL 应该是首选的。这样做的一个理由是可以给商业自由软件在竞争中一个额外的优势。这个额外的优势加上自由软件固有的优点可能就是一个小公司成功所需的。

That's theory for this month. My next topic will certainly be of interest to commercial software producers because choosing the right organisation for maintaining source code in a software project can be crucial. Even in projects with just one developer, a good structure can save many hours of work, and for distributed projects with multiple developers it can be almost life-saving. For this reason, I'd like to introduce

这就是本月的理论。我的下一个话题将无疑是对商业软件生产商来说感兴趣的,因为选一个正确的组织来在一个软件工程中维护源码是至关重要的。甚至对於只有一个开发人员的工程,一个好的结构可以节约许多工作时间,并且对於有许多开发人员分布开发的工程来说那几乎是节约生命的。由於这个理由,我想介绍:

Aegis(工程协调及代码维护系统)

Aegis [4] by Peter Miller is a tool which runs on almost all UNIX platforms, providing a system for project coordination and sourcecode maintenance. Since it is based on GNU Autoconf, installation is quick and easy. Like similar projects, Aegis has one central archive, the so-called repository. The repository contains all versions of the project since its start so one can easily go back to older versions or simultaneously develop two different branches of the project.

Aegis [4] 由 Peter Miller 制作,是一个几乎可以运行在所有 UNIX 平台上的工具。它提供系统工程协调及代码维护的功能。由於它是基於 GNU 的 Autoconf 的,所以安装是十分快捷的。如同类似的工程, Aegis 有一个中央档案柜,叫做仓库(repository)。这个仓库存有自从它使用开始所有的工程的版本号,所以我们可以很简单地回到就版本或同时开发一个工程的两个不同分支。

The repository is never changed directly. Developers create local source trees to work on. Changes made to the sourcecode are put into "Change Sets" where all changes during a work-cycle are being collected. Aegis is built around keeping the current versions running and as bug free as possible, so each Change Set incorporates at least one test. These tests become a part of the repository when the Change Set is being implemented into the repository; this makes it possible to assert that new code didn't break any old routines by running "historic" tests. By also tracking dependencies of source files in the repository, Aegis can suggest test programs that make sense with the new Change Set. A Change Set is accepted only if the included tests and a build succeed. In order to finally become part of the repository it needs to be reviewed and signed off once.

仓库不会被直接地改变。开发人员新建一个本地的源码树来工作。对於源码的改变被放入一个叫「改变集」(Change Sets)的东西中,它收集了在工作周期中所有对於源码的改变。 Aegis 是围绕保持现有版本尽可能无 BUG 运行的目的而开发的,所以每个改变集至少进行一次测试。当改变集被放入仓库时,这些测试成为仓库的一部分;这使得它能够通过运行「历史」(historic)来保证新的代码不会破坏任何老的程序。同时通过跟踪仓库中源文件的依赖关系(dependencies), Aegis 可以建议测试「与新的改变集〔可以〕合理地〔合在一起〕的程序」。一个改变集只有在「包含的测试」和「一次建立」成功之后才会被采用。为了最终成为仓库的一部分,改变集需要被复审(reviewed)并签署(signed off)一次。

This may sound a tad complicated but it does have certain advantages. With other systems it sometimes becomes a major problem that the system locks a file as soon as a developer announces he might be thinking about changing something in this file. This creates a bottleneck with popular files that is avoided by Change Sets. Aegis also integrates part of the quality assurance work within the development process without slowing it down noticeably. Signing off the changes could, for instance, be done by each developer, a central group of developers, an external committee or a project leader; whatever fits the project's needs best. In each case you have someone who authorized the changes. This system also ensures that the development process directly produces tested and running versions. This can be extremely valuable to firms because they are able to give a current version to their customers at any time.

这可能听上去有些复杂,但这样做确实有优点。对於其它系统来说,只要一位开发人员宣称他可能想要改变文件中的一些东西时,系统就会锁定那个文件。这有时成为一个主要的问题。对於经常使用到的文件这产生了一个瓶颈,而改变集可以避免它的发生。 Aegis 也在开发过程中集成了一部分质量保证工作,并且没有显著地减慢开发过程。签署改变 — 举个例子,可以由每个开发人员、一个核心开发人员的小组、一个外部的委员会或一个工程的主持人完成;只要最适合工程的需要即可。每次你让某个人审定改变后,这个系统能保证开发过程直接产生测试和运行版本。这可能对於公司来说极有价值,因为他们可以在任何时候给他们的客户一个最新版本。

What I personally liked a lot is the fact that local versions do not need to be insulated from the repository. Aegis supports push and pull updates, so a change in the repository can be transferred to the working directories automatically.

我个人最喜欢的一个特性就是本地版本不用和仓库分隔开。 Aegis 支持「推拉更新」(push and pull updates),所以在仓库中的一个改变可以被自动转移到工作目录中。

Without going into details too much let me just mention that Aegis supports multiple, distributed repositories, allows Change Sets to be transported by email or HTTP and has been written with regard to security aspects.

除了过多的深入细节,让我仅仅陈述一下 Aegis 支持多个、分布仓库,允许改变集被电子邮件或 HTTP 传输以及由於安全方面的原因被写成这样。

But now I'd like to talk about two projects that should be of interest to "normal" users, too. The maintainer of GNU Enscript, Markku Rossi, asked me to write a little bit about the status and plans of his project.

但我现在想谈谈也能使「普通」(normal)用户感兴趣的两个工程。 GNU Enscript 的维护者, Markku Rossi 让我写一些关於他的工程的状况和计划。

GNU Enscript(GNU 文稿编码软件)

GNU Enscript is a program to convert ASCII into PostScript, ANSI (terminal escape-sequences), HTML, Overstrike (nroff escape-sequences as in the manpages) or RTF.

GNU Enscript 是一个将 ASCII 转换成 PostScript 、 ANSI (terminal escape-sequences) 、 HTML 、 Overstrike (nroff escape-sequences as in the manpages) 或 RTF 的程序。

Although the code for it is being rewritten at the moment, GNU Encript does support language sensitive highlighting since version 1.5.1. This is somewhat similar to the "font lock modes" of Emacs. The type of file is recognised and certain parts of the text (for instance the comments in a C program) are highlighted in a user-defined way. One use, for example, would be publishing source code on the web by just running it through enscript once. If you are missing styles in your installation, the GNU Enscript homepage by Markku Rossi [5] is probably the place to go; Enscript currently supports 42 different languages and filetypes.

尽管它的代码正在重写, GNU Encript 从 1.5.1 版就支持语法高亮(highlighting)。这有些像 Emacs 的「字体锁定模式」(font lock modes)。文件的类型被识别后,特定的文本块(如 C 程序的注释)会以用户定义的方式高亮。例如它的一个用途是只要通过执行 enscript 一次就可以在网上发表源码。如果你在安装时缺少你需要的样式(styles),那么 Markku Rossi 的 GNU Enscript 主页 [5] 可能是你要去的地方, Enscript 现在支持四十二种不同的语言和文件类型。

The new highlighting engine is much faster and easier to configure than the previous one because it defines highlighting rules, styles and output languages in separate layers that can be changed without affecting each other. If you are interested in taking a look, the betaversion [6] is already using this new engine.

新的高亮引擎比以前的能更迅速更简单地配置,因为它定义了高亮规则、样式和在不同的层中输出语言 — 这样就可以在不互相影响的情况下被改变。如果你有兴趣看看的话,公开测试(beta)版 [6] 已经使用了这种新的引擎。

In this context I'd like to introduce another interesting project.

在接下去的内容中我将介绍另一个有趣的工程。

Ted(富文本处理软件)

Ted [7] is a simple rich text processor by Mark de Does. It allows the user to simply type away on an email or letter in wysiwyg style. Since RTF is being used as the native file format, exchanging documents with Microsoft Word or Wordpad is not a problem. Ted can also be used as the RTF viewer for Netscape. The goal of the project is to get an easy to use application for maximum portability with the "Windows-Sphere".

Ted [7] 是一个由 Mark de 制作的简单的富文本处理器(rich text processor)。它允许用户只要以所见即所得的方式,〔就可以〕写电子邮件或信件。由於 RTF 被作为本地文件格式,所以与微软的 Word 或 Wordpad 交换文档不是问题。 Ted 也可以被用作 Netscape 的 RTF 阅览器。此工程的目标是得到一个与 Windows 环境在最大程度上可以移植的使用简单的应用程序。

Although the author would prefer GTK+ by now, Ted is Motif based; getting the relations between screen and printer right and implementing other alphabets than Latin1 are paramount at the moment, though. Help on these tasks is welcome.

尽管作者到目前为止更喜欢用 GTK+ ,因为 Ted 是奠基於 Motif 之上的,但是屏幕和打印机的正确联系和实现除 Latin1 以外的字符集在目前是极为重要的。我们欢迎对於这些任务的帮助。

I'd like to end this issue with another idea of mine. When setting up a web page lately I wasn't able to find any "We run GNU" icons for webpages. Thinking about it I realized I have never seen such an icon. Please feel free to send design ideas as well as questions, comments and ideas regarding the column via email [1].

我想以我的另一个想法来结束这一期的杂志。当我最近建立一个网页的时候,我没法为网页找到任何「GNU 艺廊」原创(We run GNU)的图标。细想一下,我意识到我确实从未见过这样的图标。请通过电子邮件 [1] 随意发给我一些设计创意以及问题、意见和关於这个专栏的想法。

信息

[1] 请将想法、意见和问题送到 Brave GNU World <column@gnu.org>
[2] GNU 工程的首页 http://www.gnu.org/
[3] 乔格的《勇敢 GNU 世界》首页 http://www.gnu.org/brave-gnu-world/
[4] Aegis 首页 http://www.canb.auug.org.au/~millerp/aegis/
[5] Markku Rossi 的 GNU Enscript 首页 http://www.iki.fi/mtr/genscript/
[6] GNU Enscript 的公开测试(Beta)版 ftp://alpha.gnu.org/gnu/enscript-1.6.2.tar.gz
[7] Ted 首页 http://www.nllgg.nl/Ted/


下一期

返回 上一期 / 《勇敢 GNU 世界》首页

返回 GNU 首页

请将有关 自由软件基金会 与 GNU 的 查询 与 问题 送到 gnu@gnu.org 。 您也可以使用 其它方法联系 自由软件基金会。

请将有关乔格的《勇敢 GNU 世界》专栏的意见(以英文或德文)送到 column@gnu.org , 有关这些网页的意见送到 webmasters@www.gnu.org , 其它问题则送到 gnu@gnu.org

Copyright (C) 1999 Georg C. F. Greve, 德文版在 Linux-Magazin 出版

Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.

允许在不变更文档内容的前提下刊登本文副本在任何形式的媒体中,但需保留版权宣告和此声明。

Last modified: Fri May 2 11:51:34 CEST 2003