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:

  1. Offering a free license to individual open source developers upon proof of their credentials and details of their project. Possibly also academics too.

  2. 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?


3 Answers 3


Perhaps a better solution would be:

  1. Give your program to qualified individuals without condition.

  2. 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.

  • Yes, offering something extra in return for code is a great idea. Even if a token payment, a donation to charity of their choice, an iPad, etc. So they get a free copy of my software and in return I get the option to "buy" a license to their work for a nominal fee. Enforcement shouldn't be too hard: they would tell me their id on github or wherever their project is hosted. And we'd agree that I have the option to license code committed with this id for the aforementioned nominal fee.
    – paperjam
    Commented Jul 20, 2012 at 8:47
  • @paperjam - don't forget that there are situations where the hobby developers won't their extensions to your product in a place that you can see. Beyond their voluntary compliance or putting some pretty interesting call-home hooks in your program, you really have no way of knowing if they've extended or not. IMO, it's a lot of effort for very little guaranteed benefit.
    – user53019
    Commented Jul 20, 2012 at 13:58

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".

  • In the case of GPL I would ask that as well as releasing as GPL, they dual-license their code to me under a more permissive license. This would mean I could use their work into a future product of my own.
    – paperjam
    Commented Jul 20, 2012 at 8:38
  • 2
    @paperjam: That assumes that the authors have the right to do so. You'd start by excluding all Linux developers, for instance, since none of them can dual-license Linux. Not even Linus himself.
    – MSalters
    Commented Jul 20, 2012 at 9:24
  • @MSalters: I am talking about the original author's own contributions. With version control systems, they should be easy to identify. In some projects, like Linux, a single developer's code would be useless but other project have small teams and are often built from scratch.
    – paperjam
    Commented Jul 20, 2012 at 11:39
  • @paperjam: Except what is that developers code? If someone else contributes to the project, anything they touched would be exempt from your access, unless they also signed such an agreement, unless the original developer threw away that change and made a replacement that could not be considered derivative.
    – Guvante
    Commented Jul 20, 2012 at 16:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.