Chạy phần mềm dưới dạng dịch vụ sử dụng chương trình GPL (v2 +) chưa sửa đổi làm phụ thuộc cốt lõi: mã nguồn SaaS có được phát hành không?


10

Tôi đang thiết kế một phần mềm như một dự án dịch vụ sẽ chỉ được truy cập trực tuyến. Tôi có thể có một sự phụ thuộc cứng vào một tệp thực thi được bao phủ bởi GNU GPL (v2 trở lên).

Tôi hiểu rằng mã của tôi, nếu tôi đã từng phân phối nó, cũng phải được phân phối theo các điều khoản GPL. Tôi khá chắc chắn rằng việc chạy dịch vụ qua mạng không phải là truyền tải / phân phối mã. Vì vậy, tôi có đúng khi nghĩ rằng tôi có thể sử dụng phụ thuộc GPL mà không phải tiết lộ tất cả mã của mình không?


Để tôi có thể cung cấp một ví dụ cụ thể: giả sử tôi đang thiết kế trên hệ thống xử lý tài liệu trực tuyến, giống như Google Docs. Tôi muốn có thể tải về cơ bản bất kỳ loại tệp nào vào hệ thống và để nó được chuyển đổi thành bất kỳ định dạng nội bộ nào. Thay vì cố gắng loại bỏ một trình chuyển đổi, tôi muốn sử dụng một chương trình hiện có mà tôi biết về điều đó cho phép chuyển đổi. Chương trình này là một thực thi với cấp phép GNU GPL v2 (hoặc mới hơn). Tôi có thể có dịch vụ phần mềm một cách hợp pháp mà không cần cung cấp mã nguồn không?


Nếu đó là GPLv3 hoặc Affero thì bạn đồng ý. Các giấy phép đó được thiết kế để sửa và đóng lỗ lặp "phần mềm như một dịch vụ".
Andrew T Finnell

Chờ đã, GPLv3 có quá không? Tôi cần xem lại điều đó một lần nữa ...
Platinum Azure

Rõ ràng tôi đang nhầm về GLPv3. Nó đã bị đánh bật ra khỏi nó. linux-mag.com/id/3017
Andrew T Finnell

Câu trả lời:


9

Từ mô tả bạn đã cung cấp, câu trả lời là "không, bạn không phải tiết lộ." Bạn đang phụ thuộc vào đầu ra của GPL'd thực thi hoặc bạn đang coi nó như một hệ thống, đó là hai trường hợp ngoại lệ đối với bản chất virus của GPL. Đi sâu vào Câu hỏi thường gặp về GPL và bạn sẽ tìm thấy câu trả lời của mình dựa trên chi tiết cụ thể về kịch bản của bạn.


Chỉ để đảm bảo rằng tôi hiểu chính xác (đã đọc câu hỏi #GPLoutput trên Câu hỏi thường gặp): Ví dụ: nếu có thể nói rằng bản quyền của tài liệu được tải lên (theo ví dụ của tôi) được giữ bởi người viết ban đầu, sau đó, tệp thực thi đang được sử dụng , đầu ra của tệp thực thi đã nói (không có phần mã của chương trình được chứa trong đó) vẫn giữ bản quyền của nhà văn gốc, và do đó tôi chỉ sử dụng nó và đầu ra không được mặc định theo GPL, tôi không phải tiết lộ?
Bạch kim Azure

1
@PlatinumAzure: có.
MSalters

2
"Không" là chính xác nhưng lý do chính bạn không làm là bạn không phân phối công việc được bảo hiểm GPL (chỉ làm cho nó có sẵn trực tuyến). Đây là chất lượng đã biết của GPL (cả 2 và 3); có một giấy phép riêng giấy phép GPL của Affero bao gồm trường hợp ứng dụng được cung cấp trực tuyến và không được "phân phối".
Craig

Thế còn câu hỏi này khi ứng dụng GPL sẽ được sử dụng trong thời gian thực để tạo đầu ra trên máy người dùng thì sao? và ngoài ra, ví dụ: tất cả các tập lệnh bash được yêu cầu là GPL?
Sức mạnh Bảo Bình

-1

IANAL nhưng IMO GPL có một chút mơ hồ ở đây (hoặc giải thích). GPL mang đến cho bạn rất nhiều sự tự do khi nói đến "cách sử dụng", nhưng nó có rất nhiều hạn chế liên quan đến "phân phối các tác phẩm phái sinh". Đầu tiên, nó liên quan đến việc sử dụng so với các tác phẩm phái sinh. Nếu mã của bạn chỉ "sử dụng" phần mềm GPL, bạn không cần phân phối mã sử dụng mã GPL (nếu bạn tự sửa đổi mã GPLed, bạn vẫn phải phân phối phần đó của bạn đang dự định phân phối thay đổi), mặt khác, nếu nó được coi là công việc phái sinh, thì bạn phải phân phối mã nguồn của mình. Một trong những điểm chính là liệu mã của bạn có chạy trong cùng một không gian địa chỉ quy trình với mã GPLed hay không,

Ngoài ra còn có sự mơ hồ cho dù việc cung cấp dịch vụ web để cho phép mọi người sử dụng mã GPLed được coi là phân phối lại phần mềm hay chỉ là một cách sử dụng phần mềm. Tôi nghĩ rằng hầu hết mọi người cho rằng chỉ cần cung cấp một dịch vụ web không thuộc phân phối lại.

Tốt nhất để hỏi tác giả phần mềm họ nghĩ gì về những gì bạn đang làm. Tốt nhất là tôn trọng cách giải thích của họ thay vì đi theo cách giải thích của riêng bạn. Vào thời điểm tồi tệ nhất nếu nó trở thành một vấn đề, bạn có thể lập luận rằng bạn đã có sự cho phép rõ ràng từ chính các tác giả hoặc bạn sẽ có cơ hội tìm một thư viện dễ dãi hơn hoặc thương lượng ngoại lệ.


Tôi có thể thấy đó là trường hợp đường biên nếu tôi cung cấp giao diện độc quyền cho phần mềm miễn phí, chắc chắn (với giao diện về cơ bản hoạt động chính xác giống như phần mềm miễn phí thực hiện), nhưng nếu tôi chỉ sử dụng nó và Chương trình này rất cần thiết để hoạt động, nhưng nói rằng mục đích của phần mềm miễn phí về bản chất không giống với giao diện độc quyền và được sử dụng hiệu quả như một thư viện hệ thống, chắc chắn có thể nằm trong trường hợp ngoại lệ?
Bạch kim Azure

@PlatinumAzure: Phân tích quá bi quan. "Cung cấp dịch vụ web để cho phép mọi người sử dụng mã GPLed" rõ ràng KHÔNG phân phối mã GPL đó. Không chỉ ý kiến ​​của tôi, mà còn của FSF nữa. Nếu tác giả của phần mềm không đồng ý với FSF, anh ta không nên sử dụng giấy phép của họ.
MSalters

Không có sự mơ hồ. Một trong những lý do chính để tạo GPL v3 là để đóng cái gọi là lỗ hổng này, vì "Aferro GPL" đã được chứng minh. GPLv2 là tất cả về phân phối mã, không phải về việc sử dụng nó.
Ross Patterson

@RossPatterson: câu hỏi là về GPLv2, như tôi đã nói trong bài viết của mình GPL gives you a lot of freedom when it comes to "usage", but it does it lots of limitation concerning "distribution of derivative works". Mặc dù một phần của GPL khá căng thẳng, nhưng trong GPLv2, có thể giải thích liệu SaaS là ​​"sử dụng" hay "phân phối". GPLv2 không nói gì về SaaS vì nó được thiết kế trước khi SaaS là ​​phổ biến, do đó sự mơ hồ.
Lie Ryan

@LieRyan SaaS được sử dụng bởi những người dùng không nhận được phân phối nhị phân được tự do thừa nhận là không phải là "phân phối" và không yêu cầu phân phối mã nguồn. Tổ chức phần mềm miễn phí đã làm việc với Affero để tạo ra GPLv2 được sửa đổi ("Affero GPL" v1) được coi là sử dụng như phân phối. Không có sự mơ hồ trong GPLv2.
Ross Patterson
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.