Hello, I just wanted to bring the Licensing issue back to everyone's attention. At least in part due to the recent announcements today about the recent studies about open source code and potential violations.
http://techcrunch.com/2011/03/08/potent ... -ios-apps/Also, Microsoft has come out an stated that GPL and LGPL licensed code is not permitted in the mobile 7 marketplace.
http://www.theregister.co.uk/2011/03/09 ... ic_survey/Also, Google itself explains some of the issues surrounding LGPL in Android:
http://source.android.com/source/licenses.htmlFinally I point to FSF:
http://www.gnu.org/licenses/lgpl-java.htmlI see many comments about "what I will do" and "this is what I'll do". But these actions, if not in compliance with the provisions of LGPL, will do you no good in an action for violation of license terms. So, merely stating on a website that you used andengine in your app is not sufficient and you are still in violation of license provisions. There is no "good enough", there is what the license requires and whether you meet these requirements fully or not.
The main aspects of the LGPL that make it difficult for compliance is based in how android applications are packaged and distributed. Google itself states that:
"LGPL (in simplified terms) requires either: shipping of source to the application; a written offer for source; or linking the LGPL-ed library dynamically and allowing users to manually upgrade or replace the library. Since Android software is typically shipped in the form of a static system image, complying with these requirements ends up restricting OEMs' designs. (For instance, it's difficult for a user to replace a library on read-only flash storage.)" This is a very simplified analysis of the LGPL but it serves its purpose in describing the issues. No commercial app will want to either provide source, or provide a written offer for source. SO we are left with the third option, which is dynamically replacing the library. Now, in traditional java applications this may be possible by bundling jar files and allowing replacement libraries. However, as google has stated and is evident to all here, it is not so simple to replace the andengine jar file in a compiled and distributed apk.
If we look to the LGPL itself, the section at issue is section 4:
http://www.gnu.org/licenses/lgpl-3.0.htmlSubsections a,b,c are not an issue, however, subsection d is the offending portion of code. d(1) may be possible if all andengine applications are able to externally link to a user-downloaded/installed copy of andengine, but that isn't very likely.
d(0) is the main requirement that is the the source of difficulty for LGPL and andengine.
Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.As google has itself said, this is nearly impossible to do given the structure of Android apk and distribution.
Thus, I still believe that this is of concern for Andengine's continued use and growth. I simply believe that GPL and LGPL may simply be incompatible given the distribution schemes (no possibility for compliance). Further, the GPL and LGPL were originally aimed at large corps making a lot of money off of open code. While there are large players in the mobile app market, many are independent devs attempting to make something great. Restrictive or ambiguous licensing will only harm adoption by the smaller companies/indi devs while the large devs already have budgets to roll their own or hire attorneys to navigate the licensing issues.
I agree with some others here that it would be beneficial to change the license of Andengine to an Apache-type license that allows for more flexibility and is more compatible with Android distribution.
I don't think it would change the willingness of people to communicate changes/ideas or to indicate use of andengine in their apps/games.
I also think that such a change may ATTRACT more people to Andengine allowing for more lucrative secondary markets and/or support. For example, look at some of the Cocos 2d secondary markets (src code, books, support). ibi