Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Freie VNC-Library für .Net/C#?
Hunv
myCSharp.de - Member

Avatar #avatar-3429.png


Dabei seit:
Beiträge: 195

Themenstarter:

Freie VNC-Library für .Net/C#?

beantworten | zitieren | melden

Hallo zusammen,

kennt jemand von euch eine freie (damit schließe ich die GPL-Lizenz explizit aus!) Implementierung des VNC-Protokolls, welche man in seinen eigenen Projekten verwenden darf? Es geht dabei nur um den Viewer - nicht den Server.
Denkbar wären z.B. Libraries, die unter der BSD oder MS-Public-Lizenz stehen.

Es geht dabei um mein aktuelles Projekt beRemote - Projekt: Remote Connection Manager. Die Implementierung von VNC selbst kann dabei gerne Open Source sein (ist wie alle Protokolle bei beRemote ein Plugin). Die Lizenz darf nicht wie GPL virulent sein, da beRemote im Kern Closed-Source ist.

Auf Codeplex und Sourceforge finde ich leider nur GPL-Lizensierte Bibliotheken.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Hunv am .
Visit me @ www.beremote.net
private Nachricht | Beiträge des Benutzers
m.knigge
myCSharp.de - Member

Avatar #avatar-3136.png


Dabei seit:
Beiträge: 178
Herkunft: Hannover

beantworten | zitieren | melden

Hallo,

eine LGPL o. ä. lizenzierte Library ist mir auch nicht bekannt. Aber es kann ja nicht schaden, die Autoren bzgl. einer Lizenzänderung von GPL auf LGPL mal anzuschreiben. Wäre nicht das erste mal, dass ein Autor nachträglich die Lizenz geändert hat. Fragen kostet nix....

Ansonsten.... Auf Deinem Posting hast Du ja so nett geschrieben "... weil ich Spaß daran habe und mich mit den Remotetechniken und den verschiedenen Protokollen auseinandersetzen....". Wenn ich mir die Protokollspezifikation so ansehe, dann scheint mir das Protokoll relativ simpel zu sein.... Ich glaube das ist "halbwegs flott" implementiert ;-) Allerdings muss ich sagen, dass ich meist etwas zu optimistisch schätze :-)


Bye,
Michael

P.S.: Und bevor Du fragst ob ich nicht Lust hätte am beRemote mitzuarbeiten... Ich selber habe zur Zeit privat vier Projekte am Start - und komme selber kaum dazu :-( Wobei ich gestehen muss, dass gerade diese Bitschubserei beim RFB-Protokoll so richtig mein Ding wäre....
Debuggers don't remove Bugs, they only show them in Slow-Motion.
private Nachricht | Beiträge des Benutzers
Hunv
myCSharp.de - Member

Avatar #avatar-3429.png


Dabei seit:
Beiträge: 195

Themenstarter:

beantworten | zitieren | melden

Hi,

ich baue gerade eine Umsetzung - Zumindest versuche ich es mal.
Hab vor einiger Zeit mal etwas ähnliches gemacht. Das kann ich zwar dafür nicht direkt verwenden, aber mal sehen ob ich mit den TcpClient-Verbindungen etc. noch zurecht komme.

Wenn ich irgendwo nicht weiterkomme, melde ich mich sowieso hier ;)
Es sei denn jemand kennt etwas fertig implementiertes ohne GPL ;)

Ich habe bei ein paar der Projekte bereits angefragt, ob es möglich ware das zu ändern, da z.T. ja sogar explizit gesagt wird, dass man sich melden kann, wenn man etwas anderen haben möchte.
Aber leider bisher von keinem eine Antwort :(
Visit me @ www.beremote.net
private Nachricht | Beiträge des Benutzers
m.knigge
myCSharp.de - Member

Avatar #avatar-3136.png


Dabei seit:
Beiträge: 178
Herkunft: Hannover

beantworten | zitieren | melden

Hi,

warum ist die GPL denn überhaupt ein Problem? Du hast doch geschrieben, dass sämtliche Protokolle über ein Plugin realisiert werden. Dann brauchst Du doch nur das Plugin als GPL zu veröffentlichen.....


Bye,
Michael
Debuggers don't remove Bugs, they only show them in Slow-Motion.
private Nachricht | Beiträge des Benutzers
Hunv
myCSharp.de - Member

Avatar #avatar-3429.png


Dabei seit:
Beiträge: 195

Themenstarter:

beantworten | zitieren | melden

Das ist hier ganz gut Ausgeführt:
GPL-Komponente kapseln und in closed-source software verwenden?
Zitat
if the program uses only simple fork and exec to invoke and communicate with plug-ins, then the plug-ins are separate programs [...] If the program dynamically links plug-ins, and they make function calls to each other and share data structures, [...] In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license

Das bedeutet zu Deutsch, dass es keine Plugins geben darf, die GPL-Komponente verwenden. Wenn doch ist das gegen die Lizenzvereinbarungen der GPL und der Versacher (in dem Fall der Pluginentwickler) begeht einen einen Lizenzbruch.
Weil: Durch die virulenten Eigenschaften von GPL muss sowohl das "Mutterprojekt", also beRemote, unter GPL stehen, wie auch alles, was aus dem entwickelten Plugin entsteht.
Ja, GPL ist alles andere als frei - darüber sind sich leider viele Entwickler nicht immer im Klaren drüber, was das häufig bedeutet :(
Es gibt sicherlich solche, die gezielt GPL als Lizenz verwenden. Aber es gibt auch viele (ich behaupte der Großteil), die sich denken "Ich brauche ne OpenSource-Lizenz" und dann GPL nehmen, weil sie die kennen ohne sich allen Konsequenzen - auch für die potentiellen Nutzer - daraus bewusst zu werden.
Visit me @ www.beremote.net
private Nachricht | Beiträge des Benutzers
m.knigge
myCSharp.de - Member

Avatar #avatar-3136.png


Dabei seit:
Beiträge: 178
Herkunft: Hannover

beantworten | zitieren | melden

Hi,

also ich habe die Problematik bzgl. Plug-Ins und der GPL eigentlich immer wie folgt verstanden:

1. Wenn ein Produkt im Grund ohne das Plugin nicht funktionieren kann, dann muss das Produkt ebenfalls unter der GPL lizenziert werden. Als Beispiel: Du kannst keinen Closed Source VNC-Client veröffentlichen und dabei eine GPL VNC-Library verwenden. Völlig egal wie man den Kern und den VNC-Kram von der Architektur her trennt.

2. Wird das Produkt durch das Plugin "nur" um eine Funktionalität erweitert *UND* das Produkt nutzt "direkt" nix aus dem Plugin, dann braucht das "Mutterprojekt" nicht unter der GPL veröffentlicht werden. Als Beispiel könnte beispielsweise der IE herhalten - den kann auch Hinz und Kunz um PlugIns erweitern, die dann durchaus auch GPL Code nutzen. Oder beispielsweise ein Programm zur Bildbearbeitung, das man durch PlugIns um zus. Grafikformate erweitern kann. Das Plugin bietet Methoden zum Laden und Speichern von Images und verwendet dazu eine GPL-Library. Das Bildbearbeitungsprogramm nutzt die GPL-Library aber nicht direkt sondern spricht nur die API-Methoden "LoadImage" und "SaveImage" an, die das PlugIn bereitstellt. Hier ist es für mein Verständnis absolut ok, eine GPL-Lib im Plugin zu verwenden.

Hier wäre es aber evtl. noch einmal angebracht, GPLv2 und GPLv3 zu vergleichen. Ich meine die GPLv3 ist wesentlich restriktiver, so dass mein (durchaus angestaubtes) Wissen hier nicht so ganz korrekt ist...


Bye,
Michael

P.S.: Vielleicht noch ein Hinweis - siehe Wann muss eigenentwickelte Software unter der GPL lizenziert werden?
Zitat
Es gibt Stimmen, die die Auffassung vertreten, dass durch die Verlinkung stets ein abgeleitetes Werk entsteht. Dies dürfte zumindest für dynamisch verlinkte Bibliotheken zweifelhaft sein; allerdings existieren dazu keine Urteile von Gerichten, die als Anhaltspunkt dienen könnten.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von m.knigge am .
Debuggers don't remove Bugs, they only show them in Slow-Motion.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo m.knigge,

ich denke, Frequently Asked Questions about the GNU Licenses: Can I apply the GPL when writing a plug-in for a non-free program? ist da eindeutig und widerlegt deine Überlegungen.

herbivore
private Nachricht | Beiträge des Benutzers
Hunv
myCSharp.de - Member

Avatar #avatar-3429.png


Dabei seit:
Beiträge: 195

Themenstarter:

beantworten | zitieren | melden

Hi Herbivore und m.Knigge,

Also ich stimme Herbivore zu, dass es an sich ziemlich eindeutig gehandhabt ist und nicht zulässig ist.

Ich stimme aber auch dem IE-Beispiel von m. Knigge zu - und falsch ist es auch nicht. Und zwar wenn man ein IE-Plugin programmiert und unter GPL veröffentlicht, ist es ja offensichtliche, dass das Plugin für den IE bestimmt ist. Meines Wissens nach, kann man als Ersteller einer GPL-Komponente durchaus Ausnahmen zulassen. d.h. da das Programm - also das Plugin - offensichtlich nicht für ein GPL-Programm bestimmt ist, ist hier von einer Erteilten Ausnahme auszugehen.
Wenn aber das entwickelte GPL-Plugin andere GPL-Komponenten verwendete, müssen diese diese Ausnahme ebenfalls erteilen.

Ja... ganz schön verzwickt der GPL-Kram. Aber wie man es auch dreht und wendet, im Allgemeinen kann man sagen: Wenn irgendetwas genutzt wird, was unter GPL steht, muss alles übergeordnete ebenfalls unter GPL stehen.

Alle anderen Lizenzen - auch LGPL - haben diese virulenz ein Glück nicht.


Nichts desto trotz suche ich immernoch eine VNC-Komponente, die nicht unter GPL steht :)
Da es die aber offensichtlich nicht zu geben scheint, habe ich parallel damit angefangen eine RFB/VNC-Implementierung zu schreiben. So komplex ist das Protokoll ja ein Glück nicht. Wenn ich damit soweit bin, dass man es nutzen kann, werde ich es hier unter BSD-Lizenz zur Verfügung stellen.
Achja und zwei weiterere Vorteile der eigenen Implementierung:
1. Ich schreibe es für WPF
2. Man kennt die Strukturen und kann - wenn man einen dazugehörigen Server entwickelt - eigene Erweiterungen implementieren. Das ist für die Zukunft zu beRemote sicher interessant ;)
Visit me @ www.beremote.net
private Nachricht | Beiträge des Benutzers
m.knigge
myCSharp.de - Member

Avatar #avatar-3136.png


Dabei seit:
Beiträge: 178
Herkunft: Hannover

beantworten | zitieren | melden

Fröhliche Weihnachten herbivore,
Zitat von herbivore
ich denke, Frequently Asked Questions about the GNU Licenses: Can I apply the GPL when writing a plug-in for a non-free program? ist da eindeutig und widerlegt deine Überlegungen.

na na na.... nun mal ganz langsam.... Dort steht doch geschrieben
Zitat
and they make function calls to each other and share data structures

jetzt nehmen wir mal mein Beispiel mit dem Grafikprogramm, dass mit einem Plug-In um ein zus. Grafikformat erweitert wird. Das Grafikprogramm ruft die z. B. Methode "SaveImage" aus dem Plugin auf und übergibt einen Stream mit Bitdaten und einen Dateinamen. Da gibt es kein "call each other" und auch kein "share data structures". In diesem Fall kann man m. E. eindeutig GPL Code verwenden!

Wenn die Entwickler vom beRemote es hinbekommen, dass das VNC Plugin beispielsweise über eine Methode aktiviert wird und diese dann keine weiteren Aufrufe zum beRemorte Kern tätigt, dann kann m. E. ebenfalls eine GPL-Library verwendet werden. Beispielsweise durch eine Methode "DoWork", der IP-Adresse, Portnummer und ein Window-Handle übergeben wird (in das übergebene Window wird dann halt "gezeichnet"). Ich würde mich jetzt so weit aus dem Fenster lehnen und behaupten, ein Window Handle ist keine "data structure" (zumindest nicht innerhalb von beRemote - innerhalb des Windows Kernel schon - das ist klar). Also ich denke auch in diesem Fall kann man eine GPL-Library verwenden (gut... das VNC-Plugin muss dann halt auch GPL sein)....

Bye,
Michael
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von m.knigge am .
Debuggers don't remove Bugs, they only show them in Slow-Motion.
private Nachricht | Beiträge des Benutzers
Hunv
myCSharp.de - Member

Avatar #avatar-3429.png


Dabei seit:
Beiträge: 195

Themenstarter:

beantworten | zitieren | melden

Zitat
If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them. So you can use the GPL for a plug-in, and there are no special requirements.

Also ich finde das sehr eindeutig.
Wenn das Programm einfach zum aktivieren des Plugins aufgerufen wird, dann ist das Programm ein eigenständiges Programm. => GPL oder nicht ware egal
Aber das findet ja leider nicht statt, zumal die Komponente kein eigenständiges Programm ist.

Da ich finde, dass die Lage da interpretationswürde ist, sollte man lieber auf Nummer Sicher gehen anstatt sich in irgendwelche Lizenzstreitigkeiten zu begeben.

Nichts desto trotz: back to Topic
Visit me @ www.beremote.net
private Nachricht | Beiträge des Benutzers
m.knigge
myCSharp.de - Member

Avatar #avatar-3136.png


Dabei seit:
Beiträge: 178
Herkunft: Hannover

beantworten | zitieren | melden

Hi,

Du hörst einfach nach dem Lesen des ersten Absatzes auf. Der zweite Absatz bezieht sich explizit auf dynamische Libraries / DLLs. Schreibt man also ein Plugin als DLL / Shared Library, dann ist der erste Absatz komplett zu ignorieren und nur der zweite Absatz hat Beachtung zu finden. Und dort gibt es zwei Bedingungen die erfüllt sein müssen, damit die Virulenz GPL zieht (they make function calls to each other and share data structures). Ich finde das ebenfalls sehr eindeutig.

Man sollte/muss nur folgendes beachten: Die Applikation muss auch ohne das Plugin lauffähig sein. Sprich, wenn man die DLL vom Plugin löscht darf die Applikation davon nicht beeinträchtigt werden (abgeshen davon, dass die Funktionalität, die das Plugin bereitstellt eben nicht mehr zur Verfügung steht). Das Plugin muss also wirklich dynamisch geladen werden. Denn ansonsten bilden Applikation und Plugin eben doch eine Einheit ("... form a single program").

Weiterhin ist man gut damit beraten, das Plugin nicht direkt mit der Applikation auszuliefern sondern als separaten Download anzubieten (oder zur Laufzeit der Applikation "on demand" herunterzuladen und zu installieren). Wenn man es doch mit der Applikation ausliefert, dann müssen natürlich auch Lizenzbestimmungen bzgl. der Distribution von GPL-Software beachtet werden (der Source muss ebenfalls ausgeliefert werden). Siehe FAQ


Bye,
Michael

P.S.: Als gutes Beispiel fällt mir gerade der MySQL ODBC-Treiber ein. Man nehme eine kommerzielle Closed Source Software, die mit beliebigen via ODBC erreichbaren Datenbanken arbeiten kann. Selbstverständlich darf diese Software mit dem GPL MySQL ODBC-Treiber verwendet werden - der Hersteller der Applikation darf diesen nur nicht mit der Applikation ausliefern.... Der Kunde muss sich den Treiber selber auf der MySQL Seiter herunterladen und diesen installieren....
Debuggers don't remove Bugs, they only show them in Slow-Motion.
private Nachricht | Beiträge des Benutzers
Hunv
myCSharp.de - Member

Avatar #avatar-3429.png


Dabei seit:
Beiträge: 195

Themenstarter:

beantworten | zitieren | melden

Also beRemote würde auch ohne das Plugin laufen.
Wenn unter "Dynamic Linking" verstanden wird, dass Daten aus der über die beRemote-Hauptapplikation bereitgestellten Datenbank abgerufen warden können und ggf. eine Interaktion mit Teilen der Hauptapplikation stattfinden kann, dann ist es nicht erlaubt, denke ich.

Und eine Auslieferung eines so Grundlegenden Protokolls in dem Gebiet sollte zudem schon wünschenswert sein.

Also das ist meine Meinung aus der Sicht es lieber nicht zu machen, bevor man sich in irgendeiner Weise Ärger einhandelt.
Visit me @ www.beremote.net
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10074

beantworten | zitieren | melden

Zitat
P.S.: Als gutes Beispiel fällt mir gerade der MySQL ODBC-Treiber ein. Man nehme eine kommerzielle Closed Source Software, die mit beliebigen via ODBC erreichbaren Datenbanken arbeiten kann. Selbstverständlich darf diese Software mit dem GPL MySQL ODBC-Treiber verwendet werden - der Hersteller der Applikation darf diesen nur nicht mit der Applikation ausliefern.... Der Kunde muss sich den Treiber selber auf der MySQL Seiter herunterladen und diesen installieren....
Gutes beispiel wie es nicht sein sollte.
MySql hat eine Dual Lizenz, für Open Source Benutzung ist die Kostenlos, für alles andere hat man Geld zu bezahlen.
Das müsste in deinem Fall allerdings der Kunde tun, denn er kann nicht erwarten das du das machst.

Aber bei GPL und Co immer an den Geist denken in dem die SW darunter gestellt wurde.
private Nachricht | Beiträge des Benutzers
Marsti
myCSharp.de - Member



Dabei seit:
Beiträge: 124

beantworten | zitieren | melden

Zitat
Aber bei GPL und Co immer an den Geist denken in dem die SW darunter gestellt wurde.
Wobei man durchaus versuchen sollte, den Entwickler einer Bibliothek klarzumachen, was die GPL bedeutet. Denn ich denke gerade wenn es um Bibliotheken geht, wird die GPL eben sehr häufig nicht im Geiste der Entwickler verwendet, sondern einfach nur weil die so populär ist. Was zusammen mit dem Inhalt der Lizenz einer die Gründe ist, warum ich denke die (OpenSource)-Welt wäre ohne diese Lizenz besser dran... aber naja gut. Schade dass im konkreten Fall die Entwickler nicht mehr zu erreichen sind.

Ich persönlich kann es ja ohnehin nicht nachvollziehen, wie man eine Lizenz verwenden kann, die man selbst als Muttersprachler nicht zu 100% erfassen kann und bei der es soviel Unklarheiten gibt. Und sich darüberhinaus nichtmals kurz informiert, ob die Lizenz denn geeignet ist für das was man ausdrücken möchte, und nicht etwa z.B. die LGPL passender wäre. Davon abgesehen ist es für mich auch unverständlich, wieso man eine nichtkommerzielle Lizenz so schreibt, dass diese mehrere Bildschirmseiten füllt und trotzdem nicht unmissverständlich ist.

Solange die GPL-Macher nichtmals eine Zusammenfassung der Bedingungen in der Art wie die Creative Common machen und lieber darauf verzichten, ganz klare Aussagen zu treffen, insbesondere zu häufig strittigen Punkten wie eben Plugins, bzw. selbst die FAQ wiederum nicht ganz eindeutig ist, ist das ganze nur Spekulation. Eine rechtssichere Aussage kann wenn überhaupt ohnehin nur ein spezialisierter Anwalt machen, von daher bleibt einem als Hobbyentwickler leider nicht viel anderes über, als einen anderen Weg zu suchen.
Zitat
Also das ist meine Meinung aus der Sicht es lieber nicht zu machen, bevor man sich in irgendeiner Weise Ärger einhandelt.
Sehe ich auch so; mir wäre das in deiner Sitation zu heikel.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Marsti am .
private Nachricht | Beiträge des Benutzers
Scavanger
myCSharp.de - Member

Avatar #avatar-3209.jpg


Dabei seit:
Beiträge: 323

beantworten | zitieren | melden

VncSharp: A .NET VNC Client Library
Zitat
VncSharp is a VNC Client Library and custom Windows Forms Control. VncSharp is also free software, released under the GPL.
Zitat von m.knigge
eine LGPL o. ä. lizenzierte Library ist mir auch nicht bekannt. Aber es kann ja nicht schaden, die Autoren bzgl. einer Lizenzänderung von GPL auf LGPL mal anzuschreiben. Wäre nicht das erste mal, dass ein Autor nachträglich die Lizenz geändert hat. Fragen kostet nix....
Zitat
Licensing

VncSharp is licensed for use in open source applications. If you have an idea for another use and require a different license, let me know.

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}
private Nachricht | Beiträge des Benutzers
m.knigge
myCSharp.de - Member

Avatar #avatar-3136.png


Dabei seit:
Beiträge: 178
Herkunft: Hannover

beantworten | zitieren | melden

Zitat
Gutes beispiel wie es nicht sein sollte.
Das Geschäftsmodell von MySQL wollte ich jetzt nicht beleuchten ;-)
Zitat
MySql hat eine Dual Lizenz, für Open Source Benutzung ist die Kostenlos, für alles andere hat man Geld zu bezahlen.
Das müsste in deinem Fall allerdings der Kunde tun, denn er kann nicht erwarten das du das machst.
Das ist so nicht korrekt. Wir hatten mal eine kommerzielle Lizenz von MySQL (genauer, dem MySQL Connector) und haben diese an unsere Kunden weiterlizenziert. Und uns wurde seinerzeit von MySQL auch genau das bestätigt, was hier von Mike Wiesner ebenfall geäussert wurde:
Zitat
According to him, MySQL AB, the company behind MySQL, argues that its okay to use MySQL, including the MySQL-JDBC-Driver, in a non-GPL application, as long as the application doesn’t use anything specific to MySQL...

Das deckt sich sinngemäß mit meinen Äusserungen: Dynamisch laden, nix spezifisches - also "nur" eine allgemeine API benutzen, damit kein "abgeleitetes Werk" entsteht....
Zitat
Aber bei GPL und Co immer an den Geist denken in dem die SW darunter gestellt wurde.

;-) Der Geist stand bei meinen Aussagen nicht zur Debatte sondern nur was nach meinem Verständnis (und mit diesem stehe ich nicht alleine da) laut GPL zulässig ist.

Abschliessend sei noch bemerkt, dass es in der GPL einen speziellen Zusatz zum Thema dynamisches Linken gibt.
Zitat
Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

Dieser Zusatz ist optional - fehlt dieser in der zum Produkt gehördenden GPL Lizenz, sollten meine Aussagen nach meinem Verständnis korrekt sein... Einem Einsatz in einem Closed Source Produkt (wie in einem meiner vorherigen Postings beschrieben) sollte daher nix im Wege stehen.


Und um nun nicht ganz off-topic zu werden und am Ende des Postings noch haarscharf die Kurve zum Thema VNC-Library zu kriegen: In der GPL vom VncSharp fehlt dieser Passus übrigens auch.

Bye,
Michael
Debuggers don't remove Bugs, they only show them in Slow-Motion.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo m.knigge,

das offtopic wird nie aufhören, solange du falsche Behauptungen aufstellst.
Zitat
Dieser Zusatz ist optional
Dass der Zusatz optional ist, ist korrekt. Allerdings besteht der Zusatz aus mehr als aus dem Satz, den du zitiert hast, siehe GPL linking exception, und deshalb ist deine Schlussfolgerung komplett falsch. Der zitierte Satz stellt gerade klar, was ohnehin die normale Schlussfolgerung aus der GPL bei der Verwendung der einer GPL-Bibliothek ist. Optional ist es, dem Benutzer folgendes Recht einzuräumen:
Zitat
As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version.

Aus dem fehlenden Satz kann man also gerade nicht schließen, dass man eine GPL-Bibliothek linken kann, ohne dass das Hauptprogramm unter GPL fällt. Andersherum wird ein Schuh daraus: Gerade wenn der Satz - natürlich inkl. der zitierten Erlaubnis - vorhanden ist, darf man es.

herbivore


PS: Oben/neulich hatte ich darüber hinweg gesehen und bin nicht darauf eingegangen, um das offopic nicht zu verlängern, aber wenn ich jetzt eh einen Beitrag erstellt habe, dann auch noch kurz dazu:
Zitat
Und dort gibt es zwei Bedingungen die erfüllt sein müssen, damit die Virulenz GPL zieht (they make function calls to each other and share data structures).
nein, es gibt nur ein Bedingung, wann die Virulenz GPL zieht, nämlich, wenn es sich um einer Erweiterung des unter GPL stehenden Werks handelt ("work based on the Program").
Zitat
If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means that combination of the GPL-covered plug-in with the non-free main program would violate the GPL.

Und es gibt es eine Vermutung ("we belief"), die an zwei Bedingungen geknüpft ist, wann eine solche Erweiterung gegeben ist. Dass sind die zwei Bedingungen, auf die du abhebst. Das bedeutet folgendes: Wenn die beiden Bedingungen erfüllt sind, dann liegt mit hoher Wahrscheinlichkeit (wenn auch nicht mit absoluter Sicherheit) eine Erweiterung vor. Wenn eine der Bedingungen oder beide Bedingungen nicht erfüllt sind, ist man aber nicht auf der sicheren Seite, denn es kann andere Gründe geben, die nahelegen, dass es sich bei Hauptprogramm und Plugin um eine Erweiterung handelt. Und nur das ist das Kriterium für die Virulenz. Der Schluss, "eine oder beide Bedingungen nicht erfüllt, alles gut", stimmt also nicht.

Insbesondere wenn es technisch sinnvoll wäre, Plugin und Hauptprogramm enger zu koppeln und man es nur nicht tut, um die Lizenz zu umgehen, wäre ich sehr vorsichtig und würde abraten.

PPS: Zu dem ODBC-Treiber-Vergleich könnte man auch noch einiges sagen, aber das würde dann doch zu weit wegführen.
private Nachricht | Beiträge des Benutzers
Hunv
myCSharp.de - Member

Avatar #avatar-3429.png


Dabei seit:
Beiträge: 195

Themenstarter:

beantworten | zitieren | melden

Zitat von m.knigge
eine LGPL o. ä. lizenzierte Library ist mir auch nicht bekannt. Aber es kann ja nicht schaden, die Autoren bzgl. einer Lizenzänderung von GPL auf LGPL mal anzuschreiben. Wäre nicht das erste mal, dass ein Autor nachträglich die Lizenz geändert hat. Fragen kostet nix....

Hi, habe ich bereits angefragt (2x) => bisher keine Reaktion


Und wie schoneinmal erwähnt:
Wenn man sich nicht zu 100% sicher ist, ob die eigene Programmlizenz mit der GPL kompatibel ist, muss man entweder selbst GPL nutzen oder auf Alternativen ausweichen oder selbst Alternativen schaffen.

Ich für meinen Teil werde in beRemote keine GPL-Komponente benutzen, für die ich für beRemote keine explizite Ausnahme erhalten habe.
Zudem gibt es meist Alternativen (hier jetzt leider nicht), welche unter BSD, APL, MPL, Ms-PL, LGPL und ähnlichem stehen, welche man alle in seinem Programm nutzen kann, wenn man sich an die Bestimmungen bzgl. Copyright und Codeverteilung etc. halt.
Visit me @ www.beremote.net
private Nachricht | Beiträge des Benutzers
Hunv
myCSharp.de - Member

Avatar #avatar-3429.png


Dabei seit:
Beiträge: 195

Themenstarter:

beantworten | zitieren | melden

Hi,

ich wollte zur Vollständigkeit einmal darauf hinweisen, dass ich mich tatsächlich an eine freie Umsetzung (BSD), basierend auf WPF, gemacht habe.
Zu finden unter https://beevnc.codeplex.com/
Der Entwicklungsstatus ist noch nicht abgeschlossen. Ich würde mal so auf ca. 50% schätzen. Derzeit funktioniert eine unkomprimierte Übertragung des Bildes und Tastatur. Maus geht noch nicht. Ebensowenig der Zwischenspeicher. Optimierungspotential gibt es auch noch bei der Performance und natürlich beim Code...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Hunv am .
Visit me @ www.beremote.net
private Nachricht | Beiträge des Benutzers