Hallo,
ich bin jetzt kein Experte, habe mich mit dem Thema aber intensiv beschäftigt. Also bitte meine Antworten nur unter Vorbehalt akzeptieren.
On Tue, Jun 29, 2010 at 12:05:51PM +0200, Volker Grabsch wrote:
Liebe Liste,
ich hoffe, dies ist ein geeigneter Ort für meine Lizenz-Frage.
Vielleicht besser die FTF fragen, dort sind imho Experten: http://fsfe.org/projects/ftf/
Es ist ein Projekt in Planung, das unter anderem von einer GPL-Library und einer proprietären Library abhängig sein würde.
Das ist ein Problem, da beide Bibliotheken in den selben Adressraum geladen werden. Ob nun dynamisch oder statisch gelinkt wird, macht keinen Unterschied.
Das eigentliche Projekt müsste man einerseits unter GPL stellen, um die Auflage der GPL-Library zu erfüllen. Andererseits hätte man dann insgesamt ein GPL-Projekt, das von einer proprietären Library abhängig ist.
Um die proprietäre Library komme ich im praktischen Einsatz leider nicht herum. Und dass diese unter eine freie Lizenz gestellt wird, ist extrem unwahrscheinlich.
Eine Controlled-Interface-Exception für die verwendete GPL-Library zu erhalten, das ist ebenfalls sehr unwahrscheinlich. (http://www.gnu.org/licenses/gpl-faq.html#LinkingOverControlledInterface)
Das sieht dann ziemlich schlecht aus.
Und die übrigen Punkte der GPL-FAQ behandeln eher den umgekehrten Fall, dass man freie Software in ein proprietäres Projekt einbinden will. Die helfen mir daher auch nicht weiter. (http://www.gnu.org/licenses/gpl-faq.html)
Was kann ich tun, um diese Situation aufzulösen? Welche der nachfolgenden Lösungen wäre für die Auflagen der GPL akzeptabel?
- Das Projekt wird dynamisch gegen die proprietäre Library gelinkt, fertig. Ich habe mir zu viele Sorgen darum gemacht.
Definitiv falsch.
Das Projekt wird dynamisch gegen die proprietäre Library gelinkt, kann aber auch ohne die Library funktionieren, mit entsprechend eingeschränkter _Funktionalität_.
(d.h. die Library ist optional)
Du meinst via dlopen? Da bin ich mir unsicher, aber ich glaube kaum, dass das erlaubt ist. Die Bibliothek wird immer noch in den selben Adressraum geladen.
Das Projekt wird dynamisch gegen die proprietäre Library gelinkt. Ist sie nicht vorhanden, wird stattdessen eine freie (aber sehr einfache) Implemetierung genutzt. Das Projekt würde dann auch ohne sie funktionieren, vollständig, aber mit entsprechend geringerer _Qualität_ der Ergebnisse.
(d.h. es gibt eine klare Schnittstelle, durch die die Library austauschbar ist.)
Wenn diese freie Implementierung existiert, dürfte das erlaubt sein. Wenn nicht, dann nicht. Interessierte Nutzer könnten dann die freie Bibliothek weiter ausbauen... Ob es eine unfreie Bibliothek gibt, die auch genutzt werden könnte, ist für die freie Welt uninteressant.
Die proprietäre Library wird mit einem Wrapper versehen und in einem eigenen Prozess gestartet. Über ein RPC via stdin/out kommuniziert das Projekt mit der Library.
(auch hier eine klare Schnittstelle, durch die die Library austauschbar ist.)
Das sollte erlaubt sein. Aber auch da bin ich unsicher.
- Nicht die proprietäre Library, sondern die verwendete GPL-Library wird in einen Wrapper verpackt. Das eigentliche Projekt wird nicht unter GPL, sondern unter eine BSD-artige Lizenz gestellt.
Wie 4.
- ... Habe ich eine Möglichkeit übersehen? ...
Kommt drauf an.
- Ist das Projekt überhaupt zur Veröffentlichung bestimmt? Wenn man es nur für den Eigenbedarf macht, gibt es keine Probleme mit der GPL. Das ist etwas, das viele übersehen.
- Du hast jetzt nicht gesagt, um was für Bibliotheken es sich handelt. Wenn es eine Systembibliothek ist, bzw. eine größere Komponente des Systems oder des Compilers, dann gibt die GPL schon eine Ausnahme dafür.
- Wer könnte klagen? Der Urheber der GPL-Bibliothek oder der Urheber der proprietären Bibliothek. Also sollte man diese Fragen an die stellen. Wenn man deren ausdrückliche Erlaubnis hat, dann ist es egal, was in den Lizenzen steht.
Ich hoffe, das hilft, auch wenn ich keine definitiven Antworten geben kann.