Viral software on business, open-source, GPL and 'freedom'

An article, posted almost 13 years ago filed in business, programming, software, freedom, legal, richard stallman, mit, open-source, gpl, creative commons, license, lgpl & licenses.

When you are in the business of creating software you’ll have to know that not all software and business models allow for what you’ve probably done before you were making money in this field, basically copy & pasting & reusing software from all over the web. When you’re working professionally you might be confronted with the fact that not all open-source libraries are as free, as in libre (or as in anarchy) as you would like them to be.

(btw I’m not a lawyer, but I do understand language and code)

Richard Stallman; License: Creative Commons Attribution-Share Alike Some rights reserved by jeanbaptisteparis

The famous GPL requires you to license your derivative works with the same GPL as well. Not only your modifications to the library you are using need to be open-sourced, but also the code that you wrote using that other project as a library without which your project wouldn’t work.

What makes something deeply integrated? This is somewhat a grey area, but as a rule of thumb this is the case when your program can’t work/compile without it. Having it part of your Gemlist or ANT-file probably suggests it can’t work without. Allowing for some configuration file that refers to a GPL binary and understands its publicly exposed interface, however, is not a deeply integrated link1.

You would just hate Richard Stallman for this complexity, wouldn’t you? Why on earth is not everyone just using the BSD/MIT license (which allows you to do just whatever you want to do), or at least the LGPL license which allows you to use it as a library without virally infecting your own product (which the boss doesn’t want to open-source as that would be giving away our core business)? C’mon, isn’t this open-source thing about sharing?

Think again. You are using the library because it is useful, and someone has invested time to write this unique and useful piece of software. Instead of choosing GPL the author could have chosen to ask money for it and distribute it in a binary format only - a format which can’t be read by a programmer’s eye. Not allowing for creative reuse. Not allowing you to experiment with new concepts. Not encouraging further growth of the open source community. Not even allowing you to learn how to set up a certain type of software. Instead he chose GPL, saying essentially that in a fair world we all share. Leeching those open-source library programmers with your closed source money machines isn’t fair play. Not because someone makes money, and the other doesn’t (open-source isn’t about money), but because this particular programmer, or group of programmers, thought it would be more fair if everyone would share their products in a similar way when they adapt, adopt and benefit from it.

Is opening up a too high price to pay? Go elsewhere and pay, continue to search for a more free option and go with that, try to contact the authors and find out another way to use their software, but why not rethink your business model?2 Why would you mould your product in such a way that it becomes inaccessible to scholars, just like you once were? There is more than one way to make money. And consider the advantage that being open-source may mean to your (paying) customers: it means that they can trust your solution and move elsewhere if they want to - no vendor lock-in (probably one of the reasons why you are so fond of open-source in the first place). Which means hard work for you as a business developer in serving the customer well. But that is fair, right? If not, go out and check out that other one business opportunity in the infinite space of opportunities.

Image by jeanbaptisteparis under a creative commons share alike license; you may hence reuse this image, and this article under the same license.

1 By the way: if you're developing websites/applications you shouldn't have to worry too much about GPL if you don't want to opensource: the [GPL demands access to the source code only for the actual users of the software](https://www.drupal.org/licensing/faq/). But the software the users of your website/application are actually using is software *generated* by the GPL'ed code (HTML, CSS, JS); this generated code is *not infected* by the GPL-license. In other words: you don't have to make the code public. Some authors of open source software do feel that also the users of your webapplication should have access to the full code and all modifications though. For this reason the FSF now also maintains the AGPL license. If a AGPL license is used all your users should be allowed to download all code that is based on the tightly integrated AGPL library.

2Although maybe not entirely fair to the makers who published their work under an (A)GPL license: you could work around it by creating a 'public interface' (for example a RESTful interface) to the (A)GPL library to prevent further infection. This public interface should be (A)GPL licensed module. Everything that connects to it can connect to it savely since there is no deep linking and the software on which your private software relies can (in theory) easily be replaced by something else.

Op de hoogte blijven?

Maandelijks maak ik een selectie artikelen en zorg ik voor wat extra context bij de meer technische stukken. Schrijf je hieronder in:

Mailfrequentie = 1x per maand. Je privacy wordt serieus genomen: de mailinglijst bestaat alleen op onze servers.