Ask HN: Making source code avaliable for commercial software

7 points by olavk ↗ HN
I develop a piece of commercial software. It is free for non-commercial use.

I distribute binaries, but many users have expressed interest in having the source code available. I would like that, and think it would be great if users could modify the source and distribute changes, as long as it wouldn't undermine the commercial sales (since this is what is financing the development).

I guess this rules out a "true" OSS license, but I would prefer using an off-the-shelf license if possible.

Some have recommended a CC non-commercial license, but CC themselves discourage using their licenses for software.

Does any HN'ers have experience with this issue? Under what licenses do you distribute your sources in commercial startups?

8 comments

[ 5.2 ms ] story [ 32.7 ms ] thread
I don't know what your application does, but have you considered a plugin api?
It's a compiler. There are some extension points where a well-documented plugin-API would be a boon in any case, but users might want to modify the product on a number of levels. Even with some plugin-API's it would still be nice to be able to make the source available.
The commercial software community that grew up around the Borland (now Embarcadero) Delphi development tool is a good language. This was a component-environment. Typically pay one price for the component and a higher price for the sources. Lots of commercial products that distributed source code. Delphi itself distributes source to the entire framework. Might be a good place to look at licenses.

http://www.embarcadero.com/products/delphi

Can you release it under a dual license? GPL for open source GPL code (or perhaps a custom GPL-like license that does not allow commercial redistribution) and commercial license (with support etc) for commercial use? This is more or less how other open source based companies operate.

This means that non-commercial users get to make changes and distribute them for free and commercial users may not redistribute it.

The problem (if I understand the issues correctly) is that the GPL does not allow restrictions on use, like only allowing non-commercial use.

I understand I need some kind of dual-licensing, but I was hoping to be able to use two existing licenses, rater than creating my own. But maybe the combination of charging for the software and available source is uncommon?

As the copyright holder you can release under modified version of licenses, so you could use GPL with an additional restriction of disallowing commercial use. I guess the open soruce licenses from companies like Microsoft work something like that (except without being directly based on the GPL).

Well, the commercial license will always be something proprietary (since I'm not sure there are existing licenses you can take verbatim) and for the open source portion you basically want to give people free reign for non-commercial use, but restrict commercial use.

I'm not sure but Microsoft has a reference license of some type you probably could copy. The license restricts any modification of the code to internal use and is based upon the original source.

If you can't find anything else, this could be a good starting poing?

"Non-commercial" is apparently a huge can of worms. You could try something along the lines of "if you distribute binaries, you must do so under an OSI-approved license" (or pay for a "commercial" license, obviously). This isn't perfect (people could use your compiler to compile serverside software "for free"), but at least it's unambiguous.