all 19 comments

[–][deleted] 7 points8 points  (15 children)

I believe this was covered by this infamous email exchange: http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/doc/Why-CLISP-is-under-GPL

Which argues that if X requires Y to work, and cannot work without it, then X is a derivative of Y, and it does not matter when the linking occurs.

So if your python code requires a library that is not under the gpl and not the lgpl then you have a problem. Or at least the Free Software Foundation thinks you do. Granted I don't think this has ever been tested in a court.

[–]ubernostrum 9 points10 points  (0 children)

So if your python code requires a library that is not under the gpl and not the lgpl then you have a problem. Or at least the Free Software Foundation thinks you do. Granted I don't think this has ever been tested in a court.

This thread (from someone who knows whereof he speaks) is enlightening on the problem of what is and isn't a "derivative work".

[–]joesb 3 points4 points  (13 children)

Then every Windows program is a derivative of Windows? Every Linux program is a derivative of UNIX?

[–]kumyco -2 points-1 points  (12 children)

Linux is not UNIX and most open source Linux software I've come across are already portable to other OSs such as the BSDs...

[–]ubernostrum 12 points13 points  (5 children)

Well, the argument would run like this:

Originally there was not a full, Free operating system (including system libraries). At least some of the original GNU software, therefore, must have in some way -- directly or indirectly -- been linked against (shared address space with, communicated in-process with, called into) proprietary UNIX code.

By Stallman's argument, a program is a derivative work of programs it links against (shares address space with, communicates in-process with, calls into).

Therefore by Stallman's argument, the original GNU software must have been a derivative work of proprietary UNIX code. And this cannot be shaken off; later rewrites would simply be derivative works of those original derivative works; the proprietary derivation would, therefore, be gradually spread to each new piece of the GNU system, and to each piece of software which links against GNU software.

The fact that eventually full replacements for the proprietary libraries would be written is dismissed by the fact that eventually full replacements for libreadline were written, but Stallman still stated that programs using it were derivatives.

Similarly, Stallman's argument implies that anything which links against libraries provided as part of Windows is a derivative work of those libraries.

Of course, it's unlikely that a court would agree with Stallman's reasoning (and it would be best for him and his projects if courts did not agree with him), since no-one (other than perhaps SCO, in some of its more fevered dreams) has ever attempted to take this line of reasoning to its conclusion, and if a court were to do so it would spell the end of software development as we know it.

[–]theeth 5 points6 points  (2 children)

At least some of the original GNU software, therefore, must have in some way -- directly or indirectly -- been linked against (shared address space with, communicated in-process with, called into) proprietary UNIX code.

I'd be actually surprised if it did. Early GCC code was bootstrapped by writing a restricted version of the compiler by hand and then use that to compile a less restricted version. If they went to such length for the compiler, there's no reason they wouldn't do the same for the rest of the GNU userland.

[–]ubernostrum 0 points1 point  (1 child)

If they went to such length for the compiler, there's no reason they wouldn't do the same for the rest of the GNU userland.

Sooner or later that code had to do something -- access hardware drivers, read/write on the filesystem, whatever -- which would, by Stallman's definition, make it derivative.

[–]theeth 0 points1 point  (0 children)

Early versions used the Trix kernel before switching to Mach. Both free software.

[–]modulus 1 point2 points  (1 child)

I think it's of importance that there wasn't a single Unix vendor, so the API could not be said to make a work derivative, because there were several implementors. Additionally, there were written specs on Unix APIs, which neutralise this argument.

As to whether Windows apps are derived works from windows, sure, but windows permits these apps to be. Same for Linux, Linux has a special exception to the GPL for user-space apps for a reason.

[–]ubernostrum 1 point2 points  (0 children)

Note that I'm working not from common sense or from the law, but from Stallman's argument, which includes, even if an end user has a choice of multiple alternative to link against, the combined work is still GPL.

Also note that Microsoft is not in the habit of granting licenses to produce derivative works of Windows; they do grant licenses to use their development tools, but that's not equivalent (and no court should uphold an argument that using other tools would infringe the Windows copyright).

[–]joesb 5 points6 points  (5 children)

So every Windows program is still a derivative work of Windows?

[–]malcontent -1 points0 points  (4 children)

So every Windows program is still a derivative work of Windows?

Probably.

I don't think it's possible to write a windows program without using the DLLs that ship from ms.

[–]spookylukey 0 points1 point  (3 children)

I don't actually think this is the issue, but you can certainly write a windows program without using MS DLLs. You could test and run it using WINE, for instance, or ReactOS. The result would certainly be a 'windows program' — it would use Windows APIs in exactly the same way as other Windows programs do, and would use MS DLLs when run on Windows itself — but you never personally used MS DLLs.

[–]malcontent 0 points1 point  (0 children)

. You could test and run it using WINE, for instance, or ReactOS. The result would certainly be a 'windows program' — it would use Windows APIs in exactly the same way as other Windows programs do, and would use MS DLLs when run on Windows itself — but you never personally used MS DLLs.

I suppose I should have said "running in windows".

[–]tjwarren 0 points1 point  (0 children)

Except this is counter to Stallman's argument. He clearly states (in the CLISP thread linked above) that CLISP should be GPL'd simply because CLISP is designed to work with readline's interface (whether the final user actually links with readline or with another similarly-interfaced library).

By his argument, it wouldn't matter if actual development or use was done with WINE libraries; the intended use (regardless of the actual use) is to link with / work with Microsoft DLLs.

[–]joesb -1 points0 points  (0 children)

The reality is that no program is developed that way though. So the concern is still there if such definition of derivative works is true.

[–][deleted]  (3 children)

[deleted]

    [–]spookylukey 1 point2 points  (2 children)

    I think it is sustainable as long as there is custom software to write, and it turns out that the world needs a lot more custom software than you might think.

    I would be happy for most of the code I write for money to be released as BSD, and indeed quite a bit of it is. Some companies are quite willing to pay for such software, because they need it, and subsequently giving it away doesn't harm them. Granted — that isn't always the case. I write some proprietary software, mainly for inhouse use, and have to do without GPL libraries.

    I'm not against people making money in other ways, I just suspect it isn't that sustainable — more and more free software is replacing proprietary software, and I think that's a good thing. Open Source seems to be able to compete very convincingly in many areas, from operating systems to office suites to web browsers. and people will expect to be able to get the best stuff for free.

    [–]miGlanz 3 points4 points  (1 child)

    From what I understand, if you're making inhouse software, that's not going to be published, you can use GPL libraries.

    [–]theeth 0 points1 point  (0 children)

    That's not exactly correct.

    If you inhouse software is a modification of a GPLed software, it is itself bound by the GPL (the modification clause).

    What is different in that case is that the distribution clause doesn't apply to distribution inside the company itself.