Forum: Compiler & IDEs Frontend für GCC - GPL?


von Ralf Lindenberg (Gast)


Lesenswert?

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

von Sebel de Tutti (Gast)


Lesenswert?

Nein, musst Du nicht.

von Ralf Lindenberg (Gast)


Lesenswert?

Und womit ist dies begründet? Ich würde die GPL so verstehen, dass man 
es muss.

Gruss  Ralf

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Detlev T. (detlevt)


Lesenswert?

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.

von Ralf Lindenberg (Gast)


Lesenswert?

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

von Rolf Magnus (Gast)


Lesenswert?

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

von Gerard C. (gerardchoinka)


Lesenswert?

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.

von Gerard C. (gerardchoinka)


Lesenswert?

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).

von Detlev T. (detlevt)


Lesenswert?

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.

von Rolf Magnus (Gast)


Lesenswert?

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. "

von yalu (Gast)


Lesenswert?

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.

von Detlev T. (detlevt)


Lesenswert?

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.

von let (Gast)


Lesenswert?

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

von Rolf Magnus (Gast)


Lesenswert?

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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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

von Detlev T. (detlevt)


Lesenswert?

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.

von yalu (Gast)


Lesenswert?

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 :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.