I am creating a software package that will be useful to programmers, engineers and scientists. List price will be in the region of $1,000 — way beyond the budget of most open-source developers, hobbyists and enthusiasts. So I am considering two things, the first generous, the second maybe a little greedy:
-
Offering a free license to individual open source developers upon proof of their credentials and details of their project. Possibly also academics too.
-
Making the free license conditional on the developer granting me a commercial license to use the open source code they write in my own projects. In the academic case, it’s trickier, perhaps just a credit, a copy of papers, etc.
How would (1) and (2) be received? Are there any examples of best practice here, or good precedents I can follow?
2
Perhaps a better solution would be:
-
Give your program to qualified individuals without condition.
-
Ask them to consider returning the favor by allowing you to distribute open-source stuff that they develop for use with your product.
You’ll be dealing with people who already have a proven track record of giving away their code, so there’s a good chance that they’ll let you distribute your stuff if they like you and your product. They’ll like you and your product much more if you don’t try to impose conditions on how they choose to distribute the code they write.
In addition to Caleb’s answer
1) Will be well received, and was probably obvious as such.
2) Will possibly not be very well received. Regardless of how well it is received it will be very difficult to enforce. In addition, the code you receive may be of dubious quality. Do you really wish to invest the time reviewing garbage code that may not (okay, it won’t) fit into your standards and deal with all of the associated integration headache?
As Caleb suggests, give it away and ask them to contribute back in return. You can always offer up some sort fixed scope royalty payment if the code they offer up is useful to you. This is a case where rewarding the desired behavior will have a greater likelihood of occurrence instead of attempting to force that behavior through questionable means.
2
The problem with two is you end up with interesting overall licenses. For instance, if they use a GPL program as the basis for theirs, they won’t restrict your commercial access to it, but you would still be bound by the terms of the GPL for your access to his program.
Not to mention that would introduce odd terms that whoever contributed code would have to deal with. Saying “I am releasing this under Apache 2 terms” makes it easier to get contributors than “I am releasing it under these terms modified to allow X, Y, and Z commercial access, blah blah blah”.
4