it-swarm-vi.tech

GPL và plugin

Trung tâm nhà phát triển Plugin cho biết "Plugin của bạn phải tương thích GPLv2.". Nhưng tôi thấy rằng plugin Topsy nằm dưới GPLv3. http://www.gnu.org/licenses/rms-why-gplv3.html nói rằng GPLv2 và GPLv3 không tương thích. Vì vậy, điều này nên được cho phép? Tôi muốn sử dụng một số mã từ plugin Topsy. Sau đó, tôi nên phát hành plugin của mình theo GPLv2 hoặc GPLv3 ??

3
User

Nếu bạn đang tuân theo các quy tắc (bạn không bao giờ muốn bắt đầu bằng cách phá vỡ chúng), thì bất kỳ trình cắm WordPress nào bạn viết và gửi vào kho lưu trữ phải được cấp phép là GPLv2. Có một cơn bão thảo luận rất lớn trong năm ngoái vì tệp readme ví dụ đã nói nhầm "GPL, phiên bản 2 hoặc bất kỳ phiên bản nào sau này" ... đó là lý do tại sao một số plugin đã đi theo lộ trình GPLv3.

Khi đã chỉ ra rằng các plugin đã được cấp phép để tuân thủ giấy phép của lõi WordPress, nhiều plugin đã được cấp phép lại đến phiên bản 2 và một số từ chối đã bị xóa khỏi kho lưu trữ. Thật không may, khá nhiều người đã bay dưới radar và bỏ lỡ bản cập nhật.

Đề nghị của tôi sẽ là:

  1. Liên hệ với các nhà phát triển của Topsy và yêu cầu họ cấp phép bổ trợ hoặc cung cấp cho bạn quyền rõ ràng để sử dụng một số mã của họ và cấp phép cho bản phát hành của bạn theo GPLv2
  2. Đợi cho đến khi nhận được xác nhận từ Topsy trước khi sử dụng bất kỳ mã nào của họ trong hệ thống của riêng bạn.

Về mặt kỹ thuật , Topsy vi phạm giấy phép cốt lõi của WordPress và đó là trách nhiệm của Quỹ WordPress để theo đuổi điều đó (không phải của bạn). Tuy nhiên, để đảm bảo rằng bạn tuân thủ mã của riêng mình và tránh mọi trường hợp bất hợp pháp nếu họ theo đuổi hành động chống lại Topsy, bạn nên có quyền sử dụng mã theo cách thích hợp hoặc tìm một cái gì đó khác để làm việc với.

Cập nhật

Sau khi thảo luận đáng kể qua email, trên các diễn đàn, trên IRC và trên Trac, nhóm nòng cốt đã làm rõ rằng mọi plugin được lưu trữ trong kho lưu trữ WP phải được cấp phép là tương thích với GPLv2 . Điều này có nghĩa là, đối với hầu hết các phần, các plugin của bạn phải rõ ràng là GPLv2 hoặc GPLv2 + ("hoặc bất kỳ phiên bản nào mới hơn").

Điều này là để ngăn chặn khả năng vô tình cuộn mã plugin vào lõi. Core được cấp phép rõ ràng là GPLv2 +, do đó, bất kỳ mã nào được đưa vào dự án phải có khả năng được cấp phép theo cùng một cách.

Tuy nhiên, bạn vẫn có thể cấp phép cho các plugin được lưu trữ riêng tư của mình dưới dạng GPLv3. Điều này vẫn tương thích với các quy định cốt lõi "hoặc bất kỳ phiên bản mới hơn" nào trong khi vẫn riêng biệt (vì nó không được lưu trữ ở cùng một vị trí).

4
EAMann

Điều này đã được làm rõ ở đây: http://core.trac.wordpress.org/browser/trunk/license.txt WordPress Core là GPLv2 +

Yêu cầu repo "Plugin của bạn phải tương thích GPLv2" là tùy ý và không dựa trên bất kỳ hậu quả cấp phép nào. Bên cạnh đó, nó chỉ áp dụng cho việc lưu trữ plugin trên repos wordpress.org, chứ không phải plugin có hợp pháp hay không. Một plugin GPLv3 không "sai" hoặc vi phạm bất kỳ giấy phép nào. (Vì vậy, phần đầu tiên của câu hỏi của bạn đã được trả lời.)

(Có một điều khoản cụ thể trong chính GPL nói rằng nếu bạn không giới hạn cụ thể và rõ ràng các điều khoản trong một phiên bản cụ thể, thì nó hoàn toàn là "có thể nâng cấp." Phiên bản của giấy phép được liên kết không phải là giới hạn cụ thể hoặc rõ ràng về vấn đề này.)

Nếu bạn sử dụng GPLv2 + (không phải "chỉ GPLv2") và mã GPLv3 cùng nhau, mã phải được phát hành GPLv3, nếu bạn phát hành nó.

Đối với câu hỏi của bạn: Nếu bạn sử dụng một phần của Topsy , mã của bạn phải được phát hành GPLv3 (và tùy chọn sau) nếu bạn phát hành nó.

Cập nhật: WordPress.org cho phép bạn lưu trữ các plugin GPLv3 trong repo của họ ngay bây giờ (kể từ ít nhất là tháng 5 năm 2012).

https://make.wordpress.org/plugins/2012/05/11/cross-posted-from-the-main-development-blog-the/

3
WraithKenny

Câu hỏi hay. Về mặt kỹ thuật GPLv3 không tương thích với GPv2. Nếu bạn có lập trường mà Matt Mullenweg nắm giữ thì các plugin Topsy đã sai. Tôi đoán là nếu Matt biết anh ta sẽ rút các plugin của Topsy khỏi kho lưu trữ cho đến khi họ phát hành lại chúng thông qua GPLv2.

Tuy nhiên, bạn không thể buộc Topsy phải cấp phép lại (mặc dù bạn có thể yêu cầu họ làm điều đó; đó có thể là lựa chọn tốt nhất.) Còn đối với " Có nên cho phép không? " câu hỏi là " Ai sẽ không đồng ý? "Những người duy nhất không được phép sẽ là người kiện Topsy thay đổi nó. Tất nhiên Matt có thể áp dụng áp lực tiếp thị bằng cách kéo nó từ kho plugin. Nhưng trừ khi và/hoặc cho đến khi một trong những điều đó xảy ra ...

Vì vậy, bạn đang ở trong một nơi khó khăn. Bạn thực sự không thể sử dụng mã Topsy khi cấp phép GPLv3 và nếu bạn thực sự không thể tạo plugin WordPress vì nó không tương thích với GPLv2 (theo cách giải thích GPLv2 của Matt.)

OTOH và đây không phải là lời khuyên chỉ tôi thấy rõ, bạn có thể bỏ qua các mối quan tâm GPLv3, sử dụng mã của Topsy và để chip rơi vào nơi chúng có thể. Rất có thể bạn chưa từng bị kiện hoặc thậm chí có ai phàn nàn rằng bạn đã làm như vậy trừ khi có tiền nghiêm trọng được quy cho plugin của bạn mà tôi đoán là không phải vậy? Và nếu bạn đã ngừng hoạt động từ Topsy thì Matt cũng chắc chắn sẽ trở thành đồng minh của bạn và gây áp lực thị trường lên Topsy. Ít nhất đó là dự đoán của tôi. :)

2
MikeSchinkel

GPL nói rằng nếu mã của bạn cần lõi ban đầu để chạy thì nó phải tuân theo cùng một giấy phép.

Tuy nhiên, nếu bạn chia mã của mình thành hai phần, một phần sẽ thực hiện chức năng lõi (và lý tưởng có thể được sử dụng với bất kỳ khung nào, giống như một thư viện) và thứ hai tương tác với wordpress và thư viện của bạn, bạn có thể sử dụng giấy phép nào bạn thích cho thư viện của mình. Chỉ có phần với wordpress phải tuân theo cùng một giấy phép.

Một ví dụ tuyệt vời là Google Reader sử dụng nguồn cấp dữ liệu (là API), nhưng vì nó là một nhị phân riêng biệt, nên nó có thể sử dụng bất kỳ giấy phép nào.

2
Sudhanshu