Open Source Isn't Enough Freedom For Software

Posted by JD 02/16/2011 at 23:00

If you are in IT, you hear Open Source SoftwareOSS – all the time. This is better than Closed Source_, but alone it still doesn’t mean you can modify the code or install it on 2,000 machines for no added costs. Wikipedia article on Free Software Licenseslicence .

Terms like

  • OSS – Open Source Software
  • FOSS – Free Open Source Software
  • FLOSS – Free Libre Open Source Software

have vastly different meaning today.

10 yrs ago, OSS was enough. Then commercial software started being released with the source code, but still contained the same proprietary restrictions. Many companies had source code licenses to C++ libraries from Rogue Wave Software. We could see how everything was implemented, but were not allowed to modify the code or the libraries to our needs. Often OSS is still commercial and requires payment for use.

FOSS goes another step. It adds free, as in cost, to the software. You can use it for free and you can have the code, but you may be restricted from modifying, distributing, or the number of systems where you run it. Lots of newer open core software projects use this loophole. They advertise FOSS everywhere, but retain significant restrictions.

FLOSS adds Libre, the Spanish term for Freedom to the discussion. This is what I prefer my software. Zero, or very low, cost. You are free to modify (or pay someone else to modify it). You have the source code and you can give it away and/or run it on 2,000 machines without any cost.

There are lots of different Open Source License Agreements for software. I’m not a lawyer, but I have read most of the agreements and think that I understand them. Always read the agreement and/or get legal advice on each license agreement yourself.

Summary of Popular Software License Agreements

Here are my summaries for the Top OSS licenses.

  • BSD – you are free to use the software in any way, provided you give credit to those that came before. Copyrights must remain intact. You can use the code in commercial products. You can modify the code, give it away or sell it. You do not need to provide the source code with your product. Apple Macintosh OS-X is an example of a commercial product based on BSD licensed code.
  • MIT – similar to BSD.
  • GPL – you can use the software for commercial products, but you must make the source code and build scripts available to everyone. Any changes to the code that are used outside your company, i.e. published, must be provided to everyone under the same GPL terms. Other users must be able to build the software with what you release. The code cannot be linked to other tools that are not also GPL licensed (or very similar). That usually kills commercial software use with this license. This is often called a viral software license because it forces any code that is linked to also be GPL, like a virus.
  • LGPL – you can use the software for commercial products, but you must make the source code and build scripts available to everyone. Any changes to the code that are used outside your company, i.e. published, must be provided to everyone under the same license terms. Other users must be able to build the software with what you release. LGPL is usually how code libraries are released because you can link to proprietary code without forcing that other code to be GPL or LGPL too. The key element of this license is for any code that links to it must allow the LGPL parts to be replaced with newer versions by the end users. For example, program A is proprietary and links to LGPL library libffmpeg.dll (version 1.1). That is fine. When libffmpeg.dll version 1.2 is released, all the end users must be able (not necessarily capable) to replace the older libffmpeg.dll with the newer version in a rebuilt program A. If that cannot happen, then the product is violating the LGPL license.
  • Apache – similar to BSD. Commercial use friendly.
  • Artistic License – Similar to BSD. Perl uses this license.
  • Affero or AGPL – This license closes a loophole used by web service providers (webapps) who do not distribute their software after internal modification and vast use under the GPL. The Affero license forces any changes to be released publicly even if the code it not distributed and the code must be AGPL licensed too. This is the most restrictive from a business perspective, but probably the best for end users and non-commercial users.
  • Public Domain – This license is problematic in jurisdictions around the world. Should be avoided.

Least Restrictive Order – Business View

  1. BSD
  2. MIT
  3. Artistic
  4. Apache
  5. LGPL
  6. GPL
  7. Affero / AGPL

Because I’m not a lawyer, I really can’t tell which if the first 4 (BSD/MIT/Artistic/Apache) are the best for a company. To me, they appear very similar and only require copyright recognition in derivative works. The LGPL, GPL and AGPL are definitely in the correct order since more restrictions are added with each.

I’ve been in a company that was using some fairly tiny software released by a college student as Public Domain software. On the surface, that seemed like the least restrictive way to release the code. Then our corporate lawyers looked at it with recent case law and determined that was not sufficient to allow us to use it. I contacted the author who gave the code to the FSF . On first look, this seemed great. RMS initially said that the GPL would be used for the code. That was completely unacceptable to the 20+ companies working together to improve it. Further, because of the nature of this code, it was nearly useless without 3rd party libraries to link to it. Some were GPL, LGPL, but most were proprietary licensed code from big corporations like Oracle, IBM, Ingres, and Sybase. We filled RMS’s email with arguments for the LGPL and after a few weeks, he understood the nature of the tool. The license was changed to LGPL. That worked for us. Here’s that project today http://www.unixodbc.org/ still using the LGPL. I could be confusing unixODBC with the FreeODBC or the iODBC project. It was many years ago and a few jobs ago too.

As an end user, I prefer the software licenses to be in the reverse order listed above. I want as much freedom for the software to be used, improved and released around the world as possible.

Some Great Things Happened Because of This Stuff

Oracle decided to alter the OpenOffice suite of apps in a way that many of the developers didn’t like. Because the code was released under a FLOSS license. those other people forked the code into Libre-Office project and are taking it in a different direction than the managers at Oracle have decided. I’m very thank full for this, since the Libre Office project is actively working to improve compatibility with the latest tricky versions of MS-Office files.

Without these FLOSS software licenses, many small software projects like MySQL, Apache, Linux and FireFox would never have become possible. There are tens of thousands of these FLOSS software projects around the world built by companies and individuals together for the benefit of everyone involved. If you’ve ever seen Wikipedia and understand how each article is created and maintained over time by people all over the world spending 15 minutes at a time improving the article. Wikipedia is just like FLOSS software. In fact, Wikipedia runs on MediaWiki software which is GPL licensed. I run a copy of the same MediaWiki software here – thanks to the GPL. Without that licensing, I’d have no place to keep notes with a FLOSS tool that has been tested and proven stable by billions of uses from around the world.

Should I mention Linux? Almost everything on the internet uses Linux these days. Even if you only have Microsoft proprietary software on your computer, it is very likely that the networking equipment there is running Linux. The equipment running at your ISP is running Linux and the web server where you are reading this is also running Linux. All thanks to the GPL.

Apple
This is part of the reason why many people dislike Apple Computer so much even though they are not doing anything against the BSD license. Apple cannot make available any GPL software inside their App-Store because they try to restrict the distribution of software. Restricting distribution is against the GPL. Rather than change the App-store conditions to allow GPL software to be redistributed, Apple chose to remove the software. That seems really nice for people running iPhones, iPod devices doesn’t it. Those folks should always pay for software and not be able to easily load FLOSS software, right?

Microsoft
At least Microsoft doesn’t actively take FOSS code and build products from it without compensating the people who created it. That seems more honest to me.

Facebook and Twitter
Imagine if these two huge companies had used code licensed under the Affero license? How would the world be different? Perhaps there would be much more competition and all of the systems would be better because of that? Would these companies never have started at all? Would the Affero license have prevented them from trying to make companies around the software?

Hypocrite?
I’ve made some software for my personal use and provided links to the binary programs on this blog.
Why don’t I release the source code for those programs? I quickly hacked together most of those tools and don’t want to support them. Sure, they work, but they work under very specific conditions on my PCs. There was one commenter who seemed really mad that I didn’t provide the source to an AHK script – rather, I just had a link to the “EXE” file. Honestly, I was embarrassed by the code. There you have it. I’m still using the .EXE file myself about 2 yrs later. That code hasn’t been touched in all this time. If you would like any code that I’ve built here and I can legally release it, I will. Just ask. To be clear, none of it was much work – definitely just a few hours at most. There are better solutions available for most of it too. Sometimes I was trapped into a particular solution due to choices made years earlier.

Summary

The next time you grab some free software, take a quick look at the license agreement – even just the frist few lines. If it isn’t one of the agreements listed above, then other people around the world probably cannot take that code and make it better for you and all of us. You are inadvertently helping to close that software from improvement.

Trackbacks

Use the following link to trackback from your own site:
https://blog.jdpfu.com/trackbacks?article_id=991