2009-05-27 13 views
6

Sto provando a preparare un progetto per la versione open-source e ho incontrato un problema ... Questo progetto dipende da un numero di componenti open-source che ho appena archiviato come file JAR nella mia directory lib per Data. Alcuni di loro risalgono a qualche anno fa, e per lo meno provengono da un progetto open source il cui sito è scomparso e di cui non sono stato in grado di trovare una fonte (la libreria Radeox).Come gestire le dipendenze open source non funzionanti?

Il mio dilemma è che non so come impacchettare il mio progetto quando lo rilascio ... Non dovrei includere il file JAR senza fonte perché ciò violerebbe i termini della licenza con cui ho usato il codice me stesso, ma non penso che questo file JAR sia facilmente reperibile quindi anch'io non voglio avere un README che dice "trova questo JAR, buona fortuna!".

Qual è la migliore pratica in questo caso? (Diversa da "mantenere la fonte di tutti i JAR importati da ora in poi!) E secondariamente, qualcuno sa dove posso trovare la fonte di questa particolare libreria?

Grazie!

risposta

2

Il nostro approccio è stato garantire che acquisiamo la fonte quando acquisiamo i file binari. Quindi, esattamente per il motivo che citi, archiviamo in modo permanente tutte le nostre dipendenze di terze parti a livello locale. È un po 'un problema, dal momento che usare una libreria di terze parti è un po' più complesso del semplice download del tarball e andare, ma significa che quando una biblioteca è deprecata, possiamo continuare a soddisfare sia gli obblighi dei nostri clienti sia quelli legali .

Tenete conto che, a questo punto, manteniamo un software che ha quasi 15 anni e alcuni dei nostri pacchetti di terze parti sono precedenti al popolare Web, quindi la nostra soluzione potrebbe essere eccessiva per voi.

Ci sono anche altri vantaggi; abbiamo dovuto correggere alcuni di questi prodotti per correggere bug o aggiungere funzionalità che i manutentori upstream non erano in grado o non volevano aggiungere, ma che avevamo bisogno e che si adatta perfettamente a questa procedura.

3

Se la licenza dice che hai per includere la fonte, allora è necessario includere la fonte.

prova a contattare l'autore originale. forse this Ohloh link sarà di aiuto. Se non li può raggiungere, forse è possibile ottenere una copia dei sorgenti da un altro progetto che utilizza il libreria. Come ultima risorsa potresti provare Google's cache o archive.org

+1

+1: archive.org. E - un buon avvertimento per tutti che usano l'open source. In realtà ottieni l'open source. Distribuisci la fonte. –

+0

A proposito, il link alla cache di Google è stato stravolto da Stack Overflow le prime volte che ho provato a postarlo, ma dovrebbe funzionare ora. –

3

Aggiornamento: Bingo !!

Ecco la Radeox Subversion repository. Scorri fino a http://svn.codehaus.org/radeox/main/trunk/src/java/org/radeox/ per il codice sorgente.

In precedenza ...

Sembra Stephan Schmidt, l'autore, è attualmente in esecuzione di un blog a http://www.codemonkeyism.com. Le sue informazioni di contatto, compresa l'e-mail sono here, e una voce da August 2007 ha parlato di biforcazione del progetto su Reposita.org (che non sembra essere ancora stato pubblicato). Il suo presentations lo mise a ImobilienScout24 l'anno scorso.

Sono sicuro che sei in sintonia con i pericoli di dipendere da un progetto morto, non mantenuto. Abbiamo appena eliminato il nostro software da molte di queste dipendenze e stiamo dormendo molto meglio. Includevano Axis 1.4 per i servizi Web SOAP (abbandonato con gravi bug di threading nel 2005), sostituito da Java Java logic; il parser kxml (anch'esso abbandonato nel 2005), sostituito da JAXP; e un client HTTP senza nome (così abbandonato non siamo riusciti a trovare nemmeno la vecchia fonte), sostituito da Apache HTTP Client. Radeox suona come un caso più difficile però.

Ottieni consulenza legale e fai uno sforzo faticoso per trovare la fonte e/o Stephan, documentando tutto ciò che fai. Questo potrebbe essere sufficiente a causa della dilligence per consentire di distribuire i binari mentre si lavora su una strategia sostitutiva.

+0

Grazie, è davvero d'aiuto :) – nicolaskruchten

+0

Prego, buona fortuna! –

+0

I link codemonkeyism sono interrotti – Andy