What is the GPL, and is it a problem for a company?

Written by Ian on Wednesday 22/08/07


Some
notes from Associate Professor Ian McLoughlin (based on my understanding, and not
providing a legal argument or any guarantees of service). E&OE.





Copyright (c) 2006 Dr I.
V. McLoughlin


 Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".





This
document deals with the GPL - the source code brother to the GFDL
which this document is released under. Both are from the FSF (Free
Software Foundation), designed to keep source free: their belief is
that all software/information should be free. Anything under the GPL
is termed copyleft. Around 66% of public software projects are
under the GPL.





One of the
major aspects of the GPL is that all derivative work must also comply
with the GPL. So if you start with some GPL code, then modify or add
to it, the resulting code must also be licensed under the GPL.





The view
of opponents





Some
companies have attacked the GPL as being some sort of viral licence.
They say it will start to spread until everything everywhere is
infected by the GPL. They say that companies will have to give their
source code away for free! They say such companies can no longer
make any money.





The view
of supporters





Software
wants to be free! The only time you are forced to use a GPL licence
is when you start off by copying GPL code which you then modify. You
have a choice...





In any event
you can still sell the software. Licenses such as microsoft's are
even more restrictive - they absolutely prohibit you to sell or
even give away code derived from their software.





Derivative
code





This is not
a legal term, but it has been tested in court, and enforced in
law... However some questions remain, but there is a consensus legal
view on those. Let's look at some alternative scenarios to see how it
might work:





1. You
download a big GPL program from Sourceforge, make some changes and
then sell copies online.


This is
perfectly OK, but the source code of the programs you are selling are
GPL. If a user requests access to the source code you must grant that
in a reasonable way... if they then make a few changes and start to
sell your program, it is also allowed.


ALIGN=JUSTIFY STYLE="margin-bottom: 0cm">


2. You write
a complex piece of code and include a printf() function from the GPL
licensed library


If you
compile as static (the --static flag) then the linker will copy the
printf() from the library into your code, and your code will become a
derivative work. Either compile dynamically (which is the default) or
use a non-GPL library instead (there are several).





3. You are
working in a team on a large software project that will make millions
of dollars for your startup company. Later you find that one of the
junior members downloaded some GPL'd example code, modified it, and
included it into your software.


Your
software will be covered by the GPL. The solution is to rewrite that
piece of code.





4. You have
an NDA with microsoft to view some of their source code. One of your
team members copies a few lines of this and incorporates it into your
program.


microsoft
might never find out, but you most likely have broken the law -
ignorance is no defence. Goodbye startup.














5. We didn't
realise this before, but it seems our software needs to be GPL
licensed since we incorporated some GPL examples in the code. How can
we make money from this now?


There are
many options:



  1. Follow
    the many open source companies who seem to make $billions from GPL
    software.


  2. Sell
    a package consisting of the free software plus a service contract.
    Do not give a breakdown of costs...


  3. Sell
    a package consisting of the free software but charge $20 for the CD
    and box.


  4. Split
    your code into a GPL part and a non-GPL part. Place all your trade
    secrets into the non-GPL part.


  5. Keep
    your code GPL but distribute a binary-only non-GPL shared object
    library which is necessary to operate the code






6. You are
doing a major project in-house using GPL code. Can your competitor
demand access to your source code?


No. You
only have to provide source code to people you sell (or give away)
your software to. But note that they can themselves distribute this.