The
GNU General Public License v2 - An Overview
By Rowan Wilson,
Published: 10 November 2005, Reviewed: 14 May 2012
Bài được đưa lên
Internet ngày: 14/05/2012
Giấy phép Công cộng
Chung GNU phiên bản 2 – GPL v2 (The GNU General Public License
v2) là giấy phép nguồn mở được sử dụng phổ biến
nhất. Khoảng 70% các dự án trong kho phần mềm Sourceforge
sử dụng GPLv2. Tài liệu này có ý định đưa ra các tính
năng chính của GPLv2 trong một tóm tắt thân thiện và
tổng thể, và đưa vào các lưu ý một số chi tiết về
lịch sử và sự sử dụng của giấy phép này. Bản thân
giấy phép này có thể đọc ở:
http://www.opensource.org/licenses/gpl-license.php.
Lịch sử của
GPLv2
Dự án GNU (viết tắt
tiếng Anh của GNU Không phải là UNIX) đã bắt đầu vào
năm 1984, khi Richard Stallman, một lập trình viên ở Viện
Công nghệ Massachusetts, đã quyết định rằng ông muốn
tạo ra một bộ sưu tập các phần mềm có thể được
phân phối và tùy biến thích nghi một cách tự do, không
có việc cấp phép sở hữu độc quyền bị hạn chế.
Stallman đã khó chịu khi mà văn hóa chia sẻ, sử dụng
và tùy biến thích nghi từng đặc trưng cho sự sáng
tạo và sử dụng phần mềm máy tính trng những năm 1970
đã dần biến mất. Khi mà bản thân phần mềm đã bắt
đầu được coi như là một sản phẩm có thể bán được,
thì đã trở nên thường xuyên hơn đối với các phần
mềm sẽ được phân phối theo các giấy phép cấm các
người sử dụng chỉnh sửa tùy biến nó hoặc truyền nó
cho những người khác. Hầu hết các lập trình viên đã
chấp nhận rằng điều này là không thể tránh khỏi nếu
sản xuất phần mềm trở thành một nền công nghiệp,
nhưng Stallman đã không đồng tình. Vì thế ông đã muốn
tạo ra toàn bộ một hệ điều hành (Hurd) và bộ công cụ
đi kèm (GNU) mà có thể sẵn sàng theo một giấy phép cho
phép tự do sử dụng, tái phân phối và sửa đổi mã.
Trong năm 1985 ông đã thành lập Quỹ Phần mềm Tự do –
FSF (Free Software Foundation), một tổ chức phi lợi nhuận
mà mục tiêu của nó là hỗ trợ cho các dự án phần
mềm tự do (PMTD) như GNU, và cũng tạo ra các giấy
phép mà có thể đáp ứng được các mục tiêu của phong
trào PMTD.
Cụm từ PMTD có trước
phần mềm nguồn mở (PMNMP) hơn 10 năm. Đối với
nhiều người thì nó vẫn là mô tả được ưu tiên đối
với những gì mà họ đang tạo ra.
Dù các nguyên lý cơ
bản của PMTD từng được thiết lập trước trong dự án
GNU, thì cho tới trước năm 1989 nó còn chưa được đưa
vào một giấy phép mà có thể dễ dàng lấy và áp dụng
được cho bất kỳ mẩu phần mềm nào đối với người
chủ sở hữu của nó. Cho tới thời điểm đó thì các
giấy phép cho phần mềm GNU từng được viết trên cơ sở
đặc biệt cho từng phát hành phần mềm, và thường được
đi với những tham chiếu trực tiếp tới phần mềm mà
họ đã cấp phép. Điều này đã tạo ra phiền phức để
sử dụng lại. Giấy phép GPLv1 đã giải quyết được
vấn đề này đơn giản bằng việc tham chiếu tới Chương
trình đó. Vào năm 1991, GPL v1 đã được rà soát lại
thành GPLv2, dù những thay đổi được thực hiện từng
hoàn toàn theo cách diễn đạt hơn là hiệu ứng pháp lý.
Cũng trong năm 1991, Giấy phép Công cộng Chung Thư viện
(hoặc Ít hơn) – LGPL v2.1 (Library
(or Lesser) General Public License) cũng đã được FSF phát
hành, làm việc được với các trường hợp đặc biệt
theo đó nó có thể có mong muốn đối với PMTD để tương
tác gần gũi hơn với phần mềm được phát hành với
một giấy phép không tương thích với GPLv2, như một giấy
phép sở hữu độc quyền chẳng hạn. GPL
v3 đã được FSF xuất bản vào năm 2007.
Các tính năng chính
của GPLv2
GPLv2, gần giống như
bất kỳ giấy phép nào, trao các quyền theo các điều
khoản nhất định. Chúng được liệt kê ngắn gọn ở
đây. Một phần mềm được cấp giấy phép GPL v2 có thể:
- sao chép và phân phối mã nguồn chưa được sửa đổi của chương trình (Phần 1)
- sửa đổi mã nguồn của chương trình và phân phối nguồn được sửa đổi (Phần 2)
- phân phối các phiên bản được biên dịch của chương trình, cả được sửa đổi và không được sửa đổi (Phần 3) miễn là:
- tất cả các bản sao (được sửa đổi hay không) mang một lưu ý bản quyền và sự loại trừ đảm bảo (Phần 1 và 2)
- tất cả các bản sao được phân phối theo GPLv2 (Phần 2)
- tất cả các phiên bản được biên dịch của chương trình được đi kèm với mã nguồn tương ứng, hoặc một sự mời chào có thể sống được để làm cho mã nguồn là sẵn sàng (Phần 3)
Các mục tiêu của
FSF có thể được thấy rõ ràng trong các điều khoản và
sự trao tặng. Chúng cho phép bất kỳ ai sử dụng, sao
chép, phân phối và sửa đổi phần mềm theo các điều
kiện nhất định. Ý định của các điều khoản đó có
lẽ là ít rõ ràng hơn. Chúng có ý định để bảo vệ
tác giả của phần mềm khỏi các vấn đề tiềm tàng
khác nhau. Ví dụ, ai đó có thể sử dụng phần mềm vì
một số mục đích sống còn, và sau đó cố gắn kiện
tác giả nếu phần mềm hỏng; vì lý do này sự khẳng
định được lặp đi lặp lại về loại trừ các đảm
bảo là cơ bản.
Một số người có
thể vờ như là phần mềm là tác phẩm của riêng họ
nếu giấy phép không khăng khăng về một sự đưa vào
đầy đủ thông tin bản quyền gốc ban đầu. Ai đó có
thể lấy đi chương trình, sửa đổi nó (hoặc không) rồi
sau đó ngụ ý để cấp phép lại nó theo một cách thức
mà làm cho nó không còn là tự do nữa; vì lý do này mà
giấy phép khăng khăng rằng bản thân chương trình và tất
cả các chương trình dựa vào nó phải được làm cho sẵn
sàng theo giấy phép GPLv2 nếu chúng đúng là được làm
cho sẵn sàng. Nguồn của chương trình, và tất cả các
phiên bản sửa đổi, cũng phải được làm cho sẵn sàng;
nếu không, quyền được trao để sửa đổi là không thể
thực thi được.
Các tính năng khác
của GPLv2
Mỗi người nhận mới
một mẩu phần mềm được cấp phép GPLv2 nhận được
giấy phép của họ từ người cấp phép gốc ban đầu
(hoặc những người cấp phép, nếu tác phẩm từng được
một hoặc nhiều người sửa đổi), bất kể từ đâu
bản thân phần mềm có thể kiếm được. Như được nêu
rõ ràng trong phần 6, không có việc cấp phép phụ tiếp
các quyền được trao từ một người nhận này cho một
người nhận khác.
Nó tuân theo từ điều
này, và sự trao tặng được nêu ở trên, rằng không ai
có thể đặt ra bất kỳ hạn chế nào lên mẩu phần mềm
được cấp phép GPLv2. Nếu bạn chọn cách truyền phần
mềm đó cho một bên thứ 3, thì họ sẽ có được giấy
phép y hệt mà bạn đã có. Nếu bạn đã sửa đổi phần
mềm, thì bạn đã đồng ý rồi để phát hành những
thay đổi mà bạn làm theo GPLv2, nếu những thay đổi đó
sẽ thực sự được phân phối. Kết quả của điều này
là, có thể là khó để kết hợp mã mà bạn nhận được
theo GPLv2 với mã mà bạn nhận được theo giấy phép
khác. Nếu giấy phép khác có bất kỳ hạn chế nào không
có trong GPLv2, thì sự kết hợp đó không thể được
phân phối hợp pháp được. Vấn đề cấp phép này có
nghĩa là chỉ một số ít các giấy phép rất dễ dãi
thực sự là tương thích được với GPLv2.
Phần 7 của GPLv2 nói
rõ một hệ quả khác của sự trao tặng và các điều
kiện của giấy phép. Nếu một tòa án phán quyết rằng
ai đó đang phân phối phần mềm được cấp phép GPLv2 sẽ
phải làm thế với một hạn chế bổ sung - ví dụ một
khoản tiền vì sử dụng một bằng sáng chế thuộc về
ai đó khác - thì điều này có nghĩa là người phân phối
đó phải dừng hoàn toàn việc phân phối phần mềm được
cấp phép GPLv2 đó.
Những chuyện hoang
đường phổ biến về GPLv2
Vài chuyện hoang đường
đã nổi lên xung quanh GPLv2. Trước tiên, nhiều người
tin rằng việc sửa đổi phần mềm được cấp phép GPL
có nghĩa là bạn có nghĩa vụ phải phát hành phiên bản
sửa đổi của bạn cho thế giới. Điều này là không
đúng. GPLv2 đơn giản nói những gì phải phải làm nếu
bạn chọn để phân phối mã được sửa đổi. Bạn có
sự tự do để sửa đổi phần mềm được cấp phép
GPLv2 bất kỳ cách gì bạn muốn và giữ những sửa đổi
đó cho sự sử dụng riêng của bạn.
Cũng thường phổ
biến được tin tưởng rằng phần mềm được cấp phép
GPLv2 không thể được đánh đống cùng với phần mềm
không được cấp phép GPLv2 trong một bộ sưu tập các
phần mềm, hoặc là nếu làm thế, thì sau đó tất cả
các phần mềm phải được cấp phép lại theo GPLv2. Một
lần nữa, điều này là sai. Phần 2 của GPLv2 nói rằng
những kết hợp như vậy sẽ không được điều chỉnh
như một tổng thể theo các điều kiện của giấy phép.
Cuối cùng, rất phổ
biến được nghe thấy rằng GPLv2 (và các giấy phép chung
khác) là không ràng buộc đối với người được cấp
phép vì không có thỏa thuận nào rõ ràng giữa người
được cấp phép và người cấp phép. Điều này sinh ra
từ một sự hiểu sai về cách mà việc cấp phép phổ
biến như vậy có ý định để vận hành. Phần 5 của
GPLv2 mở rộng chủ đề này. Bản quyền của tư liệu
được phân phối theo GPLv2 thuộc về người cấp phép.
Một người được cấp phép tiềm năng có thể không sao
chép, tùy biến thích nghi hoặc phân phối tư liệu này mà
không có một số dạng giấy phép từ người chủ sở
hữu. GPLv2 cung cấp một con đường cho một người được
cấp phép tiềm năng để sao chép, tùy biến thích nghi
hoặc phân phối một cách hợp pháp tư liệu đó, miễn
là họ tuân thủ các điều kiện của giấy phép. Bất kỳ
ai mà vi phạm các điều kiện của giấy phép và sau đó
viện lý rằng họ đã không đồng ý với các điều kiện
đó, hoặc họ không hiểu biết về chúng, cũng có khả
năng viện lý rằng họ đã không có kiến thức về một
giấy phép mà đã cho phép họ sử dụng tư liệu đó ngay
từ đầu.
GPLv2 làm được
gì?
Những lưu ý bên dưới
có ý định tóm tắt các điểm nổi bật của GPLv2. Chúng
không có ý định như một mô tả đầy đủ các tính
năng của giấy phép.
- nó đảm bảo rằng các phiên bản được sửa đổi của mã mà nó bao trùm vẫn giữ là phần mềm tự do và mở
- nó có ý định lan truyền rộng cách thức copyleft bằng việc bắt buộc phải sử dụng GPLv2 cho những tùy biến thích nghi được phân phối đối với mã được cấp phép GPLv2
Trong năm 2007 FSF đã
xuất bản GPLv3. Tuy nhiên, GPLv2 tiếp tục được sử dụng
rộng rãi nhất.
OSS Watch đã có một
tài liệu nhấn mạnh các vấn đề pháp lý chính để cân
nhắc khi Làm
cho mã của bạn sẵn sàng theo một giấy phép nguồn mở
(bản
dịch tiếng Việt).
The
GNU General Public License v2 (GPL v2 for short) is the most commonly
used open source licence. Approximately 70% of the projects in the
software repository Sourceforge use the GPL v2. This document
attempts to draw together the main features of the GNU General Public
License v2 into a friendly and comprehensible digest and, in
addition, to note some details about its history and usage. The
licence itself can be read at
http://www.opensource.org/licenses/gpl-license.php.
The
GNU project (short for GNU’s Not UNIX) began in 1984, when Richard
Stallman, a programmer working at Massachusetts Institute of
Technology, decided that he would like to create a collection of
software which could be distributed and adapted freely, without
restrictive proprietary licensing. Stallman had become frustrated
that the culture of share,
use and adapt that had
characterised the creation and use of computer software in the 1970s
had gradually faded away. As software itself began to be seen as a
marketable product, it became more normal for software to be
distributed under licences which forbade the user from altering it or
passing it on to others. Most programmers accepted that this was
inevitable if software production was to become an industry, but
Stallman disagreed. Thus he set about coding an entire operating
system (Hurd) and accompanying toolset (GNU) that would be available
under a licence that permitted free use, redistribution and
modification of the code. In 1985 he set up the Free Software
Foundation (FSF), a not-for-profit organization whose aim was to
support free software
projects such as GNU, and also to formulate licences that would meet
the aims of the free software movement.
The
expression free software
pre-dates open source
by more than 10 years. For many it remains the preferred description
of what they are creating.
Although
the basic principles of free software were established early on in
the GNU project, it was not until 1989 that they were distilled into
a licence that could be easily taken up and applied to any piece of
software by its owner. Up to that point licences for GNU software had
been written on an ad-hoc basis for each software release, and were
often peppered with direct references to the software they licensed.
This made them troublesome to reuse. The GNU General Public License
version 1 solved this problem by simply referring to the Program.
In 1991 the GPL v1 was revised to version 2, although the changes
made were entirely in phraseology rather than legal effect. Also in
1991, the Library
(or Lesser) General Public License (LGPL) v2.1 was released by
the FSF, to deal with special cases in which it might be desirable
for free software to interact closely with software released with a
licence that is incompatible with the GPL v2, such as a proprietary
licence. A third version of the licence, GPL
v3, was published by the FSF in 2007.
The
GPL v2, like nearly any licence, grants rights under certain
provisos. These are briefly listed here. A licensee of GPL
v2-licensed software can:
- copy and distribute the program’s unmodified source code (Section 1)
- modify the program’s source code and distribute the modified source (Section 2)
- distribute compiled versions of the program, both modified and unmodified (Section 3) provided that:
- all distributed copies (modified or not) carry a copyright notice and exclusion of warranty (Section 1 and 2)
- all modified copies are distributed under the GPL v2 (Section 2)
- all compiled versions of the program are accompanied by the relevant source code, or a viable offer to make the relevant source code available (Section 3)
The
aims of the FSF can be seen clearly in these grants and provisos.
They allow anyone to use, copy, distribute, and modify the software
under certain conditions. The intent of the provisos is perhaps less
obvious. They are intended to protect the software’s author from
various potential problems. For example, someone could use the
software for some critical purpose, and then try to sue the author if
it failed; for this reason the insistence on exclusion of warranties
is essential. Someone could pretend the software was their own work
if the licence did not insist upon a full inclusion of the original
copyright information. Someone could take the program, modify it (or
not) then purport to relicense it in a way that made it non-free; for
this reason the licence insists that the program itself and all
programs based on it must be made available under the GPL v2 if they
are made available at all. The source to the program, and all
modified versions, must also be made available; if not, the granted
right to modify is impossible to exercise.
Every
new recipient of a GPL v2-licensed piece of software receives their
licence from the original licensor (or licensors, if the work has
been modified by one or more people), no matter from where the
software itself may have been obtained. As explicity stated in
section 6, there is no sub-licensing of the rights granted from one
recipient to another.
It
follows from this, and the grants quoted above, that no-one can place
additional restrictions on a GPL v2-licensed piece of software. If
you choose to pass on the software to a third party, they will get
the same licence that you did. If you have modified the software, you
have already agreed to release the changes you make under the GPL v2,
if they are released at all. As a result of this fact, it can be
difficult to combine code that you receive under the GPL v2 with code
that you receive under another licence. If the other licence contains
any restrictions that are not present in the GPL v2, then the
combination cannot be legally distributed. This licensing issue means
that only a small set of very permissive licences are actually
compatible with the GPL v2.
Section
7 of the GPL v2 explicitly spells out another consequence of the
licence’s grants and conditions. If a court rules that someone
distributing GPL v2-licensed software must do so with an additional
restriction - for example a charge for use of a patent belonging to
someone else - then this means that the distributor must stop
distributing the GPL v2-licensed software entirely.
Several
myths have grown up around the GPL v2. Firstly, many people believe
that modifying GPL v2-licensed software means that you are obliged to
release your modified version to the world. This is not true. The GPL
v2 simply states what you must do if
you choose to release the modified code. You are at liberty to modify
the GPL v2-licensed software in any way you like and keep your
modifications for your own private use.
It
is also commonly believed that GPL v2-licensed software cannot be
bundled with non-GPL v2 software in a collection of software, or that
if it is, then all the software must be relicensed under the GPL v2.
Again, this is false. Section 2 of the GPL v2 states that such mere
aggregations are not
governed as a whole by the conditions of the licence.
Finally,
it is very common to hear that the GPL v2 (and other general
licences) are not binding on the licensee because there is not
explicit agreement between the licensee and the licensor. This
results from a misunderstanding of the way that such general
licensing is intended to function. Section 5 of the GPL v2 expands
upon this subject. The copyright of the material distributed under
the GPL v2 belongs to the licensor. A potential licensee may not
copy, adapt or distribute this material without some kind of licence
from the owner. The GPL v2 supplies a route for a potential licensee
to legally copy, adapt or distribute the material, provided that they
abide by its conditions. Anyone who broke the conditions of the
licence and then argued that they had not agreed to them, or that
they were unaware of them, would also be arguing that they had no
knowledge of a licence that permitted them to use the material in the
first place.
These
bullets are intended to summarise the salient points of the GPL v2.
They are not intended as a full description of its features.
- it ensures that modified versions of the code it covers remain free and open source
- it attempts to spread copyleftism by mandating the use of the GPL v2 for distributed adaptations of GPL v2-licensed code
In
2007 the FSF published the third version of the GPL. However, the GPL
v2 contiues to be wdely used.
OSS
Watch has produced a document that highlights the main legal issues
to consider when Making
your code available under an open source licence.
Dịch: Lê Trung Nghĩa
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.