2009-05-27 8 views
6

Ich versuche ein Projekt für Open-Source-Release vorzubereiten und habe ein Problem festgestellt ... Dieses Projekt hängt von einer Reihe von Open-Source-Komponenten ab, die ich gerade als JAR-Dateien in meinem lib-Verzeichnis gespeichert habe Datum. Einige von ihnen stammen aus ein paar Jahren, und mindestens von ihnen stammt aus einem Open-Source-Projekt, dessen Website verschwunden ist und deren Quelle ich nicht finden konnte (die Radeox-Bibliothek).Wie mit offenen Open-Source-Abhängigkeiten umgehen?

Mein Dilemma ist, dass ich nicht weiß, wie ich mein Projekt verpacken soll, wenn ich es veröffentliche ... Ich sollte die JAR-Datei nicht ohne Quelle einschließen, weil das die Bedingungen der Lizenz verletzen würde, unter der ich das verwendete Code selbst, aber ich denke nicht, dass diese JAR-Datei leicht auffindbar ist, deshalb möchte ich auch keine README, die sagt "finde diese JAR, viel Glück!".

Was ist die beste Vorgehensweise in diesem Fall? (Anders als „halten die Quelle aller JAR-Dateien Sie von nun an importieren!) Und in zweiter Linie, weiß jemand, wo ich die Quelle für diese Bibliothek finden kann?

Dank!

Antwort

2

Unser Ansatz bestand darin, sicherzustellen, dass wir die Quelle erwerben, wenn wir die Binärdateien erwerben. Aus genau dem Grund, den Sie angeben, archivieren wir permanent alle Abhängigkeiten von Drittanbietern lokal. Es ist ein wenig mühsam, da die Verwendung einer Bibliothek eines Drittanbieters ein bisschen komplexer ist, als einfach den Tarball herunterzuladen und zu gehen, aber es bedeutet, dass wenn eine Bibliothek veraltet ist, wir sowohl unseren Kundenverpflichtungen als auch unseren gesetzlichen Verpflichtungen nachkommen können .

Wohlgemerkt, wir pflegen Software, die an diesem Punkt fast 15 Jahre alt ist, und einige unserer Third-Party-Pakete sind älter als das beliebte Web, so dass unsere Lösung für Sie vielleicht übertrieben ist.

Es gibt auch andere Vorteile; Wir mussten einige dieser Produkte patchen, um Bugs zu beheben oder Funktionen hinzuzufügen, die Upstream-Betreuer nicht hinzufügen konnten oder wollten, die wir aber brauchten, und das fügt sich nahtlos in dieses Verfahren ein.

3

Wenn die Lizenz sagt, Sie haben um die Quelle einzuschließen, müssen Sie die Quelle einschließen

Versuchen Sie, mit den ursprünglichen Autoren in Verbindung zu treten, vielleicht hilft this Ohloh link. Wenn Sie sie nicht erreichen können, können Sie vielleicht eine Kopie der Quelle von einem anderen Projekt erhalten, das das verwendet Als letzten Ausweg können Sie versuchen Google's cache oder archive.org

+1

+1: archive.org. Und - eine gute Warnung an alle, die Open Source nutzen. Bekomme die Open Source. Verteilen Sie die Quelle. –

+0

Übrigens, der Google-Cache-Link wurde von Stack Overflow die ersten paar Male, die ich versuchte, es zu veröffentlichen, gemangled, aber es sollte jetzt funktionieren. –

3

Update: Bingo !!

Hier ist die Radeox Subversion repository. Navigieren Sie für den Quellcode zu http://svn.codehaus.org/radeox/main/trunk/src/java/org/radeox/.

Früher ...

Sieht aus wie Stephan Schmidt, der Autor, derzeit einen Blog unter http://www.codemonkeyism.com läuft. Seine Kontaktinformationen, einschließlich der E-Mail-Adresse here, und ein Eintrag von August 2007 sprachen davon, das Projekt auf Reposita.org umzuspalten (was anscheinend noch nicht geschehen ist). Sein presentations brachte ihn letztes Jahr auf ImobilienScout24.

Ich bin sicher, dass Sie auf die Gefahren eines toten, nicht gepflegten Projekts eingestellt sind. Wir haben gerade unsere Software um mehrere solcher Abhängigkeiten bereinigt und schlafen viel besser. Sie enthielten Axis 1.4 für SOAP-Webdienste (2005 mit schwerwiegenden Threading-Bugs aufgegeben), ersetzt durch Java-Java-Logik; der kxml-Parser (ebenfalls im Jahr 2005 aufgegeben), ersetzt durch JAXP; und ein No-Name-HTTP-Client (so aufgegeben, dass wir nicht einmal die alte Quelle finden konnten), ersetzt durch Apache HTTP Client. Radeox klingt jedoch nach einem schwierigeren Fall.

Holen Sie sich Rechtsberatung und bemühen Sie sich, die Quelle und/oder Stephan zu finden und dokumentieren Sie alles, was Sie tun. Das könnte ausreichen, um Ihnen zu ermöglichen, Binaries zu verteilen, während Sie an einer Ersatzstrategie arbeiten.

+0

Danke, das ist wirklich hilfreich :) – nicolaskruchten

+0

Gern geschehen, viel Glück! –

+0

Die Codemonkeyism Links sind gebrochen – Andy