Re: [NTLK] Newton Programming and the GPL

From: Eckhart Koeppen (eck1000_at_gmx.net)
Date: Sun Nov 11 2001 - 21:49:56 EST


On Sunday, November 11, 2001, at 07:19, Paul Guyot wrote:
> 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.

Weird perhaps, but assume that in order to make useful
modifications, you would need PowerPlant anyway. If you don't have
it, then I figure modifying code based on it would be quite
interesting.

> 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 :)

Hehe, that would indeed be interesting ;) Now back to your example:
You are right in your assumption that this would be nonsense
regarding the GPL. A comparable case was KDE and Qt where people
released GPL-licensed software based on Qt. The point there was not
that Qt costs money (which I think is only true for commercial
applications), but that Qt is not licensed under the GPL. So yes,
you cannot distribute software under the GPL and have parts of that
software which are not under the GPL.

Note however that when the framework is shipped with the compiler,
then the above situation is perfectly ok. Without the compiler, you
would not be able to do anything with the code anyway. And it does
not matter if you have to buy the compiler.

>> 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.

Yes, but the GPL does not make statements about the compiler being
freely available.

> What's the difference with the framework binary in the example I
> gave? (according to the GPL, of course)

Well, any third-party framework which is not normally shipped with
one of the major components of the OS needs to be distributed in
source form as well if you are distributing GPL-licensed software.
This is not true for the compiler.

[snipping my argumentation saying that NewtonInterfaceLib.o and the
platform files are shipped with their compilers and that a compiler
is a component of the operating system, regardless if it is shipped
with the OS or running on the OS]

> 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.

Note that the GPL makes no assumptions about the availability of
development tools for free. They are not required to be freely
available. I am speaking here of the tools which are used under
normal circumstances to develop applications for a specific OS. In
the case of the Newton, this would be definitely the NTK and also
the NCT since developing C/C++ packages for the Newton is not too
uncommon. I want to exclude from this category of tools those tools
that serve only a very specific task, for instance tools to create
Stationery or other RAD tools.

I think we can agree that (disregarding availability for free, as a
download, a product or in any other form) the NTK and NCT are the
main development tools for the Newton OS, intended to fill that
role by Apple when creating that platform.

If you now take a look at the wording of section 3, you will notice
that it contains the following statement "... the major components
(compiler, kernel, and so on) of the operating system ..." To make
this clear again: The GPL considers the or a compiler to be a major
component of the operating system. For me, this sentence and
nothing else (like assumptions about the intent, background, goals
or anything else) counts. I know that from a technical standpoint,
this sounds far fetched. But then again, it isn't. If you develop a
general purpose OS, you need some sort of development tool, which
usually is a compiler. If you take that away, the OS is worthless.
It is a major, essential component. Note also that the GPL does not
say that the compiler has to be shipped with the OS, not including
it or selling it for money does not make it less major.

Can we make the assumption that the NTK and NCT are considered
major components of the Newton OS then (in the GPL sense)? Yes. If
the GPL says that a compiler is a major part of the OS and the NTK
and NCT are the compilers of choice for Newton, then the NTK and
NCT are major components of the Newton OS, in the sense of the GPL.
They might not be technically required to run the Newton OS on a
MessagePad, but that is not what the GPL is concerned about. You
need these compilers to make the Newton OS useful.

Does this cover any compiler or development tool for the Newton? I
am not sure about that and don't want to go into that, simply
because the situation of dealing with porting GPL-licensed code
using those tools has not come up yet. But it might, since there
are tools like NewtDevEnv and NS Basic and the DDK libraries.

> 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.

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

I myself am not so sure about this interpretation of the GPL's
background and would like to hear the expressed opinion that the
GPL and FSF deliberately targets Unix-like operating systems and
deliberately disregards operating systems that are more
unconventional. In any respect, for me, the exact wording of the
GPL counts, like a contract, and I do not want to interpret
anything into it which it does not contain.

> 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).

Regarding (a): the critical part is not my linking (meaning
creating an executable package) or using the NTK or NCT but the
redistribution of MAD Newton. To (b): the files needed by somebody
else to create a binary for MAD do not include scripts that are
part of the NCT. What a developer needs are the "FilesInBuild" and
"MADNewton.exp" files, those might come close to the definition of
a script file. The script files the NCT uses come with the NCT or
are generated in the build process. What I therefore will provide
is a complete set of files somebody needs to create a binary,
installable executable, provided they have NCT and NTK installed.

I would like to sum up my main points again, using only the GPL and
known facts:

1. The GPL considers a or the compiler a major component of the
operating system.
2. Binary files and other files that are distributed with a major
component are not subject to the requirement to make their source
code available for redistribution of GPL-licensed software.
3. The NTK and NCT are the designated compilers for the Newton OS.
4. The NTK and NCT are major components of the Newton OS (concluded
from 1. and 3.)
5. The files included in the NTK and NCT which go into a software
package when building a package do not need to be provided in
source form (concluded from 2. and 4.)

Concluding, I would say that developing GPL-licensed software for
the Newton is possible as it has been possible before for other
operating sytems like MS-DOS, Solaris, NextStep and Mac OS 9. Even
Richard Stallman says so ;)

Eckhart

PS: My intention is solely to make sure that there are no obstacles
porting a great range of available, GPl-licensed software to the
Newton. The Newton platform deserves good software. And MAD Newton
just got the ability to play MP3 streams just fine :)

--
                      -- eck_at_40hz.org -- www.40hz.org --

-- 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:37 EST