Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Some years back I have developed a little C# class library, which is still frequently downloaded. Since I do not have the time to support the project any more, I would like to donate it.

What is the best place to do so?

Some remarks:

  1. I will not be the owner of that project any more, I just "want to hand it over"
  2. It has to be "free of charge", non commercial, ...
  3. Best would be if others could make changes and also re-distribute them
  4. It must not be a legal hazard for me, so no obligations etc.

Have you done something before, what would you recommend...?

Update: I got excellent feedback in virtually no time, so I have to choose a license. I am not so much in that legal stuff, also it is not my main interest. What do you recommend for this? In plain words, I only have little demands (clarifying my intentions):

  1. People can use it for commercial and non commercial software
  2. I do not want to be in any kind of liabilities
  3. All improvements (fixes etc.) should be also available for me and the public under the same license as in 4.
  4. I do not want force people to publish their whole source code when they deploy the library as part of a bigger project. But I want them to re-publish any direct improvements or bug fixes.

There are too many licenses to read them all....

share|improve this question
Yes, you are right, it could also be placed there. IMHO it is not too much off topic here, but agreed - it is on the edge. – Horst Walter Jul 15 '11 at 11:55
still an interesting question :) – Steve B Jul 15 '11 at 11:56
1  
Where can i download it? – Sarawut Positwinyu Jul 15 '11 at 14:41
I've added a discussion of possible licenses. But you might want to do some reading yourself, since I don't too much about licenses. – CodesInChaos Jul 15 '11 at 18:31
Thanks, appreciated. – Horst Walter Jul 15 '11 at 19:07
show 1 more comment

migrated from stackoverflow.com Jul 15 '11 at 11:59

4 Answers

up vote 9 down vote accepted
  1. Choose a license. Your choice is mainly between permissive(MIT,BSD,...), limited copyleft(LGPL, CDDL, MPL,...) and full copyleft(GPL,AGPL).
    Most of those licenses contain some "as is, no warranty" clauses, but of course those don't protect you against everything. There is always some remaining legal risk. For example if your code violates some copyright the license won't protect you.
  2. Upload it to a open source sharing site. I like github for that, since it has nice built in support for forking. And since you don't want to support it yourself, you'll want to encourage forking.

As usual IANAL, and I haven't looked too deeply into licensing issues. So I might misremember or misrepresent something.

Looking at your license requirements:

  1. People can use it for commercial and non commercial software
    Any accepted open-source license offers this
  2. I do not want to be in any kind of liabilities
    Most licenses contain some kind of disclaimer. But I never looked into the details
  3. All improvements (fixes etc.) should be also available for me and the public under the same license as in 4.
    This excludes permissive licenses.
  4. I do not want force people to publish their whole source code when they deploy the library as part of a bigger project. But I want them to re-publish any direct improvements or bug fixes.
    This excludes full copyleft licenses. In particular GPL and AGPL.

So you have the choice between LGPL on the one side, and MPL/CDDL on the other.

  • LGPL is compatible with with the GPL. It requires that it's possible for the user to swap out the library with another version. Typically this means that the whole executable should be open source. This is no problem in the usual scenario where the library is a dll file. But in certain linking scenarios (ahead of time compilation, MonoTouch) this can be a problem.
  • MPL(Mozilla Public License) and CDDL are very similar. Wikipedia states "all modified code must be distributed under MPL, although new files containing new code need not be distributed under MPL."

I'd either use "LGPLv2 or any later" or "MPL 1.1" or perhaps a dual licensing of those. I think neither of those forces people who use the library only on a server i.e. don't distribute it to publish their modified version, but I'm not sure about that.

share|improve this answer
I've always encouraged forking, wherever possible – devdigital Jul 15 '11 at 11:56
IANAL, but I don't think LGPL requires the whole binary to be relicensed. – Ben Voigt Jul 15 '11 at 18:39
@Ben I think there are some ways to statically link while complying the library, but that's rather difficult since it's hard to swap out a statically linked library, and that's the essential requirement of then LGPL. But I think my formulation is a bit sloppy, since as if the remaining part of the executable is some other form of open source that should be enough. – CodesInChaos Jul 15 '11 at 18:47
There are tons of license models, I guess I just pick one such as MPL where the impression is, it seems to be right. Thanks a lot for your valuable input. – Horst Walter Jul 15 '11 at 19:39

You should distribute it on an open source site such as CodePlex or github.

share|improve this answer

Put the project on Codeplex and make sure you have a good license for the use of the code. Make a note in the project description that you need someone to take over support.

share|improve this answer
+1 Let people know that you want to transfer the support to someone else – Gabriel Mongeon Jul 15 '11 at 13:28

Based on your demands, you should consider the LGPL license.

share|improve this answer
The LGPL licence is a not a great licence if, as the OP stated, you want to allow commercial use of your software. It imposes some significant obligations on anyone using the LGPL covered code in a closed source. The permissive (MIT, BSD ...) style licences achieve this aim much better. – Stephen C. Steel Jul 15 '11 at 18:26
@Stephen: I can see that you paid no attention to requirement #4, since the licenses you mentioned fail miserably. – Ben Voigt Jul 15 '11 at 18:37
Though I have no real experience with all this license stuff, isn't there some Apache license around and applicable. I understand I could read all these licenses - please forgive me - this is what try to work around. I read once thru one of these - gosh. Hope somebody can point me in the right direction ;-) – Horst Walter Jul 15 '11 at 19:09
@Horst: And those are only the major ones. Anyway, it seems like you're looking for something with "Yes" in the first column and "No" in the second. – Ben Voigt Jul 15 '11 at 19:38
show 1 more comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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