Quanto dovrebbe essere preoccupato un nuovo programmatore con le varie licenze (GPL, Apache, ecc.)

2

Sono abbastanza nuovo alla programmazione, e ho appena iniziato a usare GitHub per archiviare e conservare il mio codice sorgente (continuo a perdere roba memorizzata localmente). Così com'è tutto quello che c'è in questo momento sono i file del codice sorgente, niente di più, ma mi aspetto che cambi col passare del tempo e che io stia meglio. Dato che tutti i repository negli account gratuiti sono pubblici, quanto devo preoccuparmi delle licenze?

Sarei perfetto con il solo download di una copia della GPL, inserendo un avviso sul copyright nel file Leggimi e chiamandolo un giorno? Sono pienamente consapevole che le persone possono scaricare e modificare le mie cose, e io sono d'accordo, ma voglio almeno assicurarmi che ottenga credito per il mio lavoro nel caso decidano di farlo.

    
posta Enrico Tuvera Jr 07.10.2013 - 18:19
fonte

3 risposte

4

TL; DR: sì, dovresti preoccuparti delle licenze, a meno che tu non accetti di fornire il tuo codice; il secondo è perfettamente valido.

Se scegli GPL dall'inizio, stai relativamente bene, dal momento che tu stesso non sarai legato da questo e potrai ri-licenziare il tuo codice in base a termini diversi.

OTOH se accetti nel tuo progetto ingenti quantità di codice GPL da altri sviluppatori , dovresti ottenere il loro accordo se dovessi ri-licenziare l'intero codice base. Questo può diventare piuttosto problematico.

Se inizi con una licenza meno vincolante, come MIT o BSD , potrai inserire il tuo codice in una GPL o in un prodotto commerciale, poiché queste licenze consentono qualsiasi uso (limitano per lo più la responsabilità degli autori). Nota che le parti che erano sotto la licenza MIT / BSD prima di essere rimosse da GPL rimarranno in seguito al MIT / BSD (per quanto ne so).

GPL ha anche una ben nota limitazione: se si collega staticamente il codice GPL ad altri software, anche questo altro software deve essere concesso in licenza in GPL. LGPL solleva questa limitazione per il codice della libreria, quindi se stai sviluppando una libreria, considera LGPL prima della GPL.

Se vuoi dimenticare completamente le licenze, puoi offrire il tuo codice come dominio pubblico: assolutamente zero stringhe e zero responsabilità. Alcuni progetti, in particolare SQLite, prosperano in tali circostanze.

    
risposta data 07.10.2013 - 18:49
fonte
2

Poiché i repository sono pubblici, è particolarmente importante inserire una licenza sul codice sorgente. Per impostazione predefinita, tutte le opere sono "tutti i diritti riservati", quindi chiunque trovi il tuo repository non può fare altro che leggerlo.

Se sei d'accordo con i termini della GPL, è molto facile applicare la licenza al tuo programma. Basta seguire queste linee guida dalla FSF. Oltre a inserire un file di licenza nel progetto, consigliano anche di aggiungere una nota di copyright e le informazioni di contatto a ciascun file e di includere un'opzione nel programma per visualizzare le informazioni sulla licenza.

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

Copyright (C)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

     

Aggiungi anche informazioni su come contattarti tramite posta elettronica e cartacea.

     

Se il programma interagisce con il terminale, invia un breve avviso come questo quando inizia in modalità interattiva:

     

Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type show w'. This is free software, and you are welcome to redistribute it under certain conditions; typeshow c' for details.

     

I comandi ipotetici show w' and show c 'dovrebbero mostrare le parti appropriate della Licenza Pubblica Generica. Naturalmente, i comandi del tuo programma potrebbero essere diversi; per un'interfaccia GUI, dovresti usare un "about box".

     

Dovresti anche ottenere il tuo datore di lavoro (se lavori come programmatore) o la scuola, se esiste, per firmare un "disclaimer sul copyright" per il programma, se necessario. Per maggiori informazioni su questo e su come applicare e seguire la GNU GPL, vedi link .

     

La GNU General Public License non consente di incorporare il tuo programma in programmi proprietari. Se il tuo programma è una libreria di subroutine, potresti considerare più utile consentire il collegamento di applicazioni proprietarie con la libreria. Se questo è ciò che si vuole fare, utilizzare la Licenza Pubblica Generica Minore GNU al posto di questa Licenza. Ma prima, leggi link .

    
risposta data 07.10.2013 - 18:37
fonte
1

Due punti principali per iniziare:

  1. Licensing ! = Copyright (leggi come "la licenza non è uguale al copyright")

    • (Software) La licenza si riferisce a come gli altri possono usare il codice e / oi binari. "Altri" indica le persone che non possiedono il copyright del codice.
    • Il copyright si riferisce a chi possiede il codice. Consulta la Convenzione di Berna per un primer modesto sul copyright. In questo caso, poiché tu l'hai scritto, allora è il tuo codice e tu ne possiedi il copyright. Il copyright può diventare rapidamente spinoso a seconda dell'occupazione, del contratto, degli accordi IP ecc.
  2. Se pubblichi il tuo codice pubblicamente, alcune persone lo ruberanno (se è buono). E questo è indipendentemente dalla licenza che si inserisce sul codice. La maggior parte delle persone, tuttavia, onorerà la licenza che inserirai sul tuo codice. Se usi una licenza particolarmente onerosa, allora più persone saranno tentate di rubarla.

    • GPL tende ad essere più oneroso di altri come BSD, MIT, Apache, ecc ... Ma questa è una questione di opinione personale. Le licenze commerciali / di vendita sono ancora più onerose.

Per rispondere alle tue domande dirette:

  • No, non devi preoccuparti troppo della licenza del tuo codice a questo punto. È improbabile che il tuo codice iniziale abbia un valore significativo per gli altri, quindi nessun altro sarà in grado di usarlo. E non è un peccato per te, siamo partiti tutti dallo stesso posto.

  • Man mano che ottieni maggiore esperienza e la qualità del codice migliora, allora sì, dovrai preoccuparti delle licenze. Perché? Perché gli altri vorranno usare il tuo codice.

  • Devi preoccuparti delle licenze di altri progetti che potresti incorporare nei tuoi. Innanzitutto, la loro licenza può o meno permettere che tu la usi nel modo che preferisci. Secondo, potrebbero aver scelto una licenza virale come la GPL che costringerà il tuo progetto a essere GPL. Potrebbe non essere corretto.

  • Scorporrei una reazione istintiva al tipo di licenza "schiaffo GPL su tutto". GPL ha alcuni aspetti persistenti che possono scoraggiare gli altri dal voler usare il tuo codice. E i termini della GPL potrebbero non soddisfare le tue esigenze future molto bene.

  • Per ora, rimango con "tutti i diritti riservati" per la tua (non-) licenza e mi concentro sul miglioramento della codifica. Preoccupati delle licenze quando gli altri vorranno utilizzare il tuo codice.

risposta data 07.10.2013 - 18:57
fonte

Leggi altre domande sui tag