Il modo migliore per riconoscere in modo affidabile le licenze open source?

3

In molti progetti in questi giorni la maggior parte del nuovo codice consiste in un codice di colla che aiuta a combinare dozzine di librerie, plug-in e helper che sono concessi in licenza con una varietà di licenze open source.

In molti casi le licenze sono abbastanza evidenti in quanto portano il nome della licenza nel file di licenza o nel commento. In altri questo è un po 'più difficile e richiede la memorizzazione di alcune parole per distinguere le licenze più comuni.

Mi chiedo: c'è un modo semplice per riconoscere in particolare le licenze molto simili (ad esempio, MIT / BSD-2 / BSD-3) senza dover memorizzare testi di licenza completi o controllare le copie OSI come riferimento?

    
posta Alan Plum 05.05.2012 - 14:09
fonte

1 risposta

3

Usa lo strumento di abbinamento dei pattern più potente che hai a disposizione: your eyes . Mi sono imbattuto nello stesso problema qualche tempo fa (stavo compilando una grande lista di app Django e plugin jQuery, e la maggior parte di loro non indicava esplicitamente la licenza che stavano usando), all'inizio dovevo confrontare un testo di riferimento tutto il tempo, ma non mi ci è voluto molto per riuscire a identificare in un attimo quelle licenze. Ecco cosa vedo quando guardo la licenza del MIT:

Copyright (C) <year> <copyright holders>

Permission is hereby granted, text text text
text text text
text text text

The above copyright notice and this permission notice text text text

TEXT TEXT TEXT TEXT
TEXT TEXT TEXT TEXT

E il BSD modificato:

Copyright (c) <year>, <copyright holder>
All rights reserved.

Redistribution text text text
* text text text
* text text text
* Neither the name of the <organization> nor the
  text text text

TEXT TEXT TEXT
TEXT TEXT TEXT

Si noti come il layout del testo combinato con poche parole / frasi chiave sia sufficiente per identificare queste due licenze e poiché sono di gran lunga le più comuni (che non mostrano il proprio nome nell'intestazione, come GPL o l'Apache) sono facili da memorizzare (e ovviamente, posso dire che è BSD-3 perché ha 3 punti elenco).

Ora, è sempre possibile, anche se molto improbabile, che gli autori usassero una licenza leggermente diversa che potresti scambiare per il MIT / BSD-3, ma se lo facessero e si preoccupassero della differenza, puoi ragionevolmente aspettarti che richiamare l'attenzione su di esso.

Aggiornamento: controlla questa risposta a una domanda SO su "grepping" di una pagina utilizzando JavaScript; magari con un po 'di lavoro si potrebbe scrivere un piccolo strumento (un bookmarklet per esempio) per cercare il contenuto di una pagina per il testo di una licenza tra un piccolo insieme di note (scritto come regex, dato che dovresti sostituire il <copyright holder> e tale per i caratteri jolly). Evito i bookmarket a causa delle implicazioni sulla sicurezza, ma se hai scritto o stai ospitando te stesso (se possibile) dovresti stare bene. Però non conosco nessuno strumento per questo scopo.

Personalmente, non penso che ne valga la pena: lo sforzo di esaminare attentamente una licenza è solo una piccola parte della decisione di incorporarlo in un grande progetto. Di solito le parti problematiche sono le dipendenze della libreria o lo sforzo relativo per integrarle con il resto del codice. Quindi preferisco fare una rapida classificazione in "potrebbe usare" o "definitivamente non userò" e poi, se decido che la biblioteca è davvero promettente, dai un'occhiata più da vicino alla licenza.

    
risposta data 05.05.2012 - 16:03
fonte

Leggi altre domande sui tag