Page 1 of 1

kernel liberator script - die Befreiung des Kernels von gpl only Symbolen

Posted: 02. May 2008 17:07
by petameta
In Kernel 2.6.25 haben die Kernel Entwickler einige Einschränkungen eingeführt. Nicht-GPL USB Module und ndiswrapper haben keinen Zugriff mehr auf gpl only Symbole. Die Folge ist, daß viele Module, also Geräte, nicht mehr mit Kernel 2.6.25 funktionieren.

Dieses Problem löst ein vor mir geschriebenes Skript, das ich mal mutig den Kernel Liberator genannt habe. Es ändert alle gpl only Symbole in nicht gpl only Symbole, so daß alle Module wieder funktionieren.

Für Feedback technischer und sonstiger Art wäre ich sehr dankbar.

Posted: 02. May 2008 20:52
by Janka
Hmmm. Ob das wirklich so "frei" ist -- es gibt dem Benutzer Entscheidungsgewalt über sein System zurück, ok.

Tatsache ist, dass ein so geänderter Kernel nicht mehr weitergegeben werden darf (auch nicht im Quelltext!), da bei dieser Änderung die Lizenz erlischt! Weitergabe des geänderten Kernels ist daher eine Verletzung des Urheberrechts.

Das solltest du unbedingt bei deinem Skript anmerken. Für lokale Nutzung ist hingegen meiner Meinung nach nichts dagegen einzuwenden -- das mögen andere aber anders sehen.

Janka

Posted: 03. May 2008 9:01
by petameta
Meinst Du wirklich, daß man den Source Code so nicht weitergeben dürfte? Ich will Dir keine Unwissenheit vorwerfen, diese rechtlichen Fragen sind nur oft äußerst undurchsichtig. Legt man die GPL so aus, wie die Kernel Entwickler, wäre das nicht legal. Ob aber ein Gericht die Ansicht der Entwickler teilt, ist eine ganz andere Frage.

Die Kernaussage der GPL ist, daß ich den Source mitliefern muß - ob nun irgendwelche Symbole darin gpl only oder sonstwas sind steht nicht drin. Ich vertreibe den Kernel ja in dem Fall nicht mit einem closed-source Teil, sondern erlaube Anwendern nur das Linken von closed-source Modulen. Letzteres ist nicht illegal, da sich die GPL nur auf den Vertrieb bezieht.

Trotzdem dürfte diese Variante mit Patch-Skript die sicherste sein. Das ganze vor Gericht auszutragen wäre sicherlich spannend - allerdings will ich das nicht machen.

P.S.: Ich denke, das ist frei, ich kann mit meinem System machen, was ich möchte ohne künstlichen Einschränkungen zu unterliegen. Bei DRM regen sich alle drüber auf, weil die Einschränkungen technisch nicht nötig sind, sondern nur dem Druchdrücken von Lizenzrechtlichen Interessen dienen. Beim Kernel hingegen sind sogar die Entwickler dafür, das soll jemand verstehen.

Posted: 03. May 2008 15:42
by Janka
Wenn du die Lizenzbedingungen eigenmächtig änderst, begehst du in jedem Fall einen Urheberrechtsbruch!

Es ist das ureigene Recht des Urhebers eines Textes, über dessen Verbreitung zu bestimmen. Der Urheber hat in diesem Fall festgelegt: Das Stück darf zu den Bedingungen der GPL verbreitet werden (das heißt, externe Funktionen, die diese Funktionen nutzen, müssen ebenfalls GPL sein).

Du entfernst nun eine Vorrichtung, die genau dieses erzwingen soll, gegen den erklärten Willen der Urheber dieser Funktionen. Das ist soweit noch ok, weil sich die GPL nur auf die Verbreitung bezieht, denke ich.

Wenn jemand aber das so veränderte Stück Kernelcode weitergibt, ist für den Empfänger nicht mehr erkennbar, dass die entsprechenden Funktionen nur durch GPL-lizensierte externe Funktionen aufgerufen werden dürfen. Darüber steht nun aber, dass der Entwickler den Code so wir er ist unter GPL gestellt hat. Der Empfänger kann also im guten Glauben davon ausgehen, dass er den Code so wie er lizensiert ist benutzen darf. Das darf er aber eben nicht, denn dein Skript hat eigenmächtig die Lizenzbedingungen verändert.

Oder kurz: Du kannst auch nicht einfach auf 'nen fremden Text draufschreiben "darf einfach so kopiert/bearbeitet werden". Das darf nur der Autor.

Janka

Posted: 03. May 2008 19:03
by petameta
Ich würde ja nicht die Lizenzbedingungen ändern, sondern den Quelltext. Die GPL sagt nicht, daß genau diese Änderung nicht vorgenommen werden darf, nur weil es dem Autor nicht gefällt.

Der Fall liegt denke ich ähnlich wie DRM oder Kopierschutz auf CDs. Vor einiger Zeit war es nicht nicht illegal, sowas zu umgehen. Die eigentliche Kopie evtl. schon, aber die Umgehung des Mechanismus nicht. Inzwischen hat der Gesetzgeber zwar nachgelegt, aber dieses Verbot mußte explizit in das Gesetz aufgenommen werden und war nicht gegeben, nur weil der Urheber eine solche Vorrichtung vorgesehen hat.

Bei der GPL der der User ja grad den Source Code verändern und weitergeben, das ist die eigentliche Idee an der Lizenz.

Mal zusammengefaßt, man sollte zwischen der Lizenz, dem Source Code, dem Urheber, dem Nutzer und dem Verbreiter unterscheiden. Zudem wäre die Frage, wie die GPL in unterschiedlichen Ländern umgesetzt würde.

Das alles ist juristisch ziemlich Laienhaft, meine Talente liegen glücklicherweise woanders.

Posted: 03. May 2008 20:31
by Janka
petameta wrote:Ich würde ja nicht die Lizenzbedingungen ändern, sondern den Quelltext. Die GPL sagt nicht, daß genau diese Änderung nicht vorgenommen werden darf, nur weil es dem Autor nicht gefällt.
Du änderst mit deinem Skript die Lizenzinformation und heftest eine falsche ein.. Das ist so, als würdest du bei einem Buch die Seite rausreißen, auf der Autor und Verlag vermerkt sind, inzwischen oft auch mit der Angabe der Lizenz ("alle Rechte vorbehalten", früher war genau das ja selbstverständlich), und dann heftest du eine Seite rein, auf der steht: "Mach doch was du möchtest.". Soweit kein Problem, weil die GPL ja nur die Weitergabe regelt.

Gibst du jedoch das veränderte Buch weiter und macht dann jemand damit, was er will, in gutem Glauben, das sei erlaubt, ist das Problem da. Demjenigen, der die Seite mit den Urheberrechtsvermerken entfernt hat, wird nun der Arsch aufgerissen. Die GPL erlaubt explizit nur eine Weitergabe, wenn die GPL-Lizenzinformationen intakt bleiben. Dazu gehört auch und insbesondere die Information, dass eine Funktion nur von GPL-Code benutzt werden darf.

Dass es überhaupt Nicht-GPL-Symbole im Kernel gibt, ist ein *Privileg*, keine Selbstverständlichkeit. Wenn man die Lizenz streng auslegt -- was einige der Entwickler ja tun, indem sie ihren Code explizit mit GPL-Only markieren -- ist das nicht mehr gestattet. Und jeder Entwickler darf natürlich selbst klagen, da gibt es keine Mehrheitsentscheidung. Deshalb muss man solche Entscheidungen respektieren.

Der Fall liegt denke ich ähnlich wie DRM oder Kopierschutz auf CDs. Vor einiger Zeit war es nicht nicht illegal, sowas zu umgehen. Die eigentliche Kopie evtl. schon, aber die Umgehung des Mechanismus nicht. Inzwischen hat der Gesetzgeber zwar nachgelegt, aber dieses Verbot mußte explizit in das Gesetz aufgenommen werden und war nicht gegeben, nur weil der Urheber eine solche Vorrichtung vorgesehen hat.
Hier gibt es einen kleinen, aber entscheidenden Unterschied. Für Bild und Tonwerke, sowie Texte in Auszügen gibt es das Recht der Privatkopie! Dieses wurde eingeführt, um nicht jedes Kopieren als Urheberrechtsbruch verfolgen zu müssen.

Für Software gibt es das Privatkopie-Recht nicht!

Daher ist deine Vermutung und auch die daraus folgende Schlussfolgerung falsch. Es war und ist schon immer verboten, Kopierschutzmaßnahmen bei Software zu entfernen oder zu umgehen.
Bei der GPL der der User ja grad den Source Code verändern und weitergeben, das ist die eigentliche Idee an der Lizenz.
Du darfst aber nicht GPL-Code zu LGPL-Code umwidmen und dann so verbreiten.

Janka

Posted: 03. May 2008 21:09
by petameta
Die Frage ist also, ob diese Symbole als Teil der Lizenz zu werten sind, oder nur als Teil des Source Codes und somit rein technischer Natur sind. Ich kann mir beide Möglichkeiten vorstellen, aber wie gesagt das letzte Wort hätte wohl nur ein Gericht.

Weiterhin habe ich mein Skript überarbeitet. Es reicht ein Einzeiler in include/linux/module.h aus, um diesen Mechanismus zu deaktivieren. So gesehen bleiben alle Markierungen der Entwickler erhalten, lediglich der technische Teil dieses Mechanismus wird deaktiviert. Nirgends im Source wird dabei EXPORT_SYMBOL_GPL entfernt, der Entwickler kann also weiterhin seinem Unmut kundtun, es wird aber (technisch gesehen) ignoriert.

Posted: 04. May 2008 11:25
by Janka
petameta wrote:Die Frage ist also, ob diese Symbole als Teil der Lizenz zu werten sind, oder nur als Teil des Source Codes und somit rein technischer Natur sind. Ich kann mir beide Möglichkeiten vorstellen, aber wie gesagt das letzte Wort hätte wohl nur ein Gericht.
Geklärt wird sowas natürlich vor Gericht. Aber wie gesagt: Wenn da einer explizit hinschreibt: "Ich will das so streng ausgelegt wissen.", dann wird ein Gericht vor allem die Frage klären, ob die Willenserklärung in dieser Form deutlich genug ist. Denn letztendlich muss sich auch ein Gericht an Recht und Gesetz halten, und das sagt: "Der Urheber darf bestimmen, was mit seinen Werken geschehen soll."
Weiterhin habe ich mein Skript überarbeitet. Es reicht ein Einzeiler in include/linux/module.h aus, um diesen Mechanismus zu deaktivieren. So gesehen bleiben alle Markierungen der Entwickler erhalten, lediglich der technische Teil dieses Mechanismus wird deaktiviert. Nirgends im Source wird dabei EXPORT_SYMBOL_GPL entfernt, der Entwickler kann also weiterhin seinem Unmut kundtun, es wird aber (technisch gesehen) ignoriert.
So erscheint auch mir das sauberer. Alternativ kann man auch das "insmod"-Tool patchen, der Kernel selbst kontrolliert die Lizenz von Modulen WIMRE nirgendwo.

Janka