Thứ Ba, 18 tháng 6, 2013

Giấy phép Công cộng Chung GNU v2 (GPLv2) - Tổng quan


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.
GPL v2 History
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.
GPL v2 Main Features
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.
GPL v2 Other Features
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.
Common Myths about the GPL v2
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.
What Does The GPL v2 Do?
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.