2012-02-29 12 views
6

Ho intenzione di rilasciare come open-source un progetto personale per scopi prevalentemente educativi (se presenti). È solo per Windows.Come organizzare il progetto per la versione open source

mio codice sarà rilasciato sotto licenza MIT, ma ho anche usare questo librerie/componenti:

  • ODE
  • Scintilla componente
  • Scintilla PJ Naughter
  • glaux

Oltre ad assicurarsi di includere ciascuno di questi file di licenza di librerie, come dovrei integrarli nel codice sorgente r albero di elease?

Attualmente per ognuno utilizzo una particolare versione/revisione che ho personalizzato manualmente o costruito e integrato in termini di file di codice sorgente e file di libreria binaria. È abbastanza? Non voglio sovraccaricare il pacchetto risultante con alberi di sorgenti completi di terze parti, ma allo stesso tempo lo voglio compilabile da zero.

Inoltre voglio includere i miei file eseguibili compilati finali. Questo è disapprovato? Controllerò l'exe risultante con VirusTotal.

+1

Includere o non includere componenti di terze parti sono entrambe scelte valide. È possibile includere solo le DLL nel binario ma richiedere agli utenti di scaricare le loro origini durante la compilazione. E no, rilasciare i binari non è "disapprovato", esp. per Windows erano pochi gli utenti con i compilatori installati. –

+0

I casters degli stretti voteranno a spiegare le loro motivazioni per farlo? –

+0

Se si trattasse di un progetto Java, direi che non dovresti assolutamente includere le dipendenze in nessuna forma, ma piuttosto includere i metadati che li descrivono, sotto forma di uno script Gradle, Ivy o Maven. Ciò ti libererebbe dalla necessità di distribuirli, consentendo allo stesso tempo ai tuoi utenti di impossessarsene senza dolore. Esiste un equivalente di questo nel mondo C? Se stavi rilasciando per una specifica distribuzione Linux, potresti creare un pacchetto sorgente, ma c'è qualcosa di portatile? –

risposta

1

mio codice sarà rilasciato sotto licenza MIT, ma ho anche usare questo librerie/componenti: [...]

Attualmente per ognuno Io uso una particolare release/revisione che ho personalizzato manualmente o costruito e integrato in termini di file di codice sorgente e file di libreria binaria. È abbastanza? Non voglio gravare il pacchetto risultante con alberi di origine 3rd party pieno, ma allo stesso tempo lo voglio compilabile da zero.

Come si desidera offrire la vostra applicazione per gli altri a sperimentare con esso, accanto a un binario rilasciare solo si potrebbe desiderare di offrire una sorta di liberazione "SDK", che contiene il codice come sorgente e le dipendenze delle librerie come file binari .

Come anche tu vuoi essere in grado di compilare da tutte le fonti, per motivi pratici dovresti anche creare un pacchetto completo per ogni versione.

crea uno script che è in grado di costruire ciascuno di questi pacchetti automaticamente. Metti anche il tuo script di compilazione sotto controllo di revisione. Se al momento non hai alcun controllo di revisione, metti per primo il tuo albero dei sorgenti sotto il controllo di revisione.

che sono semplicemente suggerimenti pratici in modo che si può ottenere quello che stai cercando dando altri utenti una buona accessibilità del programma, anche.

Per la concessione di licenze delle librerie/componenti che hai elencato, ho cercato di saperne di più. Se applicabile, ho ottenuto gli identificatori brevi dallo SPDX Open Source License Registry.Esso contiene i collegamenti a ogni licenza, quindi è un buon strumento per classificare la situazione di licenza del pacchetto:

  • ODE (Open Dynamic Engine) - License: LGPL-v2.1+ o BSD-3-Clause
  • Scintilla (Scintilla and SciTE)-License: HPND
  • Scintilla PJ Naughter component-License: Scintilla PJ Naughter component Licenza:

    Copyright // Sei al speso per includere il codice sorgente in qualsiasi prodotto (commerciale, shareware, freeware o altro) quando il prodotto è rilasciato in forma binaria. // Hai il permesso di modificare il codice sorgente in qualsiasi modo tu voglia tranne che non puoi modificare i dettagli del copyright nella parte superiore di ciascun modulo. // Se si desidera distribuire il codice sorgente con l'applicazione, è possibile distribuire solo le versioni rilasciate dall'autore. Questo per mantenere un singolo punto di distribuzione per il codice sorgente.

  • glaux (OpenGL Biblioteca ausiliario) - Licenza: Unknown/Various

(IANAL) Sembra che questi sono tutti di tipo di licenze permissive, in modo che stai per lo più non obbligato a rilasciare il sorgente. Due note:

  1. non ero in grado di ottenere informazioni su glaux. Si potrebbe voler esaminare i file di origine in cui si applica la licenza. È stato un po 'complicato scoprirne di più, sembra che la biblioteca sia deprecata. Quello che ho visto è che faceva parte del progetto OpenGL, ma non so quali file sorgente usi e dove li hai ottenuti.

  2. Il Scintilla PJ componente Naughter ha una licenza non standard che non consente la distribuzione di modificato codice sorgente. Ma hai il permesso di distribuire il codice invariato. Penso che l'intenzione dell'autore originale sia che non vuole un'altra distribuzione di sorgenti accanto alla propria (fork ma non cambiare la fork). Direi che dovresti conformarti il ​​più a lungo possibile e se non puoi più contattare l'autore originale e discutere il problema. Se ciò non risolve in una soluzione pratica, potrebbe essere necessario contattare un avvocato in merito ai diritti che hai in proprio in quel caso per sostituire le restrizioni sotto copyright espresse dall'autore originale.

Anche io voglio includere i miei file eseguibili compilati finali. Questo è disapprovato? Controllerò l'exe risultante con VirusTotal.

Perché dovrebbe, questo renderà il software accessibile per coloro che non possono o non vogliono compilare.

Se stai cercando un repository di codice sorgente pubblico che accetti la tua riproduzione in questi termini, lo fa . Il loro unico obbligo è che il codice sorgente sia visibile e che il repository possa essere biforcato - poiché questo non dice molto sui diritti che sono dati con il codice e su ogni fork, rendere la licenza del codice che si è chiara. Altri siti come il codice google non lo consentirebbero poiché accettano solo il codice sotto una licenza approvata OSI, il che non è vero per Scintilla PJ Componente del figlio.

Aggiungere i file rainbru suggested.

2

Almeno, è necessario aggiungere un file COPYING contenente il testo completo della licenza utilizzata (ad esempio MIT). Penso che questo sia l'unico file richiesto.

Di solito includo anche NEWS e AUTHORS. Potrebbe essere anche una buona idea aggiungere un file DEPENDENCIES.

Problemi correlati