I am quite new to programming and I am now creating my own program as part of my Master Thesis. My program is done in Java and uses several third-party libraries. These libraries come with different licenses, mainly:LGPL 2.1GPL 2 + GPL Linking exceptionApache version 2BSDI have actually not touched the source code of these libraries, but use them in my program and in some cases create classes that extend classes in those libraries. If I decide to make my program publicly available (probably for free) what kind of licence could I use? I have read much about license compatibility (Apache vs GPL vs whatever), derivative works discussions and I am very confused. Comments and explanations would be very helpful.
Licensing doubts
java;licensing
You are free to choose any licence you likeHere is why:Apache & BSD — these are permissive, they don't impose any limitations;LGPL 2.1 — only imposes licensing limitation on distribution of changes to the library itself;GPL 2 + GPL Linking exception — this is the tricky one. Basically GPL would mean that you have to release whole thing as GPL. However, since it has linking exception, and you do not reuse any part of source code in your source code, your code is exempt from GPL. To clarify, creating a class which extends a class imported from library is not including it's source code in your code, it's only linking to library and using it. The significant part of the exception:As a special exception, the copyright holders of this library give you  permission to link this library with independent modules to produce an  executable, regardless of the license terms of these independent  modules, and to copy and distribute the resulting executable under  terms of your choice, provided that you also meet, for each linked  independent module, the terms and conditions of the license of that  module