Flexible Option: Start with Apache License; If Required, Move to GPL Later On

Last Updated on November 29th 2011

Edited mail exchange with ASL (Apache License) Friend in response to “Is GPLv3 the Best Choice License for Most Inclusive Social Coding?”: https://ravisiyer.wordpress.com/2011/11/26/is-gplv3-the-best-choice-license-for-most-inclusive-social-coding/ post, is given below. [Update: The post was modified slightly, including its title, later on.]

ASL Friend wrote: Wow, you’re really doing a thorough job with this 🙂 I read the 4/5 blog posts about this.

Ravi responded: 🙂 I am being forced to learn.

ASL Friend wrote: I disagree with the patent stuff being an argument for GPL — Apache license also protects against patent lawsuits.

Ravi responded: Noted your view.

ASL Friend wrote: As for compatibility, you’re right that GPL-licensing your software lets you use the maximum amount of libraries in your software. Note that if you use Apache, you can still use libraries that are MIT/BSD-licensed, Apache-licensed and LGPL-licensed.

Ravi responded: See http://osrc.blackducksoftware.com/data/licenses/  which lists GPL 2 & 3 to account for nearly 50% of the FOSS that it tracks. So if one uses ASL then you get cut out of a big chunk of FOSS.

ASL Friend responded: Good to get hard numbers. However, the relevant number is that of libraries rather than apps like, say, Firefox.

Ravi responded: Libraries for sure. But if I find some code which I would like to re-use but is in an app. like Firefox, I guess I should be able to do it as the license may allow for part-re-use and part-re-distribution as well (don’t know for sure).

ASL Friend responded: Interesting; yes.

I used to try to re-use available company code partially or fully quite extensively during my commercial career days. As I get into software development again I would like to have that option but this time with the Open Source software out there. For example if I need to do some parsing of HTTP requests, I may want to check how Firefox does it, and if I like its code (just this part), I would like to copy-paste and modify it to suit my needs. Other potential contributors may have similar thoughts.

ASL Friend responded: I don’t have numbers, but I thought a lot of libraries are at least LGPL-licensed for this reason. There’s tons of unencumbered software (Apache, Android, Python, FreeBSD, Google Chrome), etc, so I do think you’ll be able to get enough libraries.

Ravi responded: Very valuable input as it is from current experience. Noted it.

ASL Friend wrote: As for ideology, I think it cuts both ways — I’d rather work on an Apache/BSD project than GPL (to say nothing of GPL3), because as I said, I want everyone to use my work, so if you use GPL, that’s less of a reason for me to contribute to it.

Ravi responded: Noted. However GPL seems to have the numbers (in people-terms) & track-record behind it. So, as of now at least, potential loss (in terms of numbers) of license-ideologue contributors would be more if I go with ASL instead of GPL.

ASL Friend wrote: I think the flexible option is the following:
1. Start with ASL (Apache License). That gives you the maximum flexibility in terms of people using your code to help society in various ways. It’s unlikely, but still possible, for a company to build something using it.

Ravi responded: Valid point.

ASL Friend wrote: Similarly, a GPL advocate can fork your code into a GPL version and take it forward from there.

Ravi responded: Well, forking implies the person starts off a “competing” software, isn’t it? I mean, he does not team up with existing contributors and add to the pool. So forking may be something that is best avoided.

ASL Friend responded: Agreed. I was just trying to say that forking is not ideal, having someone fork your code and take it forward is better than ignoring it. I was just trying to say that if a person who feels strongly about GPL comes across an ASL-licensed project that he thinks is valuable but doesn’t like the license, he at least has the option to fork it into a GPL project and work on it, whereas that option isn’t there with a GPL-licensed project. This is a minor point; feel free to ignore it.

Ravi responded: Your point is valid and noted. Thanks for confirming my understanding of forking.

ASL Friend wrote: Why rule out all these possibilities by going with GPL on day one?

Ravi responded: You may not agree with the views presented here but I found it to be a quite valuable point of view: Make Your Open Source Software GPL-Compatible. Or Else: http://www.dwheeler.com/essays/gpl-compatible.html. Note that I understand that the article recommends GPL-compatible licenses which sort-of includes ASL (not compatible with GPLv2 but compatible with GPLv3). But going GPL seems to be such a safe & trusted option among the FOSS community that I get the feeling that I can’t go badly wrong by going GPL.

ASL Friend wrote: 2. If and when you come across a library that’s GPL (not LGPL, which is compatible, as I said), for which no equivalent ASL-compatible library exists, then you can weigh the pros and cons and switch to GPL, which is trivial (the opposite is hard and requires you to get all contributors’ agreement).

Ravi responded: Are you sure? I get the impression that even license switch from ASL (Apache License) to GPL will need approval from all contributors – just like the case of license switch from GPL to ASL. Yes, it seems to me that for contributed code as against contributors, ASL contributed code can continue to be used if license is switched from ASL to GPL, whereas GPL contributed code will have to be replaced if license is switched from GPL to ASL.

ASL Friend responded: I could be wrong, but since ASL is compatible with GPL3, I thought anyone has the right to convert ASL code into GPL (or make changes and not release them, etc). Basically, it’s not a copyleft license. However, this needs to be validated before you go with it.

Ravi responded: My take on it is that yes ASL code can be taken into a GPL product – no issues there. But if 5 persons contribute to a software project which is using ASL license, then assuming these 5 persons continue to contribute to a future release where the license is to be changed to GPL then decency would demand that all these 5 persons’ agreement be taken. Somebody might not agree and that would create friction in the team.

ASL Friend responded: Agreed, again. I was looking at only the legal angle.

It is to avoid such potential friction in any contributor team that gets formed in raviiyer.org that I would like to avoid changing the license mid-stream. The ideal situation may be to stick to one license for considerable length of time. And so I want to think through this license choice quite carefully.

ASL Friend responded: In any case, since you seem to have made your decision, that’s fine by me 🙂 Let’s not go down the license rathole too much unless you think it’s useful.

Ravi responded: The input you have provided has been VITAL for me being able to make some sort of informed decision. Some times one takes decisions which are proved wrong in hindsight. That’s OK by me if at the time the decision was taken it was done with reasonable information. So, I repeat this information you are providing is VITAL for me.

And I have not yet finalized the decision. It’s a tough one – more contributor/existing code inclusiveness & popularity of GPL vs. ASL being more inclusive in potential re-users of the software. But so far, based on the information gathered from you & other friends, and some browsing, GPL seems to be more appropriate for my needs. But I am open to criticism of this line of thinking.

What I think I need to do is carefully analyze possibility of proprietary software re-using raviiyer.org software. As I am typing these words I am realizing that I have not thought enough about it. Plan to do some serious thinking on it.

ASL Friend wrote: So, I’d suggest you keep your options open and not spend even more time on this matter.

Ravi responded: That is what I had felt earlier. But now I feel I must think it through now itself. raviiyer.org  ideally should eventually play a FOSS for Indian rural society collaborative coding/social coding enabler role. So making it acceptable to most FOSS contributors is VITAL.

It is not an issue of how to quickly develop some particular software like “Spoken English App.”. It is an issue of how to enable & encourage more software developers to participate & get joy from service to rural society social coding efforts.

From this point of view I think GPL is the safest bet.

ASL Friend wrote: Have you thought about SCM? The powerful option these days are the distributed version control systems, like Git and Mercurial. I’ve spent some time reading about these, and the bottom line is: if you or one of the contributors is going to use Windows, use Mercurial, since that works better on Windows. If not, use git, since that has the bigger community and some things are easier (for example, renaming a file in git does not require you to tell git that you’re renaming it — you can rename it normally and git figures it out, whereas mercurial requires you to run the “hg rename” command).

Again, don’t spend too much time on this. Just pick one of these two.

Next is hosting — if you’re using git, go with github or (second option) Google Code. github has a very active community. If you’re using mercurial, go with google Code. I don’t know of any other popular/big name hosting providers.

Ravi responded: I had not thought about SCM (Source Code Management, I presume) or hosting. Thank you so much for your thoughts. I am a newbie here too (I mean I know SCM of a decade back but not the new Internet based SCM) – poor me, am I being forced to learn tons of stuff :). But I think this is a bridge I can cross a little later. I mean, I can look at it once many code contributors come into play and SCM & hosting becomes a necessity.

ASL Friend responded: I thought you need to have a project that people can check out and build, in order to attract contributors, rather than just a statement of intent.

Ravi responded: I feel that SCM & hosting can be a demand-driven decision. I mean if another serious person joins in and then we face problems due to lack of SCM & hosting, that’s the time we get into it. It does not seem to be a very divisive and complex issue like choosing the FOSS license under which any software will be released.

ASL Friend responded: Agreed. It’s just infrastructure.

Ravi responded: For licensing I think I have got a fair idea now and can arrive at a decision shortly.

Ravi responded to the whole mail response: Thank you very much for your valuable input. I mean it – this is like a minefield, man.

This entry was posted in FOSS Licensing. Bookmark the permalink.