Wird JavaScript-Code nur für Open Source-Websites verwendet?

12

Umgeschriebene Frage:

Ich stelle keine JavaScript-bezogene Frage, sondern alle im Web verwendeten "Client" -Sprachen (HTML5, JavaScript, CSS usw.). Wenn ich JavaScript-Code (dh GPL-Code) in meine Website einbinde und diese Website über das Web für jedermann zugänglich ist, verstoße ich auf irgendeine Weise gegen die GPL?

Was passiert, wenn ich den Client-Code (HTML, CSS, JavaScript) an jemanden verkaufen möchte? Benötige ich in diesem Fall eine andere Lizenz?

Ist JavaScript (wenn es für Websites verwendet wird) nicht immer Open Source? Wenn Sie eine Webseite öffnen, können Sie immer die Quelle lesen.

Muss ich meinen serverseitigen Code auch freigeben, wenn ich eine Website verkaufe, die JavaScript-GPL-Code enthält?

Was passiert, wenn diese Website teilweise zugänglich ist (ein Teil ist kostenlos und der andere ist kostenpflichtig), aber der GPL-Code (derselbe Teil) auf beiden Seiten der Website verwendet wird?

Was ist, wenn sich der GPL-Code nur in einem Teil der Website befindet, für dessen Zugriff Sie eine Gebühr zahlen müssen?

Wenn ich eine Website auf folgende Weise an einen Kunden verkaufe:

  1. Ich verkaufe Ihnen (einmalige Gebühr) den gesamten kundenbezogenen Code (JavaScript, HTML und CSS)
  2. Ich bin nicht verkaufen Sie den serverseitigen Code, Sie mieten es (ich will nicht , lassen Sie meine serverseitigen Code wiederverwenden)

Wenn ich JavaScript-GPL-Code verwende, verstoße ich gegen etwas? (Die Website ist über das Internet für jedermann zugänglich.)

Bearbeiten 2:

Neue spezifische Frage hinzugefügt:

Was ist, wenn die Website ohne serverseitigen Code funktionieren kann? Ich meine, JavaScript ruft nur einige PHP-Seiten auf, die Daten im JSON-Format enthalten. Andere Personen können mit dem Kunden eine Website erstellen, müssen jedoch Daten bereitstellen. In diesem Fall ruft JavaScript den "PHP" -Code auf (aber nicht das Gegenteil), denke ich. Verstoße ich in diesem Fall gegen die GPL?

Feuer-Drache-DoL
quelle
4
Die Möglichkeit, den Code zu "sehen", hat nichts mit der Lizenzierung zu tun, sodass JavaScript nichts anderes ist als alles andere. Wenden Sie sich am besten an einen Anwalt, der auf diesem Gebiet Experte ist.
Sparky
Handelt es sich bei dem Javascript auf einer Website speziell um GPL-Code? Ist der Code explizit unter der GPL lizenziert?
Philip
Nun, ich verkaufe kein Produkt, das ich nur frage, weil ich nicht gut verstehe, wie es funktioniert. Ich frage speziell, ob eine Client-bezogene Sprache nicht schon alle "GPL" ist (Sie laden die Quelle jedes Mal herunter, wenn Sie eine Webseite besuchen)
Fire-Dragon-DoL
In einer nicht trivialen Anwendung ist Ihr Quellcode nicht nur Javascript, sondern auch Ihr serverseitiger Code. Möchten Sie alles der Öffentlichkeit zugänglich machen? Denn das sagt die GPL. Es heißt nicht, dass Sie einen Teil davon freigeben können und dennoch mit der Lizenz kompatibel sind.
Robert Harvey

Antworten:

3

In Bezug auf die GPL handelt es sich bei der Veröffentlichung um die Lizenzierungseinheit.

Wenn Ihre Website und ihr Javascript eine einzige Sache sind, die zusammenarbeitet, dann hat das Ganze eine effektive Lizenz. Wenn ein Teil GPL ist, ist die effektive Lizenz des Ganzen GPL. (Dies gilt nicht für LGPL, MIT usw.)

Wenn Sie die Website hosten und Ihre Kunden Zugriff auf den Dienst kaufen, haben Sie den serverseitigen Code nicht verteilt oder übermittelt, sodass die GPL irrelevant ist. (Die AGPL ändert dies und behauptet, dass für Software als Dienst die Quelle freigegeben werden muss.)

Javascript, das Teil Ihrer Anwendung ist, wird in keiner Weise automatisch lizenziert. Genau genommen ist das Herunterladen des Javascript, um es im Browser auszuführen, eine Urheberrechtsverletzung. Das ist natürlich albern. Es gibt wahrscheinlich eine implizite Lizenz, um den Code auszuführen, aber das ist alles.

Wenn Sie eine Javascript-Bibliothek verwenden, müssen Sie die Lizenz dieser Bibliothek einhalten. Wenn diese Lizenz GPL ist, bedeutet dies meines Wissens, dass Ihre gesamte Anwendung GPL ist. Dies ist wahrscheinlich der Grund, warum jQuery eine Doppellizenz hat - nach Wahl MIT oder GPL. Ohne die Option, die MIT-Lizenz zu verwenden, könnte sie nur von GPL-Apps verwendet werden.

Sean McMillan
quelle
4

Erstens: Sie haben das uneingeschränkte Recht, Open Source-Code in kommerziellen Projekten zu verwenden, solange Sie die Lizenzbeschränkungen einhalten (dh Sie belassen alle Zuordnungen an Ort und Stelle und stellen alle Änderungen unter einer ähnlichen Lizenz zur Verfügung).

Die GPL ist meines Wissens eine der restriktiveren Lizenzen, wenn es darum geht, Lizenzen für andere Teile eines Projekts zu erzwingen. Ich glaube nicht, dass es jemals vor Gericht getestet wurde, aber eine allgemeine Interpretation, die ich immer gesehen habe, ist, dass, wenn der GPL-Code in eigenen separaten Modulen verbleibt, auf die nur verwiesen wird (das heißt, dass sie als völlig eigenständige Produkte behandelt werden was Sie gerade verwenden), sollten Sie in Ordnung sein.

Wenn Sie sich diesbezüglich jedoch nicht sicher sind und / oder besonders sicher sein möchten, gibt es andere, weniger strenge Lizenzen.

Zweitens: Die Fähigkeit, Code zu sehen und die Rechte, ihn zu verwenden, sind völlig getrennt . Ich kann kein JavaScript von einer Website entfernen und es nur verwenden, weil ich es sehen kann. Wenn ich Zugriff auf die Windows-Quelle habe, auch legal, ist das nicht meine. Das Web macht es erforderlich, dass viel Code sichtbar ist. Sie können ihn dennoch lizenzieren, wie Sie möchten.

Drittens: In Bezug auf die Lizenz, unter der der Rest der Website steht, ist es sehr unwahrscheinlich, dass Ihr Kunde Sie gerne für etwas bezahlt, das Sie dann als Open-Source-Anbieter anbieten . Abgesehen von den grundlegenden "Warum haben wir für etwas bezahlt, das Sie gerade verschenkt haben", hat dies wahrscheinlich Konsequenzen für Design und Branding und ermöglicht es anderen, Elemente ihrer Corporate Identity auszuleihen. Wenn du es ihnen verkaufst, werden sie wollen, dass es ihnen gehört . Wenn Sie ihnen Teile davon verkaufen möchten, müssen Sie ihnen jedoch mitteilen, dass OSS vorhanden ist, da Sie das nicht verkaufen können, sondern nur anderen Code, der das verwendet.

Viertens: Das ist ein sehr seltsames Modell, bei dem ein Teil des Codes verkauft und der andere gemietet wird . Sie scheinen so stark voneinander abhängig zu sein, dass eines ohne das andere weitgehend wertlos ist. Ich nehme an, technisch könnten sie das Front-End-Design, das Sie gemacht haben, in etwas anderes flicken, aber wenn das passiert, fangen die Leute einfach von vorne an.

Angesichts der Tatsache, dass die beiden Teile ohne einander nicht wirklich nützlich sind, würde ich vorschlagen, dass sie für die Anpassung einer Software als Serviceprodukt, das Sie besitzen, bezahlt werden. Das heißt, Sie besitzen den gesamten Code, Sie passen ihn einfach an ihre Spezifikation an (das heißt, Sie markieren das Front-End auf ihre Weise). Macht es viel übersichtlicher und einfacher.

Jon Hopkins
quelle
Mhhh, jetzt habe ich Zweifel: Wenn ich eine Website für einen Kunden erstelle, wer ist der Kunde: die Person, an die ich meine Website verkaufe, oder die Benutzer, die darauf zugreifen werden? Wenn ich die gesamte Website als GPL-Produkt (mit Quellenangaben) an meinen Kunden verkaufe, muss ich den Quellcode auch für alle Personen freigeben, die auf dieser Website navigieren?
Fire-Dragon-DoL
@ Fire-Dragon-DoL - Ihr Kunde ist die Person, die Ihre Rechnungen bezahlt. Wenn Sie Ihren Code mit einer GPL versehen, müssen Sie ihn für alle zugänglich machen, nicht nur für Ihre Kunden und / oder Benutzer (und jeder hat das Recht, diesen Code wiederzuverwenden).
Jon Hopkins
Zum letzten Teil (Ihre Erklärung ist wirklich klug, danke): Angesichts der Tatsache, dass die beiden Teile ohne jeden anderen Teil nicht wirklich nützlich sind : Sollte ich in diesem Fall, wenn ich GPLed-Code verwende, die Quellen trotzdem freigeben? Weil ich Ihren Satz als "Ich verkaufe Ihnen den Dienst der Anpassung der Software, nicht die Software selbst, die noch mir gehört"
Fire-Dragon-DoL
Um auf Ihren letzten Kommentar zu antworten: Ich bin nicht sicher, ich meine, die GPL sagt, dass Sie den Code mit Ihrer Software freigeben müssen, aber wenn eine Person auf meiner Website navigiert, gebe ich ihr nicht mein Programm, er benutzt mein Programm Ich denke, es ist anders. GPL nicht sagen , dass Sie nicht haben , Ihr Programm zu veröffentlichen.
Fire-Dragon-DoL
1
@ Jon Sie müssen die Quelle nur den Leuten geben, die die Binärdatei erhalten haben. nicht für jemanden, der fragt. (Natürlich erhalten sie das Recht, an wen sie wollen, aber Sie sind nicht verpflichtet, dies zu tun.)
Sean McMillan
3

Wenn Sie GPL-Code an einer beliebigen Stelle in Ihrem Projekt verwenden und Ihr Projekt weitergeben (dh verkaufen oder an andere weitergeben), müssen Sie den Quellcode Ihres Projekts in seiner Gesamtheit für die Öffentlichkeit freigeben, um die Anforderungen zu erfüllen die GPL-Lizenz.

Wenn Sie Ihre eigene öffentlich zugängliche Website als Dienst unter Verwendung von GPL-Code serverseitig bereitstellen, sind Sie möglicherweise in Ordnung, da dies nicht als Weiterverteilung angesehen wird.

Der Javascript-Code im Browser scheint mir eine Grauzone zu sein. Technisch gesehen verteilen Sie den GPL-Code an alle Browser, wodurch die Anforderung ausgelöst wird, Ihre eigene Quelle freizugeben.

Bearbeiten: Um meinen Standpunkt zu belegen, werde ich jetzt Text aus den häufig gestellten Fragen zur Lizenzierung auf der ExtJS-Website einfügen. ExtJs ist ein JavaScript-Framework, das unter der GPL lizenziert ist. Dies ist ihre Interpretation, wie die Lizenz in Bezug auf ihr Framework funktioniert (kursiv):

Abgeleitete Werke
Wenn ein Softwareprogramm Code aufruft, der unter der GPLv3 lizenziert ist, wird dieses Softwareprogramm zu einem abgeleiteten Werk des GPL-Codes und unterliegt daher der GPLv3-Urheberrechtslizenz. Wenn das Softwareprogramm dann an einen Benutzer "weitergeleitet" wird, muss der Quellcode für dieses Softwareprogramm gemäß GPLv3 ebenfalls "weitergeleitet" werden. "Weiterleitung" für eine Webanwendung wird ausgelöst, wenn sich ein Benutzer außerhalb der juristischen Person befindet, die die Anwendung erstellt hat verwendet die Anwendung.

Die Definition eines Softwareprogramms
Bei Softwareprogrammen, die unter Verwendung der heutigen Webarchitekturen erstellt wurden und für die interne Kommunikation entfernte netzwerkbasierte Dienstschnittstellen anstelle der herkömmlichen statischen oder dynamischen Verknüpfung verwenden, ist das relevante Softwareprogramm die Gesamtheit des Anwendungscodes, einschließlich des auf der Website ausgeführten Codes Server und Code, die auf dem Client ausgeführt werden, vorausgesetzt, der Servercode ist in die Anwendung integriert.

Beispiel
Angenommen, die Anwendung verfügt über ein Front-End (das mit Ext JS JavaScript verknüpfte Webseiten generiert), das über JSON / HTTP mit einem Back-End-Service kommuniziert. Dieser Back-End-Service enthält nur für diese Anwendung eine Genehmigungs- und Validierungslogik. Selbst wenn nur das Front-End Ext JS-Code verwendet, sollten Sie berücksichtigen, dass die Kombination aus Front- und Back-End die Anwendung darstellt und der Quellcode für Back- und Front-End den Endbenutzern der Anwendung unter GPLv3 bereitgestellt werden muss, wenn Die Anwendung wird von einem Endbenutzer verwendet, der nicht zu derselben juristischen Person gehört, die die GPLv3-Lizenz für den Ext JS-Code besitzt.

Robert Harvey
quelle
2
Das ist falsch, die GPL funktioniert nicht so. Das Einbinden eines Links zu einer GPL-JS-Datei in die Ausgabe Ihres PHP-Codes macht Ihren PHP-Code nicht zu Open Source.
user229044
@meager: Siehe meine bearbeiten.
Robert Harvey
Das scheint einfach völlig falsch zu sein. Was passiert, wenn mein Back-End auf eine Website eines Drittanbieters verweist, die GPL-JS-Dateien verwendet? Muss ich dann meine gesamte Anwendung quelloffen? Ich glaube nicht, dass dies vor einem Gericht standhalten würde. Es tut uns leid.
Rob
1

Für eine Website mit clientseitigem Javascript besitzen sie weiterhin den Code. Wenn Sie diesen Code einfach nehmen und als Ihren eigenen Code verwenden würden, wäre dies wahrscheinlich eine IP-Verletzung. Ich glaube, ich weiß nicht, ob sie keine Lizenz enthalten. Es gibt auch Probleme mit der Nichtdurchsetzbarkeit. Sprechen Sie mit einem Anwalt, aber er wird Ihnen wahrscheinlich nichts Nützliches verraten.

Projekte mit einem Mix aus Lizenzen sind kompliziert. GPL-Code, der mit anderen Bibliotheken interagiert, vermutlich einschließlich serverseitiger Backends, erfordert, dass diese ebenfalls GPL-fähig sind. Andere Open-Source-Lizenzen wie die LGPL und die BSD-Lizenz sind weniger streng.

Und nein, wenn Sie nicht möchten, dass er Ihren PHP-Code wiederverwendet, passt das nicht in das GPL-Modell. Wenn Sie Ihren Code unter der GPL veröffentlichen, sind Sie verpflichtet, den Quellcode weiterzugeben.

Es hört sich also so an, als würden Sie eine Website für jemanden erstellen und möchten Ihren Code nicht an jemanden weitergeben. Warum schaust du überhaupt auf Open Source? Wenn es Open Source ist, verraten Sie den Code.

Philip
quelle
Ich verkaufe im Moment nichts, ich frage nur, weil ich eine Website als 2 verschiedene Teile betrachte, die Client-Website und die Server-Website. Der erste Teil ist kostenlos, der zweite nicht. Wenn eine Website "opensource" ist, sollten Sie den serverseitigen Quellcode freigeben? Ich finde es etwas schwierig, es wird Katastrophen über die Sicherheit schaffen!
Fire-Dragon-DoL
2
Das ist nicht richtig. Wenn ein Teil eines Projekts GPL ist, muss das gesamte Projekt unter einer GPL-kompatiblen Lizenz veröffentlicht werden (vorausgesetzt, es wird alles als dasselbe Programm betrachtet und kann nicht in Teile zerlegt werden). GPL zu sein, hindert Sie nicht daran, es zu verkaufen, sondern bedeutet lediglich, dass Sie der Quelle Binärdateien zur Verfügung stellen müssen und die weitere Weitergabe nicht einschränken können.
KeithB
Was ist, wenn die Website ohne serverseitigen Code funktioniert? Ich meine, Javascript ruft nur einige PHP-Seiten auf, die Daten im JSON-Format enthalten. Andere Personen können mit dem Kunden eine Website erstellen, müssen jedoch Daten bereitstellen. In diesem Fall nennt Javascript den "PHP" -Code (aber nicht das Gegenteil), denke ich. Verstoße ich in diesem Fall gegen die GPL?
Fire-Dragon-DoL
@ KeithB ACK! Du hast recht. Ich dachte an die GTK und SDL, aber das sind LGPL. Vielen Dank.
Philip
Ja, LPGL ist eine gute Lizenz, ich würde die GPL übrigens gerne verstehen, weil ... nun, ich denke, es ist schwieriger zu verstehen
Fire-Dragon-DoL