Hallo,
ich habe mir überlegt ein kleines Frontend für den GCC zu schreiben und
frage mich, ob ich dieses Frontend ebenfalls unter die GPL stellen muss,
wenn ich den GCC über dieses Frontend benutzen möchte.
Wie liegt hier der Sachverhalt?
Danke schonmal Ralf
Woraus leitest du diese Schlussfolgerung ab?
Ganz davon abgesehen, es hat nicht viel Sinn, für ein GCC-Frontend
(wofür auch immer das sein soll) eine closed-source-Lizenz nehmen
zu wollen. Schließlich musst du erstmal jemanden davon überzeugen,
dass das, was du da zimmerst, auch wirklich gebraucht wird.
Die GPL-Regel gilt dann, wenn du Sourcecode verwendest, der unter GPL
steht. Wenn dein Frontend ein externes gcc nur aufruft, brauchst du das
nicht.
Ich frage mich allerdings, warum deinen Sourcecode nicht freigeben
willst. Ist dein Programmierstil so schlecht, dass du dich dafür schämen
musst? Geld wirst du damit eh' nicht verdienen können. Wer gcc benutzt,
kauft kein Frontend.
Schau doch einmal, ob es nicht so etwas, was du vorhast, nicht schon
längst existiert. Vielleicht kannst du ja an einem bestehenden Projekt
mitarbeiten. das wäre viel effizienter als ganz bei NULL anzufangen.
Habe in der Wikipedia über das "copyleft" folgendes gefunden:
"Je nach dem Grad, mit dem Werke, die ein anderes Werk enthalten, als
abgeleitete Werke von der Lizenz betroffen sind, wird zwischen starkem
und schwachem Copyleft unterschieden – wobei der Übergang fließend ist.
So kann bei einem starken Copyleft von einem Musikstück, das für einen
Film verwendet wird, verlangt werden, dass auch der Film selbst unter
diese Lizenz gestellt wird, während ein schwaches Copyleft dies nicht
verlangen würde, sondern nur bei Änderungen an dem Stück selbst, etwa
dem Songtext."
Daher meine Bedenken keine andere Lizenzform für das Frontend zu
benutzen...
Gruss Ralf
> Die GPL-Regel gilt dann, wenn du Sourcecode verwendest, der unter GPL> steht.
Die Frage ist eben, wo man da die Grenze zieht. Letztendlich kommt es
darauf an, wie "eng" das Programm mit dem gcc zusammenarbeitet. Es muß
nicht unbedingt Quellcode sein, den man in sein Programm kopiert oder
eine Bibliothek, die man dranlinkt. Es betrifft auch Module wie z.B.
Plug-ins. Entscheidend ist dabei nicht, auf welche Art das Modul ans
Hauptprogramm angebunden ist (es muß keine shared lib sein, sondern kann
auch ein aufgerufenes Programm sein), sondern wie eng die Bindung ist.
Es empfiehlt sich auch, die GPL-FAQ mal zu lesen.
( zu finden unter http://www.gnu.org/licenses/gpl-faq.html )
Die Frage ist also, wie eng dein Programm an gcc gebunden ist.
Allerdings gibt es sehr viele kommerzielle Frontends für gcc. Bisher
habe ich da nichts von Lizenzproblemen gehört.
> Geld wirst du damit eh' nicht verdienen können. Wer gcc benutzt,> kauft kein Frontend.
Oh doch.
Die GPL kann leider so ausgelegt werden,
aber wenn du dein Programm Modular schreibst, d.h. es andere Compiler
bedienen kann dann müsstes du auf der sicheren Seite sein.
(vielleicht reicht ja schon eine Alibi Option)
Ansonsten denke ich nicht das die gcc Läute klagen werden, höstens ein
Kunde der an den Source will.
Rolf Magnus wrote:
> Die Frage ist also, wie eng dein Programm an gcc gebunden ist.> Allerdings gibt es sehr viele kommerzielle Frontends für gcc. Bisher> habe ich da nichts von Lizenzproblemen gehört.
Wenn man das Geld hätte könnte man ja sich so ein Frontend kaufen und
dann den Sourcecode verlangen (das Geld braucht man für den Anwalt).
Rolf Magnus wrote:
> Es empfiehlt sich auch, die GPL-FAQ mal zu lesen.> ( zu finden unter http://www.gnu.org/licenses/gpl-faq.html )
Habe ich gemacht. Da finde ich
(http://www.gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins):
Can I release a non-free program that's designed to load a GPL-covered
plug-in?
It depends on how the program invokes its plug-ins. For instance, if
the program uses only simple fork and exec to invoke and communicate
with plug-ins, then the plug-ins are separate programs, so the license
of the plug-in makes no requirements about the main program.[..]
Man darf natürlich das gcc nicht in das Frontend mit einbauen - aber das
war ja wohl auch nicht geplant. Und wenn man eine gcc Version
mitliefert, muss dem Benutzer klar gesagt werden, dass dieser Teil unter
der GPL steht.
Stimmt eigentlich, ein simpler Aufruf eines Programms reicht nicht. Sie
müßten dann schon eine sehr "innige" Kommunikation miteinander führen,
damit die Bindung stark genug ist. Das wird dann unter
http://www.gnu.org/licenses/gpl-faq.html#MereAggregation auch nochmal
konkret so erklärt:
"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. "
Die gängige Praxis bei der Entscheidung, ob GPL oder nicht, sieht in
etwas folgendermaßen aus:
Wenn zwei Programmmodule statisch oder dynamisch gelinkt werden und
eines der Module unter der GPL steht, gilt das auch für das andere
Modul. Umstrittene Ausnahme: Linux-Treiber werden als closed Source
geduldet, obwohl sie dynamisch zum Kernel gelinkt werden und damit mit
diesem zusammen ein einzelnes Programm bilden.
Wenn zwei Programme weder statisch noch dynamisch gelinkt werden, geht
die GPL normalerweise nicht von einem auf das andere über. Mir ist
zumindest kein Fall bekannt, wo es diesbzüglich Streit gegeben hätte.
Gerade beim GCC gibt es genügend prominente Bsiepiele dafür, wo dieser
mit proprietärer Software kombiniert wird (bspw. ISE von Xilinx,
Tornado von Windriver und etliche andere integrierte Entwicklungs-
umgebungen, die um den GCC herum aufgebaut sind).
Da die GCC-Macher nicht gegen die genannten Firmen vorgehen, brauchst
du dir mit deinem Frontend sicher ebenfalls keine Sorgen zu machen,
solange du am GCC keine Änderungen vornimmst und die Kommunikation wie
in dem von Magnus zitierten Passus nur über Kommandozeilenargumente,
Pipes und Sockets geschieht.
Und man kann davon ausgehen, dass die Fa. Xilinx die GPL-Bestimmungen
sehr genau durchgelesen hat, bevor sie den GCC in ihr Softwarepaket
integriert hat, da ein weit größeres Problem als du hätte, wenn sie
ihr gesamtes über 1G großes Softwarepaket offenlegen müsste.
yalu wrote:
> Wenn zwei Programmmodule statisch oder dynamisch gelinkt werden und> eines der Module unter der GPL steht, gilt das auch für das andere> Modul. Umstrittene Ausnahme: Linux-Treiber werden als closed Source> geduldet, obwohl sie dynamisch zum Kernel gelinkt werden und damit mit> diesem zusammen ein einzelnes Programm bilden.
Ich kann deiner Argumentation nicht folgen. Nehmen wir umgekehrt an, ich
schreibe einen Windows-Treiber, stelle ihn unter die GPL und lade ihn
dann unter (Closed-Source-) Windows. Steht dann Windows auch unter der
GPL? (Schön wärs!)
Es gibt sicher einen Graubereich, wo sich nur noch Anwälte durchfinden.
Aber ich habe den Eindruck, hier wird die GPL komplizierter geredet als
sie in der Praxis ist.
>Nehmen wir umgekehrt an, ich>schreibe einen Windows-Treiber, stelle ihn unter die GPL und lade ihn>dann unter (Closed-Source-) Windows. Steht dann Windows auch unter der>GPL?
Es gibt Juristen die das so auslegen. Dazu gehört z.B. die
Rechtsabteilung von Microsoft. Ich weiß nicht ob die das durchgezogen
haben aber es war mal die Rede davon das die Server-Editionen bzw.
Mehrplatz-Lizenzen von Windows keine GPL-Software ausführen dürfen.
Bei den normalen Lizenzen soll das weitherin "geduldet" werden.
> Ich weiß nicht ob die das durchgezogen haben aber es war mal die Rede> davon das die Server-Editionen bzw. Mehrplatz-Lizenzen von Windows> keine GPL-Software ausführen dürfen. Bei den normalen Lizenzen soll das> weitherin "geduldet" werden.
Das ist aber auch nur FUD. Aus dem Text der GPL (v2) selbst:
"However, as a special exception, the source code distributed need not
include anything that is normally distributed (in either source or
binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable."
Das heißt, daß die GPL es durchaus vorsieht, daß man z.B. unter Windows
GPL-Software laufen lassen kann, ohne daß Windows dazu GPL sein müßte.
Microsoft möchte natürlich den Benutzern einreden, daß das nicht so sei.
Sie verbreiten ja schon seit Jahren ganz frech Lügen über die GPL, um
sie schlechtzureden.
yalu wrote:
> Und man kann davon ausgehen, dass die Fa. Xilinx die GPL-Bestimmungen> sehr genau durchgelesen hat, bevor sie den GCC in ihr Softwarepaket> integriert hat, da ein weit größeres Problem als du hätte, wenn sie> ihr gesamtes über 1G großes Softwarepaket offenlegen müsste.
Wahrscheinlich hätte sie ein viel kleineres Problem damit, als sie
denkt. ;-) Man könnte dann endlich seine Programmabstürze selbst
analysieren und die Bugs fixen, wenn es einen nervt...
let wrote:
> Es gibt Juristen die das so auslegen. Dazu gehört z.B. die> Rechtsabteilung von Microsoft. Ich weiß nicht ob die das durchgezogen> haben aber es war mal die Rede davon das die Server-Editionen bzw.> Mehrplatz-Lizenzen von Windows keine GPL-Software ausführen dürfen.> Bei den normalen Lizenzen soll das weitherin "geduldet" werden.
M$ hatte in die (US-) Lizenzbedingungen von Frontpage auch geschrieben,
dass man damit keine Webinhalte erstellen darf, in denen M$ schlecht
gemacht wird. Das ist alles keine juristische, sondern eine politische
Frage. Daselbe gilt auch für das "GPL-" Verbot. Schließlich können auch
am Ende rechtlich unhaltbare Forderungen viele Menschen erst einmal zu
dem gewünschten Verhalten treiben.
Detlev T. schrieb:
> yalu wrote:>> Wenn zwei Programmmodule statisch oder dynamisch gelinkt werden und>> eines der Module unter der GPL steht, gilt das auch für das andere>> Modul. Umstrittene Ausnahme: Linux-Treiber werden als closed Source>> geduldet, obwohl sie dynamisch zum Kernel gelinkt werden und damit>> mit diesem zusammen ein einzelnes Programm bilden.>> Ich kann deiner Argumentation nicht folgen. Nehmen wir umgekehrt an,> ich schreibe einen Windows-Treiber, stelle ihn unter die GPL und> lade ihn dann unter (Closed-Source-) Windows. Steht dann Windows> auch unter der GPL? (Schön wärs!)
Ok, das war vielleicht nicht ganz präzise ausgedrückt. Die Wandlung
zur GPL geschieht natürlich nur dann, wenn das Programmmodul
demjenigen, der die Teile linkt, auch gehört. Wenn also MS einen
GPL-Treiber in ihr Windows einbauen würde, würde dieses wahrscheinlich
unter die GPL fallen, aber nur dann.
Und Scharen von Opensourcelern würden sich vor Freude auf die Schenkel
klopfen. Aber nicht, weil sie am Windows-Sourcecode als solchem
wirklich interessiert wären ;-)
Jörg Wunsch schrieb:
> Wahrscheinlich hätte sie ein viel kleineres Problem damit, als sie> denkt. ;-) Man könnte dann endlich seine Programmabstürze selbst> analysieren und die Bugs fixen, wenn es einen nervt...
Würdest du dich wirklich durch diese Ungetüme von Programmen
durchwühlen wollen, um darin Bugs zu fixen? ;-)
Ok, ich habe auch schon Tage damit verbracht, zusammen mit einem
Xilinx-Support-Menschen einen Fehler einzukreisen, was dann aber
hinterher doch nicht zum Erfolg geführt hat. In dieser Zeit hätte ich
natürlich auch etwas Quellcode durchlesen können, sofern der verfügbar
gewesen wäre :)