Tôi có thể bán ứng dụng PyQt4 của mình mà không cần giấy phép PyQt không?


18

Tôi muốn bán một ứng dụng Python sử dụng PyQt4. Các giấy phép thương mại cho Qt PyQt có giá hàng ngàn Euro cùng nhau. Tôi có cần mua giấy phép thương mại không?

Hãy xem xét điều này từ quan điểm "đóng gói" nơi tôi đang cung cấp gói Ubuntu thông qua Trung tâm phần mềm. Gói của tôi sẽ "phụ thuộc" vào các gói Ubuntu Python và PyQt hiện có, vì vậy tôi có cần cấp phép cho thứ gì đó mà Ubuntu đang phân phối lại, mà tôi không trực tiếp?

Ngược lại, nếu tôi đã bao gồm thư viện Python GPL / LGPL trong gói của mình thì gói của tôi có thể duy trì được miễn phí không? Tôi không thể tạo nguồn cho các thư viện GPL có sẵn (nếu được sửa đổi)?


Nếu câu trả lời là "Bạn cần giấy phép thương mại", có bất kỳ lựa chọn thay thế nào rẻ hơn mà bạn biết (như thanh toán dựa trên tiền bản quyền thay vì phí nhà phát triển trả trước) không?


5
Tôi đã chỉnh sửa điều này để nói một cách rõ ràng về Ubuntu để chúng tôi có thể đặt tất cả những điều vắt tay này phía sau chúng tôi và thực sự trả lời câu hỏi của mọi người. Tôi đã thanh trừng các cuộc tranh luận từ các ý kiến ​​và đã mở lại câu hỏi.
Oli

Lưu ý rằng câu hỏi này là về PyQt4 có sẵn trong cả hai GPL GNU. PyQt5 gần đây chỉ là GNU GPLv3. Sự khác biệt kỹ thuật rất thích hợp về mã "liên kết" không áp dụng ở đó (= ít phù hợp với bao bì thương mại).
mario

Câu trả lời:


18

Tôi không phải là một luật sư và đây không phải là tư vấn pháp lý. Bài đăng này là về những lựa chọn bạn có, vì vậy nó là một công cụ nghiên cứu, dự định sẽ được sử dụng cùng với các công cụ nghiên cứu khác. Ngay cả khi kết hợp với các công cụ nghiên cứu khác, điều này không thay thế cho việc hỏi ý kiến ​​luật sư về bất kỳ vấn đề pháp lý nào mà bạn cần một câu trả lời thích hợp.

Một trong những tùy chọn cấp phép cho Qt ( không phải PyQt ) là LGPL 2.1 , cho phép bạn phân phối các chương trình độc quyền sử dụng thư viện Qt miễn là bạn tuân thủ tất cả các điều khoản của LGPL 2.1 .

PyQt, tuy nhiên, hiện chỉ có hai tùy chọn cấp phép (trừ khi bạn đàm phán một cái gì đó khác với các nhà phát triển của nó, điều này thường không thực tế). Nó có sẵn theo GPL - để phân phối chương trình của bạn, nó sẽ phải là phần mềm nguồn mở miễn phí ; cụ thể hơn, bất kỳ phiên bản chương trình nào bạn cung cấp cho người khác và sử dụng thư viện PyQt cũng sẽ phải được cấp phép theo GPL.

Sự thay thế duy nhất cho GPL, cho một chương trình sử dụng PyQt, là trả tiền cho một giấy phép thương mại. Như bạn đã chỉ ra, điều này thường rất tốn kém (mặc dù đối với một số ứng dụng thì đó là một thỏa thuận tốt).

Nếu mục tiêu của bạn là viết chương trình không tương thích GPL bằng Python sử dụng Qt, bạn có thể muốn xem xét PySide . Giống như PyQt, PySide là một ràng buộc Python cho Qt, cho phép bạn viết các chương trình Python sử dụng Qt. Không giống như PyQt, PySide có sẵn theo LGPL (như chính Qt), và do đó có thể được sử dụng bởi các chương trình độc quyền miễn là bạn đọc và tuân thủ các điều khoản của LGPL một cách cẩn thận.

Đôi khi, PyQt có lợi thế đáng kể so với PySide. Thông thường, nó không. Ngoài ra còn có một yếu tố chủ quan mà bạn có thể thích sử dụng; lập trình viên khác nhau có sở thích khác nhau. Để biết thêm thông tin, xem Sự khác biệt giữa PySide và PyQt .


Các ứng dụng PyQt4 không phải được cấp phép GPL. PyQt4 chứa Ngoại lệ GPL đặc biệt cho phép một số giấy phép không phải GPL nhất định. Xem: riverbankcomputing.com/software/pyqt/licensegithub.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT
Mario

1
@Mario Cảm ơn thông tin! Nhưng tôi khuyến khích bạn đăng một câu trả lời giải thích điều này ít hơn và cũng làm rõ cách áp dụng cho OP của câu hỏi này (người dường như muốn phân phối phần mềm dựa trên PyQt độc quyền). Đây là lý do: riverbankcomputing.com/software/pyqt/license cho thấy PyQt có thể được cấp phép theo GPL (hai phiên bản được phép) hoặc giấy phép thương mại (hai biến thể) trong đó nhà phát triển trả cho Riverbank quyền phân phối phần mềm dựa trên PyQt độc quyền.
Eliah Kagan

@Mario Việc sửa lỗi chính cho câu trả lời của tôi dường như là tại github.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT , cung cấp nhiều tùy chọn hơn. Nhưng dường như không ai cho phép làm cho phần mềm dựa trên PyQt trở thành độc quyền - chúng là các giấy phép FOSS khác. Ngoài ra, có một trang chính thức có liên kết đến tập tin đó, hoặc thông tin khác để làm rõ rằng nó thực sự một tài liệu cấp phép chính thức? (Tôi tin rằng rất có thể là như vậy, nhưng tôi không chắc bằng cách nào tôi chứng minh điều đó với CEO hoặc các bên liên quan khác.) Thật kỳ lạ khi các tùy chọn mở rộng không được đề cập trên trang cấp phép đầu tiên trên trang web chính thức của Riverbank.
Eliah Kagan

Tôi có thể tạo trình cài đặt ứng dụng sử dụng PyQt5 được cấp phép theo GPL không, nhưng ứng dụng đang được cài đặt được cấp phép theo điều khoản của riêng tôi chưa?
Niklas R

1
Xin chào @EliahKagan! PySide 2 thì sao, có áp dụng tương tự không?
Francesco Pegoraro

5

Nói một cách đơn giản: Nếu bạn không hiểu các điều khoản trong giấy phép của phần mềm bạn đang sử dụng đủ để diễn giải nếu những gì bạn đề xuất là "ổn", bạn cần nói chuyện với một chuyên gia. Nếu bạn muốn tìm kiếm một thỏa thuận trực tiếp với chủ sở hữu giấy phép, điều đó cũng hoạt động nhưng bạn vẫn cần phải hiểu cách cấp phép hoạt động.


Giống như Eliah, tôi cũng không phải là luật sư và khi bạn bị kiện vì làm theo lời khuyên của tôi, bạn không thể nói rằng tôi đã không cảnh báo bạn. Tôi thường đồng ý với Eliah nhưng tôi nghĩ trong trường hợp này, Python hơi khác một chút.

Phần mềm GPL cho phép bạn phân phối lại một cái gì đó miễn là bạn cung cấp nó theo cùng một giấy phép. Trong trường hợp này, bạn sẽ phân phối lại PyQT mà bạn có thể làm. Bạn cũng sẽ được phân phối sản phẩm của bạn. Cá nhân tôi không thấy lý do tại sao bạn không thể làm cả hai miễn là bạn cung cấp nguồn cho GPL những thứ bạn đang sử dụng. Bạn không tích hợp chúng vào Python của mình, bạn chỉ đang sử dụng chúng.

Để mô tả thêm về những gì tôi đang nói, nếu bạn đưa thư viện vào dự án C và biên dịch nó xuống, bạn sẽ kết thúc mã GPL trong tệp nhị phân của mình hoặc bạn sẽ tạo thư viện tĩnh mà mã của bạn được liên kết đến ( tĩnh hoặc động). FSF sẽ yêu cầu bạn cung cấp mã của mình bằng GPL nếu bạn phân phối lại mã được bảo vệ của họ.

Thấy sự khác biệt? Phân phối dựa trên văn bản của Python có nghĩa là liên kết khá động: Không có "liên kết" tĩnh với mã GPL và tham chiếu đến PyQT có thể được thay thế trong một môi trường khác. Bạn chỉ đang sử dụng API của nó.

Nếu bạn tìm kiếm "python import gpl", bạn sẽ tìm thấy nhiều, nhiều đối số theo cả hai hướng từ nhiều, nhiều người không phải là luật sư. Đây không phải là một cuộc tranh luận đơn giản và nếu nó đã đi đến một vụ kiện, bạn có thể chắc chắn rằng mọi người ở phía phần mềm miễn phí của băng ghế dự bị sẽ ném mọi thứ vào đó để đảm bảo rằng một tiền lệ tiêu cực đã được thiết lập.

Vì vậy, một lần nữa, có lẽ bạn không đủ điều kiện để đưa ra quyết định này một mình. Hãy nói chuyện với một luật sư hoặc xem xét bạn sẽ phải trả bao nhiêu tiền và giải quyết rằng sẽ rẻ hơn nếu chỉ trả tiền cho giấy phép thương mại.

Bỏ qua cấp phép sẽ làm việc tốn kém hơn nhiều.


2
«Bạn không tích hợp chúng vào Python của mình, bạn chỉ đang sử dụng chúng» Nếu bạn nhập các mô-đun Python GPLed, toàn bộ điều sẽ trở thành GPL.
Andrea Lazzarotto
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.