Con quale licenza può essere distribuita questa app "Hello World" basata su PyQt?

3

Aggiornamento: ho sbagliato sulla licenza PyQt. Non è semplicemente una licenza GPL. Gli autori PyQt includono un set speciale di eccezioni che consente agli utenti di rilasciare il proprio codice con una licenza diversa, purché sia una delle licenze Open-Source specificatamente elencate nel file PyQt GPL_EXCEPTION.TXT .

Ai fini di questa discussione, considera la seguente app pienamente funzionale, che dipende da PyQt :

# hello_world.py
from PyQt4.QtGui import QApplication, QPushButton
app = QApplication([])
button = QPushButton("Hello, World!", clicked=app.quit)
button.show()
app.exec_()

(Nel caso sia rilevante per la discussione, tieni presente che i programmi Python come questo non richiedono "linking" di per sé.)

La mia preferenza è distribuire il mio codice sotto una licenza permissiva , ad es. la licenza BSD. Tuttavia, PyQt è rilasciato sotto la GNU GPL GNU GPL con eccezioni speciali . Con questo in mente, quali sono le mie opzioni qui? Sono obbligato a rilasciare sotto la GPL, anche se non distribuisco PyQt stesso?

Per essere più specifico, in quale (se esiste) dei seguenti scenari, mi è permesso di rilasciare il mio codice sotto la licenza BSD e di essere obbligato a rilasciare sotto la GPL?

  • Scenario 1: ti fornisco un file binario completo che include hello_world.py e PyQt.
  • Scenario 2: ti do il codice sorgente di hello_world.py e PyQt in un singolo download (ad esempio, un .tar.gz ), ma spetta a te farli funzionare insieme.
  • Scenario 3: ti offro solo hello_world.py , lasciandoti a ottenere PyQt da solo.

So che molti di noi non sono avvocati, quindi è molto apprezzato se puoi citare le fonti su cui si basa la tua risposta.

    
posta superbatfish 10.04.2014 - 18:22
fonte

2 risposte

2

OK, questo è più facile di quanto pensassi. I PyQt non hanno appena rilasciato il loro software sotto la GPL di vanilla. Hanno aggiunto una speciale eccezione alla licenza, che mi consente di rilasciare il mio codice sotto una licenza non GPL. Tuttavia, non tutte le licenze sono consentite: devo scegliere una delle licenze open source elencate nel file GPL_EXCEPTION.TXT incluso con il codice sorgente PyQt. Al momento in cui scrivo, l'eccezione mi consente di utilizzare MIT , BSD , LGPL e molti altri.

Quindi, per affrontare gli scenari specifici delineati nella domanda precedente:

  • Scenario 1 : solo GPL
  • Scenario 2 : solo GPL
  • Scenario 3 : qualsiasi licenza elencata in GPL_EXCEPTION.TXT dalla distribuzione di origine PyQt, incluso BSD.
risposta data 13.04.2014 - 22:03
fonte
3

Once GPL, Always GPL.

Non puoi distribuire sotto il BSD se una delle librerie da cui dipende la tua applicazione è licenziata sotto GPL, né puoi chiudere il tuo codice sorgente.

La doppia licenza che utilizza GPL e una licenza commerciale è un accordo comune tra i venditori. In pratica afferma che, se si desidera utilizzare la propria libreria per un'applicazione "vera" open source (dove si fornisce l'intero codice sorgente dell'applicazione all'utente finale e si lascia che facciano ciò che desiderano con esso, fintanto che anche si attengono alla GPL), allora sei libero di usare la loro biblioteca per quello scopo. Altrimenti, puoi ottenere il diritto di chiudere la tua fonte acquistando una copia commerciale della loro licenza.

Quindi la risposta breve è che, purché tu stia fornendo il codice sorgente alla tua applicazione, tutti e tre gli scenari dovrebbero essere OK. La tua licenza di distribuzione sarebbe GPL, non BSD.

La mia citazione è la licenza GPL.

    
risposta data 10.04.2014 - 18:28
fonte

Leggi altre domande sui tag