This post is the second in the series developing against third party software. First, assume that your software developement project is at a point where you have to decide to use third party software for the first time. (Since each foreign license imposes some restrictions on your project, adding extra third party software has to be dealt with separately.) If you’re lucky, you can choose between several products that solve your programming problem. Aside the evaluation, which product suites your needs best, you should also take their license into account. And, believe it or not, there is no such thing as a license free software! (I won’t comment on the “ethical” pros and cons of any licensing scheme and just point out which implications the licenses have on your project.) The license scheme that imposes the least restrictions to the programmer probably is everything BSD-derived. You can do anything with the software as long as you honor (=mention) the originator in your on work. At the other end is the GPL scheme, which has a, for commercial developers, feared “viral” quality. This means, that each modified version of such a product has to be licensed under GPL again. But there is also a less strict version called LGPL which is used for most GPL libraries, in order to allow developers to link again GPL software without imposing any licensing restrictions. The scope of commercial licenses is usually negotiable with the only limitation on what you can afford to pay. The non-negotiable core is usually the re-licensing without royalties to the original author and the disclosure of the inner workings of the software. Now to the hard question (to everyone without a degree from a law school): which licenses can be mangled and how? The answer is: it depends. And ask your lawyer! But to give you some ideas, here are some obvious cases. Using products under BSD licenses or anything less restrictive usually doesn’t change anything. You have to be very careful, giving away source code of your own work if you have commercial licensed software in your project. The best way is to seal your code off from the third party code. This also has the benefit of being independent of this source. Later you can switch (or even better: you can allow your customers to switch) to another vendor. You don’t have to think much about using software under GPL if it won’t leave your production environment. So, enough dry theory, back to fun, back to coding!