Software, die proprietäre Teile (bspw. die WIndows-API) benötigt, kann dennoch freie Software sein

  • Schon länger habe ich mir die Frage gestellt, ob eine Software, die proprietäre Abhängigkeiten hat ( bspw die Windows API wird benötigt ), unter dem Schlagwort "Freie Software" publiziert werden kann,
    wenn man Richard Stallman's GNU Philosophie berücksichtigt. Dies rührt unter anderem auch daher, dass ich Software aus der "Szene" mitsamt ihrer Quellcodepakete vorliegen habe, die Quellcodepakete
    allerdings die Projektdateien von Visual C bzw Visualbasic beinhalten.


    Ich stellte die Frage gestern in der Shoutbox hier ( spinnweb du wirst dich erinnern ^^), nachdem mir dort als Antwort allerdings "interessante Frage" entgegnet wurde, habe ich Stallman direkt per E-Mail
    mit meiner Frage "behelligt":


    Meine Mail mit zugegeben nicht ganz perfektem Englisch zitiere ich hier einmal :




    "Such Software can be free, but we call it trapped - so Stallman's Antwort darauf. Das Wort "trapped" ist verlinkt mit dem Teil der GNU-Philosophie, der weitere Beispiele von "Software Trapping" aufzeigt.


    Mein Fazit: Wenn ich eine Software code, die Abhängigkeiten von irgendwelchen proprietären oder sogar Lizenzkostenpflichtigen Teilen aufweist, so KANN mein Teil der Software dennoch "frei" sein - das obliegt meiner Entscheidung, ob und unter welchen Lizenzen ich den Quellcode veröffentliche.


    BrokenSoul1979

    "Ich weiß nicht, wer mich in die Welt gesetzt hat, und auch nicht, was mein Körper, meine Seele, meine Sinne und jener Teil meines Ichs sind, der denkt. Ich sehe überall nur Unendlichkeiten, die mich wie ein Atom und wie einen Schatten einschließen." (Blaise Pascal)

  • Ich sehe gerade, dass meine E-Mail einen Formulierungsfehler beinhaltete.


    Dass die Software, die bei opensource-dvd.de angeboten wird, auch für Linux oder MacOS verfügbar sind, teilweise sogar durch die Java-Implementationen eh schon Cross-Platform sind, ist mir bekannt.
    Auch dass dort die Quellcodes zum selber kompilieren angeboten werden, ist mir bekannt. Also "All programs offered there require the Microsoft Windows System" ist so gemeint, dass es dort nur Windows Binaries gibt.


    Also nicht missverstehen bitte. ;)


    Aber das ist nicht der Kernpunkt der Frage gewesen. Der Kernpunkt meiner Frage war lediglich, ob die Software, die auf die API von Windows oder auf andere proprietäre Code-Inhalte zugreift, überhaupt nach der GNU-Definition "Frei" ist. Antwort war ja, dass diese von der FSF "Trapped" genannt wird, somit Frage geklärt. Und ich habe ja gestern schon versprochen, dass ich aus dem Thema einen Forenbeitrag hier konzipieren werde, was ich hiermit ebenfalls getan habe. ;)




    BrokenSoul1979

    "Ich weiß nicht, wer mich in die Welt gesetzt hat, und auch nicht, was mein Körper, meine Seele, meine Sinne und jener Teil meines Ichs sind, der denkt. Ich sehe überall nur Unendlichkeiten, die mich wie ein Atom und wie einen Schatten einschließen." (Blaise Pascal)

  • Es ist grundsätzlich so, dass z.B. Microsoft eine bestimmte Software zur allgemeinen freien Verwendung frei gibt.
    Man darf diese Software dann so benutzen wie man möchte... auch um daraus eine völlig andere zu programmieren.


    Die Rechte an der zur freien Verwendung freigegebenen Software liegen jedoch weiterhin beim ursprünglichen "Freigeber".
    Man muss deshalb auch auf ihn hinweisen - damit später jeder nachlesen kann, dass es eben nicht alles ein eigenes urheberrechtlich geschütztes Werk ist.


    In der Regel achtet man darauf, dass man nur solche freigegebene Software mit verwendet, die wirklich zur vollen völlig freien Nutzung berechtigt. Alles was die "originale Software" angeht, steht damit weiterhin unter der Original-Lizenz.
    Da man aber eben vorher darauf geachtet hat, kann man das gesamte neue Programm auch komplett an andere Nutzer weitergeben.
    Ein "eigenes Urheberrecht" erhält man dann auf die Teile, die nicht mit der Original-Software zu tun haben. Nur diese Teile können anderen Bedingungen unterliegen.


    Eine GNU/GPL-Lizenz bedeutet also nicht immer automatisch auch, dass man sie komplett allein erstellt hat. Sie bedeutet aber für den Anwender: "Du kannst damit machen, was du möchtest"


    ...............


    Grundsätzlich haben sich die Zeiten ziemlich geändert:
    Noch vor einigen Jahren bedeutete "propietär", dass man sich (durchaus) in völlige Abhängigkeit zum Hersteller begibt oder ihn durch die Nutzung der Software fördert und unterstützt.


    Im Laufe der Zeit hat sich jedoch ein Wandel herauskristallisiert:
    Diverse Hersteller geben immer mehr eigene Software zur freien Verwendung frei. Natürlich machen sie das nicht "weil sie so lieb sind", sondern vorrangig darum, um eigene Software zu unterstützen und zu fördern.


    Was wäre, wenn Microsoft sein Software so eingeschränkt weitergeben würde wie z.B. Apple ?
    (Man darf ein Mac OS nur auf Rechnern von Apple installieren)
    Windows hätte nie so große Verbreitung gefunden.


    Je mehr man also freigibt, desto mehr Entwickler werden sich finden, die neue Programme darauf aufbauen können und damit die eigene Software fördern.




    Jetzt kommt mein "Achtung" !
    WENN in der proprietären Softwarelizenz verankert ist, dass sie in sich nicht verändert werden darf, dann darf ein Programmierer z.B. auch das automatische Senden von Daten im Hintergrund nicht herausprogrammieren.
    Es kann also durchaus sein, das man sich durch die Einbindung einer proprietären Software "eine Laus in den Pelz" setzt.


    Entwarnung:
    Manche Hintergrunddienste werden für Programme dringend benötigt und sie sind auch nicht "kritisch" zu betrachten.
    Es ist für einen Computerbesitzer immer noch möglich, unerwünschte Datensendungen willentlich zu unterbinden. Hierzu gehört jedoch etwas Wollen, sich etwas mit der Materie zu beschäftigen.


    Die einfachste Art der Kontrolle ist, sich eine zusätzlich Firewall zu installieren. Die darf jedoch auf gar keinen Fall die bisherigen Systemeinstellungen übernehmen. Danach deaktiviert man die System-Firewall und erhält gleich die Warnung "dass das nicht gut ist".
    Diese Warnung kann man gerne "in den Wind schlagen" .. denn sie dient vorrangig dem Hersteller des Betriebssystems, der dadurch die völlig Kontrolle über solche Hintergrunddatensendungen verliert.
    Mit der neuen Firewall erhält man dann selbst die Kontrolle über jede sich aufbauende Datenverbindung und kann sie einzeln zulassen oder ablehnen. Es macht Arbeit, die Firewall zu trainieren.. sie lohnt sich aber später.
    Wer Arbeit jedoch scheut, sollte sich keine neue Firewall installieren... und einfach nur die Systemfirewall zu deaktivieren ist auch nicht besonders sinnvoll.
    Wie gesagt, muss man sich also vorher etwas mit der Materie beschäftigen. "Erst denken, dann handeln".


    Proprietäre Software ist nicht immer nur schlecht
    GNU/GPL ist nicht immer nur gut
    Es gibt sogar proprietären Software, die unter GNU/GPL steht.


    GNU/GPL sagt längst nichts mehr darüber aus, "wessen Kind" die Software ist, sondern nur noch, was man damit machen darf.
    .. und wenn es eine Mischform aus einer proprietären Software und eigener Software ist ... dann darf man andere Bedingungen nur für den Code setzen, der selbst entwickelt wurde. Die Bedingungen der proprietären Software bleiben weiterhin voll vorhanden und müssen auch genannt werden.


    Hinweis für Entwickler:
    Findet ihr eine Lizenz, die eigentlich jegliche Weiterbearbeitung verbietet, so sucht doch mal genau nach, ob nicht irgendwo innerhalb der Software auch eine GNU/GPL verwendet wurde.
    Wenn das so ist, dann dürft ihr diesen Teil trotzdem nehmen und zu einer Eigenentwicklung benutzen. Denn für diesen Teil der Software sind alle anderen Verbote und Einschränkungen unzulässig und ungültig ;)

  • Die Fakten, die du über die GNU/GPL "auf den Tisch gelegt" hast, sind mir durchaus bekannt, ABER :


    Und jetzt nochmal zurück zu Stallman's "Software Trap" ...


    Die GNU-Philosophie und das GNU-Manifest sind auf die 4 Freiheiten ausgelegt, die Stallman selber immer wieder in seinen Speeches zu erwähnen vermag.


    Das lässt für mich folgenden Umkehrschluss zu :


    Ich konzipiere eine Software, die teilweise die Windows-API benötigt ( Speziell Windows-API - Abhängigkeiten - zumindest bei Visual Studio - Projekten - völligst in den Wind zu schmettern, stellt sich zumindest als schwierig heraus - wenn nicht sogar als unmöglich ), teilweise sogar DirectX ( wobei es da eine Sache meines Quellcodes ist, ob ich DirectX anspreche oder stattdessen auf OpenGL oder SDL zurückgreife ) usw. Auch dass Microsoft Redistributable Packages anbietet, weiß ich.


    Wenn ich aber eine Software "bauen" möchte, die komplett von der allerersten Zeile an "freie Software" sein soll, muss ich auch dafür sorgen, dass die Abhängigkeiten allerhöchstens zu Bibliotheken oder APIs führen, die ihrerseits selbst komplett freie Soft sind.


    Wenn ich schon in dem Wissen, da könnten gezwungenermassen Teile von Windows mit angesprochen werden, die zwingend auf dem Rechner vorhanden sein müssen da sonst das Programm nicht oder nur teilweise läuft ( sprich ich baue eine freie Software, die aufgrund ihrer Depends nur auf Windows Systemen läuft ), schiesse ich der kompletten Philosophie von GNU ins Bein, da meine Software beispielsweise Probleme bekommen könnte, unter Windows zu laufen. (Das Wine-Projekt versucht zwar, die relevanten Dinge der WinAPI nachzubauen, dennoch ist keine Garantie zugegen, dass jede Windows-Software auf Wine zum Laufen gebracht werden kann ).


    Wenn ich schon irgendeiner Gemeinschaft etwas beisteuere, habe ich auch den Willen, dass das komplette "Gemeinschafts-Manifest" zum Greifen kommt, heisst: Wenn ich eine Software baue, möchte ich sichersein, dass meine Software zumindest sowohl unter Windows als auch Linux zum Laufen gebracht werden kann, und keine weiteren Pakete "angerufen" werden, die selbst keine freie Software sind.



    BrokenSoul1979

    "Ich weiß nicht, wer mich in die Welt gesetzt hat, und auch nicht, was mein Körper, meine Seele, meine Sinne und jener Teil meines Ichs sind, der denkt. Ich sehe überall nur Unendlichkeiten, die mich wie ein Atom und wie einen Schatten einschließen." (Blaise Pascal)

  • Danke BrokenSoul, habe deinen Post gelesen, ich wollte eigentlich von meinem offenen Quelltext keine .exe Datei erstellen, den ich wollte das der offene Quelltext offen bleibt, aber ich habe es aufgrund von deinem Post jetzt doch getan. Mit der Erstellung einer .exe Datei überlasse ich es dem User was er haben möchte ob er eine Trap .exe Datei möchte oder ob er sich befreit und das Programm mit dem Quellcode startet.


    Lotto Gener- & Simulator