Có thể sử dụng bất kỳ thư viện được cấp phép GPLv2 nào trong ứng dụng mạng nội bộ của công ty không?


13

Tôi đang tạo một ứng dụng nội bộ cho công ty mà tôi ký hợp đồng. Chúng tôi muốn sử dụng thư viện được cấp phép GPLv2 trong ứng dụng này. Một số điểm

  1. Ứng dụng này sẽ được sử dụng trong giới hạn của công ty và không bao giờ có sẵn cho sử dụng công cộng. Nó chỉ dành cho công ty nội bộ.
  2. Nó sẽ không bao giờ được bán, bao giờ !! . Vì vậy, không có tiền sẽ được thực hiện trực tiếp từ việc bán mã. Nó không phải là một sản phẩm.
  3. Có hai hình thức sử dụng ứng dụng
    • Hình thức gốc của nó là exe dựa trên giao diện điều khiển (sử dụng thư viện GPL); và
    • Sử dụng thông qua một giao diện web gọi thực thi.
  4. Mã nguồn sẽ vẫn là nguồn đóng (chỉ sử dụng cho công ty) và được sở hữu

Tôi đã trải qua rất nhiều câu hỏi về SO về vấn đề này ( một câu hỏi đóng ngoài chủ đề và một câu hỏi khác không được đánh dấu từ Lập trình viên ), nhưng tôi đã có một thời gian khó hiểu liệu cách giải thích của tôi về giấy phép có đúng hay không.

Dựa trên sự hiểu biết của tôi cho đến nay, tôi được phép sử dụng thư viện này mà không cần quan tâm. Tôi không sửa đổi mã nguồn và tôi cũng không phân phối ứng dụng hoặc làm cho ứng dụng có sẵn công khai. Ứng dụng sẽ không được bán và cũng sẽ không được phân phối cho bất kỳ ai bên ngoài công ty (Tuy nhiên, nó sẽ có sẵn tại cơ sở DR ngoài công ty của chúng tôi). Tôi rất có thể sử dụng các phiên bản nhị phân được phát hành và không biên dịch lại từ nguồn.

Câu hỏi sau đây từ FAQ FAQ dường như hỗ trợ cho suy nghĩ của tôi.

GPL có yêu cầu mã nguồn của các phiên bản sửa đổi phải được đăng lên công chúng không?

GPL không yêu cầu bạn phát hành phiên bản sửa đổi hoặc bất kỳ phần nào của phiên bản đó. Bạn có thể tự do sửa đổi và sử dụng chúng một cách riêng tư mà không bao giờ phát hành chúng. Điều này áp dụng cho các tổ chức (bao gồm cả các công ty), quá; một tổ chức có thể tạo một phiên bản sửa đổi và sử dụng nó trong nội bộ mà không bao giờ phát hành ra bên ngoài tổ chức.

Nhưng nếu bạn phát hành phiên bản sửa đổi ra công chúng theo một cách nào đó, GPL yêu cầu bạn cung cấp mã nguồn đã sửa đổi cho người dùng của chương trình, theo GPL.

Do đó, GPL cho phép phát hành chương trình đã sửa đổi theo những cách nhất định chứ không phải theo những cách khác; nhưng quyết định có phát hành hay không là tùy thuộc vào bạn.

Có thể sử dụng bất kỳ thư viện được cấp phép GPLv2 nào trong ứng dụng mạng nội bộ của công ty không?


2
Đây là một câu hỏi pháp lý để luật sư hoặc lãnh sự pháp lý của công ty quyết định.
hotpaw2

1
@ hotpaw2 - đề xuất của bạn chắc chắn có giá trị và là hướng dẫn tốt nhất từng có thể đưa ra, nó thực sự gây khó khăn cho tôi rằng với tất cả các nhà phát triển trên thế giới, những câu hỏi này vẫn được hỏi và vẫn trong một số trường hợp vẫn chưa rõ ràng. Tuy nhiên, nhưng nghiêm túc, cảm giác của tôi là giấy phép cố tình không rõ ràng về một số khía cạnh nhất định. Làm thế nào nếu các nhà phát triển sử dụng phần mềm này không thể có câu trả lời rõ ràng, IMO cố gắng giải thích các khái niệm cho luật sư và nhận được sự giải thích của họ về giấy phép là rất nhiều câu hỏi. Một câu trả lời cho các nhà phát triển là cách để đi
Ahmad

@Ahmad: Các khía cạnh duy nhất tôi thấy không rõ ràng nghiêm trọng là các phần cần tôn trọng luật bản quyền: tác phẩm có nguồn gốc là gì, phân phối là gì, v.v. Cho đến khi chúng tôi làm rõ pháp lý (ở Hoa Kỳ, có thể liên quan đến việc thay đổi văn bản của luật pháp hoặc phán quyết của tòa án sản xuất luật án lệ), chắc chắn không ai biết điều đó.
David Thornley

Như bạn đã đề cập rằng có hai hình thức sử dụng ứng dụng 1) Hình thức gốc của nó là exe dựa trên giao diện điều khiển (sử dụng thư viện GPL); và 2) Sử dụng thông qua giao diện web gọi tệp thực thi. Đối với người đầu tiên, vui lòng làm rõ rằng 'Đây có phải là cuộc gọi đến thư viện GPL thông qua các cuộc gọi hệ thống hoặc thông qua một cuộc gọi tùy chỉnh' không?

Câu trả lời:


22

GPL, trong tất cả các biến thể của nó, là giấy phép phân phối lại . Nó hoàn toàn không áp dụng nếu bạn không phân phối lại mã. Nó có thể áp dụng trong tương lai nếu một ngày nào đó, bạn quyết định tạo một sản phẩm ra khỏi ứng dụng của mình, nhưng không phải bây giờ.


Miễn là nó không bao giờ được phân phối lại , giấy phép không có hiệu lực đối với bạn. Không ai. Tất nhiên, điều hành bởi luật sư của bạn nếu bạn không chắc chắn, và chắc chắn rằng họ quen thuộc với luật cấp phép bản quyền.
Michael Trausch

2
Nói cách khác, tất cả những người có nhị phân, cũng phải có nguồn tương ứng để họ có thể sửa lỗi và tạo nhị phân mới.

2
Vậy điều này có nghĩa là tôi cũng có thể sử dụng trang web GPLv2 trong công ty mà không bán chức năng của nó?
Johnny_D

3

Tôi nghĩ rằng bạn đã trích dẫn câu trả lời, vì vậy bạn có nó.

Kiến thức của tôi về GPL là đối với những gì bạn muốn làm, bạn không có vấn đề gì.


3

Câu trả lời ở đây xoay quanh định nghĩa pháp lý của phân phối .

Nếu việc cung cấp một chương trình cho nhân viên của bạn để chạy là phân phối nó, thì các yêu cầu GPL sẽ được áp dụng và bạn phải cung cấp cho các nhân viên nhận được nguồn của chương trình .

Nếu đưa cho nhân viên của bạn một bản sao của chương trình không phải là bản phân phối, thì bạn không có yêu cầu nào, vì bạn chưa phân phối nó.

Câu hỏi thường gặp mà bạn đã trích dẫn cho bạn biết rằng bạn không phải công khai mã của mình . (Đó là, với bất kỳ người ngẫu nhiên nào trên đường phố.)

Lưu ý rằng rõ ràng rằng theo GPLv2, dịch vụ web không được coi là phân phối. Nó chỉ là ứng dụng giao diện điều khiển gây nhầm lẫn.

Tôi đề nghị bạn nên nhận tư vấn pháp lý từ luật sư của công ty bạn.


2

Có, bạn có thể NHƯNG tính đến hợp tác với các nhà thầu phụ, công ty đối tác và những thứ tương tự. Điều này đã đến để cắn nhiều quản trị viên ở phía sau, vì "chỉ dành cho nội bộ" đã trở thành "chia sẻ giữa các đối tác" sau đó là "sản phẩm để bán". Sau đó, các phần GPL cần phải được viết lại từ đầu hoặc bạn giải phóng các nguồn vào Intranet của mình.


4
OTOH, hầu hết các giấc mơ kiếm tiền từ các công cụ được phát triển để sử dụng nội bộ, các nhà quản lý đều mơ ước bị nghiền nát khi nhận ra ứng dụng cụ thể của công ty và lỗi như thế nào. Giấy phép luôn là vấn đề cuối cùng tôi gặp phải, khi những tình huống như vậy xảy ra.
keppla

@keppla: Có, và điều đó có nghĩa là: Sử dụng nó, nhưng hãy chú ý đến nó. Giữ biên giới rõ ràng giữa độc quyền của bạn và GPL, để nếu đến lúc thay đổi, bạn sẽ không thấy mình vướng vào vô vọng. "Bí mật kinh doanh" được phân tách bằng lớp trừu tượng tốt của một số logic keo từ các bộ phận GPL.
SF.

1

LGPL phiên bản 2 cho phép bạn phân phối lại nguồn và nhị phân.

Bạn thậm chí có thể bán nó.

Hạn chế thực sự duy nhất là như sau:

Nếu bạn sửa đổi thư viện và phân phối nó, thì bạn phải phát hành các thay đổi bạn đã thực hiện cho thư viện một cách công khai. Đọc điểm 2 của LGPL.

Nếu bạn không sửa đổi nó, bạn không thực sự có vấn đề.


0

Tôi không nghĩ đó sẽ là một vấn đề. Các ứng dụng web sử dụng mã GPL nhưng không có sẵn ở dạng mã nguồn cho người dùng là một trong những vấn đề mà GPLv3 thay đổi so với GPLv2, đóng "lỗ hổng" đó. Điều này có vẻ như phần lớn cùng một câu hỏi.

Tùy thuộc vào chính xác thư viện dùng để làm gì, một cách rõ ràng khác để tránh toàn bộ vấn đề là tạo một trình bao bọc rất đơn giản xung quanh thư viện. Nếu thư viện là GPL, thì trình bao bọc có thể cần phải là GPL, nhưng nếu các giao diện được phân tách rõ ràng, thì giấy phép của mã trình bao bọc không nên (tôi gần như không nói, nhưng hãy tham khảo ý kiến ​​pháp lý có kỹ năng phù hợp học viên) có bất kỳ tác động nào đối với các yêu cầu cấp phép của ứng dụng chính.


0

Điều quan trọng cần nhớ trong tất cả các lời khuyên "lập trình viên-lập trình viên" này là không ai trong số đó là tư vấn pháp lý. Khi chủ đề này rõ ràng, có chỗ để giải thích với GPL.

Bạn đã phải cân nhắc chi phí đưa tổ chức của mình ra hành động pháp lý nếu bạn vi phạm GPL so với nhận được ý kiến pháp lý tốt, hợp lý . Có những ý tưởng hay trong chủ đề này, nhưng tôi sẽ không đưa ra quyết định về đầu vào này một mình.

-

Ví dụ: đây là một nếp nhăn: Điều gì xảy ra nếu mã GPL là JavaScript?

Khi người dùng truy cập trang web có mã JavaScript của GPL, về mặt kỹ thuật, "mã nguồn" (trong trường hợp này là tệp JS) được "phân phối" cho người dùng cuối. Điều đó có nghĩa là toàn bộ trang web của bạn cần phải là GPL? Có cả một cuộc tranh luận về điều đó , quá.

Mặc dù tôi ghét trả tiền cho luật sư nhiều như anh chàng chăm chỉ tiếp theo, nhưng lại gặp rủi ro, đây là một lĩnh vực thường tốt hơn là không phụ thuộc vào lời khuyên trên Internet (tất nhiên trừ lời khuyên này).


Không liên quan - OP đang hỏi về một ứng dụng hoàn toàn nội bộ. Trong trường hợp đó, không có phiên bản nào của GPL nói bất cứ điều gì về việc phải phân phối bất cứ thứ gì (mặc dù việc liên kết với phần mềm không tương thích với GPL có thể là một vấn đề) và Gnu FAQ giải quyết vấn đề thiếu yêu cầu trực tiếp.
David Thornley

-1

Như các áp phích trước đã nói, giấy phép GPL chỉ áp dụng nếu bạn phát hành ứng dụng của mình, nếu nó vẫn chỉ được sử dụng nội bộ thì không có vấn đề gì. Tuy nhiên, đáng để xem xét các hàm ý bất kể, trong trường hợp điều này bao giờ thay đổi.

Hiểu biết cơ bản của tôi về giấy phép là nó cho phép bạn sửa đổi mã nguồn, sau đó bán ứng dụng kết quả nếu bạn muốn, nhưng với điều kiện bạn cung cấp mã nguồn cho bất kỳ ai hỏi, bao gồm mọi thay đổi bạn đã thực hiện.

Trong trường hợp thư viện được biên dịch, mã GPL sẽ tách biệt với cơ sở mã chính của bạn và do đó chỉ cần mã nguồn cho thư viện được biên dịch - không phải là phần còn lại của cơ sở mã của bạn.

Trường hợp thư viện không được biên dịch - tức là trong một ứng dụng PHP, tôi tin rằng sự tách biệt vẫn tồn tại. Ví dụ: ứng dụng của bạn sử dụng thư viện nguồn mở để tạo tệp PDF - mọi sửa đổi đối với mã tạo PDF sẽ được cấp phép và mọi cải tiến phải được phát hành, tuy nhiên mọi mã trong ứng dụng của bạn sử dụng thư viện này không cần phải phát hành .

Xin lưu ý rằng điều này thay đổi với GPL v3, theo đó mã của bạn phải được mở nguồn nếu bạn liên kết với một thư viện nguồn mở ...


1
"Chỉ mã nguồn cho thư viện được biên dịch là bắt buộc phải được phát hành" - điều này mô tả LGPL, không phải GPL. GPL hoạt động theo giả định rằng liên kết đến thư viện làm cho ứng dụng của bạn trở thành công việc phái sinh của thư viện và do đó, tùy thuộc vào chính GPL.
Sean McMillan

-2

Tôi không chắc liệu có ổn không khi cấm nhân viên phân phối lại ứng dụng đó, vì bản thân ứng dụng cũng là GPL. Vì vậy, những gì bạn nghĩ có thể là một "ứng dụng nội bộ" có thể có khả năng (về mặt pháp lý?) Bị rò rỉ cùng với mã nguồn.


Vui lòng giải thích về 'vì bản thân ứng dụng cũng là GPL'. bạn đang đề cập gì tới? Nếu bất cứ ai muốn lấy thư viện GPL'ed và phân phối nó, giấy phép sẽ bắt đầu từ những gì tôi hiểu cho đến nay. Ứng dụng mạng nội bộ (console n web) KHÔNG được phân phối và nếu bất kỳ nhân viên nào quyết định 'phân phối lại' ứng dụng của công ty, tôi chắc chắn rằng anh ta sẽ không trở thành nhân viên trong thời gian dài sau đó ..
Ahmad

EXE dựa trên bảng điều khiển là GPL vì nó sử dụng thư viện GPL và do đó, GPL yêu cầu nó phải được phân phối lại tự do bởi bất kỳ ai có quyền truy cập vào nó. Có, một nhân viên có thể mất việc vì làm như vậy, nhưng đó là quyền của anh ta để phân phối lại EXL của GPL với nguồn. Mặc dù, các quy tắc và luật khác (ví dụ: bí mật thương mại) có thể được áp dụng. Kiểm tra với luật sư xem bạn có thực sự có thể giữ nhân viên "không trung thành" chịu trách nhiệm thực hiện việc được GPL cấp hay không.
zvrba

xin vui lòng đọc lại câu hỏi Phần lớn các câu trả lời dường như không đồng ý với bạn hoặc có điều gì chúng ta đang thiếu? Ứng dụng (bao gồm phần GPL'ed) KHÔNG dành cho phân phối / phân phối lại, sẽ chỉ được sử dụng nội bộ, không được bán, không phải đối mặt với công chúng. Thư viện GPL sẽ KHÔNG được sửa đổi theo bất kỳ cách nào. Bạn có biết rằng Google sử dụng các phiên bản sửa đổi của linux kernal chỉ để sử dụng nội bộ và không phân phối phiên bản này. Tôi nhấn mạnh chỉ sử dụng nội bộ.
Ahmad

Cho dù bạn có ý định phân phối ứng dụng hay không thì không liên quan. GPL rõ ràng về các vấn đề sau: bất kỳ ai có được bàn tay của mình trong công việc GPL đều có thể tự do phân phối thêm (và có thể yêu cầu mã nguồn). Nói chuyện với một luật sư để tìm hiểu những gì khác có thể được tổ chức chống lại nhân viên của bạn nếu họ chọn phân phối công việc GPL, vì giấy phép GPL cho phép họ.
zvrba

1
Ứng dụng không tự động GPL bằng cách bao gồm thư viện GPL. Tuy nhiên, nếu bạn muốn phân phối một ứng dụng bao gồm thư viện GPL, thì nó phải được cấp phép theo giấy phép tương thích GPL. Phần 7 của GPL V2 nêu rõ: Nếu bạn không thể phân phối đồng thời để đáp ứng các nghĩa vụ của bạn theo Giấy phép này và bất kỳ nghĩa vụ thích hợp nào khác, thì do đó, bạn hoàn toàn không thể phân phối Chương trình. Vì vậy, nếu bạn không có quyền phân phối mã ứng dụng của công ty, bạn không thể phân phối ứng dụng.
KeithB
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.