Posso vendere la mia app PyQt4 senza avere una licenza PyQt?


18

Vorrei vendere un'applicazione Python che utilizza PyQt4. Le licenze commerciali per Qt PyQt costano insieme migliaia di euro. Devo acquistare una licenza commerciale?

Consideralo da un punto di vista "impacchettato" in cui sto fornendo un pacchetto Ubuntu tramite il Software Center. Il mio pacchetto "dipenderà" dai pacchetti Ubuntu Python e PyQt esistenti, quindi dovrei richiedere una licenza per qualcosa che Ubuntu sta ridistribuendo, che non sono direttamente?

Al contrario, se includessi una libreria Python GPL / LGPL nel mio pacchetto, il mio pacchetto sarebbe in grado di rimanere non libero? Non potrei semplicemente rendere disponibile l'origine delle librerie GPL (se modificate)?


Se la risposta è "Hai bisogno di una licenza commerciale", ci sono alternative più economiche che conosci (come i pagamenti basati sulle royalty invece delle commissioni anticipate per gli sviluppatori)?


5
L'ho modificato per parlare esplicitamente di Ubuntu in modo da poterci lasciare alle spalle tutte queste mani strette e rispondere effettivamente alle domande della gente. Ho eliminato il dibattito dai commenti e ho riaperto la domanda.
Oli

Si noti che questa domanda riguarda PyQt4 che è disponibile in entrambe le GPL GNU. Il PyQt5 più recente è solo GNU GPLv3. La differenziazione tecnica molto appropriata sul "collegamento" del codice si applica meno lì (= meno adatto per l'imballaggio commerciale).
Mario,

Risposte:


18

Non sono un avvocato e questo non è un consiglio legale. Questo post parla delle opzioni che hai, quindi è uno strumento di ricerca, destinato ad essere utilizzato insieme ad altri strumenti di ricerca. Anche in combinazione con altri strumenti di ricerca, questo non è un sostituto per la consultazione di un avvocato su qualsiasi questione legale in cui è necessaria una risposta adeguata.

Una delle opzioni di licenza per Qt ( non PyQt ) è la LGPL 2.1 , che consente di distribuire programmi proprietari che utilizzano la libreria Qt a condizione che si rispettino tutti i termini della LGPL 2.1 .

PyQt, tuttavia, attualmente ha solo due opzioni di licenza (a meno che non si negozia qualcos'altro con i suoi sviluppatori, cosa che normalmente non sarebbe pratica). È disponibile sotto GPL - quindi per distribuire il tuo programma dovrebbe essere un software open source gratuito ; più specificamente, qualsiasi versione del programma che offri ad altri e che utilizza la libreria PyQt dovrebbe essere autorizzata anche con GPL.

L'unica alternativa alla GPL, per un programma che utilizza PyQt, è pagare una licenza commerciale. Come hai indicato, questo è spesso proibitivo (anche se per alcune applicazioni è un buon affare).

Se il tuo obiettivo è scrivere un programma incompatibile con GPL in Python che utilizza Qt, potresti prendere in considerazione PySide . Come PyQt, PySide è un'associazione Python per Qt, che consente di scrivere programmi Python che utilizzano Qt. A differenza di PyQt, PySide è disponibile sotto LGPL (come Qt stesso) e quindi può essere utilizzato da programmi proprietari a condizione che l'utente legga attentamente e rispetti i termini della LGPL.

A volte, PyQt presenta vantaggi significativi rispetto a PySide. Spesso no. C'è anche un elemento di soggettività riguardo al quale potresti preferire l'uso; programmatori diversi hanno preferenze diverse. Per ulteriori informazioni, consultare Differenze tra PySide e PyQt .


Le applicazioni PyQt4 non devono avere la licenza GPL. PyQt4 contiene un'eccezione GPL che consente specificamente determinate licenze non GPL. Vedi: riverbankcomputing.com/software/pyqt/license e github.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT
Mario

1
@Mario Grazie per le informazioni! Ma ti incoraggio a pubblicare una risposta spiegando questo poco di più e chiarendo anche come si applica al PO di questa domanda (che sembra voler distribuire software proprietario basato su PyQt). Ecco perché: riverbankcomputing.com/software/pyqt/license mostra che PyQt può essere concesso in licenza in base a GPL (sono consentite due versioni) o una licenza commerciale (due varianti) in cui uno sviluppatore paga Riverbank per il diritto di distribuire software proprietario basato su PyQt.
Eliah Kagan,

@Mario La correzione chiave della mia risposta sembra essere su github.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT , che offre più opzioni. Ma nessuno sembra consentire di rendere proprietario il software basato su PyQt: sono altre licenze FOSS. Inoltre, esiste una pagina ufficiale con un collegamento a quel file o altre informazioni per chiarire che si tratta davvero di un documento ufficiale di licenza? (Credo che molto probabilmente lo sia, ma non sono sicuro di come lo dimostrerei a un amministratore delegato o ad altri stakeholder.) È strano che le opzioni espanse non siano menzionate nella prima pagina delle licenze sul sito ufficiale di Riverbank.
Eliah Kagan,

Posso fare il programma di installazione di un'applicazione che utilizza PyQt5 su licenza GPL, ma l'applicazione che viene installata su licenza secondo i miei termini?
Niklas R,

1
Ciao @EliahKagan! Che dire di PySide 2 , vale lo stesso?
Francesco Pegoraro,

5

In poche parole: se non capisci i termini delle licenze del software che stai usando abbastanza per interpretare se ciò che stai suggerendo "va bene", devi parlare con un professionista che lo fa. Se vuoi cercare un accordo direttamente con i proprietari delle licenze, anche quello funziona, ma dovrai comunque capire come funzionano le licenze.


Come Elia, anche io non sono un avvocato e quando sei stato citato in giudizio per aver seguito il mio consiglio, non puoi dire che non ti avevo avvertito. Sono generalmente d'accordo con Eliah, ma penso che in questo caso Python sia un po 'diverso.

Il software GPL ti consente di ridistribuire qualcosa fintanto che lo fornisci con la stessa licenza. In questo caso ridistribuire PyQT che è possibile eseguire. Distribuiresti anche il tuo prodotto. Personalmente non vedo perché non puoi fare entrambe le cose finché rendi disponibile la fonte per le cose GPL che stai usando. Non li stai integrando nel tuo Python, li stai semplicemente usando.

Per descrivere ulteriormente di cosa sto parlando, se includessi una libreria in un progetto C e la compilassi, finiresti con il codice GPL nel tuo binario o creeresti librerie statiche a cui il tuo codice era collegato ( staticamente o dinamicamente). L'FSF ti chiederà di rendere il tuo codice disponibile da GPL se ridistribuisci il loro codice protetto.

Vedi la differenza? La distribuzione testuale di Python significa che il collegamento è piuttosto dinamico: non esistono "collegamenti" statici al codice GPL e il riferimento a PyQT potrebbe essere sostituito in un ambiente diverso. Stai solo usando la sua API.

Se cerchi "python import gpl" troverai molti, molti argomenti in entrambe le direzioni da molti, molti non avvocati. Questo non è un semplice argomento e se si trattasse di una causa legale, si può essere dannatamente sicuri che tutti coloro che si trovano sul lato del software libero della panchina ci lancerebbero tutto per assicurarsi che fosse stabilito un precedente negativo.

Quindi, ancora una volta, probabilmente non sei qualificato per prendere questa decisione da solo. Parla con un avvocato o guarda quanto ti costerebbe e scopri che sarà più economico solo pagare per le licenze commerciali.

Ignorare le licenze funzionerà molto più costoso.


2
«Non li stai integrando nel tuo Python, li stai semplicemente usando» Se importi moduli Python GPL, tutto diventa GPL.
Andrea Lazzarotto,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.