Tôi có thể sử dụng các plugin Giấy phép Phần mềm Apache, Phiên bản 2.0 và GNU LGPL 3 trong ứng dụng web thương mại của mình không?


31

Tôi có hai trình cắm. Một cái có giấy phép GNU LGPL 3 và cái kia có Giấy phép Phần mềm Apache, Phiên bản 2.0. Tôi có thể sử dụng chúng trong ứng dụng thương mại của mình không? Và nếu có, tôi nên dùng biện pháp phòng ngừa nào?


17
Hãy nhớ rằng bạn KHÔNG BAO GIỜ nên làm theo lời khuyên pháp lý mà bạn nhận được trên Internet, trừ khi nó đến từ một luật sư. Tốt nhất là một người chuyên về lĩnh vực nhất định, trong trường hợp này: giấy phép phần mềm. Vì vậy, hãy thực hiện tất cả các câu trả lời bạn nhận được với một hạt muối, bởi vì nếu không, bạn có thể tiếp xúc với các vụ kiện (vì ứng dụng của bạn là một thương mại).
Radu Murzea

Câu trả lời:


34

Tôi có thể sử dụng chúng trong ứng dụng thương mại của mình không?

Nó phụ thuộc vào những gì bạn định làm với phần mềm mà bạn sản xuất.

Thứ nhất, cả ASL 1 , GPL hoặc LGPL đều không đưa ra bất kỳ hạn chế nào đối với những gì bạn có thể sử dụng phần mềm để thực hiện trong tổ chức của mình. Các hạn chế là tất cả về mã được phân phối bên ngoài tổ chức của bạn.

  • Đối với GPL, hạn chế là nếu bạn kết hợp mã GPL vào phần mềm của riêng bạn, VÀ sau đó bạn phân phối phần mềm của mình bên ngoài tổ chức của mình, THÌ bạn phải cung cấp mã nguồn theo các điều khoản của GPL hoặc giấy phép nguồn mở tương thích.

    Vì vậy, nếu bạn sử dụng mã GPL trong ứng dụng của mình và bạn phân phối nó, thì ứng dụng của bạn phải là nguồn mở ... nếu không bạn đang vi phạm giấy phép.

  • Đối với LGPL, hạn chế (xem ở trên) chỉ áp dụng cho mã nguồn của chính thư viện LGPL'ed; tức là nếu bạn thay đổi thư viện. Nếu bạn chỉ sử dụng thư viện, bạn không bắt buộc phải cung cấp mã nguồn của mình.

    Ngoài ra còn có một hạn chế là mã LGPL trong ứng dụng của bạn phải được người dùng mã của bạn thay thế. Điều đó có nghĩa là (có hiệu lực) rằng nếu bạn chỉ phân phối mã của mình dưới dạng nhị phân, thì bạn không thể liên kết tĩnh mã của mình với thư viện đó. Bạn phải sử dụng liên kết động.

  • Đối với ASL, hạn chế đáng kể duy nhất là bạn phải nói nếu bạn đã thay đổi bất cứ điều gì từ phiên bản gốc, mã ASL mà bạn sử dụng.

Cuối cùng, chỉ cần làm rõ, cả GPL, LPGL hoặc ASL đều không hạn chế mục đích sử dụng phần mềm của bạn. Và điều đó bao gồm cả mục đích của bạn là kiếm tiền. Họ chỉ giới hạn cách bạn có thể kiếm tiền ... và trong trường hợp LGPL và ASL, ràng buộc là khá nhỏ.

Và nếu có, tôi nên dùng biện pháp phòng ngừa nào?

Đối với LGPL và ASL, không cần đề phòng.

IANAL - Tôi không phải là một luật sư. Nếu bạn cần chắc chắn, hãy hỏi một chuyên gia thực sự, có trình độ; tức là một luật sư chuyên về luật phần mềm IP.


1 - Vì mục đích của câu trả lời này, ASL == Giấy phép phần mềm Apache phiên bản 2.


Điều này có áp dụng cho một ứng dụng web không? ý tôi là khách hàng sẽ chỉ nhận được tệp chiến tranh có chứa các tệp. class và .JAR. Nếu tất cả là LGPL vẫn ok?
Java chính

Nếu bạn không sửa đổi các thư viện LGPL thì bạn có thể đưa chúng vào mã ứng dụng của mình trong tệp WAR. Nhưng bạn cần thực hiện theo cách mà người bạn đang phân phối mã của bạn có thể thay thế mã LBPL bằng phiên bản khác. Một "uber-JAR" có thể là một vi phạm. Làm phiền các thư viện LGPL cùng với mã của bạn chắc chắn là vi phạm. (IANAL)
Stephen C

Có một thư mục gọi là lib nơi tôi đặt tất cả các tệp jar. Vì vậy, anh ta có thể thay thế bất kỳ tập tin Jar với phiên bản khác của nó. Nhưng tôi không đảm bảo nó sẽ hoạt động luôn. Vẫn ổn chứ
Java chính

Hỏi luật sư của bạn :-)
Stephen C

Nó chỉ là một ứng dụng web bình thường chạy trên tomcat. Nếu bạn có thể giúp đỡ sẽ tốt. Dù sao cũng cảm ơn bạn đã làm rõ thực sự giúp đỡ.
Java chính

5

Giấy phép Apache không đặt bất kỳ hạn chế nào đối với phần mềm liên kết đến trình cắm thêm hoặc thư viện được phân phối theo giấy phép Apache. Mặt khác, LGPL có yêu cầu rằng thư viện LGPL liên kết động (và có thể được thay thế bởi người dùng) hoặc toàn bộ tác phẩm phải được phát hành theo giấy phép nguồn mở tương thích GPL.

Để sử dụng trong ứng dụng nguồn đóng, điều này có nghĩa là bạn có thể sử dụng trình cắm được cấp phép của Apache mà không bị hạn chế và trình cắm được cấp phép LGPL phải được liên kết động.

Nếu bạn phân phối một trong hai plugin cùng với ứng dụng của mình, thì bạn cũng phải cung cấp nguồn cho plugin hoặc thông báo cho người dùng của bạn nơi họ có thể lấy các nguồn đó.


BartvanIngenSchenau bạn có ý nghĩa gì với ứng dụng "nguồn đóng"? Bạn có nghĩa là giải pháp đóng gói (không phân phối mã nguồn), hoặc bạn có đề cập đến phân phối của nó trong một tổ chức so với phân phối thương mại không?
Rachael

1
@Rachael: "Nguồn đóng" thường được sử dụng để chỉ phần mềm mà mã nguồn không được phân phối. Phân phối trong một tổ chức là một trường hợp đặc biệt khi cấp phép bản quyền, bởi vì việc cung cấp các bản sao của một sản phẩm phần mềm cho mọi người trong một tổ chức không được coi là phân phối cho hầu hết các luật bản quyền (nó được coi là sao chép).
Bart van Ingen Schenau

-4

Trước hết, đây không phải là tư vấn pháp lý.

Phần mềm GPL không được phép liên kết đến (bao gồm cả qua mạng), được biên dịch hoặc được vận chuyển với phần mềm không phải GPL dưới mọi hình thức. LGPL nới lỏng điều này một chút để cho phép hỗ trợ của bên thứ ba không phải GPL, bao gồm cả các sản phẩm thương mại. Phần quan trọng ở đây là nó phải là bên thứ ba (có thể nói), tạo ra một lỗ hổng nhỏ.

Nói tóm lại, bạn liên kết với thư viện LGPL hiện có (gọi đây là bên đầu tiên), nhưng phần mềm tạo liên kết này phải được tạo thành LGPL. Gọi phần mềm này là bên thứ hai. Mặc dù phần mềm của bên thứ hai phải được phát hành dưới dạng LGPL, với tư cách là chủ sở hữu của phần mềm bên thứ hai, bạn có thể cho phép các phần mềm khác sử dụng bên ngoài LGPL (miễn là phần mềm của bên thứ hai vẫn có sẵn trong LGPL). Nói cách khác, phần mềm của bên thứ hai phải được cung cấp dưới dạng LGPL, nhưng không bắt buộcđể cấp phép cho nó như LGPL trong mọi trường hợp. Mỗi người dùng một phần mềm phải có giấy phép sử dụng phần mềm nói trên theo luật. Điều tôi đang nói là miễn là mỗi người dùng có quyền truy cập vào phần mềm như LGPL, bạn cũng có thể cấp phép cho nó bằng các thuật ngữ không lan truyền. Bạn cũng có thể tạo phần mềm của bên thứ ba, thực tế là cấp phép phần mềm của bên thứ hai cho phần mềm bên thứ ba sử dụng theo các điều khoản không phải của LGPL. Tôi thậm chí đã nghe nói về việc mọi người tự viết một hợp đồng và giấy phép sử dụng phần mềm của riêng họ. Luật pháp có thể là lạ! Phần mềm của bên thứ ba không phải là LGPL trong mọi trường hợp.

Vì vậy, những gì bạn làm là tạo một thư viện để liên kết với lib lib của LGPL như một trình bao bọc và phát hành trình bao bọc dưới dạng LGPL. Sau đó, bạn có thể liên kết với trình bao bọc này (trình bao bọc của bạn ) trong phần mềm không phải LGPL, miễn là trình bao bọc của bạn có sẵn như LGPL.

Tôi không thể nói về Giấy phép Phần mềm Apache vì tôi không quen thuộc với nó.


Lưu ý rằng tôi đang sử dụng thuật ngữ "liên kết" rất rộng rãi vì điều này không chỉ áp dụng cho các ngôn ngữ được biên dịch và cũng có thể bao gồm "bao gồm" phần mềm LGPL (từ địa phương hoặc vị trí mạng, như với PHP hoặc Javascript), hoặc nếu không "liên kết" với một phần mềm qua mạng như Java RMI, v.v.
JSON

1
"Phần mềm GPL không được phép liên kết đến (bao gồm cả qua mạng), được biên dịch thành hoặc được vận chuyển với phần mềm không phải GPL dưới mọi hình thức." . "Hoặc" nên là "và". Bạn CÓ THỂ sử dụng phần mềm GPL trong phần mềm không phải GPL với điều kiện bạn không "vận chuyển" nó.
Stephen C

2
Câu trả lời đó là sai trên nhiều cấp độ. Câu hỏi không phải là về GPL, mà là LGPL. Mã ASL có thể được tích hợp trong mã theo hầu hết các giấy phép khác, điều đó có nghĩa là LGPL hoặc thậm chí GPL (ngay cả khi điều ngược lại bị cấm). Bạn thậm chí có thể sử dụng nó trong phần mềm nguồn đóng. Và, như Stephen C. đã chỉ ra, bạn có thể làm bất cứ điều gì bạn muốn miễn là bạn không xuất bản nó hoặc làm cho nó có sẵn cho công chúng.
Alexis Dufrenoy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.