Thế giới của giấy phép: hiểu GNU GPL. Tại sao bạn không nên sử dụng GNU GPL để cấp phép cho phần mềm của mình

Mặc dù thực tế GitHub là dịch vụ lớn nhất thế giới dành cho sự hợp tác Ngoài nguồn mở, một phần quan trọng của các dự án được lưu trữ ở đó chính thức không liên quan gì đến Nguồn mở. Và hoàn toàn không phải vì tác giả của họ thích các giải pháp độc quyền hơn. Có rất nhiều phần mềm được xuất bản trên máy chủ mà không có bất kỳ giấy phép nào.

Rõ ràng, có khá nhiều nhà phát triển coi vấn đề cấp phép, nếu không muốn nói là hoàn toàn không quan trọng thì chắc chắn chỉ có tầm quan trọng thứ yếu. Ví dụ: trong một bài viết về vấn đề này được xuất bản trên Fossbytes.com, tác giả, ẩn dưới bút danh gdad-s-river, báo cáo rằng anh ta chọn một giấy phép một cách ngẫu nhiên. Nhưng hoàn toàn không phải vì chủ nghĩa hư vô pháp lý - anh ấy chắc chắn rằng dự án của mình không đặc biệt thú vị với người khác và mã của anh ấy sẽ không được sử dụng để tạo ra các công cụ khác.

Nhưng ví dụ của anh ấy không thể mang tính biểu thị. Nếu một nhà phát triển dự định tạo ra một sản phẩm mà trong tương lai người khác có thể sử dụng để xây dựng phiên bản gốc của riêng họ thì vấn đề chọn giấy phép là vô cùng quan trọng đối với anh ta. Có thể có nhiều lựa chọn ở đây:

  • Giấy phép Apache 2.0;
  • BSD 3 (BSD mới);
  • BSD 2 (FreeBSD);
  • Giấy phép Công cộng GNU (GPL) v3.0;
  • Giấy phép Công cộng Chung GNU Ít hơn (LGPL);
  • Giấy phép MIT;
  • Giấy phép Công cộng Mozilla 2.0;
  • Giấy phép phát triển và phân phối chung;
  • Giấy phép Công cộng Eclipse;
  • Bằng sáng chế.

Chắc chắn một danh sách như vậy sẽ có vẻ nhỏ đối với một luật sư chuyên nghiệp và anh ta sẽ dễ dàng hiểu được các đặc điểm của một giấy phép cụ thể. Tuy nhiên, không dễ để một chuyên gia kỹ thuật có thể hiểu được ý nghĩa ẩn sau những công thức rõ ràng là quá tải theo quan điểm của mình. Hơn nữa, không phải tất cả các nhà phát triển đều hiểu tại sao cần phải có giấy phép và tin tưởng một cách chân thành rằng phần mềm miễn phí ngụ ý rằng không có bất kỳ hạn chế nào.

Trong thực tế, tất cả các giấy phép mở chỉ có một mục đích thực dụng. Họ xây dựng các quy tắc mà các nhà phát triển khác nên tuân theo nếu họ quyết định sử dụng mã của người khác bằng cách nào đó. Đây có thể là việc tạo ra một sản phẩm phái sinh hoặc đóng góp vào sự phát triển của sản phẩm gốc.

Giấy phép mở có thể được chia thành nhiều loại lớn. Mỗi người trong số họ có những đặc điểm riêng theo quan điểm ứng dụng thực tế. Rất có thể, các nhà phát triển khi bắt đầu dự án của mình nên tập trung cụ thể vào các loại giấy phép, chọn loại phù hợp nhất cho mình.

Giấy phép Công cộng GNU

Loại giấy phép này cho phép bạn sao chép mã nguồn mà không có bất kỳ hạn chế nào. Các bản sao có thể được đặt trên máy trạm và máy chủ và việc này có thể được thực hiện không giới hạn số lần.

Ngoài ra, GNU GPL không áp đặt bất kỳ hạn chế nào đối với việc phân phối các chương trình, cả về số lượng hoặc hình thức. Mã có thể được chuyển đến các ổ đĩa đặc biệt, bạn có thể cung cấp liên kết tải xuống, thậm chí bạn có thể in nó ra giấy và phân phát cho mọi người.

Loại giấy phép này cho phép bất kỳ cá nhân hoặc pháp nhân nào tính phí cho dịch vụ phân phối phần mềm. Đúng, người mua tiềm năng phải được cảnh báo rằng người bán không có bất kỳ độc quyền nào, do đó, giải pháp tương tự có thể được nhận hoàn toàn miễn phí. Chất lượng này cũng giúp bạn có thể giải thích chính xác mức phí đó là gì.

Cuối cùng, GNU GPL cho phép bạn thực hiện bất kỳ thay đổi nào đối với mã, loại bỏ hoặc thêm bất kỳ chức năng nào. Đúng, chỉ với điều kiện sản phẩm thu được theo cách này cũng phải được phân phối theo các điều khoản của cùng một giấy phép.

Các nhà phát triển nên biết rằng việc sử dụng GNU GPL đòi hỏi phải tuân thủ các tiêu chuẩn mã nhất định. Bên trong nó, các bình luận nên đặt ra các yêu cầu cấp phép.

Giấy phép Công cộng GNU Ít hơn

Tên trước đây của loại giấy phép này là Giấy phép Công cộng Chung của Thư viện GNU. LGPL thường được sử dụng nhiều nhất cho các thư viện phần mềm, vì nó cho phép chúng không chỉ được sử dụng trong các ứng dụng miễn phí mà còn cả các ứng dụng độc quyền.

Phần mềm độc quyền sử dụng mã LGPL dưới dạng thư viện dùng chung. Biện pháp này đảm bảo sự phân biệt giữa các thành phần đóng và mở trong chương trình và bản thân giấy phép không yêu cầu nguồn mở của toàn bộ giải pháp.

LGPL, không giống như GPL, là một sự thỏa hiệp. Nó không đảm bảo cho người dùng quyền tự do hoàn toàn đối với tất cả các sản phẩm phái sinh, nhưng nó cho phép sử dụng nguồn mở trong các giải pháp độc quyền và các mô-đun mở phải luôn mở.

Giấy phép BSD

Một số lập trình viên coi BSD là một giấy phép thực sự miễn phí và ở một khía cạnh nào đó họ đã đúng. Quả thực, BSD đặt ra rất ít hạn chế đối với việc sử dụng mã so với các giấy phép khác.

Về cơ bản, nhà phát triển BSD cho phép mã của họ được sử dụng trong cả ứng dụng nguồn mở và ứng dụng độc quyền. Tính chất này được sử dụng rộng rãi trong thực tế, kể cả trong các dự án lớn. Đặc biệt, một số thành phần FreeBSD đã được đưa vào hệ điều hành Mac OS X.

Tính năng chính của BSD 3, thường được gọi là BSD New, là hạn chế sử dụng tên nhà phát triển trong các sản phẩm phái sinh. Trong thực tế, điều đó có nghĩa là theo mặc định, nó cấm sử dụng tên tác giả để quảng cáo các chương trình khác - điều này cần có sự cho phép đặc biệt của tác giả.

Giấy phép MIT

Đây là giấy phép ngắn nhất. Có lẽ đây chính là lý do khiến nó ngày càng được ưa chuộng. Trên thực tế, cô ấy cho phép mọi thứ.

Theo giấy phép MIT, bản sao của phần mềm và tất cả tài liệu đi kèm có thể được sửa đổi, cải tiến, bổ sung, sử dụng trong các dự án khác, được bán và phân phối miễn phí với điều kiện là văn bản giấy phép phải có trong tất cả các bản sao. Yêu cầu này rõ ràng là hoàn toàn nhẹ nhàng và việc thực hiện nó không hề khó khăn.

Commons sáng tạo

Nhóm giấy phép này không dành cho phần mềm mà dành cho “các sản phẩm liên quan”: ảnh, bản vẽ, văn bản, dự án thiết kế, v.v. Trước hết, vì Creative Commons không yêu cầu đưa văn bản giấy phép vào tác phẩm, bạn chỉ cần cần chỉ rõ ký hiệu chữ cái thích hợp.

Không có quy tắc nghiêm ngặt nào cho tất cả các giấy phép Creative Commons. Một số trong số chúng thậm chí có thể loại trừ lẫn nhau và điều đó không có gì sai nếu xét đến phạm vi áp dụng của chúng.

Đặc biệt, Creative Commons có thể cho phép sao chép và phân phối không hạn chế nhưng có thể không cho phép bất kỳ sửa đổi nào. Điều này có vẻ lạ đối với các lập trình viên, nhưng rất có thể một nghệ sĩ sẽ thấy điều kiện này khá hợp lý.

Giấy phép Apache

Giấy phép Apache có một tính năng thú vị đối với nhiều nhà phát triển - nó không yêu cầu tính bất biến của giấy phép. Do đó, các quy tắc phân phối phiên bản sửa đổi của chương trình có thể khác với quy tắc ban đầu.

Tất nhiên, quyền thay đổi giấy phép không có nghĩa là có khả năng bị thu hồi giấy phép. Không ai có quyền thay đổi các điều kiện đã được xác định một lần.

Trước hết, tôi muốn lưu ý rằng bản thân tôi là người ủng hộ nhiệt tình các ý tưởng làm nền tảng cho phong trào Nguồn mở. Tuy nhiên, thời gian gần đây ở Nga và nước ngoài ngày càng xuất hiện nhiều bài viết chỉ trích, bộc lộ nhiều khuyết điểm khác nhau của phong trào này. Bài viết này là một nỗ lực nhằm tóm tắt những lời chỉ trích mang tính xây dựng đối với phong trào Nguồn mở, phần nào được trau chuốt bằng những suy nghĩ của chính tác giả về chủ đề này.

Trước khi bắt tay vào phân tích quan trọng, chúng ta hãy một lần nữa nêu lên những lý do đã thúc đẩy Richard Stallman tạo ra GNU. Đây là sự thống trị của phần mềm độc quyền (CPS). sự khép kín nghĩa là gì? Sự khép kín trong trong trường hợp này có nghĩa là (a) bạn, với tư cách là người dùng đã mua chương trình, không có quyền chia sẻ chương trình đó với bất kỳ ai, (b) nghiên cứu cách chương trình này hoạt động, (c) thay đổi chương trình theo nhu cầu của bạn. Làm thế nào điều này đạt được? Thứ nhất, đây là một thỏa thuận cấp phép, thứ hai, thiếu mã nguồn các chương trình.

Vào buổi bình minh của kỷ nguyên máy tính, tất cả các chương trình đều mở, hacker (lúc đó chỉ có hacker là người dùng) thoải mái chia sẻ các chương trình và nguồn của chúng với nhau. Và có thiên đường trên trái đất :). Nhưng bây giờ, máy tính đã có người dùng! Máy tính và do đó các chương trình đã trở nên có lãi khi bán. Đương nhiên, các công ty bắt đầu đóng cửa chương trình của họ và thiên đường kết thúc. Dự án GNU không gì khác hơn là một nỗ lực để lấy lại nó. :)

Tại sao việc đóng chương trình lại nguy hiểm? Trên hết, chính Stallman đã trả lời câu hỏi này chẳng hạn. Tôi sẽ chỉ đưa ra một vài ví dụ. Việc cấm chia sẻ bản sao chương trình của bạn với bất kỳ ai sẽ tạo ra một môi trường không lành mạnh trong xã hội. Stallman đưa ra ví dụ sau: một hacker đến gặp một hacker khác và nói,
- Bạn ơi, driver máy in của bạn bị lỗi, cho mình bản raw, mình tự sửa.
Và anh ấy trả lời anh ấy,
- Xin lỗi bạn, tôi không thể, tôi sẽ bị sa thải vì điều này.
Nói cách khác, lệnh cấm này làm suy yếu cơ sở hợp tác. Hai lệnh cấm học tập và thay đổi chương trình cuối cùng dẫn đến trình độ học vấn của các lập trình viên bị giảm sút. Mỗi lần họ cố gắng tìm hiểu một công nghệ mới, họ lại nhận được một thỏa thuận cấp phép.

Ai đó có thể nói rằng giấy phép không cho chúng ta biết chúng ta cần phải đi đâu và cần học những gì. Đúng, đây là điều đang diễn ra hiện nay, nhưng chúng ta hãy nghĩ xem loại ý thức pháp luật nào đang được trau dồi trong xã hội? Đúng vậy, không có gì cả, và đây là một lý do khác đã thôi thúc Stallman tạo ra GNU.

Làm thế nào những vấn đề này có thể được giải quyết? Phần mềm phải miễn phí! Điều đó có nghĩa là gì? Để trả lời câu hỏi này, chúng ta hãy xem GNU GPL (đây là giấy phép theo đó phần mềm miễn phí được phát hành). Nói tóm lại và rất đơn giản, GPL là giấy phép phần mềm cung cấp cho bạn năm quyền cơ bản:

  1. Bạn, với tư cách là tác giả của chương trình, có quyền tác giả của chương trình
  2. Bạn có thể sử dụng chương trình (sau đây chúng ta đang nói về một chương trình được cấp phép theo GPL)
  3. Bạn có thể sửa đổi chương trình
  4. Bạn có thể tự do phân phối chương trình
  5. Bạn có thể kiếm lợi nhuận bằng cách bán chương trình hoặc thực hiện bất kỳ hoạt động thương mại nào khác liên quan đến chương trình nhưng không tuân theo điều khoản sử dụng. Đồng thời, bạn có nghĩa vụ phân phối nó cùng với mã nguồn.

GPL KHÔNG cấp cho bạn quyền từ chối các quyền được liệt kê ở trên đối với bất kỳ ai khác. Chơi chữ buồn cười phải không? Điều này theo nghĩa đen có nghĩa như sau: khi chuyển một bản sao của chương trình cho ai đó, bạn có nghĩa vụ chuyển cho người đó tất cả các quyền và nghĩa vụ mà giấy phép này áp đặt cho bạn. Nói cách khác, bạn không thể cấp lại giấy phép cho chương trình. Điều này là cần thiết để bảo vệ chương trình, và bằng cách mở rộng cộng đồng phần mềm miễn phí, khỏi những doanh nhân vô đạo đức, những người có thể sử dụng mã chương trình trong sản phẩm độc quyền của họ. Điều khoản này buộc họ hoàn toàn không được sử dụng chương trình hoặc phát hành sản phẩm của mình theo GPL, từ đó làm giàu cho cộng đồng. Bạn có thể đọc thêm về cơ chế này.

Bây giờ chúng ta hãy liệt kê những nhược điểm chính của GNU GPL, và theo đó, thị trường phần mềm miễn phí mà nó tạo ra. Thật vậy, bất kỳ giấy phép nào cũng tạo ra một thị trường.

  • Người dùng thiếu cơ chế tài trợ rõ ràng, dẫn đến thiếu hoặc chất lượng kém của các chương trình mà người dùng cần.
  • Bản chất "đóng" của các chương trình nguồn mở. Nghe có vẻ buồn cười phải không?

Về điểm đầu tiên, mọi thứ ít nhiều đều rõ ràng ở đây; lợi nhuận được tạo ra bởi các công ty tham gia vào việc bán phân phối phần mềm miễn phí cũng như tất cả các hình thức hỗ trợ và đào tạo. Việc tiền có đến tay một lập trình viên cụ thể hay không là do bạn quyết định, rất có thể là không.

Thế còn tuyên bố rằng phần mềm mã nguồn mở thực sự đã đóng cửa? nghĩa là gì? Khi GNU GPL được tạo ra, không có cái gọi là "vấn đề dự án lớn“Thực tế là đối với một dự án rất lớn và phức tạp, thông tin về các khái niệm và ý tưởng cơ bản của nó có giá trị hơn nhiều so với mã nguồn. Trên thực tế, nhóm lập trình viên sở hữu ý tưởng chứ không phải mã nguồn có một mã lợi thế lớn hơn. Bạn có thể đọc thêm về điều này trong một bài viết của một trong những người đồng hương cũ của chúng tôi.

Nói cách khác, thông tin về các khái niệm chính của dự án sẽ trở thành vốn cho phép bạn duy trì quyền lực đối với dự án, ngay cả khi được phân phối cùng với mã nguồn. Chính nguyên tắc của GNU - phần mềm miễn phí - đang bị xói mòn. Thực ra, ở đây nó nên được đọc như những ý tưởng tự do, bởi vì đó là bản chất nguyên thủy. Ý tưởng nên được miễn phí!

Bài báo nêu trên nhấn mạnh rằng phương pháp "đóng" chương trình này hiện được sử dụng rộng rãi trong thế giới phần mềm "miễn phí", kể cả trong các dự án trọng điểm như phát triển nhân Linux.

Lý do tại sao điều này xảy ra? Có lẽ kẻ thù độc ác đã xâm nhập vào trại của chúng tôi? Không, điều này được thực hiện bởi những người làm việc quên mình vì lợi ích của cộng đồng phần mềm miễn phí. Nhưng tại sao? Để trả lời câu hỏi này, chúng ta sẽ phải thực hiện một chuyến tham quan ngắn vào tâm lý nhân cách.

Nói một cách tổng quát, theo Frome, chúng ta có thể phân biệt hai nguyên mẫu chính của con người: người sáng tạo và người tiêu dùng. Đơn giản là niềm vui của người sáng tạo khi tạo ra thứ gì đó và trao nó cho mọi người - hãy để họ sử dụng nó. Đây là những người đã tạo ra GNU. Người tiêu dùng có nhu cầu tiêu dùng thường xuyên; tiền bạc, danh vọng, quyền lực, v.v. Những người muốn biết tại sao điều này xảy ra và làm thế nào những nguyên mẫu này được hình thành ở những người cụ thể đều có thể tham khảo Freud và chính Frome. Trên thực tế, cả hai nguyên mẫu này đều được thể hiện ở mỗi người, nhưng ở những mức độ khác nhau. Một số thiên về người sáng tạo hơn, một số thiên về người tiêu dùng hơn. Nhưng ngay cả trong người sáng tạo thuần túy nhất cũng có một lượng nhỏ người tiêu dùng.

Bây giờ chúng ta hãy nhìn qua lăng kính này những người lãnh đạo các dự án nhân Linux quan trọng. Tất nhiên, họ là những người sáng tạo, họ đáng để noi theo, nhưng điều gì sẽ xảy ra với “mạch máu” nhỏ bé đó của người tiêu dùng, chủ sở hữu? Nó nhận ra mình khi sở hữu những ý tưởng chính của dự án, và do đó sở hữu dự án. Trên thực tế, nếu những ý tưởng này được phát hiện, thì mọi lập trình viên đủ tài năng đều có thể thay thế được vị trí của mình. Chính “mạch” này đã buộc “người sáng tạo” phải giữ lại những ý tưởng chủ chốt của dự án.

Làm thế nào để đối phó với điều này? Đầu tiên, giấy phép cần phải được sửa đổi để yêu cầu phân phối không chỉ mã nguồn mà còn cả tài liệu về các ý tưởng và khái niệm chính làm cơ sở cho dự án. Thứ hai, để thỏa mãn “tĩnh mạch” của người tiêu dùng và chúng ta không thể thoát khỏi nó, bản chất của chúng ta là phải cung cấp một cơ chế trả thù lao xứng đáng cho công việc của các lập trình viên tạo ra phần mềm nguồn mở. Trên thực tế, tiền bạc tương đương với danh tiếng và quyền lực.

Aha, từ “tiền” lại vang lên! Nếu bạn còn nhớ, thiếu sót đầu tiên của GNU GPL mà chúng ta đã thảo luận là việc thiếu một kế hoạch tài trợ rõ ràng từ phía người tiêu dùng, chúng ta đã đề cập lại vấn đề đó.

Có thể giải quyết những vấn đề này trong khi vẫn ở trong khuôn khổ Phần mềm Tự do không? Vâng, điều đó là có thể, và hơn nữa, nó là cần thiết! Vấn đề đã quá hạn lâu rồi, nó PHẢI được giải quyết. Giải pháp tôi đề xuất được gọi là Copymiddle, trái ngược với Copyright và Copyleft. Tác giả của cái tên này là Anton Perventsev, người đặc biệt cảm ơn ông.

Hãy dừng lại ở đây và nhìn lại GPL. “Bạn” bí ẩn này là ai, người được trao quyền và trách nhiệm của GPL? Bằng cách sử dụng phương pháp “xem xét kỹ”, chúng tôi đi đến kết luận rằng trên thực tế, đây là ba thực thể khác nhau: LẬP TRÌNH, DOANH NGHIỆP, NGƯỜI DÙNG. PPP, nó thực sự là một bộ ba thần thánh. :)

Hãy định hình lại cách giải thích lỏng lẻo của chúng ta về GPL, thay thế chữ “Bạn” kỳ diệu bằng nội dung thực sự của nó.

  1. LẬP TRÌNH có thể sửa đổi chương trình
  2. DOANH NHÂN có thể kiếm lợi nhuận bằng cách bán chương trình hoặc thực hiện bất kỳ hoạt động thương mại nào khác liên quan đến chương trình nhưng không tuân theo điều khoản sử dụng. Đồng thời, Ngài có nghĩa vụ phân phối nó cùng với mã nguồn

Nói cách khác, LẬP TRÌNH có quyền lập trình, NGƯỜI DÙNG có quyền sử dụng, DOANH NHÂN có quyền kiếm tiền. Nhà máy cho công nhân, đất đai cho nông dân! Chủ nghĩa xã hội ở thể tinh khiết. Ở nước ta, những ý tưởng về chủ nghĩa xã hội ngày nay bị mất uy tín rất nhiều, nhưng chủ nghĩa xã hội là thứ mà nhân loại sớm hay muộn sẽ đạt được, tất nhiên, nếu nó không bị gãy chân trên đường đi :). Bây giờ chúng ta hãy cố gắng hiểu cách thay đổi GPL để vừa bảo tồn SỰ TỰ DO mà nó mang lại cho chúng ta, vừa đưa vào đó yếu tố phát triển kinh tế.

Giải pháp tự gợi ý. Hãy để NGƯỜI DÙNG yên tâm, lấy một số quyền từ NHÀ DOANH NGHIỆP và trao chúng cho NHÀ LẬP TRÌNH. Ví dụ: chúng tôi sẽ bắt buộc DOANH NGHIỆP khấu trừ 10% lợi nhuận nhận được từ các hoạt động thương mại liên quan đến phân phối, hỗ trợ, v.v. lập trình viên.

Hãy thêm vào đây nghĩa vụ phân phối, cùng với chương trình và mã của nó, những ý tưởng cơ bản của nó, và chúng ta sẽ có được một loại giấy phép mới cho "Phần mềm Tự do". Tôi sẽ gọi nó là GPL+- :). Plus - phù hợp với yếu tố phát triển kinh tế mà giấy phép này mang lại cho GPL và sự tự do thực sự về ý tưởng. Nhược điểm là cái giá mà chúng ta phải trả cho nó - sự bất bình đẳng về mặt pháp lý lẫn nhau giữa những người chơi trong thế giới pháp lý mới do giấy phép GPL+- tạo ra. Tuy nhiên, rõ ràng đây là mức giá tối thiểu chúng tôi có thể trả.

Đây là những gì chúng tôi đã kết thúc với. Đây là phiên bản miễn phí của GPL+- hoặc Copymiddle.

  1. LẬP TRÌNH, với tư cách là tác giả của chương trình, có quyền tác giả của chương trình
  2. NGƯỜI DÙNG có thể sử dụng chương trình
  3. LẬP TRÌNH có thể sửa đổi chương trình và nhận tiền bản quyền của mình để sử dụng chương trình cho mục đích thương mại
  4. NGƯỜI DÙNG LẬP TRÌNH và DOANH NHÂN có thể tự do phân phối chương trình
  5. DOANH NHÂN có thể kiếm lợi nhuận bằng cách bán chương trình hoặc thực hiện bất kỳ hoạt động thương mại nào khác liên quan đến chương trình nhưng không tuân theo điều khoản sử dụng. Đồng thời, Anh ta có nghĩa vụ phân phối nó cùng với mã nguồn và những ý tưởng cần thiết để hiểu cấu trúc bên trong của chương trình. Ngoài ra, DOANH NGHIỆP có nghĩa vụ khấu trừ 10% (để chắc chắn) thu nhập của mình nhận được từ việc sử dụng chương trình thương mại cho tác giả của nó.

Trên thực tế, tôi nghĩ chúng ta cần một số giấy phép giống như GPL+. Trên thực tế, GPL+-, để cấp phép cho phần mềm miễn phí. GPDL+ giống nhau, nhưng đối với tài liệu và văn bản văn học, điểm khác biệt của nó là bạn không thể thực hiện thay đổi nếu không có sự cho phép của tác giả (ví dụ: có thể có các tùy chọn ở đây). Và cuối cùng, thậm chí còn cần có giấy phép ủng hộ thương mại GPCL+- (GP Commerce L+-) để cấp phép cho các chương trình như trò chơi máy tính. Sự khác biệt của nó so với GPL+ là hoạt động thương mại của DOANH NGHIỆP tất nhiên cũng sẽ bao gồm việc sử dụng chương trình nếu thu được lợi nhuận. Chúng ta đang nói về việc sử dụng trò chơi trong các câu lạc bộ máy tính, họ kiếm tiền từ nó, vì vậy hãy để họ chia phần trăm cho tác giả. :) Đương nhiên, trò chơi máy tính không phải là lĩnh vực duy nhất xin giấy phép như vậy.

Tóm lại, tôi muốn lưu ý rằng nhiều câu hỏi liên quan đến việc triển khai một loại giấy phép phần mềm miễn phí mới vẫn chưa rõ ràng. Những vấn đề này sẽ được thảo luận chi tiết trong bài viết “GPL+- là gì?” theo dõi quảng cáo :)

Ngày 3 tháng 10 năm 2002 Novosibirsk.
Vladimir I. Torshin

Vladimir I. Torshin - Tại sao bạn không nên sử dụng GNU GPL để cấp phép cho các chương trình của mình?

Sớm hay muộn, mọi nhà phát triển đều phải đối mặt với vấn đề cấp phép cho sự phát triển của họ. Điều này ít nhiều rõ ràng khi một sản phẩm thương mại được phát triển với mã đóng. Nhưng khi một nhà phát triển muốn phân phối một chương trình, plugin hoặc thư viện lớp miễn phí và nguồn mở, khó khăn có thể nảy sinh, vì về bản chất có rất nhiều giấy phép. loại này. Bài viết này nhằm mục đích thu thập và sắp xếp dữ liệu theo giấy phép và nêu bật những điều quan trọng nhất.

CẬP NHẬT: bản dịch một phần nhỏ của Câu hỏi thường gặp về GPL chính thức đã được xuất bản habrahabr.ru/blogs/Dura_Lex/45878
CẬP NHẬT2: danh sách các giấy phép tương thích đã được điều chỉnh và xây dựng lại


Nếu chúng ta nói về thế giới của các giấy phép “miễn phí”, thì trụ cột và cốt lõi chính có thể được coi là Giấy phép Công cộng GNU (GPL). Và trong bài viết này, tôi muốn tách các giấy phép thuộc GNU GPL và mô tả tất cả các giấy phép khác không thuộc các điều khoản của giấy phép này. Phần đầu tiên của bài viết sẽ mô tả bản thân GNU GPL, lịch sử tóm tắt của nó và các giấy phép khác tương tự với nó. Cuối cùng, tôi sẽ cung cấp một bảng chú giải nhỏ về các thuật ngữ và chữ viết tắt.

Giấy phép Công cộng GNU

Đầu tiên, tôi muốn giải thích “GNU” là gì. GNU là viết tắt của “GNU”s not UNIX” - đây là từ viết tắt đệ quy được đặt ra bởi Richard Stallman, một nhà tư tưởng nổi tiếng về phần mềm mở và miễn phí. Tên này được đặt cho hệ điều hành mà Stallman đã phát triển vào những năm 80. Lịch sử của GNU xứng đáng một bài viết riêng nên tôi sẽ đi thẳng vào vấn đề.

Giấy phép Công cộng GNU hay Thỏa thuận Giấy phép Mở GNU là giấy phép có phiên bản đầu tiên bắt đầu từ ngày 1 tháng 2 năm 1989 (Wikipedia ghi là năm 1988, nhưng tôi tin rằng ngày đó có trên bản gốc). Hiện tại có bốn tùy chọn giấy phép, được đánh số theo thứ tự xuất hiện.

GNU GPL v1.0

Các quy định chính của GNU GPL v1.0 là các yêu cầu sau:
  • cung cấp mã nguồn có sẵn để nghiên cứu mã nhị phân được xuất bản theo giấy phép này;
  • Kế thừa giấy phép trong trường hợp sửa đổi mã nguồn, nghĩa là mã được sửa đổi hoặc kết hợp với mã khác do đó cũng phải được phát hành theo giấy phép GNU GPL, do đó, có sẵn để sửa đổi bởi bất kỳ ai.
Các yêu cầu này về cơ bản phục vụ một mục đích, nhằm ngăn chặn việc áp dụng luật bản quyền đối với phần mềm nguồn mở phân tán, vốn cấm sửa đổi và sử dụng mã của người khác.

GNU GPL v2.0

Phiên bản thứ hai của giấy phép có từ năm 1991 và động cơ chính tuyên bố (theo wiki) nguyên tắc “Tự do hay Cái chết”. Nguyên tắc này được quy định tại điều khoản thứ bảy và thứ tám của thỏa thuận:

7. Người được cấp phép không được miễn thực hiện nghĩa vụ theo Giấy phép này nếu do quyết định của tòa án hoặc tuyên bố vi phạm quyền độc quyền hoặc do xảy ra các trường hợp khác không liên quan trực tiếp đến việc vi phạm quyền độc quyền, Bên được cấp phép phải tuân theo quyết định của tòa án, hợp đồng hoặc cơ sở khác, các nghĩa vụ được áp đặt trái ngược với các điều khoản của Giấy phép này. Trong trường hợp này, Người được cấp phép không có quyền phân phối các bản sao của Chương trình nếu anh ta không thể thực hiện đồng thời các điều khoản của Giấy phép này và các nghĩa vụ áp đặt cho anh ta theo cách đã nêu ở trên. Ví dụ: nếu theo các điều khoản của thỏa thuận cấp phép, người tái cấp phép không thể được cấp quyền phân phối tự do các bản sao của Chương trình mà họ đã mua trực tiếp hoặc thông qua bên thứ ba từ Người được cấp phép thì trong trường hợp này Người được cấp phép phải từ chối phân phối bản sao của Chương trình. chương trình.

Nếu bất kỳ điều khoản nào của đoạn này được xác định là không hợp lệ hoặc không thể thi hành trong những trường hợp cụ thể thì đoạn này sẽ áp dụng để loại trừ điều khoản đó. Đoạn này áp dụng chung khi chấm dứt các trường hợp trên hoặc sự vắng mặt của chúng.

Mục đích của đoạn này không phải là buộc Người được cấp phép vi phạm khiếu nại bằng sáng chế hoặc các quyền sở hữu khác hoặc thách thức tính hợp lệ của khiếu nại đó. Mục đích duy nhất của điều khoản này là để bảo vệ tính toàn vẹn của hệ thống phân phối phần mềm miễn phí, được cung cấp thông qua cấp phép công cộng. Nhiều người đã hào phóng đóng góp vào việc tạo ra số lượng lớn phần mềm được phân phối thông qua một hệ thống nhất định với hy vọng sử dụng lâu dài và nhất quán. Người được cấp phép không có quyền buộc tác giả phân phối phần mềm thông qua hệ thống này. Quyền lựa chọn hệ thống phân phối phần mềm hoàn toàn thuộc về tác giả của nó.

Điều khoản 7 này nhằm xác định rõ ràng mục đích của tất cả các điều khoản khác của Giấy phép này.

8. Nếu việc phân phối và/hoặc sử dụng Chương trình ở một số quốc gia nhất định bị hạn chế bởi các thỏa thuận trong lĩnh vực bằng sáng chế hoặc quyền bản quyền thì người giữ bản quyền ban đầu phân phối Chương trình theo các điều khoản của Giấy phép này có quyền giới hạn phạm vi phân phối của ​​Chương trình, chỉ cho biết những tiểu bang có lãnh thổ được phép phân phối các Chương trình không bị hạn chế do các thỏa thuận đó. Trong trường hợp này, chỉ dẫn như vậy liên quan đến lãnh thổ của một số bang nhất định được công nhận là một trong những điều kiện của Giấy phép này.

Như bạn có thể thấy, động cơ chính là nguyên tắc tiếp theo: Chương trình không được phân phối trừ khi người dùng cuối có thể thực hiện đầy đủ quyền sửa đổi và phân phối nó theo cùng một giấy phép.

GNU Ít hơn GPL v2.1

Phiên bản giấy phép này có từ năm 1999 và có một điểm khác biệt lớn so với giấy phép GNU GPL thông thường: dành cho các thư viện, giấy phép cho phép chúng được sử dụng trong phần mềm độc quyền. Ví dụ: thư viện GNU C được phân phối theo giấy phép GNU Lesser GPL v2.1 để các nhà phát triển bên thứ ba có thể sử dụng chúng trong phần mềm của họ, miễn phí hoặc thương mại.

GNU GPL v3.0

Phiên bản mới nhất của GPL cho đến nay, được phát hành vào năm 2007. Những thay đổi được thực hiện đối với giấy phép nhằm bảo vệ người dùng được cấp phép khỏi các vụ kiện liên quan đến bằng sáng chế; giờ đây, người tạo ra chương trình không thể kiện người dùng. GPL 3.0 cấm áp dụng giấy phép cho phần mềm bị cấm tránh né theo một số luật và chỉ thị nhất định (Đạo luật bản quyền thiên niên kỷ kỹ thuật số và Chỉ thị bản quyền của Liên minh châu Âu). Nghĩa là, bạn không thể phát hành theo giấy phép bất kỳ phần mềm nào nằm trong phạm vi của các chỉ thị này. Do đó, GPL 3.0 đảm bảo rằng bất kỳ phần mềm nào được phát hành theo giấy phép của nó đều có thể được tự do sửa đổi, phá hoại hoặc thay đổi.

Ngoài ra, GPL 3.0 chống lại hiện tượng "tivoization", trong đó thiết bị cài đặt phần mềm được cấp phép GPL không cho phép bạn sửa đổi phần mềm đó vì nhiều lý do. GPL v3.0 cấm tùy chỉnh các sản phẩm tiêu dùng (để lại khả năng vi-rút cho các thiết bị y tế và thiết bị quan trọng khác).

Cùng với GPL 3.0 nó cũng được phát hành phiên bản cập nhật GNU Lesser GPL 3.0, tiếp tục tạo sự khác biệt bằng cách cho phép sử dụng các thư viện miễn phí trong phần mềm độc quyền.

Khả năng tương thích

Nhiều giấy phép trên thực tế lặp lại các nguyên tắc được đặt ra trong GPL và khác nhau, về nguyên tắc, chỉ ở chỗ chúng được các tổ chức thương mại hoặc các tổ chức khác chấp nhận. Dưới đây tôi sẽ cố gắng tóm tắt các giấy phép đó theo một số phiên bản nhất định GPL. Khả năng tương thích có nghĩa là các phần riêng lẻ của phần mềm có giấy phép loại tương thích có thể được phát hành kết hợp với các phần GPL và theo một giấy phép GPL.

Chỉ tương thích với giấy phép GPL 3.0

Giấy phép Công cộng Chung GNU Affero (AGPL) v3 - chứa một điều khoản nêu rõ rằng người dùng tương tác với chương trình qua mạng cũng có thể lấy mã nguồn;
Giấy phép Apache, Phiên bản 2.0;
Giấy phép Cộng đồng Giáo dục 2.0;
Giấy phép dự án Freetype;
Giấy phép Công cộng của Microsoft (Ms-PL);
Giấy phép XFree86 1.1;

Giấy phép tương thích GNU GPL (cả phiên bản v2 và v3)

Giấy phép nghệ thuật 2.0;
Giấy phép Cơ sở dữ liệu Berkeley (còn gọi là Giấy phép Sản phẩm Phần mềm Sleepycat);
Tăng cường giấy phép phần mềm;
Giấy phép BSD đã sửa đổi;
CeCILL phiên bản 2;
Giấy phép chung Cryptix;
Giấy phép Diễn đàn Eiffel, phiên bản 2 - những phiên bản trước không tương thích;
Giấy phép người nước ngoài;
Giấy phép FreeBSD;
Giấy phép Thư viện Chức năng Tiêu chuẩn iMatix;
Giấy phép nhóm JPEG độc lập;
giấy phép imlib2;
Giấy phép mã nguồn mở Intel;
Giấy phép ISC;
NCSA/Giấy phép mã nguồn mở của Đại học Illinois;
Giấy phép Javascript của Netscape;
Giấy phép OpenLDAP, Phiên bản 2.7;
Giấy phép Perl 5 trở xuống;
Phạm vi công cộng;
Giấy phép Python 2.0.1, 2.1.1 và các phiên bản mới hơn;
Giấy phép Ruby;
ML tiêu chuẩn của Giấy phép Bản quyền New Jersey;
Công ty Unicode Thỏa thuận cấp phép cho tệp dữ liệu và phần mềm;
Thông báo và Giấy phép Phần mềm W3C;
Giấy phép X11 - đôi khi bị gọi nhầm là giấy phép MIT.

Giấy phép tương thích GPL ít hơn

giấy phép eCos phiên bản 2.0.

Từ điển

GNU là từ viết tắt đệ quy của GNU's Not Unix;
GNU GPL - Thỏa thuận cấp phép mở GNU;
Phần mềm độc quyền là phần mềm có những hạn chế trong sử dụng và không được phép sửa đổi, hay nói cách khác là “phần mềm không tự do”;

) cuối cùng đã được xuất bản vào ngày 29 tháng 6 năm 2007. Mặc dù đã có rất nhiều cuộc thảo luận về giấy phép kể từ khi bản thảo đầu tiên xuất hiện nhưng không có nhiều người nói về những lợi ích mà nó mang lại cho các nhà phát triển. Chúng tôi đã xuất bản hướng dẫn này để đáp ứng điều đó khoảng cách. Chúng tôi sẽ bắt đầu với phần giới thiệu ngắn gọn về phần mềm miễn phí, copyleft và các mục tiêu của GPL. Sau đó, chúng tôi sẽ xem xét những thay đổi lớn trong giấy phép để xem chúng thúc đẩy các mục tiêu đó và mang lại lợi ích cho các nhà phát triển như thế nào.

Nền tảng của GPL

Không ai nên bị hạn chế bởi phần mềm họ sử dụng. Có bốn quyền tự do mà mọi người dùng nên có:

  • quyền tự do sử dụng phần mềm cho bất kỳ mục đích nào,
  • quyền tự do thay đổi phần mềm cho phù hợp với nhu cầu của bạn,
  • quyền tự do chia sẻ phần mềm với bạn bè và hàng xóm của bạn, và
  • quyền tự do chia sẻ những thay đổi bạn thực hiện.

Khi một chương trình cung cấp cho người dùng tất cả các quyền tự do này, chúng tôi gọi đó là phần mềm miễn phí.

Các nhà phát triển viết phần mềm có thể phát hành nó theo các điều khoản của GNU GPL. Khi họ làm vậy, nó sẽ là phần mềm miễn phí và vẫn là phần mềm miễn phí, bất kể ai thay đổi hay phân phối chương trình. Chúng tôi gọi đây là copyleft: phần mềm có bản quyền, nhưng thay vì sử dụng các quyền đó để hạn chế người dùng như phần mềm độc quyền, chúng tôi sử dụng chúng để đảm bảo rằng mọi người dùng đều có quyền tự do.

Chúng tôi cập nhật GPL để bảo vệ bản sao của nó khỏi bị phá hoại bởi sự phát triển về mặt pháp lý hoặc công nghệ. Phiên bản mới nhất bảo vệ người dùng khỏi ba mối đe dọa gần đây:

Phiên bản 3 cũng có một số cải tiến để giúp mọi người sử dụng và hiểu giấy phép dễ dàng hơn. Nhưng ngay cả với tất cả những thay đổi này, GPLv3 không phải là một giấy phép hoàn toàn mới; thay vào đó nó là một sự phát triển của phiên bản trước đó. Mặc dù nhiều văn bản đã thay đổi, nhưng phần lớn nó chỉ đơn giản làm rõ những gì GPLv2 đã nói. Với ý nghĩ đó, chúng ta hãy xem lại những thay đổi chính trong GPLv3 và nói về cách chúng cải thiện giấy phép cho người dùng và nhà phát triển.

Vô hiệu hóa các luật cấm phần mềm miễn phí - nhưng không cấm DRM

Bạn có thể quen thuộc với Quản lý hạn chế kỹ thuật số (DRM) trên DVD và các phương tiện khác. Có thể bạn cũng quen với các luật quy định việc ghi các công cụ của riêng bạn để vượt qua các hạn chế đó là bất hợp pháp, chẳng hạn như Đạo luật bản quyền thiên niên kỷ kỹ thuật số và Đạo luật bản quyền thiên niên kỷ kỹ thuật số. Chỉ thị về bản quyền của Liên minh Châu Âu. Không ai có thể ngăn cản bạn viết bất kỳ mã nào bạn muốn và GPLv3 bảo vệ quyền này cho bạn.

Luôn có thể sử dụng mã GPLed để viết phần mềm triển khai DRM. Tuy nhiên, nếu ai đó làm điều đó với mã được bảo vệ bởi GPLv3, phần 3 nói rằng hệ thống sẽ không được tính là biện pháp "bảo vệ" công nghệ hiệu quả. Điều này có nghĩa là nếu bạn phá vỡ DRM, bạn sẽ được tự do phân phối phần mềm của riêng mình để thực hiện điều đó và bạn sẽ không bị đe dọa bởi DMCA hoặc các luật tương tự.

Như thường lệ, GNU GPL không hạn chế những gì mọi người làm trong phần mềm; nó chỉ ngăn họ hạn chế người khác.

Bảo vệ quyền Tinker của bạn

Tivoization là một nỗ lực nguy hiểm nhằm hạn chế quyền tự do của người dùng: quyền sửa đổi phần mềm của bạn sẽ trở nên vô nghĩa nếu không có máy tính nào của bạn cho phép bạn làm điều đó. GPLv3 dừng tivoization bằng cách yêu cầu nhà phân phối cung cấp cho bạn bất kỳ thông tin hoặc dữ liệu nào cần thiết để cài đặt đã sửa đổi phần mềm trên thiết bị. Điều này có thể đơn giản như một bộ hướng dẫn hoặc có thể bao gồm dữ liệu đặc biệt như khóa mật mã hoặc thông tin về cách vượt qua kiểm tra tính toàn vẹn trong phần cứng. Điều này sẽ phụ thuộc vào cách phần cứng được thiết kế—nhưng bất kể bạn cần thông tin gì, bạn phải có được nó.

Yêu cầu này bị giới hạn về phạm vi. Các nhà phân phối vẫn được phép sử dụng khóa mật mã cho bất kỳ mục đích nào và họ sẽ chỉ được yêu cầu tiết lộ khóa nếu bạn cần nó để sửa đổi phần mềm GPLed trên thiết bị mà họ đã cung cấp cho bạn. Bản thân Dự án GNU sử dụng GnuPG để chứng minh tính toàn vẹn của tất cả phần mềm trên trang FTP của nó và các biện pháp tương tự mang lại lợi ích cho người dùng. GPLv3 không ngăn cản mọi người sử dụng mật mã; chúng tôi không muốn điều đó. Nó chỉ ngăn mọi người lấy đi các quyền mà giấy phép cung cấp cho bạn—cho dù thông qua luật bằng sáng chế, công nghệ hay bất kỳ phương tiện nào khác.

Bảo vệ mạnh mẽ hơn trước các mối đe dọa bằng sáng chế

Trong 17 năm kể từ khi GPLv2 được xuất bản, bối cảnh bằng sáng chế phần mềm đã thay đổi đáng kể, và các giấy phép phần mềm tự do đã phát triển các chiến lược mới để giải quyết chúng. GPLv3 cũng phản ánh những thay đổi này. Bất cứ khi nào ai đó truyền tải phần mềm được GPLv3 bảo vệ mà họ đã viết hoặc sửa đổi, họ phải cung cấp cho mọi người nhận mọi giấy phép bằng sáng chế cần thiết để thực hiện các quyền mà GPL cấp cho họ. Ngoài ra, nếu bất kỳ người được cấp phép nào cố gắng sử dụng vụ kiện bằng sáng chế để ngăn người dùng khác thực hiện các quyền đó, giấy phép của họ sẽ bị chấm dứt.

Điều này có ý nghĩa gì đối với người dùng và nhà phát triển là họ sẽ có thể làm việc với phần mềm được bảo vệ GPLv3 mà không phải lo lắng rằng người đóng góp liều lĩnh sẽ cố gắng kiện họ vì vi phạm bằng sáng chế sau này. Với những thay đổi này, GPLv3 mang lại cho người dùng nhiều biện pháp bảo vệ hơn trước hành vi xâm phạm bằng sáng chế hơn bất kỳ giấy phép phần mềm miễn phí nào khác.

Làm rõ tính tương thích của giấy phép

Nếu bạn tìm thấy một số mã và muốn kết hợp nó vào một dự án GPLed, GPLv2 nói rằng giấy phép trên mã kia không được phép có bất kỳ hạn chế nào chưa có trong GPLv2. Miễn là trường hợp đó xảy ra, chúng tôi đã nói rằng giấy phép tương thích với GPL.

Tuy nhiên, một số giấy phép có các yêu cầu không thực sự hạn chế vì chúng rất dễ tuân thủ. Ví dụ: một số giấy phép nói rằng họ không cấp cho bạn quyền sử dụng một số nhãn hiệu nhất định. Đó thực sự không phải là một hạn chế bổ sung: nếu không có điều khoản đó, bạn vẫn sẽ không có quyền sử dụng nhãn hiệu. Chúng tôi luôn nói rằng những giấy phép đó cũng tương thích với GPLv2.

Giờ đây, GPLv3 rõ ràng cấp cho mọi người quyền sử dụng mã có các yêu cầu như thế này. Những điều khoản mới này sẽ giúp làm sáng tỏ những hiểu lầm về giấy phép nào tương thích với GPL, tại sao lại như vậy và bạn có thể làm gì với mã tương thích với GPL.

Giấy phép tương thích mới

Ngoài việc làm rõ các quy định về các giấy phép đã tương thích với GPL, GPLv3 cũng mới tương thích với một số giấy phép khác. Giấy phép Apache 2.0 là một ví dụ điển hình. Rất nhiều phần mềm miễn phí tuyệt vời được cung cấp theo giấy phép này, với các cộng đồng mạnh mẽ xung quanh nó. Chúng tôi hy vọng rằng sự thay đổi này trong GPLv3 sẽ thúc đẩy sự hợp tác và chia sẻ nhiều hơn trong môi trường miễn phí. cộng đồng phần mềm. Biểu đồ bên dưới giúp minh họa một số mối quan hệ tương thích phổ biến giữa các giấy phép phần mềm miễn phí khác nhau:

Mũi tên chỉ từ giấy phép này sang giấy phép khác cho biết giấy phép đầu tiên tương thích với giấy phép thứ hai. Điều này đúng ngay cả khi bạn đi theo nhiều mũi tên để đi từ giấy phép này sang giấy phép khác; vì vậy, ví dụ: giấy phép ISC tương thích với GPLv3. GPLv2 tương thích với GPLv3 nếu chương trình cho phép bạn chọn "bất kỳ phiên bản mới hơn" nào của GPL, đây là trường hợp của hầu hết các phần mềm được phát hành theo giấy phép này. Sơ đồ này không đầy đủ (xem trang giấy phép của chúng tôi để biết danh sách đầy đủ hơn các giấy phép tương thích với GPLv2 và GPLv3), nhưng minh họa rõ ràng rằng GPLv3 tương thích với hầu hết mọi thứ mà GPLv2 có, sau đó là một số.

GNU Affero GPL phiên bản 3 cũng đã được đưa vào sử dụng. Affero GPL ban đầu được thiết kế để đảm bảo rằng tất cả người dùng ứng dụng web đều có thể nhận được nguồn của nó. GNU Affero GPL phiên bản 3 mở rộng mục tiêu này: nó có thể áp dụng cho tất cả phần mềm tương tác mạng, do đó nó cũng sẽ hoạt động tốt cho các chương trình như máy chủ trò chơi. Điều khoản bổ sung cũng linh hoạt hơn, do đó nếu ai đó sử dụng nguồn AGPLed trong một ứng dụng không có giao diện mạng, họ sẽ chỉ phải cung cấp nguồn theo cùng cách mà GPL luôn yêu cầu. Bằng cách làm cho hai giấy phép này tương thích, các nhà phát triển phần mềm tương tác mạng sẽ có thể tăng cường sức mạnh cho copyleft của họ trong khi vẫn xây dựng trên nền tảng mã GPLed hoàn thiện có sẵn cho họ.

Nhiều cách khác để nhà phát triển cung cấp nguồn

Một trong những yêu cầu cơ bản của GPL là khi bạn phân phối mã đối tượng cho người dùng, bạn cũng phải cung cấp cho họ cách lấy nguồn. GPLv2 đã cung cấp cho bạn một số cách để thực hiện việc này và GPLv3 giữ nguyên những cách đó với một số giải thích rõ ràng. Nó cũng cung cấp cho bạn những cách mới để cung cấp nguồn khi bạn truyền mã đối tượng qua mạng. Ví dụ: khi bạn lưu trữ mã đối tượng trên một trang web hoặc Máy chủ ftp, bạn chỉ cần cung cấp hướng dẫn cho khách truy cập biết cách lấy nguồn từ máy chủ của bên thứ ba. Nhờ tùy chọn mới này, việc thực hiện yêu cầu này sẽ dễ dàng hơn đối với nhiều nhà phân phối nhỏ, những người chỉ thực hiện một số thay đổi đối với nguồn lớn.

Giấy phép mới cũng giúp việc truyền mã đối tượng qua BitTorrent dễ dàng hơn nhiều. Đầu tiên, những người chỉ tải xuống hoặc gieo hạt torrent được miễn các yêu cầu của giấy phép để truyền tải phần mềm. Sau đó, bất kỳ ai khởi động torrent đều có thể cung cấp nguồn bằng cách chỉ cần thông báo cho những người dùng torrent khác biết nơi nó có sẵn trên máy chủ mạng công cộng.

Các tùy chọn mới này giúp giữ cho GPL phù hợp với các tiêu chuẩn cộng đồng về nguồn cung cấp mà không gây khó khăn hơn cho người dùng để có được.

Ít nguồn để phân phối hơn: Ngoại lệ thư viện hệ thống mới

Cả hai phiên bản GPL đều yêu cầu bạn cung cấp tất cả nguồn cần thiết để xây dựng phần mềm, bao gồm các thư viện hỗ trợ, tập lệnh biên dịch, v.v. Họ cũng vạch ra ranh giới tại Thư viện hệ thống: bạn không bắt buộc phải cung cấp nguồn cho một số thành phần cốt lõi nhất định của hệ điều hành, chẳng hạn như thư viện C.

GPLv3 đã điều chỉnh định nghĩa của Thư viện hệ thống để bao gồm phần mềm có thể không đi kèm trực tiếp với hệ điều hành nhưng tất cả người dùng phần mềm đều có thể có. Ví dụ: hiện tại nó cũng bao gồm các thư viện tiêu chuẩn của các ngôn ngữ lập trình phổ biến như Python và Ruby.

Định nghĩa mới cũng làm rõ rằng bạn có thể kết hợp phần mềm GPLed với các Thư viện hệ thống không tương thích với GPL, chẳng hạn như thư viện OpenSolaris" C, và phân phối cả hai cùng nhau. Những thay đổi này sẽ giúp cuộc sống của các nhà phân phối phần mềm miễn phí dễ dàng hơn, những người muốn cung cấp những kết hợp này cho người dùng của họ.

Giấy phép toàn cầu

GPLv2 nói rất nhiều về "phân phối"—khi bạn chia sẻ chương trình với người khác, tức là bạn đang phân phối nó. Giấy phép không bao giờ cho biết phân phối là gì vì thuật ngữ này được mượn từ luật bản quyền của Hoa Kỳ. Chúng tôi mong rằng các thẩm phán sẽ xem xét ở đó để biết định nghĩa. Tuy nhiên, sau đó chúng tôi phát hiện ra rằng luật bản quyền ở các quốc gia khác sử dụng cùng một từ nhưng mang lại ý nghĩa khác nhau. Vì điều này, thẩm phán ở quốc gia đó có thể phân tích GPLv2 khác với thẩm phán ở Hoa Kỳ.

GPLv3 sử dụng thuật ngữ mới, "truyền tải" và cung cấp định nghĩa cho thuật ngữ đó. "Truyền tải" có cùng ý nghĩa mà chúng tôi dự định dùng cho "phân phối", nhưng giờ đây điều này đã được giải thích trực tiếp trong giấy phép nên mọi người ở khắp mọi nơi sẽ dễ dàng hiểu được ý của chúng tôi. Có những thay đổi nhỏ khác xuyên suốt giấy phép cũng sẽ giúp đảm bảo nó được áp dụng nhất quán trên toàn thế giới.

Khi các quy tắc bị vi phạm: Con đường suôn sẻ để tuân thủ

Theo GPLv2, nếu bạn vi phạm giấy phép dưới bất kỳ hình thức nào, các quyền của bạn sẽ tự động bị mất vĩnh viễn. Cách duy nhất để lấy lại chúng là kiến ​​nghị với người giữ bản quyền. Mặc dù biện pháp phòng vệ mạnh mẽ chống lại các hành vi vi phạm là có giá trị nhưng chính sách này có thể khiến nhiều người đau đầu khi ai đó vô tình vi phạm các quy tắc. Yêu cầu tất cả những người nắm giữ bản quyền khôi phục chính thức giấy phép có thể là gánh nặng và tốn kém: một bản phân phối GNU/Linux điển hình cần đến công sức của hàng nghìn người.

GPLv3 đưa ra biện pháp miễn trừ đối với hành vi tốt: nếu bạn vi phạm giấy phép, bạn sẽ lấy lại được các quyền của mình sau khi ngừng vi phạm, trừ khi chủ sở hữu bản quyền liên hệ với bạn trong vòng 60 ngày. Sau khi nhận được thông báo như vậy, bạn có thể có đầy đủ các quyền của mình được khôi phục nếu bạn là người vi phạm lần đầu và sửa lỗi vi phạm trong vòng 30 ngày. Nếu không, bạn có thể giải quyết vấn đề theo từng trường hợp cụ thể với chủ sở hữu bản quyền đã liên hệ với bạn và quyền của bạn sẽ được khôi phục sau đó.

Việc tuân thủ GPL luôn là ưu tiên hàng đầu của Phòng thí nghiệm tuân thủ FSF và các nhóm thực thi giấy phép khác trên toàn thế giới. Những thay đổi này đảm bảo rằng việc tuân thủ vẫn là ưu tiên hàng đầu của người thực thi và khuyến khích những người vi phạm tuân thủ.

Mới nhất và vĩ đại nhất

Một số thay đổi này có thể có vẻ ít quan trọng đối với bạn hơn những thay đổi khác. Không sao đâu. Mỗi dự án đều khác nhau và cần những thứ khác nhau từ giấy phép của nó. Nhưng rất có thể một số cải tiến này sẽ giúp ích cho bạn và công việc của bạn.

Và xét về tổng thể, tất cả những nâng cấp này thể hiện một điều gì đó hơn thế nữa: chúng tôi đã tạo ra một bản copyleft tốt hơn. Nó làm được nhiều điều hơn để bảo vệ quyền tự do của người dùng, nhưng nó cũng cho phép hợp tác nhiều hơn trong cộng đồng phần mềm miễn phí. Nhưng cập nhật giấy phép chỉ là một phần công việc: để mọi người nhận được những lợi ích mà nó mang lại, các nhà phát triển cần sử dụng GPLv3 cho họ bằng cách phát hành phần mềm của riêng bạn theo giấy phép mới, tất cả những người xử lý phần mềm đó—người dùng, nhà phát triển khác, nhà phân phối, thậm chí cả luật sư—sẽ được hưởng lợi. Chúng tôi hy vọng bạn sẽ sử dụng GPLv3 cho lần phát hành tiếp theo của mình.

Nếu bạn muốn tìm hiểu thêm về việc nâng cấp dự án của mình lên GPLv3, Phòng thí nghiệm tuân thủ FSF sẽ sẵn lòng hỗ trợ bạn. Trên trang web của chúng tôi, bạn có thể tìm thấy các hướng dẫn cơ bản về cách sử dụng giấy phép và Câu hỏi thường gặp giải quyết các mối quan ngại chung mà mọi người có về nó. Nếu tình huống của bạn phức tạp hơn thế, vui lòng liên hệ với chúng tôi và chúng tôi sẽ làm những gì có thể để giúp bạn trong quá trình chuyển đổi. Cùng nhau, chúng ta có thể giúp bảo vệ quyền tự do cho tất cả người dùng.