Florian Weimer wrote:
* Hyman Rosen:
For example, the system call "write" in UNIX is described in the
C programming language as 'int write(int fd, char *buffer, int len)'
meaning that it takes three arguments - an integer representing the
output device or file to which to write, the address of a buffer
containing the data to be written, and an integer giving the number
of bytes of data to write - and returns an integer representing the
number of bytes actually written.
Now make it printf, or gettext, or __divdi3. None of them provides a
thin wrapper around some other subsystem service. I don't think there
are many UNIX-like systems which are structured that way (fat kernel
and thin userspace).
Oh, sure. But the system library exception is a bit broader to allow
for that. GPLv3 says
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
The first part of that clause is what I've described. The second part
is the weird catchall that covers the routines you talk about. As long
as there is some available source implementation (and it's not even
clear that this means freely available) of those routines, you don't
have to include the non-free library in the corresponding source.
GPLv2 said
However, as a special exception, the source code distributed need
not include anything that is normally distributed (in either source
or binary form) with the major components (compiler, kernel, and so
on) of the operating system on which the executable runs, unless
that component itself accompanies the executable.
and so covered the system libraries whether the functions they
included were thin or thick. Oh, and I finally see what you meant about
"accompany the executable". It still doesn't apply to Interix - accompany
the executable means you ship the system library along with your program
and then the program executes routines in that library when it runs. The
GCC shipped with Interix doesn't use the non-free library as part of its
execution - it links that library into executables it generates.
As I said, the whole system library thing is dodgy with respect to
the goals of free software, but it's have that or have free software
be unable to run in some environments at all.
_______________________________________________
gnu-misc-discuss mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnu-misc-discuss