AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu LGPL und Delphi

Ein Thema von igel457 · begonnen am 5. Jan 2007 · letzter Beitrag vom 6. Jan 2007
Antwort Antwort
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#1

Frage zu LGPL und Delphi

  Alt 5. Jan 2007, 20:29
Hallo,

wie ihr vielleich wisst schreibe ich gerade eine kleine 2D Engine.
Da dachte ich mir: Stelle ich sie doch unter die LGPL, denn diese Lizenz erfüllt alles was ich haben möchte:
  • Man darf meine "Bibliothek" frei verwenden
  • Ändert jemand den SourceCode so muss er die Änderungen wieder in mein Projekt zurückfließen lassen (indem er gezwungen ist den SourceCode meiner Bibliothek zu veröffentlichen)
  • Und das wichtigste (dachte ich): Wenn man meine "Bibliothek" verwendet muss man das Programm nicht als GPL oder LGPL veröffentlichen

Problem ist jetzt aber folgendes...:
Zitat von Die deutsche Übersetzung der LGPL:
§5. Ein Programm, das nichts von irgendeinem Teil der Bibliothek Abgeleitetes enthält, aber darauf ausgelegt ist, mit der Bibliothek zusammenzuarbeiten, indem es mit ihr compiliert oder gelinkt wird, nennt man ein „Werk, das die Bibliothek nutzt“. Solch ein Werk, für sich allein genommen, ist kein von der Bibiliothek abgeleitetes Werk und fällt daher nicht unter diese Lizenz.

Wird jedoch ein „Werk, das die Bibliothek nutzt“, mit der Bibliothek gelinkt, so entsteht ein ausführbares Programm, das ein von der Bibliothek abgeleitetes Werk (weil es Teile der Bibliothek enthält) und kein „Werk, das die Bibliothek nutzt“ ist. Das ausführbare Programm fällt daher unter diese Lizenz. Paragraph 6 gibt die Bedingungen für die Weitergabe solcher ausführbarer Programme an.

Wenn ein „Werk, das die Bibliothek nutzt“, Material aus einer Header-Datei verwendet, die Teil der Bibliothek ist, dann kann der Objektcode für das Werk ein von der Bibliothek abgeleitetes Werk sein, selbst wenn der Quelltext dies nicht ist. Ob dies jeweils zutrifft, ist besonders dann von Bedeutung, wenn das Werk ohne die Bibliothek gelinkt werden kann oder wenn das Werk selbst eine Bibliothek ist. Die genaue Grenze, von der an dies zutrifft, ist rechtlich nicht genau definiert.
(Siehe auch: http://www.gnu.de/documents/lgpl.de.html)

Erst einmal zum Aufbau meiner Engine:
Es gibt verschiedene Render-Plugins (zum Beispiel für OpenGL und DirectX) die Dynamisch in das Programm geladen werden (Über DLLOpen oder wie die Funktion heißt).
Nun wird aber der Großteil meiner Engine direkt in das Programm hinein kompiliert (statisch gelinkt) und ist somit ein Bestandteil des "Programms, das die Bibliothek nutzt". (Wer sich meinen Code mal anschauen möchte kann hier schauen (Alles im Ordner "dll" ist ein Plugin und wird dynamisch gelinkt, der Rest nicht)). Aus diesem Grund (da es sich ja nicht nur um "Header" Dateien handelt), denke ich das jeder, der meine "Bibliothek" (damit meine ich mein Gesammtwerk) verwendet seine eigene Applikation trotzdem unter der LGPL lizensieren muss, was ich unter keinen Umständen will.

Es kann natürlich sein, dass ich den oben Zitierten abschnitt gänzlich falsch verstehe.
Deshalb meine Fragen (ich will natürlich keine rechtsgültige Rechtsauskunft (die ihr mir eh nicht geben könnt)):

1. Verstehe ich das Falsch, oder ist es so wie oben Beschrieben richtig?
2. Kennt ihr eventuell eine "bessere" Lizenz für meine (oben genannten) Absichten?
3. Gibt es in Delphi einen Weg die ganzen Units (siehe Link oben) in eine Bibliothek (DLL, nicht BPL) zu Packen, ohne das dies die Komfortabilität der Verwendung (also über Klassen) einschränkt? Eine Headerdatei in der die Klassen deklariert sind dürfte es natürlich schon geben...

Danke für eure Aufmerksamkeit,
Igel457

PS: Es gab hier zwar schon einige Diskusionen zu dem Thema, aber meistens aus der anderen Sicht (also der des Benutzers einer Bibliothek).
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Frage zu LGPL und Delphi

  Alt 5. Jan 2007, 20:32
Es gibt bei diesem Thema verschiedene Ansichten. Ich würde aber zur Sicherheit dein Programm als Bibilothek anbieten.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Frage zu LGPL und Delphi

  Alt 5. Jan 2007, 20:37
Zitat von mkinzler:
Ich würde aber zur Sicherheit dein Programm als Bibilothek anbieten.
Du meinst also, das ich alles in eine DLL Packen sollte. Problem ist nun (das ist ja auch meine 3. Frage), wie z.B. folgenden Sourccode (ohne eine BPL zu verwenden) in der Host-Applikation "erreichbar" mache. Eine Factory Funktion möcht ich nicht verwenden.

Delphi-Quellcode:
  TAdDraw = class
  private
    [ist eh egal]
  protected
    procedure CallNotifyEvent(AEventState:TSurfaceEventState);
  public
    AdDllLoader : TAndorraDllLoader;
    AdAppl:TAdApplication;
    Display : TAdDisplay;
    constructor Create(AParent : TWinControl);
    destructor Destroy; override;
    property Parent : TWinControl read FParent;
    property DisplayRect:TRect read FDisplayRect;
    function Initialize: boolean;
    procedure Finalize;
    procedure ClearSurface(Color:TColor);
    procedure BeginScene;
    procedure EndScene;
    procedure Setup2DScene;
    procedure Flip;
    function CanDraw:boolean;
    procedure LogProc(LogItem:TAdLogItem);
    procedure RegisterNotifyEvent(AProc:TSurfaceEvent);
    procedure UnRegisterNotifyEvent(AProc:TSurfaceEvent);
    property Options : TAdOptions read FOptions write SetOptions;
    property DllName : string read FDllName write SetDllName;
    property Initialized : boolean read FInitialized;
    property AmbientColor:TColor read FAmbientColor write SetAmbientColor;
    property OnFinalize : TNotifyEvent read FFinalize write FFinalize;
    property OnInitialize : TNotifyEvent read FInitialize write FInitialize;
    property Log : TAdLog read FLog;
    property AutoLoadLog: boolean read FAutoLoadLog write SetAutoLoadLog;
    property LogFileName:string read FLogFileName write FLogFileName;
  end;
IMHO kann ich eine Klasse nicht aus einer DLL exportieren...

[EDIT]Dem Syntaxhighlighter bekam Pfälzisch nicht so gut[/EDIT]
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Frage zu LGPL und Delphi

  Alt 6. Jan 2007, 20:45
Die einzige Lizenz die nach meinen Recherchen so ungefär das erfüllt, was ich haben möchte, ist die CPL.
Muss ich bei dieser Lizenz noch etwas beachten? In dem verlinkten Artikel steht, dass diese Lizenz mit der GPL inkompatibel ist. Was bedeutet dies? Darf ich in meinem Projekt keine GPL/LGPL Source-Codes verwenden oder darf jemand mein Projekt nicht in einem GPL/LGPL Projekt verwenden?

Kennt ihr vieleicht noch eine "bessere" Lizenz, die meine "Bedürfnisse", besser erfüllt?
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz