Dylib, GPL, Suchpfad

  • Dylib, GPL, Suchpfad

    Wow, gleich zwei Fragen in einem:

    Vorgeschichte:
    Ich arbeite ja an meinem schönes Disassembler. Ich habe jetzt aber keine Lust, C++ Symbole selber zu demangle, da das ein heiden Aufwand ist, und gcc vielleicht wieder mal die ABI umstellt, und ich alles nochmal machen muss.
    Die "scheinbare" Lösung ist einfach: gdb enthält die "libiberty", welche C++ Symbole demanglen kann. Jetzt kommen wir zu meinem

    Problem:
    gdb ist GPL. Die enthaltene libiberty ist (wie sinnvoll...OpenSource Schwachköpfe) auch GPL und nicht LGPL. Selbst bei LGPL gibt es schon mit statischem Linken ein Lizenzproblem, also fällt das von vornherein aus.

    Somit habe ich erstmal aus dem gdb/libiberty Quelltext eine dylib Kompiliert. Wunderbar. Kann ich auch gegen linken und mein Traum wird war, endlich C++ Symbole demanglen.
    Aber halt, nicht so schnell:

    1) Verletze ich die GPL, wenn ich gegen libiberty linke?
    1.1) Wenn nein, verletzte ich die GPL wenn ich libiberty mitliefere? (Mit Link zu den gdb sources, meinetwegen)
    2) Warum findet er die Library nur, wenn sie in /usr/lib liegt, nicht aber an anderen, schlüssigen Plätzen, wie das .app oder .app/Content/MacOS?
    C++
  • RE: Dylib, GPL, Suchpfad

    Original von zermelo
    Somit habe ich erstmal aus dem gdb/libiberty Quelltext eine dylib Kompiliert. Wunderbar. Kann ich auch gegen linken und mein Traum wird war, endlich C++ Symbole demanglen.
    Aber halt, nicht so schnell:

    1) Verletze ich die GPL, wenn ich gegen libiberty linke?

    So wie ich die GPL interpretiere müssen Projekte, die gegen eine unter GPL stehende Library gelinkt werden, ebenfalls unter der GPL stehen. Ob die Library statisch oder dynamisch ist, ist dabei unerheblich. Da ich davon ausgehe, dass Dein Projekt nicht unter der GPL steht ist somit die Antwort: ja, damit würdest Du die GPL verletzen.

    Michael
  • RE: Dylib, GPL, Suchpfad

    Original von Michael
    So wie ich die GPL interpretiere müssen Projekte, die gegen eine unter GPL stehende Library gelinkt werden, ebenfalls unter der GPL stehen. Ob die Library statisch oder dynamisch ist, ist dabei unerheblich. Da ich davon ausgehe, dass Dein Projekt nicht unter der GPL steht ist somit die Antwort: ja, damit würdest Du die GPL verletzen.

    Michael


    Yuck. Ich glaube, du hast recht. Füge ich *eine einzige Zeile* in mein Programm ein, womit nur eine Bibliothek geladen wird, muss mein Programm auch unter die GPL.
    Das nenne ich doch mal bescheuert.
    Also muss ich doch das Rad neu erfinden. Na super.

    Würde ich c++filt verwenden, was ich ja ganz unabhängig aufrufen kann, habe ich haargenau die selbe Funktionalität und verletze dabei nichts. Ausser die Geduld vom Anwender. Zum heulen.
    C++
  • Um mich noch mehr aufzuregen, es stimmt tatsächlich, hier aus der GPL FAQ:

    If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?
    Yes, because the program as it is actually run includes the library.


    LGPL finden die Jungs eigentlich doof, denn

    Using the Lesser GPL for any particular library constitutes a retreat for free software.

    Ja genau. :baby: :baby: :baby:

    Achso, vorsicht, wahrscheinlich sind wir alle Kriminell! Jeder der gegen libgcc, libstdc++, ... linkt (was schnell mal automatisch mit gcc passiert) und sein Programm nicht auch unter die GPL stellt, ist ebenso ein VERBRECHER.
    C++
  • Hahaha

    Cocoa Framework linkt gegen Foundation Framework.
    Foundation Framework linkt gegen libobjc.
    libobjc steht unter der GPL.
    => Alle (Cocoa) Programme müssten unter der GPL stehen.

    EDIT: libobjc hat eine Ausnahme in der Lizenz. Puh!
    EDIT2: libstd++ auch, libiberty ist unter der LGPL, jedoch ist in manchen Quelldatein fälschlicherweise(?) GPL eingetragen......
    C++
  • Ja, das ist Sinnlos. Wie ein Kumpel von mir neulich sagte:
    Deswegen lass ich den GNU Scheiss.
    Die sind wie militante spaet-68er.


    in Libiberty, wie auch libobjc steht sowas:

    This file is part of the libiberty library, which is part of GCC.

    This file is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    In addition to the permissions in the GNU General Public License, the
    Free Software Foundation gives you unlimited permission to link the
    compiled version of this file into combinations with other programs,
    and to distribute those combinations without any restriction coming
    from the use of this file
    . (The General Public License restrictions
    do apply in other respects; for example, they cover modification of
    the file, and distribution when not linked into a combined
    executable.)


    Hätt ich mal gleich alles gelesen, und nicht bei GNU General Public License aufgehört. Mit dem ganzen Lizenzgelumpe steckt man irgendwann mehr Zeit in Recherche als in das Entwickeln. Oh golden waren die Zeiten der Public Domain!
    C++
  • Original von læng
    Ich kann doch auch einen properitären Wrap um ein GPL-Tool schreiben…!?

    Können schon - dürfen nicht. Genauso wenig, wie Du einen Wrap um Excel schreiben und das Ding dann gemeinsam mit Excel ohne Erlaunbnis von MS verkaufen darfst. Nur weil die GPL viel erlaubt und einen humanitären Ansatz hat, heißt das nicht, dass die Software vom Himmel gefallen ist - es handelt sich genauso um geistiges Eigentum wie bei Closed Source-Software.

    Ehrlich gesagt verstehe ich Euer Gejammer nicht. Keiner wird gezwungen, GPL-Werke zu nutzen. Wer mit den Bedingungen der Lizenz nicht einverstanden ist, soll es halt bleiben lassen. Wie bei allen anderen Lizenzen auch. Das "Free" in "Free Software" steht nicht für "geschenkt", "public domain" oder "weltfremde Deppen verbringen ihre Zeit damit, dir etwas umsonst zu programmieren, was du beliebig abstauben kannst". Oder wie die FSF sagt: "Free as in free speech, not as in free beer".
    Multigrad - 360°-Produktfotografie für den Mac
  • Original von mattik
    Ehrlich gesagt verstehe ich Euer Gejammer nicht. Keiner wird gezwungen, GPL-Werke zu nutzen. Wer mit den Bedingungen der Lizenz nicht einverstanden ist, soll es halt bleiben lassen. Wie bei allen anderen Lizenzen auch. Das "Free" in "Free Software" steht nicht für "geschenkt", "public domain" oder "weltfremde Deppen verbringen ihre Zeit damit, dir etwas umsonst zu programmieren, was du beliebig abstauben kannst". Oder wie die FSF sagt: "Free as in free speech, not as in free beer".


    1. GNU GPL ist für mich nicht "frei".
    2. Ich werde gezwungen, schon wenn ich gegen libc, libstdc++ etc. linke zumindest mich mit der Thematik zu beschäftigen. Das ganze bleiben zu lassen ist nicht so einfach.
    3. Viele Leute kennen die GPL nur ungenügend. Bei dem ganzen Lizenz-wirr-warr wird sich m.E. oft vorschnell für die GPL entschieden, ohne die Konsequenzen zu beachten.
    Die Programmierer sind ausserdem (i.d.R) nicht Weltfremd, vielmehr ist es die Lizenz. GPL ist für mich eher soetwas wie eine provokante Qual: "Schau, was wir schon alles tolles Gemacht haben! Aber Du musst alles nochmal selber machen, schliesslich willst du ja Geld verdienen. Geld ist böse!".
    OpenSource ergibt für mich genau dort Sinn, wo ich freie und unabhängige Teile in meiner eigenen, nicht-offenen Software verwenden kann, so dass ich eventuelle Fehler oder Verbesserungen wieder der Allgemeinheit zurückgebe, aber in meinem KAPITALISTISCHEN (oder was auch immer) Treiben nicht diktiert werde.
    4. Der Eigentliche Punkt, der mich ja aufregt ist, festzustellen wie Weltfremd es tatsächlich ist, eine Lib unter die GPL zu stellen, und damit sie auch nur irgendein nicht Kommunist verwenden kann schnell doch noch so eine "Ausnahme" reinzukleistern.
    C++
  • Ich finde die Grundidee, Open Source vor Ausbeutung durch große Konzerne zu schützen, gar nicht schlecht. Mit Kommunismus hat das btw alles gar nichts zu tun…

    Naja, ich bin jetzt im Urlaub.
    læng
    "Wales is the land of my fathers. And my fathers can have it." - Dylan Thomas
  • Ich verstehe die Aufregung auch nicht ganz.

    Um Libs zu erzeugen gegen die auch, in den Augen der GPL Erfinder unfreie, Software gelinkt werden kann gibts die LGPL. Wenn ein Author einer Library diese nicht verwendet, dann möchte er scheinbar nicht dass jemand Nicht-GPL-Software gegen seine Software linkt. Das Recht dazu hat er, egal was ich, du oder andere davon halten.

    Ein anderer Grund warum viele ältere Libs nicht die LGPL verwenden ist nach meiner Vermutung der, dass diese nicht ganz so alt wie die ursprüngliche GPL ist. Möglicherweise kommt die Ausnahmeklausel auch daher.

    servus
    booster
  • Original von læng
    Ich finde die Grundidee, Open Source vor Ausbeutung durch große Konzerne zu schützen, gar nicht schlecht. Mit Kommunismus hat das btw alles gar nichts zu tun…

    Naja, ich bin jetzt im Urlaub.
    læng

    Wo lebst Du denn? Stimmt schon, schrecklich schrecklich, wie die ganze nicht-GPL Open Source Software (i.e. BSD, Public Domain, ...) von "grossen Konzernen" ausgebeutet wird.....

    Und Du selber spricht schon von der "Ausbeutung" durch "grosse Konzerne" und behauptest, das hat nichts mit Kommunismus zu tun? Es ist doch Fakt, dass mit GPL Software kaum ein /Entwickler/ vernünftig Geld verdienen kann, von wenigen Spezialfällen einmal abgesehen (die dann komischerweise immer "grosse Konzerne" involvieren, die fettes Geld mit OpenSource Software machen). Traumwelten, und zwar auch noch verlogene.

    Aber einen schönen Urlaub wünsch ich Dir, bräuchte ich auch mal!
    C++
  • Original von booster
    Um Libs zu erzeugen gegen die auch, in den Augen der GPL Erfinder unfreie, Software gelinkt werden kann gibts die LGPL. Wenn ein Author einer Library diese nicht verwendet, dann möchte er scheinbar nicht dass jemand Nicht-GPL-Software gegen seine Software linkt. Das Recht dazu hat er, egal was ich, du oder andere davon halten.

    Sicherlich. Aber nichts davon zu halten steht mir ja genauso frei.

    Original von booster
    Ein anderer Grund warum viele ältere Libs nicht die LGPL verwenden ist nach meiner Vermutung der, dass diese nicht ganz so alt wie die ursprüngliche GPL ist. Möglicherweise kommt die Ausnahmeklausel auch daher.

    ja, iirc ist die LGPL wesentlich jünger. Aus der erschreckende Erkenntnis, dass mit der reinen GPL weiterhin nur fünf kleine Finnen solch "freie Software" verwenden würden, musste man schnell mal nachbessern. Etwas überarbeitet kam dann wohl die LGPL raus.
    C++
  • Original von zermelo
    1. GNU GPL ist für mich nicht "frei".

    Du kannst natürlich Worte verwenden, wie Du willst - im allgemeinen Sprachgebrauch wird GPL-Software jedoch als Freie Software bezeichnet.
    Original von zermelo
    2. Ich werde gezwungen, schon wenn ich gegen libc, libstdc++ etc. linke zumindest mich mit der Thematik zu beschäftigen. Das ganze bleiben zu lassen ist nicht so einfach.

    Genau! Wie überall, wo ich fremde Werke nutzen will. Gezwungen wird niemand - wer es nicht will, lässt es halt bleiben. Dass das nicht so einfach ist, kann man nicht den Autoren libc anlasten. Wenn ich die MS-EULA nicht mag, darf ich auch kein Word verwenden. Dass man dann nur wenige Alternativen hat, schert MS herzlich wenig.
    [/quote]
    Original von zermelo
    3. Viele Leute kennen die GPL nur ungenügend. Bei dem ganzen Lizenz-wirr-warr wird sich m.E. oft vorschnell für die GPL entschieden, ohne die Konsequenzen zu beachten.

    Zum Beispiel? Woher weißt Du, dass die "vielen Leute" sich aus Unwissenheit für die GPL entschieden haben und nicht nach gründlichen Abwägungen?
    Original von zermelo
    GPL ist für mich eher soetwas wie eine provokante Qual: "Schau, was wir schon alles tolles Gemacht haben! Aber Du musst alles nochmal selber machen, schliesslich willst du ja Geld verdienen. Geld ist böse!".

    Mir ist nicht bekannt, dass die FSF Geld böse findet. Im Gegenteil erläutern die Menschen dort Möglichkeiten, mit freier Software Geld zu verdienen - z.B. sie zu verkaufen.
    Original von zermelo
    OpenSource ergibt für mich genau dort Sinn, wo ich freie und unabhängige Teile in meiner eigenen, nicht-offenen Software verwenden kann, so dass ich eventuelle Fehler oder Verbesserungen wieder der Allgemeinheit zurückgebe, aber in meinem KAPITALISTISCHEN (oder was auch immer) Treiben nicht diktiert werde.

    Eher "oder was auch immer". Die GPL hat primär nichts mit Antikapitalismus zu tun. Dass einige FS-Verfechter auch politische Ziele haben, ist eine andere Sache. Das Copyleft der GPL garantiert den Nutzern gewisse Mindestrechte - wer die nicht gewähren will, ist halt raus. Das blöde oder weltfremd zu finden ist eines jeden gutes Recht, ändern wird das allerdings nichts.
    Original von zermelo
    4. Der Eigentliche Punkt, der mich ja aufregt ist, festzustellen wie Weltfremd es tatsächlich ist, eine Lib unter die GPL zu stellen, und damit sie auch nur irgendein nicht Kommunist verwenden kann schnell doch noch so eine "Ausnahme" reinzukleistern.

    Ich kann da kein Kleistern erkennen - in welcher Geschwindigkeit auch immer. Die Autoren der Bibliotheken können in ihre Lizenzen reinschreiben was sie wollen. Du willst den glibc-Machern wirklich einen Strick daraus drehen, dass sie freundlich sind?

    Und die GPL schreibt kein Parteibuch vor - Kommunismus ist etwas anderes.

    Ich würde Dir empfehlen, auf der FSF- und GNU-Site die Grundsatz- und Einführungstexte zu lesen. Man muss ja nicht einer Meinung mit ihnen sein, aber Attribute wie dumm oder weltfremd sind schlicht unzutreffend. Das Konzept ist gut durchdacht und ist, entgegen Deiner Andeutung, in erheblichem Umfang verbreitet - privat und kommerziell, in großen und kleinen Firmen. Und an verschiedensten Stellen auch profitabel.
    Multigrad - 360°-Produktfotografie für den Mac