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