Tôi đã tạo một chương trình dựa trên dự án LGPL và tôi không được phép xuất bản mã nguồn


13

Tôi nghĩ LGPL là một giấy phép cho phép, giống như MIT, BSD hoặc Apache. Nhưng hôm nay tôi đọc được rằng chỉ cho phép liên kết với LGPL (thư viện, v.v.) từ mã nguồn đóng - ngoài ra, đó là copyleft - vì vậy tôi phải xuất bản mã dựa trên chương trình LGPL.

Tôi đã tạo một chương trình cho chủ lao động của mình dựa trên chương trình LGPL, nhưng có những sửa đổi đáng kể đối với chương trình đó. Tất nhiên, tôi không được phép đưa mã nguồn đã sửa đổi đó ra khỏi đó. Đồng thời, tôi phải, nếu tôi phân phối nó (phải không?).

Vì vậy, tôi tự hỏi liệu có một cách giải quyết cho vấn đề này không, vì vậy tôi có thể giữ nguồn đóng này (tôi muốn tôi có thể xuất bản nguồn này) - có đề xuất nào không?

Ý tưởng của tôi: tôi có thể đặt hầu hết các chức năng của ứng dụng LGPL gốc vào thư viện bên ngoài, viết lõi thực thi từ đầu, nhưng tham khảo lại thư viện cho tất cả các chức năng mà tôi chưa sửa đổi?

Hiện tại, mọi thứ đều nằm trong tệp .jar (đó là Java / Swing). nếu bạn nghĩ rằng ý tưởng của tôi là khả thi về mặt pháp lý / kỹ thuật - sẽ mất bao nhiêu nỗ lực để phân tách những gì tôi đã viết và bản gốc là gì? Tôi không phải là người hiểu biết nhất về java.


Trong bài đăng này , anh chàng nói "Ngoài ra, LGPL có thể bị phá vỡ bằng cách chỉ cần đặt nó vào một dll mới và sử dụng các đại biểu hoặc giao diện để gọi nó từ mã nguồn LGPLed." - ai đó có thể giải thích thêm một chút về cách tôi làm điều này với ứng dụng Java gốc không?

16
đây không phải là một trang web hợp pháp , tôi sẽ không nhận bất kỳ lời khuyên nào về các vấn đề pháp lý từ bất cứ ai ở đây, ngoại trừ lời khuyên để có được lời khuyên pháp lý thực sự.

5
LGPL chủ yếu liên quan đến phân phối và bạn chưa cung cấp cho chúng tôi bất kỳ thông tin nào về cách bạn dự định phân phối mã này. Câu hỏi không thể có được câu trả lời chính xác cho đến khi bạn làm như vậy. Trong mọi trường hợp, tôi sẽ nhắc lại rằng bạn không nên nhận lời khuyên pháp lý từ internet .
Rein Henrichs

Tôi tin rằng bây giờ tôi hiểu LGPL khá tốt về tính hợp pháp. Vì vậy, tôi thực sự hỏi các bạn về cách làm cho nó hoạt động một cách kỹ thuật - mặc dù tất nhiên bạn đúng - trong trường hợp nghi ngờ tôi sẽ hỏi ý kiến ​​luật sư.
Esuus

Bạn không nói phần mềm nào bạn đang sử dụng, nhưng một số nhà cung cấp phần mềm GPL / LGPL (và các phần mềm khác) cung cấp giấy phép thương mại cho những người trong tình huống của bạn.
Jaydee

Câu trả lời:


13

Trước hết, thực hiện tư vấn pháp lý ở đây (như trong: các quốc tế) không phải là một ý tưởng tốt.

Thứ hai, và đây chỉ là tôi nói, không phải luật sư, bạn nên nghĩ về điều đó trước khi bạn tham gia chương trình LGPL'ed và sửa đổi nó cho chủ nhân của bạn.

Nếu giấy phép là thứ bạn có thể bỏ qua chỉ vì bạn không thích nó, thì bây giờ sẽ không có nhiều điểm để có?

Nếu bạn và / hoặc chủ lao động của bạn không sẵn sàng xuất bản mã nguồn với các sửa đổi của bạn, bạn cần ngừng sử dụng mã LGPL đó và loại bỏ mã đó.

Một lần nữa, đó chỉ là tôi nói.

Nhận lời khuyên từ một luật sư thực sự.


Để trả lời câu hỏi của bạn về việc phá vỡ giấy phép bằng cách thêm mã vào DLL, tôi sẽ cho rằng nó sẽ hoạt động theo cách sau.

Những gì bạn sẽ làm là thay đổi chương trình gốc đủ để làm cho nó có thể gọi các chức năng trong các thư viện bên ngoài. Bạn sẽ phải làm như vậy mà không làm cho đoạn mã đó cụ thể theo nhu cầu, thư viện, tên hàm của bạn, v.v.

Những thay đổi sau đó bạn xuất bản, theo yêu cầu giấy phép.

Sau đó, bạn tạo thư viện bên ngoài của riêng mình bằng mã độc quyền của riêng bạn và yêu cầu chương trình đó tải và thực thi nó, sử dụng các sửa đổi mà bạn đã thực hiện với nó.

Không biết toàn bộ phạm vi của giấy phép LGPL, tôi không thể nói nếu điều đó là đủ để tránh phải xuất bản thư viện của bạn mặc dù tôi nghi ngờ nó sẽ như vậy.

Tuy nhiên, một lần nữa ...

Nhận lời khuyên từ luật sư


4
Lưu ý rằng FSF, người đã viết họ giấy phép GPL, xem xét liên kết động để tạo ra một tác phẩm phái sinh, do đó có thể không hoạt động. (Những người khác nghĩ rằng FSF là sai.) Tôi không nghĩ rằng có một quyết định pháp lý, mặc dù tôi cũng có thể sai.
David Thornley

Có thật không? Tôi tin rằng bạn biết nhiều về điều này hơn tôi, David, nhưng wikipedia nói rằng bạn thậm chí có thể tự động liên kết với các thư viện được cấp phép GPL mà không phải xuất bản theo GPL: "Ví dụ: ngoại lệ liên kết GPL cho phép các chương trình không tự cấp phép theo GPL để liên kết với các thư viện được cấp phép theo GPL mà không phải tuân theo các yêu cầu GPL. " Vì vậy, điều đó khiến tôi tự hỏi bây giờ sự khác biệt giữa GPL và LGPL là gì: Tôi nghĩ chỉ LGPL cho phép điều đó.
Esuus

2
@Dave: Nhóm pháp lý lớn của chủ nhân của tôi sẽ không đồng ý. Họ rất tích cực trong việc bảo vệ tài sản trí tuệ của mình và chúng tôi rõ ràng bị cấm liên kết mã GPLed với chính chúng tôi trừ khi chúng tôi phân phối mã theo GPL. Bạn đã tìm thấy ngoại lệ đó ở đâu? Tôi không thấy nó trong GPLv2 hoặc v3. Có vẻ như bạn đang đề cập đến một ngoại lệ liên kết không phải là một phần của GPL vanilla. Tuy nhiên, chủ sở hữu bản quyền có thể thêm ngoại lệ liên kết vào mã GPLed theo quyết định của họ. Tư vấn nhóm pháp lý thực sự là điều tốt nhất để làm.
Vô hiệu

5
Tôi sẽ không tin tưởng Wikipedia về điều này. Đối với tất cả những gì bạn biết, mục được viết bởi một đứa trẻ 14 tuổi đọc về việc cấp phép vào cuối tuần trước. Nhận lời khuyên thực sự. Hoặc, bạn có thể đặt cược trang trại và hy vọng công ty của bạn không gặp rắc rối. Dù làm việc gì.
Lasse V. Karlsen

@Dave liên kết đến GPL là một vấn đề. Theo tôi biết, đây là một trong những lý do chính khiến FreeBSD bỏ GCC để ủng hộ Clang / LLVM .
Legolas

4

Hầu hết các thư viện nguồn mở được xuất bản theo LGPL hoặc giấy phép có thể so sánh, ít nhất là những thư viện đủ tốt để sử dụng trong các dự án của bạn, được xây dựng theo nguyên tắc mở / đóng: http://en.wikipedia.org/wiki/Open/closes_principl .

Bạn sẽ có thể cấu trúc lại mã của mình để ứng dụng của bạn được liên kết với thư viện LGPL và tất cả các tiện ích mở rộng được chứa trong mã ứng dụng đã đóng của bạn.


Chà, mã LGPL mà tôi đã sử dụng là một ứng dụng, không phải là thư viện .. vì vậy câu hỏi đặt ra là liệu tôi có thể biến nó thành một thư viện hay - như Lasse đã đề xuất - biến mã của tôi thành một thư viện và giữ phần còn lại của LGPL / mở
Esuus

1
@Dave: LGPL từng được gọi là Thư viện GPL. Tôi thực sự chưa thấy bất kỳ ứng dụng nào sử dụng giấy phép này. Bạn đã sử dụng cái gì, nếu nó không phải là một bí mật?
Olaf

FSF bây giờ gọi nó là GPL nhỏ hơn. Việc sử dụng duy nhất tôi có thể nghĩ ra ngay bây giờ cho các ứng dụng là có thể liên kết trong các thư viện độc quyền và những thứ tương tự.
David Thornley

Điều thú vị là cả Mozilla và OpenOffice.org đều được cấp phép theo LGPL.
Esuus

@Dave: Sau đó, tôi với @David Thornley. Mozilla cung cấp phương tiện để tạo các trình cắm tùy chỉnh có thể là mã đóng. Tôi không quen thuộc với OpenOffice, nhưng tôi cá là họ sẽ làm điều đó. Ứng dụng LGPL mà bạn sử dụng có cung cấp một số loại chức năng mở rộng, như thêm trình cắm hoặc có ngôn ngữ tập lệnh không? Bạn có thể sử dụng cơ chế đó cho mã của bạn?
Olaf

2

Từ chối trách nhiệm tương tự: IANAL.

Một điều mà không ai khác đã đề cập cho đến nay là ngay cả khi bạn tách mã, bạn vẫn phải phân phối mã nguồn cho các bộ phận LGPL hoặc ít nhất cung cấp thông tin về nơi có thể tải xuống.

Cách duy nhất để vượt qua điều đó là không phân phối chúng ở nơi đầu tiên.


2

Tôi không nghĩ rằng bạn cần một luật sư để hiểu rằng cố gắng phá vỡ giấy phép không phải là một điều tốt. Tâm lý chung là đủ.

Thay vào đó, bạn có thể liên hệ với tác giả ban đầu của chương trình LGPL và hỏi / mua giấy phép khác và độc quyền.

Các lựa chọn thay thế khác là phát hành nguồn hoặc viết lại hoàn toàn.


1

IANAL, TINLA, v.v.

Tôi nghĩ LGPL là một giấy phép cho phép, giống như MIT, BSD hoặc Apache. Nhưng hôm nay tôi đọc được rằng chỉ cho phép liên kết với LGPL (thư viện, v.v.) từ mã nguồn đóng - ngoài ra, đó là copyleft - vì vậy tôi phải xuất bản mã dựa trên chương trình LGPL.

Có, LGPL yêu cầu bạn cung cấp mã nguồn cho bất kỳ ai nhận được bản sao của tác phẩm hoặc bạn phải phân phối tác phẩm của mình dưới dạng người nhận phần mềm có thể thay thế phiên bản LGPL của bạn bằng bản mới phiên bản. Trong cả hai trường hợp, tất cả các sửa đổi đối với phần LGPL của tác phẩm phải có sẵn cho tất cả những người nhận tác phẩm.

Tôi đã tạo một chương trình cho chủ lao động của mình dựa trên chương trình LGPL, nhưng có những sửa đổi đáng kể đối với chương trình đó. Tất nhiên, tôi không được phép đưa mã nguồn đã sửa đổi đó ra khỏi đó. Đồng thời, tôi phải, nếu tôi phân phối nó (phải không?).

Chính xác. Giấy phép bắt buộc tất cả người nhận phần mềm phải được cấp quyền truy cập vào mã nguồn.

Ý tưởng của tôi: tôi có thể đặt hầu hết các chức năng của ứng dụng LGPL gốc vào thư viện bên ngoài, viết lõi thực thi từ đầu, nhưng tham khảo lại thư viện cho tất cả các chức năng mà tôi chưa sửa đổi?

Điều đó có thể tạo thành một tác phẩm phái sinh và bạn vẫn sẽ được yêu cầu phân phối tất cả các tập lệnh xây dựng tước chương trình xuống thư viện.

Hiện tại, mọi thứ đều nằm trong tệp .jar (đó là Java / Swing). nếu bạn nghĩ rằng ý tưởng của tôi là khả thi về mặt pháp lý / kỹ thuật - sẽ mất bao nhiêu nỗ lực để phân tách những gì tôi đã viết và bản gốc là gì? Tôi không phải là người hiểu biết nhất về java.

Java bổ sung một loạt các vấn đề mới cho LGPL, vì không rõ điều gì tạo nên liên kết "tĩnh" và "động". Do các ngoại lệ của LGPL so với GPL dựa trên khái niệm đó, LGPL thực sự tương đương với GPL trong hầu hết các trường hợp. Bạn sẽ cần tham khảo nhóm pháp lý của công ty để trả lời bất kỳ câu hỏi nào sẽ nêu ra.

Lời khuyên của tôi là nếu bất cứ ai bên ngoài công ty của bạn sẽ có quyền truy cập vào chương trình, hãy loại bỏ nó và bắt đầu lại. Nếu bạn không thể đáp ứng các yêu cầu của giấy phép, thì bạn hoàn toàn không được phép phân phối nó.

Nếu chương trình sẽ chỉ có sẵn trong công ty, thì bạn chỉ được yêu cầu cung cấp nguồn cho nhân viên công ty. Tôi khuyên bạn nên thêm nó vào kiểm soát nguồn công ty hiện tại của bạn. Điều này sẽ đáp ứng các yêu cầu của LGPL, miễn là không có ai bên ngoài công ty có quyền truy cập.


1

bạn có thể sử dụng mẫu bộ điều hợp và không chạm vào mã gốc. Ngoài ra LGPL cho phép bạn kế thừa các lớp và chức năng ghi đè của các lớp trong dự án của riêng bạn.


0

Đây là sự hiểu biết của tôi, IANAL.

Kiểm tra văn bản của phiên bản LGPL bao gồm mã bạn đang sử dụng. Tôi tin rằng yêu cầu là bất kỳ mã LGPL nào cũng cần phải có khả năng trao đổi - thường là bằng cách sử dụng tệp thư viện / tệp chia sẻ. Nếu bạn có thể tách mã bạn sử dụng là LGPL'd vào thư viện, bạn có thể phát hành mã đó theo LGPL, đồng thời phát hành ứng dụng của bạn theo bất kỳ giấy phép nào bạn muốn.


0

Bạn không thể phá vỡ giấy phép. Ngay cả khi bạn tìm thấy một kẽ hở, nó vẫn là phi đạo đức (mặc dù đó là một câu hỏi khác nhau đối với một số người). Những gì bạn CÓ THỂ làm là liên hệ với tác giả của phần mềm nói trên, giải thích tình huống và yêu cầu giấy phép riêng. Nếu anh ấy sẵn sàng cung cấp cho bạn một giấy phép đặc biệt với giá, bạn có thể so sánh điều này với chi phí viết lại phần mềm của bạn mà không sử dụng thành phần được đề cập. Và chỉ cần đi với cái rẻ hơn.

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.