Aporia GPL3

Antonis Christofides anthony at itia.ntua.gr
Wed Jan 20 15:30:49 EET 2010


Γεια σας,

έχω πήξει στα νομικά καθώς ετοιμαζόμαστε να βγάλουμε ένα software που
είναι ελεύθερο λογισμικό αλλά είναι linked με βιβλιοθήκες άλλες
ελεύθερες με εύκολα licenses, άλλες ελεύθερες με GPL, και άλλες μη
ελεύθερες αλλά οι οποίες ενδέχεται να εμπίπτουν στον ορισμό του System
Library. Για όσους έχουν χρόνο να σκοτώσουν και γουστάρουν να χακεύουν
το GPL, ένα πρόβλημα:

Υπόθεση εργασίας: Η Microsoft έχει φτιάξει μια γλώσσα προγραμματισμού,
τη N, ο Ρικούδης φτιάχνει το hello.n, και μου δίνει το source με GPL3.
Το hello.n χρησιμοποιεί τη συνάρτηση nprint για να δείξει το "hello,
world!", και η nprint είναι συνάρτηση της N standard library.  Η
Microsoft προφανώς δίνει μαζί με τον compiler και μια υλοποίηση της
standard βιβλιοθήκης, αλλά τη δίνει μόνο σε object, όχι σε source.

Εγώ τώρα, που έχω αγοράσει τον Microsoft N Compiler, κομπιλάρω το
hello.n, και προκύπτει το hello.exe (που εμπεριέχει τον κώδικα της
Microsoft για την nprint), το οποίο θέλω να δώσω στον Κεραμίδα (ο
οποίος θέλει να το τρέξει σε FreeBSD με WINE :-). Το GPL με υποχρεώνει,
εκτός από το exe, να δώσω στον Κεραμίδα και το "Corresponding Source".
Είναι η N standard library μέρος του Corresponding Source;

Από το GPL3:

    A “Standard Interface” means an interface that either is an
    official standard defined by a recognized standards body, or, in
    the case of interfaces specified for a particular programming
    language, one that is widely used among developers working in that
    language.

    The “System Libraries” of an executable work include anything,
    other than the work as a whole, that (a) is included in the normal
    form of packaging a Major Component, but which is not part of that
    Major Component, and (b) serves only to enable use of the work
    with that Major Component, or to implement a Standard Interface
    for which an implementation is available to the public in source
    code form. A “Major Component”, in this context, means a major
    essential component (kernel, window system, and so on) of the
    specific operating system (if any) on which the executable work
    runs, or a compiler used to produce the work, or an object code
    interpreter used to run it.

Αυτός ο ορισμός έχει μεγάλη σημασία γιατί τα System Libraries στη
συνέχεια του κειμένου του GPL εξαιρούνται από το "Corresponding
Source", που είναι αυτό στο οποίο κολλάει ωσάν ιός το GPL.

Στην περίπτωσή μας, Major Component είναι ο Microsoft N Compiler. Το N
standard library είναι System Library αν:

  (a) is included in the normal form of the packaging of the Microsoft
      N Compiler (που ισχύει), but is not part of the Microsoft N
      Compiler (που επίσης ισχύει), AND

  (b) serves only

        to enable use of hello.exe with the Microsoft N Compiler (δεν
        ισχύει, αυτή η πρόταση έχει νόημα στις περιπτώσεις που Major
        Component είναι τμήμα του λειτουργικού συστήματος και όχι ένας
        compiler), OR

        to implement a Standard Interface (που ισχύει) for which an
        implementation is available to the public in source code form
        (που δεν ισχύει).

Το συμπέρασμά μου είναι ότι επειδή δεν υπάρχει κάποια δημοσίως
διαθέσιμη υλοποίηση της nprint (ή γενικότερα του N standard library)
σε source code, το N standard library της Microsoft δεν είναι System
Library, και επομένως είναι μέρος του Corresponding Source, και
επομένως, εφόσον δεν μπορώ να κάνω το source του N standard library
διαθέσιμο με GPL3 (ούτε καν το έχω), δεν έχω καθόλου το δικαίωμα να
δώσω στον Κεραμίδα το hello.exe. Αλλά μου φαίνεται τραβηγμένο.
Νομίζετε πως έχω καταλάβει κάτι λάθος;

Η δεύτερη ερώτηση είναι η εξής: αν η Microsoft δίνει μαζί με το
Microsoft N Compiler και τα sources του N Standard Library, αλλά απλώς
για reference του developer, χωρίς να παραχωρήσει κανένα άλλο
δικαίωμα, τότε το N Standard library είναι "available to the public in
source code form";


More information about the Linux-greek-users mailing list