Java, Lizenz, Auslieferung, Notice.txt

MS-Tech

Erfahrenes Mitglied
Hallo Zusammen,

ich möchte nun eine fertig programmiert Software ausliefern. Dabei handelt es sich um ein kommerzielles Softwareprodukt.

Da dieses Softwareprodukt Bibliotheken aus den verschiedensten Apache-Projekten oder auch das Hibernate-Framework einschließt muss doch, bei jeder Auslieferung, eine notice.txt mitausgeliefert werden oder?

Was gehört da rein? Bei den Apache Biliotheken gehört doch diese Apache License 2.0 rein. Was gehört da für das Hibernate-Framework rein? Das Framework besteht doch aus zig Bibliotheken.

Vielleicht kann mir hier jemand weiterhelfen?

Viele Grüße
Sascha
 
Hallo,

hier mal generell ein paar Informationen zur Verwendung und Weitergabe von Open Source Libraries:
http://www.oss-watch.ac.uk/resources/iprguide.xml

wenn du dein Projekt mit einem Dependency Management fähigen Build-Tool wie Maven gebaut hast könntest
du dir beispielsweise eine Übersicht über die von deiner Software Referenzierten Libraries verschaffen:

Siehe (Maven):
http://maven.apache.org/plugins/maven-project-info-reports-plugin/license-mojo.html
http://stackoverflow.com/questions/2493507/maven-report-on-licenses-your-project-depends-on

Ansonsten müsstest du dir die entsprechenden Lizenz Notices aller Jars die deine Anwendung
braucht händisch zusammen suchen.

Ansonsten habe ich zu dieser Problematik (Redistribution of Open Source Libraries) schon mehrere
Umsetzungen gesehen.

1) Gar keine Lizenz Informationen ausgeben... :-(
2) Nur Informationen zur eigenen Lizenz und zur 3rd-Party Libs keine angaben machen... :-(
3) Mit dem Projekt ein Verzeichnis licences deployen. In diesem Verzeichnis liegt eine licence.txt mit Copyright Notice zu dem Produkt. Außerdem gibt es darin ein Verzeichnis thirdparty. In diesem Verzeichnis gibt es für jede verwendete Bibliothek (+Version) den jeweiligen Lizenztaxt als libname-version.licence.txt
4) Im Root-Verzeichnis deiner Applikation gibt es die Dateien:
- LEGALNOTICE.txt : genereller Haftungsauschluss
- DISTRIBUTION.txt : Angaben zu Weitergaberechten deiner Software
- LICENCE.TXT : Dein Lizenztext
- THIRDPARTYLICENCE.txt : Diese Datei enthält die Auflistung aller verwendeten 3rd-Party Bibliotheken mit Version. Außerdem enthält diese Datei alle verwendeten Lizenz Texte untereinander kopiert.

Ich persönlich bevorzuge Variante 4) / 3) - für kommerzielle Software - mit Maven lässt sich solch eine Aufstellung relativ einfach generieren.
Für interne Software kann man (IMHO) auch mit Variante 1) u. 2) leben.

Gruß Tom
 
Hallo Tom,

vielen Dank für deine ausführliche Antwort.

Es ist eine kommerzielle Software, die eben vertrieben wird. Punkt 1 und 2 würden doch bei einer kommerziellen Software gar nicht funktionieren oder?

Bisher habe ich noch kein Dependency Management Tool eingesetzt. Ich muss mich da erst einlesen, um so etwas aufsetzen zu können oder weißt du zufällig ein superduper und einfach zu verstehendes Tutorial? Das wäre hierbei vielleicht hilfreich?

Ich denke ich muss mir wohl die Lizenzangaben der einzelnen Jar´s manuell zusammenkopieren und dann eben ausliefert. Ach ja für alle Apache-Bibliotheken gibt es doch diese Apache 2.0 Lizenz, die dann für alle gilt. Weißt du das zufällig?

Viele Grüße
Sascha
 
Hallo Tom,

ich habe noch eine Frage bzgl. der Lizenzangaben und der verwendeten Bibliotheken.

Eine Bibliothek, die unter der GPL-Lizenz lizensiert ist, darf ich doch verwenden. Wenn ich jedoch eine Erweiterung der Bibliothek vornehmen würde, so müsste ich den Erweiterungscode zur Verfügung stellen und auch meine Erweiterng wiederrum unter die GPL-Lizenz lizensieren.

Sehe ich das richtig? Ich habe hier 2 Bibliotheken, die diese Lizenzart verwenden.

Viele Grüße
Sascha

PS: Ich habe mich für die Variante 4 entschieden :).
 
Hi.
Eine Bibliothek, die unter der GPL-Lizenz lizensiert ist, darf ich doch verwenden. Wenn ich jedoch eine Erweiterung der Bibliothek vornehmen würde, so müsste ich den Erweiterungscode zur Verfügung stellen und auch meine Erweiterng wiederrum unter die GPL-Lizenz lizensieren.

Sehe ich das richtig?
Nein.

Die GPL erfordert, dass du dein Programm (da es sich hierbei um ein von den GPL Bibliotheken abgeleitetes Werk handelt) ebenfalls unter die GPL stellst.

Gruß
 
Hi,

d.h. wenn ich nun meine Software kommerziell vertreiben will, dann darf ich den JAVA-Treiber für die mySQL-Datenbank gar nicht verwenden bzw. die Datenbank gar nicht verwenden, denn dann müsste ich, bei Verwendung des Treibers, meine Software unter die GPL-Lizenz stellen.

Was isn das für ein Schwachsinn? Die mySQL-Datenbank wird doch auch in kommerziell vertriebenen Produkten verwendet. Wie wird hier dann die Verbindung zur Datenbank erstellt, wenn nicht mit dem dazugehörigen Treiber?

Was hast die verwendung des Treibers mit einem abgeleiteten Werk zu tun? Ich verwende ja nur den Treiber, aber erweitere diese Funktionalität ja nicht.

Irgendwie ist die Auslegung der GPL-Lizenz etwas widersprüchlich.

Grüße
Sascha
 
Hi.
d.h. wenn ich nun meine Software kommerziell vertreiben will, dann darf ich den JAVA-Treiber für die mySQL-Datenbank gar nicht verwenden bzw. die Datenbank gar nicht verwenden, denn dann müsste ich, bei Verwendung des Treibers, meine Software unter die GPL-Lizenz stellen.
Oder du müßtest eine kommerzielle MySQL Lizenz erwerben.

http://www.mysql.com/about/legal/licensing/oem/:
OEMs (Original Equipment Manufacturers), ISVs (Independent Software Vendors), VARs (Value Added Resellers) and other distributors that combine and distribute commercially licensed software with MySQL software and do not wish to distribute the source code for the commercially licensed software under version 2 of the GNU General Public License (the "GPL") must enter into a commercial license agreement with Oracle.
Was hast die verwendung des Treibers mit einem abgeleiteten Werk zu tun? Ich verwende ja nur den Treiber, aber erweitere diese Funktionalität ja nicht.
Das ist nicht relevant. Die (Anwälte der) FSF ist/sind der Meinung, das dein Programm ein einzelnes Werk aus der Kombination von deinem Applikationscode und dem Code der GPL Bibliothek und somit ein abgeleitetes Werk ist. Siehe auch http://www.gnu.org/licenses/lgpl-java.html
Irgendwie ist die Auslegung der GPL-Lizenz etwas widersprüchlich.
Warum?

Gruß
 
Hi,

vielen Dank für deine Antwort. Dann muss ich entweder auf die mySQL-Datenbank verzichten oder dann die Schnittstelle anbieten, wenn der Kunde diese haben möchte.

Ich meinte die Auslegung ist immer verschieden. Hier liest man es so, andere legen die Lizenz wieder anders aus. Nachdem ich mir nun deine Link´s durchgelesen habe, simmte ich natürlich dir zu.

Grüße
Sascha
 
Hallo,

ich weiß nicht, wie weit du mit deinem Programm bist, aber wenn du kannst/willst kannst du ja auf SQLite umsteigen.
SQLite selbst ist Public Domain, also musst du nur nach einem Wrapper mit einer geeigneten Lizenz suchen.

Zum Beispiel findet sich sqlite4java unter der Apache Lizenz 2.0.
 
Hi,

na bin nun nach langer Zeit zu 99% fertig. Momentan kann ich mehrere Datenbanken unterstützen. Ich kann "Postgresql", "SQL-Server", "Derby", "mySQL", "DB2" und auch "Oracle" bedienen. Ich wollte ja eigentlich nur den Treiber für die Datenbanken mitausliefern. Wenn das eben nicht möglich ist, dann lass ich das eben lieber und pass meine Anwendung erst an, wenn der Kunde eine spezielle Datenbank haben möchte.

Mir bringt es jetzt natürlich auch nichts, wenn ich mir viele Lizenzen eines Datenbanktreibers kaufe, ich aber nicht weiß, wie viel ich davon benötige etc.

Grüße
Sascha
 

Neue Beiträge

Zurück