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

Post Reply
Message
Author
petameta
prolinux-forum-admin
Posts: 1294
Joined: 14. Feb 2003 13:19

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

#1 Post 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.
Last edited by petameta on 06. May 2008 21:28, edited 2 times in total.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post 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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

petameta
prolinux-forum-admin
Posts: 1294
Joined: 14. Feb 2003 13:19

#3 Post 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.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post 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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

petameta
prolinux-forum-admin
Posts: 1294
Joined: 14. Feb 2003 13:19

#5 Post 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.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#6 Post 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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

petameta
prolinux-forum-admin
Posts: 1294
Joined: 14. Feb 2003 13:19

#7 Post 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.

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#8 Post 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
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply