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?
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?
Câu trả lời:
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.
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 đó.
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ó.