Lizenzbedingungen der GNU GPL

Anmerkung: Ich bin nur Programmierer, kein Jurist, kenne mich aber einigermaßen gut mit Copyleft-Lizenzen aus und „erinnere“ ab und zu Mobilgerätehersteller daran, dass sie vergessen haben, (vollständige) GPL-Quellen mitzuliefern.

Wie kommst du zu dieser Auffasung? Der Linux Kernel, OpenWRT, Batman u.A. stehen unter GPL v2 (übrigens nicht „oder später“, möglicherweise, weil dort Quellcodeteile aus dem Kernel benutzt wurden), da gibt es keine Trennung zwischen Nutzer und Programmierer.

Den entsprechenden Code kannst du gemäß §3 GPL weiterverteilen:
a) Binärcode nur zusammen mit dem Sourcecode, das ist die einfachste Lösung, wenn du den Code online anbietest. Dabei auf ein fremdess Repository zu verweisen, halte ich für sehr problematisch, denn der Inhalt auf eine bestimmte Version innerhalb dieses Repositories kann sich ohne dein zutun ändern (Server abgeraucht, Abmahnung erhalten, irgendwelche größeren Umstellungen an dem Repository). Es könnte auch sein, dass der Downloader deines Binärcodes sich in einem Land aufhält, wo zwar dein Server erreichbar ist, Github aber zensiert wird: Also musst du irgendwie dafür sorgen, dass dein Binärcode bei Zensur von Github automatisch mitzensiert wird.

b) Nur Binärcode verteilen: Kannst du machen, dann musst du aber drei Jahre lang garantieren, dass du auf Nachfrage den genauen Quellcode zu einem bestimmten Binary bereitstellst (insb. bei Nightlies nicht-trivial)

c) Nur anwendbar, wenn du ausschließlich Objektcode erhälst. Man könnte gluon möglicherweise so umbauen, dass man ein fertiges Image von Gluon nimmt und per dd einfach die Site.conf (ggf. zusammen mit anderen Gluon-Teilen, die nicht unter GPL stehen) anflanscht: Damit könnte man u.U. auch diese Möglichkeit nutzen und das Gluon-Projekt wäre allein für die Konformität verantwortlich.

Hinweis: Die Gluon-Entwickler können dazu recht wenig entscheiden, da der Gluon-eigene Code unter 2-Clause-BSD-Lizenz steht und somit nicht Copyleft ist.

OK. Butter bei die Fische!

Ich habe für unsere Community mit Gluon, unserer Site.conf und Site.mk eine Firmware compiliert. Welcher clean Befehl säubert das Build Verzeichnis so weit, das die Compilate entfernt sind und nur der Sourcecode, sowohl von OpenWRT als auch anderen Bestandteilen übrig bleibt? Dann mache ich daraus ein tar.gz und schmeiße es mit in den Download Ordner für die Images. Dann sollte doch der Lizenz genüge getan sein, oder nicht?

Ciao!

Vielen Dank für die vielen konstruktiven Beiträge!

Für FF Troisdorf habe ich mal einen Entwurf für ein GPL Faltblatt gemacht:
https://github.com/Freifunk-Troisdorf/ff_lizenzinfo

Dieses Faltblatt soll(te) auf jeden Fall immer dann weitergegeben werden, wenn ein fertig geflashter Freifunk-Router an Dritte abgegeben wird.

Dort ist das Angebot enthalten, den maschinenlesbaren Quellcode auf Anfrage per CD gegen einen Unkostenbeitrag rauszuschicken. Ich denke, daß man da ganz entspannt sein kann, da wohl - wenn überhaupt - nur wenige davon wirklich Gebrauch machen werden. Auch wenn wir den Hinweis nicht mit aufführen, MÜSSEN wir dem Wunsch Folge leisten, denn das Recht ergibt sich ja auch ohne Hinweis aus der GPL.

Die im Faltblatt angegebene Seite zum Download des Quellcodes existiert noch nicht. Ich stelle mir vor, diese Seite enthält eine Anleitung zum Bauen der Firmware und verweist einfach auf verschiedene Quellen (Gluon, Site-Conf, Build-Skripte usw.).

Ich denke, damit kommen wir schon einmal einem Großteil der Forderungen der GPL nach. Ich kann mir auch nicht vorstellen, daß uns FSF oder FSFE mit einer GPL Violation Klage überziehen, wenn wir den Lizenzbestimmungen derart Rechnung tragen. Darauf aufbauend kann man dann weitere Details mit GPL-Experten diskutieren.

Was meint Ihr?

G.M.

1 „Gefällt mir“

Gute Idee. Im Notfall ist ja auch schnell ein buildroot gezogen und durchgebaut. Ob der jetzt komplett sauber ist (also ohne Binaries), ist ja wohl recht egal auf so einer CD. :smile:

Problem dürfte aber dabei noch Versionierung sein. Es muss ja wohl der Source ausgeliefert werden der zu den ausgelieferten Binaries auf dem Router passt, und nicht einer späteren Version. Wie sieht das aus, wenn auf dem Router per Autoupdate neue Binaries drauf sind? Fragen über Fragen…
Ich neige stark dazu diese Fragen einfach zu ignorieren. Ich glaube so wie ihr das macht ist die GPL im Geiste erfüllt…

Ciao!

Wir hier in Troisdorf diskutieren derzeit eine leicht abgewandelte Vorgehensweise. Bei jedem TP-Link Router befindet sich ja ein kleines Faltblatt mit dem GPL Linzenztext. Überdies planen wir, eh einen sogenannten Beipackzettel wie hier zu den Routern beizulegen, der Freifunk im Grundsatz erklärt. Dieser Beipackzettel soll um Lizenzinformationen ergänzt werden, konkret bspw. der Text der ersten Seite aus meinem Entwurf oben. Ein Kompromiß, um den Lizenz-Verweigerern entgegenzukommen, die Papierflut etwas zu begrenzen und Bäume zu schonen.

Richtig. Gefühlsmäßig würde ich bei einer Anfrage ohne Hinweis auf eine bestimmte Version den jeweils aktuellen Source-Code bereitstellen und für frühere Versionen auf die Repos verweisen. Ob das GPL-mäßig sauber ist, weiß ich aber nicht.

Vielen Freifunkern ist die GPL und die Idee hinter Freier Software scheinbar total egal. Mir nicht. Wenn ein Faltblatt mit dem GPL-Lizenz-Text zu fertiggeflashten Routern mitgegeben wird, welcher außerdem einen Hinweis auf eine Webseite enthält, wo man Informationen zum Bauen der jeweiligen Firmware erhält, wäre das schon mal ein riesiger Schritt vorwärts für mich.

Ich hätte Riesenbock, all die kleinen Fragen mal zu sammeln und Antworten zu suchen. Die kann man ja nötigenfalls mit den Freunden bei der FSFE besprechen. Vielleicht kommt am Ende eine Art Guideline heraus, wie Communities GPL-konform handeln können. Vielleicht wäre sowas ja auch was für einen Freifunk-Tag.

G.M.

So hat es IIRC ein Autor einen bekannten Live-Linux-Distribution früher gemacht und wurde dann darauf hingewiesen, dass das so nicht legal ist. Seitdem hält der Autor die entsprechenden Kopien vorrätig.

Autoupdate ist unproblematisch: Der Empfänger der Binaries hat beide Versionen empfangen (einmal initial auf dem Router, evtl. nach eigenem flashen), einmal per Autoupdate, also kann er auch für beide Versionen den Source verlangen.

Ich vermute, dass ein „make download“ die entsprechenden Dateien holt. Du kannst ja mal in einem frischen Clone „make download“ machen, Netzverbindung trennen, kompilieren. Wenn’s klappt, war der Source sehr wahrscheinlich vollständig :wink:

Software Freedom Conservancy nicht zu vergessen, aber auch die dürften den Rechtsweg vermutlich eher gegen komerzielle Entitäten als gegen Freifunk beschreiten (und da gibt es genug Verletzter).

Es ist aber natürlich schon denkbar, dass es irgendeine_n Autor_in der entsprechenden Sourcen gibt, der/die oder dessen/deren Erben gerade auf der Suche nach Geldquellen sind und die auch durchaus bereit sind, Freifunk und Co zu verklagen.

Vom Prinzip her ist das natürlich unproblematisch. Nur im Fall, daß jemand den Quelltext nach §3 b) GPL verlangt, muß ich im Zweifel die gewünschten Versionen erfragen (oder sie sind bereits angegeben) und dann individuell zusammenstellen. Oder ich pflege einen Source Tree, der alle Versionen enthält und packe das bei Anfrage auf einen Datenträger.

Ich sehe noch eine Herausforderung bei Communities, die sich aus dem Gluon Repo bedienen, an anderer Stelle ein Repo für die site.conf usw haben und an wieder anderer Stelle z.B. ein Build-Skript. Im Zweifel benötigt man dann noch ein Mapping welche Version von was mit welcher Version von was anderem zusammen funktioniert.

Ausschließen läßt sich das nicht. Mein Beweggrund ist aber weniger die Angst vor einer Klage sondern die Förderung der Ideale Freier Software. Letztlich hoffe ich, damit auch mehr Freifunker von der Notwendigkeit der Erfüllung der GPL Lizenzbedingungen zu überzeugen.

Da ich jetzt auch unter die Firmware-Bauer gegangen bin, wollte ich mal fragen, ob ich bei meinem Vorgehen etwas übersehe:

Ich kopiere den Source-Tree nach erfolgreichem Build per rsync auf den Webserver und lasse dabei folgende Verzeichnisse aus:

gluon/build
gluon/openwrt/build_dir
gluon/openwrt/logs
gluon/openwrt/staging_dir/
gluon/openwrt/tmp

Fehlt da noch irgendetwas wichtiges? Oder gibt es noch irgendwas, was man nicht veröffentlichen sollte?

Geheim bleiben sollte natürlich in jedem Fall gluon/build/gluon-opkg-key, ansonsten weiß ich von keinen Geheimnissen im Source.

3 „Gefällt mir“

Bitte in eine zip / 7z. Sonst fast unmöglich herunterzuladen.

1 „Gefällt mir“

Es werden doch symlinks beim build gesetzt. Die landen doch nicht im Archiv?! Das macht es doch wertlos…

Eine 7z kann sehr wohl Symlinks enthalten

Eine ZIP auch, nur damit kein falscher Eindruck entsteht das wäre 7z-exklusiv.

(Und bitte bei Standardformaten bleiben. ZIP kann jeder ohne Probleme öffnen. Wenn man schon .7z nehmen will, wo Windows-User eh was nachinstallieren müssen, dann kann man auch .tar.xz nehmen, das komprimiert genau so gut (LZMA2) und das kriegen dann Linuxnutzer auch auf dem Server entpackt ohne Krempel nachzuinstallieren. Wär kein Beinbruch, ist aber jedes Mal nervig.)

1 „Gefällt mir“

Die Symlinks machen es doch auf Windoof eh unbrauchbar. Wenn ein System einfach zu schlecht und dazu noch vollkommen proprietär ist, kann man auch nicht mehr helfen.

1 „Gefällt mir“

Windows ist mir eigentlich auch ziemlich egal, aber ich hab ja auch was zu Linux geschrieben.

Ist ja auch egal, will nur nicht, dass sich jetzt nachher im Freifunkumfeld wegen eines Forenpost suboptimale Formate durchsetzen :wink:

Wie Freifunker vor einigen Posts schonmal schrieb packt er das verwendete Buildverzeichnis als .tar.gz mit in den Downloadordner. Damit ist der Sourcecode auf dieselbe Weise verfügbar wie die Binaries. Ob man diese nun vorher aus dem Buildverzeichnis entfernt sollte eigentlich egal sein, so knapp ist Plkattenplatz ja heutzutage nicht mehr. Ich finde das eine sehr praktische Lösung da man sich nichts mehr zusammensuchen muss und gleich loslegen kann. Wenn dieses Vorgehen nicht zur General public License konform ist so erschliessen sich mir die Gründe dafür nicht.

Die nächste Frage wäre dann:
Wie lange vorhalten?
Solange wie es die Images zum Download gibt?
Solange noch vorgeflashte Router im lokalen Hackspace im Regal stehen?
Solange sich binnen der letzten 14 Tage noch Router (ggf mit deaktiviertem Autoupdater) irgendwo im Mesh gezeigt haben?
Oder 3/7/10 Jahre?
Oder ewig?

ich selber baue nur was ich in git committe habe,
wir legen den kleinen gpl zettel immer mit dazu,
und ich habe von jedem build ein sehr sehr ausführliches make.log,
für den source eines anderen projektes zu einem bestimmten zeitpunkt kann und will ich mich doch garnicht verantwortlich zeigen. und eine sinnfreie blindkopie vorhalten - seh ich jetzt auch nich.
ich denke das reicht, um das ggf. nachvollziehen zu können.

1 „Gefällt mir“