Re: [NTLK] Newton Programming and the GPL

From: Paul Guyot (pguyot_at_kallisys.net)
Date: Sun Nov 11 2001 - 10:19:05 EST


>Paul Guyot has reminded me politely that he thinks that using the
>GPL is illegal with the use of the NTK (Newton Toolkit) and NCT
>(Newton C Tools). Since this is a topic for very heated discussions
>and I have recently released a port of a software library to the
>Newton where the original software (MAD) and the port itself are
>licensed under the GPL, it might be useful to discuss that
>statement and bring some light to the current situation.

Eckhart asked me whether this should be posted to NTLK or not. I
think that it probably doesn't interest much folks (it does interest
me, anyway), so I asked on OSI's License-Discuss list. I'll tell you
what people say so far.
Apparently, someone said that he asked the FSF and they said that one
can release code based on PowerPlant under the GPL. I find this a
little bit weird because it's not the preferred form to make
modifications to it as you have to buy PowerPlant.

Let's say that I release a software under GPL (for example based on
MAD) and then I say, here is the code, yes, it lacks a big framework
of mine (let's say NTK platform files and NewtonInterfaceLib.o) and
you can only modify this software I released if you buy the framework
from me (which I'll provide in binary form, of course). This is
shocking because I'm talking about money, but in fact, this is
definitely not even open source (if the FSF says it's ok, I'll ask
the OSI to reconsider their approval on the GPL :)

>The GPL serves as a means to regulate the distribution of software,
>both in binary and source form. It also regulates the possibilites
>for modification of software which is licensed under the GPL. If
>the GPL holds in court has to my knowledge not been established
>yet, so it is a bit early to make statements about the legality and
>illegality of actions. To argue about the applicability of the GPL
>and potential conflicts, one has to differentiate between an
>original release where the author or authors have full rights of
>authorship and ownership and an adoption or modification of
>software licensed under the GPL (i.e. derived work).

You're right. But until a court rules about it, it's up to us to
discuss our own interpretations of the thing. And as the GPL is a
contract between developers, the FSF's interpretation doesn't mean
anything (behind a court, that is).

[snip] Eckhart summers up the problem, probably not stressing on the
points I would stress on, though.

>For a NewtonScript package, this is usually the platform file

Which includes scripts executed to compile (a lot of functions cannot
be used on NewtDevEnv for example, and scripts are included in what
should be provided), runtime (call kFunc with (foo, bar)) and
interface parts (any constant is linked with a magic pointer, I'm not
sure this is in the documentation or in the ROM, so you can rebuild
this list by guessing only (and it's also available in NDE and
ViewFrame, at least partially).

>for C/C++ packages, this would be the NewtonInterfaceLib.o (I don't want to
>cover driver development at this point, mostly due to lack of
>knowledge on my part).

FYI, NewtonInterfaceLib.o includes vectors to functions (which you
can't guess otherwise), i.e. two lines functions calling the function
in ROM via the patchable jumptable, but this could be taken as a
format for shared libraries, and runtime (actual functions).

>Note that this does not cover the compiler
>itself since it is not part of the program. It is merely used to
>create a binary executable.

Not sure of that. Without the compiler you can't compile anything.
What's the difference with the framework binary in the example I
gave? (according to the GPL, of course)

>I argue at the point that these files are not subject to the GPL
>obligation to be distributed in source code form alongside the
>original program or derived work. The reason for this is that they
>are distributed with their respective compilers and not part of a
>third-party application. One possible objection to this is that the
>compiler is not distributed with the operating system. To counter
>that point: the GPL merely states that the files subject to the
>distribution exception have to be distributed with the major
>components of the operating system, not with the operating system
>itself. Now a second objection can be made: The compiler has
>traditionally only under Unix-like operating systems been a major
>component of the operating system and it is not a major component
>of the Newton OS. The counterpoint: First, it is not a given that a
>compiler for an operating system has to run under the operating
>system, an the GPL does make any assumption in that respect.
>Second, a compiler is indeed a major part of an operating system.
>If there would be no NTK, nobody would be able to develop
>applications for the Newton OS. If nobody would be able to create
>applications, then the whole point of having an operating system is
>moot, except for those systems that are not meant to run
>applications developed by third parties. And the NTK is the
>starting point for any development in NewtonScript, as are the NCT
>for development in C/C++.

Er. Sorry, but isn't my library a major component of the operating system?
Is NDE a major component of the operating system?

Also, there is a compiler in the ROM (for NewtonScript), with the
compile function. My point is that if you want to write GPL probrams,
you have to use it. You can also do native functions with StuffByte.

NCT is definitely not a major component of the operating system. It's
a software used to write the system by Apple which was more or less
released to develop native functions. It is not available on Apple's
FTP and I think it was never made free.

>On the philosophical level, one has to examine the goals of the
>GPL.

Offer a license to rewrite a complete Unix system including every
proprietary tool running on it and improve them if possible. The GPL
has nothing to do with NewtonOS. For example, RMS's gcc doesn't
compile code suitable for NewtonOS (as its C++ runtime model is much
different from ARM's and NewtonOS uses virtual functions) and it
produces code twice as slow with maximum optimization. Either they
failed (but look at Linux) or NewtonOS has nothing to do with the GNU
project.

>Specifically, the preamble says that: "Our General Public
>Licenses are designed to make sure that you have the freedom to
>distribute copies of free software (and charge for this service if
>you wish), that you receive source code or can get it if you want
>it, that you can change the software or use pieces of it in new
>free programs; and that you know you can do these things."

Sure, but it was written with that point of view and therefore it's
useless with NewtonOS.

>Coming back to the current situation: The only conflict I see is
>that MAD Newton is linked against or uses two files that are not
>licensed under the GPL: NewtonInterfacesLib.o and the platform
>file. The discussion would then have to be between me and Robert
>Leslie as the author of the original software. Although I have
>argued out that this not a conflict, I am sure that Robert would
>have absolutely no problems granting a license that "permits
>redistribution of MAD and MAD Newton without providing the source
>code for the object file 'NewtonInterfaceLib.o' and the file
>'Newton 2.0 Defs' as contained in the latest version of the Newton
>C Tools and the Newton Toolkit." But I don't see this as necessary
>and won't bother Robert with this unless he objects. I fully
>respect other developer's choices of the licenses they choose, as I
>expect that same respect from others. Besides that, I myself am
>pretty pragmatic regarding software licensing and like to use the
>best tool for the job.

I think that (a) indeed you need authorization to link it and (b) you
need authorization to use the NTK and the NCT (will you provide
scripts that are the basis of NCT? - the GPL talks about scripts,
though).

> Oh, this old chestnut again. For anyone who's interested, I posted this
>question to MacSlash a while ago, here:
>http://www.macslash.com/article.pl?sid=01/10/04/1333218&mode=thread

Thanks Jim. One can read Sean's post relating what he did with Waba.

Paul

-- 
Home page: http://www.kallisys.com/
Newton-powered WebServer: http://newt.dyndns.org:8080/

-- This is the Newtontalk mailinglist - http://www.newtontalk.net To unsubscribe or manage: visit the above link or mailto:newtontalk-request_at_newtontalk.net?Subject=unsubscribe



This archive was generated by hypermail 2.1.2 : Sat Dec 01 2001 - 20:02:36 EST