PBOSL - Eine OpenSource Library-Sammlung für PureBasic

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Hä?
Aus dem lgpl.txt von PBOSL:
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
Also Programme, die selbst keine Modifikationen an der Lib vorgenommen
haben -> erlaubt auch ClosedSource.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
Sich zu einem LGPL-Dings hinzulinken, wenn das Programm selbst schon
die Lib hinzugelinkt hat, hingegen zählt als modifizierte Version der Library.
Wann auch immer das Sinn macht... So wirds wohl verstanden:
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library

Aber wiederum bin ich kein Lizenz-Experte. Es scheint aber keine Probleme
bei einmaligem statischen Linken einer UserLib zu einem Programm zu
geben.

greetz
Remi

Edit: Aus der Engl. Wiki:
Essentially, it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use "a suitable shared library mechanism for linking". Alternatively, a statically linked library is allowed if either source code or linkable object files are provided.
Ok... Ich glaube, das gilt nur bei "derivative Work", was meiner Ansicht nach
ein normales Programm nicht ist. :freak:
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Aaaaahaa.. also heißt das genau was? :D
Bild
v1d4r

Beitrag von v1d4r »

Es geht nicht um Vererbung!

Es geht im Grunde genau darum:
Essentially, it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use "a suitable shared library mechanism for linking". Alternatively, a statically linked library is allowed if either source code or linkable object files are provided.
Man darf unter eigener Lizenz (ClosedSource) bleiben wenn:

1. man die Library unverändert nutzt!
2. es moeglich ist die LGPL Library zu ersetzen!

Wichtig! >>> Punkt 2 <<<

Die einfachste Methode ist hier natuerlich eine DLL oder aber Object Files die nachtraeglich neu gelinkt werden koennen.
Bzw. man legt einen Patch dazu der es moeglich macht die eigene EXE so zu patchen das die darin enthaltene LGPL Library ersetz werden kann.

Im Prinzip kommt also nur eine externe DLL in Frage!

Klartext:
Jede PB EXE die eine statische LGPL Library enthaelt und nicht Quelloffen ist oder eine andere Moeglichkeit enthaelt die LGPL Library zu ersetzen - verstoesst gegen die LGPL Lizenz!

Das sollte sich jeder klar machen, auch sollte das PBOSL Team darauf hinweisen.

Da die meisten Librarys statisch und nicht dynamisch ausgelegt sind, sollte der Benutzer darauf hingewiesen werden das man hier in der Regel ebenfalls OpenSource bleiben muss.

Oder ist sich das PBOSL-Team dem nicht bewusst?
Dann wuerde ich eher eine BSD oder MIT Lizenz empfehlen.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Sorry, aber verstehe ich da wirklich was komplett falsch?
Der Teil, den du zitiert hast (aus engl. Wiki) findet sich in der Lizenz in
Section 6. Nun aber zuerst zu Section 5:
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".(*)
Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (**)
(because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
(*) Ist doch genau das, was wir wollen. Eine Exe erzeugen und die Library
UNVERÄNDERT hinzulinken -> fällt nicht unter die Lizenz.
(**) Ein solches Programm (welches die Lib benutzt, statisch oder dynamisch)
nochmals zu der Lib hinzulinken, fällt unter die Lizenz, da man so die Library
sozusagen verändert, oder in diesem Fall um seinen Programmcode
erweitert.

Nun Section 6, die genau darunter ist:
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library
, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
Das ist, wie oben unter (**) der Verweis, in Section 6, welche sich auch auf
das mögliche spätere hinzulinken der Lib bezieht, wie auf der engl. Wiki
geschrieben. Und dieser Fall entzieht sich meiner Definition von hinzulinken
der LGPL-Lib zu einer Exe, die mit dieser Lib arbeitet bzw. sie benutzt.

Sorry, aber so wie ich das verstehe, besteht absolut kein Problem damit,
LGPL-Libs statisch Hinzuzulinken, wenn LGPL-Lizenztext, Autor der Lib und
Quelle der Lib ausgiebig in den Credits stehen.


Also @v1d4r, IMO gilt dein 2. Punkt nur, wenn Punkt 1 nicht erfüllt ist. Sonst
erklärs mir, aber nicht mithilfe von Wikipedia. Ich habe schon genug fehler-
hafte Artikel entdeckt, so dass ich ihr nicht mehr 100%ig glaube. Zeig es
mir doch bitte anhand des originalen LGPL-Lizenztextes, der in der Hilfe
zu PBOSL steckt. Ich denke, Section 5 und 6 sind die einzig relevanten.

greetz
Remi
v1d4r

Beitrag von v1d4r »

Nein! *g*

Hier muss genau zwischen den Zeilen gelesen werden.
Augenmerk gilt dem "Werk, das die Bibliothek nutzt" und dem "ausführbares Programm".

Für das Verständnis mal alles auf Deutsch:
§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.
Ein Programm, das nichts von irgendeinem Teil der Bibliothek Abgeleitetes enthält ist also ein „Werk, das die Bibliothek nutzt“!

„Werk, das die Bibliothek nutzt“ ist also eine EXE die nur dynamisch mit der Bibliothek verlinkt ist. Die juristische Umschreibung. *g*
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.
Hier ist redet von einem ausführbaren Programm, eine EXE, mit der die Bibliothek statisch gelinkt wurde, diese fällt dann ebenfalls unter die LGPL Lizenz!

Kommen wir zum Paragraph 6:
§6. Als Ausnahme von den Bestimmungen der vorstehenden fünf Paragraphen dürfen Sie auch ein „Werk, das die Bibliothek nutzt“, mit der Bibliothek kombinieren oder linken, um ein Werk zu erzeugen, das Teile der Bibliothek enthält, und dieses unter Bedingungen ihrer eigenen Wahl weitergeben, sofern diese Bedingungen Bearbeitungen für den eigenen Gebrauch des Empfängers und ein Rückbilden (“reverse engineering”) zum Beheben von Mängeln solcher Bearbeitungen gestatten.
Hier wird noch eine Ausnahme erwaehnt die ich ebenfalls erwaehnte. Es wird erlaubt statisch zu verlinken und die eigene Lizenz zu behalten wenn dem "Empfaenger" die Moeglichkeit gegeben wird die enthaltenen Bibliothek zu modifiziern!

Das ist machbar wenn man den eigenen QuellCode offenlegt, man spricht hier auch von der kompatibilitaet zu GNU/GPL.

Wenn man das nicht moechte muesste man eine Art "Patch" machen.
Im Prinzip muesste die EXE neu gelinkt werden. (siehe Obj Files).

WIKI hat also vollkommen Recht! :allright:
v1d4r

Beitrag von v1d4r »

Also nochmal zusammengefasst in klaren Worten.

Nicht ohne Grund nannte man die LGPL frueher "Library General Public License", heute "Lesser General Public License". Damit sind Dynamic Link Library (DLL) gemeint. Genau genommen sind die PB libs oder die C libs keine Librarys sondern Object Files. Ob diese Object Files spaeter mit anderen Obj Files (dein Code) verlinkt wird - darum geht es.

Eine EXE enthaelt auch deinen eigenen Code, eine DLL nicht unbedingt.

Nach §5:
Sobald dein eigener Code mit drin ist, gilt auch fuer einer DLL, faellt diese unter LGPL Lizenz. Erlaubt ist dir deine Lizenz zu behalten wenn die LGPL Library unveraendert als DLL genutzt wird (oder siehe §6).

Nach §6:
Wenn du die Library nicht als DLL nutzt aber deinen Code offen legst, oder eine andere Moeglichkeit zur Modifizierung bereit stellst, darfst du deine eigene Lizenz behalten.


Zur Anmerkung:
Das ganze PBOSL Projekt ist eher "untypisch". Eine Software die unter LGPL faellt wird in der Regel als OpenSource DLL entworfen und released. Da dies aber nicht so ist geh ich davon aus das man sich der Lizenz nicht klar ist, denn man laesst hier den User ins Messer laufen.
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

v1d4r hat geschrieben:...
Das ganze PBOSL Projekt ist eher "untypisch". Eine Software die unter LGPL faellt wird in der Regel als OpenSource DLL entworfen und released. Da dies aber nicht so ist geh ich davon aus das man sich der Lizenz nicht klar ist, denn man laesst hier den User ins Messer laufen.
Nur damit das klar ist,
Das Projekt wurde gestartet um QuellCodes&Libs am leben zu halten
und nicht durch ClosedSource und PB-Versionswechsel sterben zu sehen.
Die Urheber der Libs, (zu großem Maße Danilo und meiner Einer)
haben keinen Gedanken an den ganzen ParagraphenScheiss irgendeiner
dämlichen Lizenz verschwendet. Wichtig war eigentlich auch das net irgendein Depp (Und das iss wirklich passiert) auf einmal Sachen der PBOSL als eigene
Libs /Library-Sammlungen) veröffentlichen zu wollen.
Wir haben schon damals ausdrücklich gesagt, das die PBOSL in Closed
Source Projekten (Also EXE !!) verwendet werden darf.
Müsst ihr halt mal den ganzen Thread(s) lesen .
Und mich interessiert ein Scheiss irgendwelche Paragraphen und Hirnis diesich damit rumbrüsten und alles so genau nehmen.
Muss man diese typisch deutsche Beamten-Mentalität jetzt schon
in ein Programmier-Forum(was eh nur für Hobby-Coder iss)
reintragen ?

sorry, musste mal raus.
Ansonsten, frohes fest

[Klugscheiss]
Bevor ichs vergesse, wir haben damals explizit die Version 2.1 der lgpl
verwendet, nich die 3.er die in irgendwelchen WIKI's rumschwirren !!!
[/Klugscheiss]
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

v1d4r hat geschrieben:Für das Verständnis mal alles auf Deutsch:
§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.
Ein Programm, das nichts von irgendeinem Teil der Bibliothek Abgeleitetes enthält ist also ein „Werk, das die Bibliothek nutzt“!

„Werk, das die Bibliothek nutzt“ ist also eine EXE die nur dynamisch mit der Bibliothek verlinkt ist. Die juristische Umschreibung. *g*
Also hier liegt wohl mein Knoten. Aber irgendwie verstehe ich den Abschnitt
immer noch anders.
indem es mit ihr compiliert oder gelinkt wird,
Heisst doch ganz einfach, dass man die Lib auch statisch hinzulinken darf.
Da steht nichts von "dynamisch".
nichts von irgendeinem Teil der Bibliothek Abgeleitetes enthält
Verstehe ich als: Das Programm (NICHT die Exe) darf nichts von der Lib
enthalten. Also wenn man per IncludeFile den Source einbinden würde,
müsste man alles unter Section 6 erfüllen, aber wenn das Programm von
sich aus nichts von der Lib enthält, aber dann mit der Lib (auch statisch)
gelinkt wird, fällt das PROGRAMM (also dein Programmcode) NICHT unter
die Lizenz.

@Rings: schon klar, aber wenn das nicht geklärt werden kann, ist es
ziemlich wackelig. Im schlimmsten Fall müssen wir die Lizenz ändern, wenn
alle Autoren ihr Einverständnis geben.
Und ja, ich beziehe mich immer auf den LGPL-Lizenztext, der in der Help zu
PBOSL enthalten ist.


greetz
Remi
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

@remi_meier:
Du verstehst das schon richtig, also laß Dich nicht beirren. ;)
Funktioniert seit Jahren und gab sehr viele andere Projekte
bei denen es genauso funktionierte (statisch hinzugelinkt).
Genau dafür war die LGPL v2.x da.

In der Version 3 scheint es nun etwas anders zu sein, aber habe
jetzt keine Zeit das genauer zu studieren. Ist auch egal, da diese
Version damals nicht bekannt war und niemand in die Zukunft
schauen kann um eventuelle Änderungen vorherzusehen.
Ist wohl logisch.

Ich habe mir damals, als Initiator des Projekts, sehr wohl lange
und ausführlich Gedanken dazu gemacht und mich genaustens
informiert und umgeschaut.

Ich wurde heute von Rings hierauf aufmerksam gemacht und hab
somit mal kurz reingeschaut. Da ich in 2 Stunden los muß um wieder
nach Thailand zu meiner Kleinen fliegen, kann ich hierzu demnächst
erstmal nichts weiter beitragen. Weihnachten haben wohl eh die meisten
anderes zu tun als sich hier zu tummeln.

Frohes Fest und liebe Grüße... 8)
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
v1d4r

Beitrag von v1d4r »

Nein, ihr versteht das nicht richtig!
Es geht hier die ganze Zeit um die LGPL v2.x, nur scheint sie keiner richtig gelesen und verstanden zu haben!

Compiliert oder gelinkt wird jede Software! Egal ob EXE oder DLL.
Natuerlich darfst du die Library statisch verwenden!
Z.b. in einer EXE die du Freiwillig unter LGPL oder GNU/GPL stellst!

Aber NUR eine DLL erfuellt die Anforderung "Werk, das die Bibliothek nutzt" von §5 sowie §6. Eine EXE oder "ausführbares Programm" was Teile der Lib. enthaelt muss aber LGPL oder GNU/GPL sein!

Was ist denn daran nicht zu verstehen? Ist doch klar in der Lizenz beschrieben. Warum verstehen es alle richtig nur ihr nicht?

Anbei will ich PBOSL hier nicht ans "Bein pissen". Das war eine gut gemeinter Hinweis. Bitte beschwert euch nicht bei mir wenn eine "Abmahnwelle" durchs PBBoard schwappt. Das kann schnell sehr teuer werden und alles nur wegen einem Missverstaendnis.

Nochmals!

Entweder alle PB Libs auf DLL umschreiben und LGPL behalten oder, wenn es darum geht auch "ClosedSource" bleiben zu koennen, waehlt die BSD oder MIT Lizenz.
Antworten