2009-04-26 38 views
7

Tôi có một ứng dụng web thương mại sử dụng một thành phần trong LGPL. Vì cấu phần này có kiến ​​trúc cắm, Tôi hiện đã tạo một plug cho thành phần này sử dụng thư viện (LGPL). Thư viện này sử dụng nguồn dữ liệu GPL.Giấy phép LGPL/GPL

Điều này có nghĩa là tôi phải giải phóng nguồn cho ứng dụng web của mình? hoặc là nó chỉ cần thiết để phát hành nguồn cho các plug in?

Cảm ơn bạn đã nhập và tư vấn và tha thứ cho tôi vì tiếng Anh kém của tôi.

Trả lời

1

Tôi không phải là luật sư, nhưng .. miễn là bạn không phân phối chương trình (làm cho nó có sẵn để sử dụng như ứng dụng web không phân phối), bạn không phải giải phóng nguồn cho bất cứ điều gì.

+0

Đúng, nhưng không áp dụng cho trường hợp này bằng âm thanh của nó. –

10

Để chắc chắn 100%, bạn nên đọc FAQ và sau đó liên hệ với luật sư quen thuộc với giấy phép phần mềm. Đừng nói chuyện với các luật sư không phải vì họ sẽ bảo bạn không được sử dụng bất cứ thứ gì miễn phí/nguồn mở chỉ để được an toàn, mà bất cứ ai cũng có thể nói.

Dù sao, ý của bạn là gì bởi "nguồn dữ liệu GPL"? Mã nguồn GPL có được liên kết với ứng dụng của bạn không?

Có một số câu hỏi trong Câu hỏi thường gặp về plug-in và GPL.

Tôi có thể phát hành một chương trình không tự do được thiết kế để tải một GPL phủ plug-in?

Tùy thuộc vào cách chương trình gọi các trình cắm của nó. Ví dụ: nếu chương trình chỉ sử dụng ngã ba đơn giản và lệnh exec để gọi và giao tiếp với trình cắm, thì plugin là các chương trình riêng biệt, vì vậy giấy phép không yêu cầu về chính chương trình.

Nếu chương trình động liên kết các plug-in, và họ thực hiện chức năng cuộc gọi đến mỗi cấu trúc dữ liệu khác và cổ phiếu, chúng tôi tin rằng họ tạo thành một chương trình duy nhất, mà phải được coi là một phần mở rộng của cả hai chương trình chính và các trình cắm thêm. Trong để sử dụng các plug-in GPL phủ, chương trình chính phải được phát hành theo GPL hoặc giấy phép phần mềm miễn phí GPL-tương thích, và rằng các điều khoản của GPL phải được tuân thủ khi chương trình chính được phân phối để sử dụng với các plugin này.

Nếu chương trình động liên kết các plug-in, nhưng thông tin liên lạc giữa họ bị hạn chế để gọi chức năng 'chính' của các plug-in với một số tùy chọn và chờ đợi cho nó trở lại, đó là một borderline trường hợp.

Sử dụng bộ nhớ dùng chung để giao tiếp với cấu trúc dữ liệu phức tạp tương đương với liên kết động.

Như những người khác đã chỉ ra, các ứng dụng web không được phân phối có vẻ được coi là sử dụng cá nhân theo GPL đơn giản (không phải trong Affero GPL?).

Một công ty đang chạy một sửa đổi phiên bản của một chương trình GPL'ed trên trang web. GPL có nói rằng họ phải phát hành các nguồn đã sửa đổi của họ không?

GPL cho phép bất kỳ ai thực hiện phiên bản đã sửa đổi và sử dụng phiên bản này mà không bao giờ phân phối nó cho người khác. Những gì công ty này đang làm là một trường hợp đặc biệt của điều đó. Do đó, công ty không phải phát hành các nguồn đã sửa đổi.

Điều cần thiết là mọi người có quyền tự do sửa đổi và sử dụng chúng một cách riêng tư, mà không bao giờ xuất bản những sửa đổi đó. Tuy nhiên, việc đặt chương trình trên một máy chủ cho công chúng để nói chuyện là khó sử dụng "riêng tư", do đó, nó sẽ là hợp pháp để yêu cầu phát hành mã nguồn trong trường hợp đặc biệt đó. Các nhà phát triển muốn giải quyết vấn đề này có thể muốn sử dụng GNU Affero GPL cho các chương trình được thiết kế để sử dụng máy chủ mạng.

+0

Tôi cho rằng khi bạn không phân phối nguồn dữ liệu GPL (trình điều khiển JDBC, có lẽ?) Với ứng dụng của bạn và khách hàng tải xuống nguồn dữ liệu GPL và tự cấu hình ứng dụng để sử dụng nó, nó sẽ được coi là sử dụng riêng trên một phần của khách hàng nên không ai trong số các bạn sẽ phải giải phóng nguồn gốc cho bất kỳ thứ gì. Tác dụng phụ sẽ là một sự bất tiện nhỏ cho khách hàng (anh ta phải có được những thứ GPL riêng biệt với người sáng tạo gốc và đặt tất cả những thứ này lại với nhau). Xin lưu ý rằng IANAL (Tôi không phải là luật sư) nên đây không phải là lời khuyên pháp lý chính thức. Tham khảo ý kiến ​​của một người có thẩm quyền. –

+0

Câu hỏi được hỏi về LGPL, chứ không phải GPL mà nhận xét này đang nói đến, tôi sẽ downvote, nhưng không muốn lãng phí điểm của tôi. – Amala

+0

@Amala OP đã viết "Thư viện này sử dụng nguồn dữ liệu GPL." –

1

Nếu theo ứng dụng web, bạn có nghĩa là bạn chỉ chạy phần mềm trên máy chủ của mình và bạn không phân phối phần mềm cho người dùng thì đơn giản. Không phân phối, không cần phải cho đi nguồn.

(có thể khác với GPL3)

6

này có nghĩa là tôi phải giải phóng nguồn cho ứng dụng web của tôi?

Không *

hay chỉ là cần thiết để giải phóng nguồn cho các plug in?

Nếu bạn phân phối ứng dụng, thì có, bạn cũng phải phân phối mã nguồn cho phần LGPL của nó.

Bạn cũng cần đảm bảo rằng bất kỳ ai nhận được đơn đăng ký của bạn đều có cơ hội sửa đổi. Điều này rất quan trọng đối với các ứng dụng đã biên dịch - bạn sẽ cần bao gồm các tệp đối tượng cần thiết để ứng dụng của bạn có thể được liên kết lại với phiên bản đã sửa đổi của mã LGPL. Hoặc, sử dụng liên kết động. Ý tưởng là mọi người cần có khả năng sửa đổi phần mã của bạn là LGPL và kết hợp lại nó với ứng dụng của bạn.

Dưới đây là một số các yêu cầu của LGPL trong lời nói của tôi (tôi không phải là một luật sư):

  • Phải có một số loại tách biệt rõ ràng giữa các mã LGPL và mã khác. Cụ thể, người nhận phải sửa đổi mã LGPL hoặc thậm chí thay thế hoàn toàn bằng mã khác, chẳng hạn như phiên bản đã sửa đổi hoặc phiên bản mới hơn của thư viện. Do đó, nếu nó là một chương trình được biên dịch, thì mã LGPL phải được liên kết động (như, một tệp DLL riêng biệt hoặc tệp được chia sẻ) sao cho nó có thể dễ dàng được thay thế cho một thư viện tương tự và vẫn có thể tương thích được; hoặc, nếu nó được liên kết tĩnh, các tệp nguồn và/hoặc tệp đối tượng được yêu cầu tối thiểu phải được cung cấp, để cho phép biên dịch lại bằng một thư viện thay thế. Phần không phải LGPL không được chứa bất kỳ phần nào của mã LGPL ngoại trừ các tệp tiêu đề rất đơn giản.
  • Phải ghi rõ phần nào của mã được LGPL bao trả, bao gồm thông báo bản quyền ban đầu và văn bản của LGPL (bao gồm cả GPL mà dựa trên đó là dựa trên).
  • Nếu phần mềm kết hợp hiển thị thông báo bản quyền trong quá trình chạy, thì thông báo bản quyền đối với phần được bao gồm LGPL cũng phải xuất hiện ở đây, cùng với liên kết tới LGPL và GPL.
  • Trong một số trường hợp, bạn sẽ cần cung cấp thông tin cài đặt chi tiết cách sử dụng phiên bản đã sửa đổi của mã LGPLd trong ứng dụng kết hợp.

Đó chỉ là một số hạn chế, nhưng LGPL cũng cung cấp cho bạn một số quyền tự do, các giấy phép khác như GPL không. Nếu bạn đang phân phối một tác phẩm kết hợp, bao gồm mã được cấp phép LGPL của người khác:

  • Bạn không cần phải phát hành mã nguồn cho phần còn lại của ứng dụng (ví dụ như phần không phải LGPL). Ngoại lệ duy nhất cho việc này như được mô tả ở trên - nếu tất cả được liên kết tĩnh thì bạn chỉ cần cung cấp đủ mã (và/hoặc tệp đối tượng) để có thể liên kết lại mã đó với phiên bản thay thế hoặc sửa đổi của mã LGPL. Nếu bạn đang liên kết động và tương tác trên một API thông thường, bạn không cần phải lo lắng về điều đó.
  • Bạn không cần phải giải phóng phần còn lại của đơn đăng ký theo GPL. Bạn có thể sử dụng bất kỳ giấy phép nào bạn muốn, bao gồm các giấy phép độc quyền hạn chế hơn, miễn là khi bạn phân phối nó, bạn tuân thủ các quy tắc.
  • Không giống như GPL phiên bản 3, cấm sử dụng mã nếu bạn đang thực hiện bảo vệ bản sao hoặc phần mềm DRM, bạn có thể sử dụng mã được cấp phép LGPL phiên bản 3 trong một ứng dụng bao gồm bảo vệ bản sao hoặc DRM.

Gần đây tôi đã viết analysis of the LGPL license - bạn có thể đọc thông tin này để biết thêm thông tin.

Ngoài ra, vui lòng đọc số actual text of the LGPL. Nó không quá dài.

* bạn đã đề cập rằng thư viện bạn đang sử dụng có nguồn dữ liệu GPL. Có lẽ điều đó có nghĩa là bạn sẽ không thực sự phân phối dữ liệu GPL này với nó, chỉ thư viện LGPL sử dụng nó.

+0

Ồ vâng, nếu bạn không phân phối ứng dụng nhưng chỉ muốn sử dụng nó để sử dụng cá nhân của bạn (trên máy chủ web của riêng bạn, ví dụ) sau đó đi hạt. Yêu cầu phân phối mã nguồn + các công cụ khác chỉ khi bạn phân phối ứng dụng. – thomasrutter