Hallo Besucher, der Thread wurde 11k mal aufgerufen und enthält 87 Antworten

letzter Beitrag von enthusi am

Open Source Lizenzen Vergleich

  • Also auch als Teil meines Programms, sprich dynamische DLL oder EXE die ich per GUI einfach nur anspreche?


    Dazu steht in den GPL-FAQs:


    Zitat

    Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).


    If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.


    By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.


    Ich verstehe das so: Solange dein Programm nur ein GUI-Wrapper für ein separates GPL-Programm mit CLI-Interface ist, unterliegt dein Programm nicht der GPL.

  • Wie soll man denn mit einer EXE, die man per Kommandozeilenargumenten anspricht, Komplexe interne Datenstrukturen tauschen? Sagen wir mal mein Program macht mehr als eine GUI, es nutzt z.b. zwei drei andere EXE die unter GPL stehen und ich vereine das in einer schönen GUI und mit meinen eigenen Kram dazu. Darf ich dann mein Programm unter meine eigene Lizenz stellen oder muss ich die GPL verwenden?


    Vielleicht sollte ein Mod das hier wirklich mal abtrennen.

  • Mit welcher anderen Lizenz willst du diese vier Freiheiten dann garantieren, wenn nicht durch die GPL?

    Da gibt's verschiedene Möglichkeiten. So ziemlich jede im Opensource-Bereich verwendete Lizenz beinhaltet auf die ein oder andere Art auch die "Minimalforderung" der BSD-2clause, dass bei einer Weitergabe die Lizenzbestimmungen erhalten bleiben. Die BSD-2clause fordert allerdings nicht, dass Source bei der Weitergabe zumindest zugänglich gemacht werden muss, daher scheidet diese simple Lizenz bei der Frage aus (obwohl das in der Praxis heutzutage keine Rolle mehr spielt, denn in der Regel findet sich die originale Veröffentlichung im Internet und verschwindet auch nicht einfach, also bleibt Quellcode ohnehin auch zugänglich, und damit reicht es, zu wissen, dass Opensource-Code weitergegeben wurde, um dessen Source auch finden zu können). Es gibt aber durchaus eine Reihe von Lizenzen (bspw. die CDDL), die die Verfügbarkeit von Quellcode explizit fordern, und damit eben diese Freiheiten garantieren.


    Die GPL allerdings fordert noch viel mehr: Sie erzwingt, dass auch jedes abgeleitete Werk, das in Zukunft eventuell einmal entsteht, nur als freie Software nach genau dieser Definition veröffentlicht werden kann, und zu diesem Zweck muss sie eben fordern, selbst auf jedes abgeleitete Werk angewandt zu werden. Das ist schon ein sehr gewaltiger Eingriff. GPL ist quasi "viral".

  • Müssen tut man ja ohne eine entsprechende Lizenzbestimmung erst mal gar nichts. Opensource ist genau dadurch Opensource, dass man eben Quellcode veröffentlicht und dessen Verwendung und Weitergabe erlaubt. Da gibt es Lizenzen, wie die BSD-2clause oder MIT oder, ganz extrem, public domain, die einfach alles erlauben. Dann gibt es Lizenzen wie die CDDL, die sicherstellen, dass Opensource auch bei der Weitergabe Opensource bleiben muss. Und dann gibt es eben die GPL, die erzwingt, dass auch jede Änderung, Ergänzung, ja sogar Verwendung einer Library, selbst Opensource werden muss (und unter GPL lizenziert werden muss).

  • Ok, sagen wir mal ich erstelle ein Programm unter GPL und verkaufe dies, dann muss ich den Source doch nur dem Kunden geben wenn der danach fragt und nicht automatisch mein Ding ins Internet stellen, oder?


    Ja das mit dem nicht verwenden von dynamische Libs ist der Oberhammer, wenn das stimmt ist GPL für mich gestorben, also als Entwickler.

  • Ok, sagen wir mal ich erstelle ein Programm unter GPL und verkaufe dies,

    Da würde ich erst mal fragen: Warum? Wenn ich etwas verkaufen will und auch kein Interesse habe, den Source zu veröffentlichen, dann werde ich doch nie und nimmer GPL verwenden. Ich kann zwar auch mit GPL Software verkaufen, aber damit hat jeder das Recht, diese beliebig weiterzugeben. Kann wohl kaum in meinem Sinne sein.


    Aber ja, der GPL wäre Genüge getan, wenn man (IIRC mindestens 3 Jahre lang) den Source auf Anfrage zur Verfügung stellt.

  • Ja das mit dem nicht verwenden von dynamische Libs ist der Oberhammer, wenn das stimmt ist GPL für mich gestorben, also als Entwickler.


    Deshalb gilt für viele Libraries ja auch das weniger restriktive LGPL, was zrs1 weiter oben schon erwähnt hat. Lies dich da mal ein bisschen ein. Die GPL-FAQs zum Beispiel sind ein guter Anfang.

  • Deshalb gilt für viele Libraries ja auch das weniger restriktive LGPL, was zrs1 weiter oben schon erwähnt hat. Lies dich da mal ein bisschen ein. Die GPL-FAQs zum Beispiel sind ein guter Anfang.

    Genau. Die zu lesen hilft auch durchaus weiter, klärt aber leider nicht jede Detailfrage. Wie schon gesagt, zum Teil braucht man für eine korrekte Interpretation in einem bestimmten Kontext dann schon einen Anwalt.


    Allerdings wird die Frage, wie "freizügig" vs "restriktiv" eine Lizenz für freie Software sein sollte, sicher immer ein Streitthema ohne Einigung bleiben, und es liegt mir auch fern, hier jemandem etwas vorzuschreiben. Finde es aber gut, hier (leider quasi als off-topic im Thread) mal die Fakten zu erwähnen, das kann auch für jeden eine Entscheidungshilfe sein.* Viele finden den Zwang, dass jedes abgeleitete Werk selbst freie Software (eben auch unter der GPL) sein muss, ja gut. Mir persönlich ist der Charakter der GPL dagegen zu unfrei.


    *) edit: Ich habe den Verdacht, dass dadurch, dass Linux und GNU unter GPL stehen, diese Lizenz auch öfter mal unbedacht verwendet wird ("Linux ist GPL, wird schon passen"). Wer natürlich seine Werke aus Überzeugung der GPL unterstellt soll das gerne auch tun ;)

  • Die GPL allerdings fordert noch viel mehr: Sie erzwingt, dass auch jedes abgeleitete Werk, das in Zukunft eventuell einmal entsteht, nur als freie Software nach genau dieser Definition veröffentlicht werden kann, und zu diesem Zweck muss sie eben fordern, selbst auf jedes abgeleitete Werk angewandt zu werden. Das ist schon ein sehr gewaltiger Eingriff. GPL ist quasi "viral".

    Ich glaube, das ist auch genau die Idee dahinter: Es kann nur mehr werden. Kann man schlecht finden, kann man gut finden. Wenn man's nicht so toll findet, einfach nicht diese Lizenz verwenden, bzw. nicht an Projekten arbeiten, die auf einer entsprechenden Lizenz beruhen. Schränkt natürlich ein. Ist aber eine persönliche Entscheidung.

    OpenSource bedeutet doch aber nur, dass man den Quellcode auf Anfrage an den Kunden geben muss, nicht dass man ihn automatisch für Jedermann ins Internet stellen muss, oder?

    Open Source heißt zunächst erst mal nur, dass der Code vom Autor/Rechteinhaber irgendwie™ offengelegt wurde. Also nicht geklaut. Ein Hack beim Softwarehersteller macht den Quellcode vielleicht verfügbar, aber Open Source wird's davon noch lange nicht. ;-) Das ist nicht das gleiche wie freie Software. Du kannst dir den Code dann z. B. ansehen. Evtl. sogar compilieren. Aber spätestens beim Nutzen geht's los, dass die Lizenzvereinbarung eingehalten werden muss, bzw. eine vorliegt. Beim Verändern wird's noch spannender und beim Verkaufen wird's dann endgültig lustig.


    Ich arbeite in einer Firma, deren Software in Perl geschrieben ist. Da ist quasi Quelloffenheit built-in. Aber wir lizenzieren sie ganz normal gegen Geld in Abhängigkeit der Anzahl der Installationen und Nutzer, plus Wartungsverträge, die regelmäßig erneuert werden müssen, wenn man neue features und support bei speziellen Problemen haben will. Die Weitergabe ist auch nicht gestattet. Wer dran rum dreht, hat sofort die Supportansprüche verloren (klar, wir fixen doch nicht deren bugs?!?).


    In unserem Fall könnte ein Konkurrent sicherlich einen Blick rein werfen, wenn er denn an eine Kopie kommt. Aber er hätte erst mal nicht viel davon, denn bis er das alles durchsteigt, was da in vielen Jahren an Hirnschmalz und Ideen rein gewandert ist, hat er es vermutlich genau so leicht selbst neu geschrieben. Es ist also definitiv Open Source, aber von freier Software so weit weg wie die Erde von der Sonne. Deswegen die beiden Sachen am besten nie in einen Topf werfen. Freie Software verlangt Quelloffenheit, aber nicht anders rum.

  • @7Saturn Nach allgemein üblichen Definitionen (siehe z.B. Wikipedia) ist es nicht automatisch Opensource wenn Quellcode verfügbar ist. Quellcode kann z.B. auch unter einem NDA verfügbar sein. Opensource ist es, sobald die Verwendung, Weitergabe und Modifikation dieses Quellcodes grundsätzlich erlaubt ist. Das ist im ganzen Spektrum von GPL bis Public Domain (sofern hier Quellcode mitgeliefert wird) der Fall ;)

    Ich glaube, das ist auch genau die Idee dahinter: Es kann nur mehr werden. Kann man schlecht finden, kann man gut finden. Wenn man's nicht so toll findet, einfach nicht diese Lizenz verwenden, bzw. nicht an Projekten arbeiten, die auf einer entsprechenden Lizenz beruhen. Schränkt natürlich ein. Ist aber eine persönliche Entscheidung.

    Natürlich ist das die Idee dahinter ;) Ich finde sie nur nicht besonders gut -- es schränkt die Freiheit, was man mit der Software machen darf, doch sehr ein, und das mit dem erklärten Ziel, freie Software zu "schützen". Für mein Empfinden paradox. Man muss deshalb nicht gleich so weit gehen, GPL Software zu meiden oder aus Prinzip nichts beizutragen. Aber ja, für eigene Projekte würde ich die GPL nie verwenden.


    Ein real existierendes praktisches Problem mit der GPL ist allerdings in der Tat eine gewisse Unsicherheit bei vielen Detailfragen -- aus dem Grund sind wir sicher nicht der einzige Softwareentwicklungs-Laden, bei dem die Nutzung von GPL-Software in eigenen Projekten strikt verboten ist, einfach um sicherzugehen.

  • Danke für deine Fallbeschreibung.


    Ja, das OpenSource zudem nicht bedeutet, dass man da durch steigt, zeigen Katastrophen wie Heartbleed unter Linux. Viele dachten, dass ganz krasse Fehler durch OpenSoruce vermieden werden, weil mehr Augen drüber gucken. Ja dem ist nicht so. Drei Jahre war alles womit OpenSSL unter Linux lief für Angriffe offen. Das kann man aber erst wirklich nach vollziehen, wenn man selbst programmiert und nach einer Weile Schwierigkeiten mit dem eigenen Code bekommt, von fremden Code ganz zu schweigen.


    In meiner ExFirma wurde der Quellcode nur den Kunden auf Anfrage raus gegeben, weiß jetzt aber nicht mehr ob das auch GPL war. Der Chef hatte Jura studiert, daher denke ich, er hatte sie Sache im Griff.

  • In meiner ExFirma wurde der Quellcode nur den Kunden auf Anfrage raus gegeben, weiß jetzt aber nicht mehr ob das auch GPL war. Der Chef hatte Jura studiert, daher denke ich, er hatte sie Sache im Griff.

    Da würde ich ja stark auf ein individuelles NDA tippen. GPL wäre für kommerzielle Software selbstmörderisch, denn die Weitergabe wäre dann uneingeschränkt erlaubt.

    Ja, das OpenSource zudem nicht bedeutet, dass man da durch steigt, zeigen Katastrophen wie Heartbleed unter Linux. Viele dachten, dass ganz krasse Fehler durch OpenSoruce vermieden werden, weil mehr Augen drüber gucken. Ja dem ist nicht so. Drei Jahre war alles womit OpenSSL unter Linux lief für Angriffe offen.

    Zunächst mal: https://xkcd.com/1354/ -- finde ich einfach nett ;)


    Ansonsten: Wer auch immer jemals behauptet hat, Opensource schütze vor Bugs, war Träumer. Das konnte man noch nie ernst nehmen. Tatsache ist allerdings, dass zumindest in großen Opensource-Projekten (wo eben viele reinschauen) die Fix-Zeiten im Schnitt besser sind als bei kommerzieller Software. Das ist aber selbstverständlich nicht alles. Wie "leicht" kritische Bugs überhaupt eingebaut werden können hängt sehr von den gelebten Q/A-Prozessen ab, und wie gut diese sind ist individuell verschieden. Das früher häufig gescholtene Microsoft hat gerade was das angeht mittlerweile deutlich nachgelegt.

  • Open Source heißt zunächst erst mal nur, dass der Code vom Autor/Rechteinhaber irgendwie™ offengelegt wurde. Also nicht geklaut.


    @7Saturn Nach allgemein üblichen Definitionen (siehe z.B. Wikipedia) ist es nicht automatisch Opensource wenn Quellcode verfügbar ist. Quellcode kann z.B. auch unter einem NDA verfügbar sein. Opensource ist es, sobald die Verwendung, Weitergabe und Modifikation dieses Quellcodes grundsätzlich erlaubt ist.


    Ja, in dem lesenswerten Buch Produktion von Open-Source-Software wird das auch ganz gut auf den Punkt gebracht:


    Zitat

    Manchmal wird jedoch proprietäre Software veröffentlicht, deren Lizenz es erlaubt, den Quellcode einzusehen. Verwirrender Weise wird dies dann auch "Open Source" oder "Fast Open Source" genannt, doch das ist irreführend. Die Sichtbarkeit des Quellcodes ist nicht entscheidend; wichtig ist was man damit tun darf.