Come gestire più licenze nel codice

4

Quindi diciamo che creo una piccola app di script che ha un sacco di codice mio, e solo una piccola parte di esso è composta da un'utilità di qualcun altro (diciamo una semplice operazione come invio di file nel cestino o invio di una notifica ), che utilizza una licenza, come MIT .

Ora desidero che il mio script / app sia dominio pubblico (o la licenza del MIT, prendiamo due esempi).

  1. Come faccio a fare la differenza per questo nel mio codice? Come faccio a spiegare esattamente "questa parte del codice è ingombrata da questa licenza, e quest'altra parte è la mia licenza"?
  2. Ogni copia che distribuisco deve includere la licenza? Sembra davvero idiota / ingombrante, dover passare un file di testo stupido.
  3. Devo quindi includere entrambi i file (il loro e il mio)?

Il numero 3 è il mio più grande dubbio, come posso affidare in modo affidabile e chiaro ogni parte del codice a ciascuna specifica licenza? Non mi dilungherò su questo, ma è onestamente la parte più stressante della programmazione, per me, non possiamo semplicemente condividere felicemente il codice tra pari? Negli esempi sopra, nessuna di queste app è "mission critical", ma sono belle aggiunte, e non includerle a causa della confusione / limitazioni che provoca è un vero peccato.

    
posta user137369 15.11.2013 - 02:49
fonte

1 risposta

4

Nell'esempio fornito, la licenza MIT, si dice

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

Quindi, se il tuo software contiene i loro, allora "Le suddette informazioni sul copyright e questa autorizzazione devono essere incluse in tutte le copie o parti sostanziali del Software".

Questo è tutto ciò che c'è da fare.

È una buona idea mettere il software con licenza nella propria directory, insieme alla licenza. I tuoi file di licenza principali dovrebbero evidenziare quali parti sono tue e quali hanno un'altra licenza.

La directory principale in cui vengono conservati i documenti come la licenza (forse la directory root del progetto o una directory Documentation), conterrà file come README.TXT o LICENSE.TXT. Uno di questi dovrebbe contenere una sezione simile a

This software includes third party open source software components: Foo, Bar, and Whatsit. Each of these software components have their own license. Please see ./Foo/License.txt, ./Bar/License.txt, and ./Whatsit/License.txt.

La cosa principale è chiarire che quelle parti hanno una propria licenza, e poiché i prodotti open source richiedono quasi sempre che la sorgente sia disponibile, fornire un link al progetto sorgente e / o alla fonte stessa.

Assicurati che chiunque guardi possa vedere che stai rispettando le licenze.

    
risposta data 15.11.2013 - 09:48
fonte

Leggi altre domande sui tag