Basic open source software licensing

Information to get started understanding open source licensing.

What is source code?

Source code is the text file that a computer programmer uses to write a program. Source code files are processed through a program called a “compiler,” which creates object code or binaries — the machine language files that actually run on your computer. Most programming languages are written this way, including FORTRAN, C, C++ and Java. Some programs are not executed in object code; they are executed by interpreters or in markup languages where the source code is essentially executed as is. These include HTML, PERL, and most BASIC.

What is Open Source Licensing?

Here is a definition of open source.

“Open Source” is sometimes also called “free software,” but as the FSF says, think free speech, not free beer. Open source licensing means licensing of software with the source code available to licensees, so the licensees can make changes to the software. It doesn’t mean all software should be free of charge. Back in the 1970’s, most software programs were licensed in source code form, because most software was developed custom for the client. In the late 1980’s, when PCs began to be standardized, programs became standardized, too. So developers began developing non-custom, off-the shelf software. They also began distributing object code only, and keeping the source code from the user. Open source advocates want to reverse this practice, so all users have access to source code.

Why don’t licensors license source code?

Most software developers only license the object code to their programs for two reasons: (1) they do not want competitors to see how to decode their programs, and (2) they do not want licensees to modify the programs, because they are concerned about technical support problems arising from bugs introduced by “do-it-yourselfers.” On the other hand, open source advocates don’t think it’s fair to have to rely on the licensor to make all fixes and changes.

OK, so why does any developer license source code?

Some licensees have the bargaining power to demand it.

Some licensors are required to use open source licensing because they have used code they got under the GPL.

Some licensors believe free software is in the best interests of everyone.

What is GNU? Linux? The GPL? The FSF?

There is plenty of information on the Web about this. Start with www.fsf.org, the site for the Free Software Foundation. Linux is an open-source alternative to Unix — the operating system used by many large computer systems. Linux is now used as alternative to many other systems, such as Windows and embedded systems. GNU is a recursive acronym for “GNU’s Not Unix,” the name of the project under which Linux is developed and promoted. The Linux kernel is licensed under the GNU General Public License or GPL.

Are there other open source agreements beside the GPL?

Plenty! Check out Mozilla (my personal favorite), BSD, and Apache.

I don’t have to worry about the GPL do I? I’ve heard it can’t be enforced in court.

Enforceability. Most unenforceability arguments are based on the fact that the user never accepts the terms of the GPL. In other words, most people have made an argument based on lack of formation. However, “shrink wrap” and similar unsigned software license agreements are considered enforceable today. So this argument is probably not worth relying on.
Willingness to Enforce. Most GPL code (such as the Linux kernel) is owned or licensed by the FSF. The FSF has publicly expressed its willingness to enforce the GPL, and has an active informal enforcement program in place.
What about MySQL? Did that prove the GPL is enforceable? The only court case involving the GPL so far (MySQL v. NuSphre) did not involve FSF-owned code. Also, it was primarily a trademark dispute, and was decided on grounds other than the enforceability of the GPL. In any case, the NuSphere product at issue (Gemini) was statically linked to GPL code. This is a far more clear-cut case than most software companies face when making GPL compliance decisions, so a decision in that case would have left many open questions.
Business Consequences. For the GPL, the business consequences of engendering the ill will of the development community can be worse than any lawsuit.
What happens if the FSF sues me? Will I have to lay open my source code? This question can’t be answered briefly. If you want help assessing the consequences of violating the GPL, you should consult with an attorney.

Can you help my with my open source licensing questions?

Clients. If you are looking for advice particular to your situation, you may wish to seek my advice as an attorney. I have lots of experience in consulting on open source questions, and I am reasonably conversant in C++ and other languages.If you are an attorney in a more general practice, you may wish to refer clients to me to get expert advice in this area. You may find this to be an attractive alternative after you read the GPL — a very difficult agreement to analyze and interpret.

There are lots of software lawyers. Why should I call on you for my open source licensing questions?

If your software lawyer does not get this joke: #define ever (;;) s/he may not know how to analyze, say, the complexity of data sharing of inherited classes to determine whether two dynamically linked C functions must both be licensed under the GPL. (Wish I could take credit for the joke but I can’t. It was told to me by a teacher in a programming class.) Also, many lawyers use a traditional approach GPL to compliance analysis — which misses the point entirely. They read the agreement and carefully analyze its language. Usually, this is the right way to interpret a legal agreement, but the GPL is not written in traditional legal style, and analyzing the GPL is not just a legal task — it requires knowledge of programming, and knowledge of the industry.

What is open source science/research/biotech?

It’s not very precise to apply the term open source in areas other than software. Open source is about access to source code — information that enables full use of the software. Most other contexts don’t have an exact analogy. When people use terms like this, they usually either mean community-developed works or open (i.e. patent-free or RAND licensed) standards. There are even people who talk about open source yoga and religious texts! The idea of openness is a good one, but open source is probably best left to describe software.