Hari's Corner

Humour, comics, tech, law, software, reviews, essays, articles and HOWTOs intermingled with random philosophy now and then

The GNU compiler and compiling proprietary software

Filed under: Software and Technology by Hari
Posted on Thu, Sep 17, 2009 at 20:36 IST (last updated: Thu, Sep 17, 2009 @ 21:11 IST)

Can the GNU C compiler be used to compile code that is licensed under a proprietary software license?

This question arose in a somewhat roundabout manner in a thread in the Debian user forums and the short answer is "Yes" as can be interpreted from this GPL FAQ item (you should read the entire FAQ as it clears a lot of GPL myths, by the way).

The long answer?

In my book, compiled code or object code does NOT fall into the definition of a derivative work of the tool that does the transformation. Arguing otherwise is a logical and legal absurdity and is similar to claiming that the original artwork created or modified using a software tool like the GIMP ultimately belongs to the developers who created that tool and not the user who created the artwork. Compiling is mere transformation of high-level language syntax into machine code or pseudo machine code.

My humble opinion is that even if the GPL (or for that matter any other software license) did contain a clause restricted licensing of user compiled or generated code under any particular license I believe that such a clause would not stand the scrutiny of law or indeed the principles of natural justice in a modern society. It is my firm belief that third parties have absolutely no business dictating the license mechanism or business model of anybody else's work unless their own contribution in the creative process of the created work in question is direct and significant. Merely using a third party tool to apply transformation to an already created work cannot grant rights to the third party with regard to the product thus created. A carpenter's creation does not belong to the manufacturer of the chisel or the saw or indeed the supplier of the wood. Similarly a programmer's code cannot belong either to the creators of the programming language or to the creators of the tools that transforms the code into an executable object.

The corollary is that while nobody can force you to license your own code under any particular license, they CAN legally prohibit you from using their code in your creations/programs, either in modified or unmodified form.

The GPL license makes this very clear. You have two choices in that case: either release your own software under a GPL-compatible license or stop using the GPL code.

This is why the LGPL and other unrestrictive licenses like the BSD license exist: to provide a mechanism which allows other programmers to benefit from Free Software without having to pass it forward. Whether it's socially or morally acceptable, the legal position is quite clear: nothing prevents you from licensing your code the way you want it and that includes a proprietary and restrictive license.

I'd like to add here that ultimately all software licenses are merely contractual in origin and can be over-ruled and struck down as invalid when it conflicts with a rule of law by a competent court. No software license (and this includes the infamous EULAs) can defeat or frustrate the provisions of law or include unfair terms that are designed to frustrate the stated object of the license and deprive the parties of their legal rights.

No comments yet

There are no comments for this article yet.

Comments closed

The blog owner has closed further commenting on this entry.