《勇敢 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