Before publishing my reusable software source code to some online repository, I have some license requirements as follows. I need to know whether any existing free or open software source license agreement can be used or I need to create a custom license agreement?Here are my requirements,People should be able to download, modify, reuse my code in their application / program with / without any modifications for both commercial & non-commercial purpose , with following restrictions applied (this clause is for use of my code in their application e.g. Google using open-source WebKit in chrome, however chrome is not open-source. Or OS X using darwin open-source kernel, however its OS is not entirely open source):a) They should strictly use my code within their application in private domain e.g. restricted to a specific group of people in a project /company. (Let me clarify it more, I think, I have written this in wrong way. what I meant by this is, if they just want to use my code within their application & release / sell the application as whole to entire public (e.g. Google releasing chrome with webkit) it's use is not restricted to group of people. On other side, if they have modified my original code (e.g webkit modified / forked), however they do not want to publish it to general public, then they should keep the modification / bug fixes with themselves or within their organisation known to specific group of people.)b) it should include, apply & obey my original license agreement. (what I meant is to include this license, when packaging my original code / modified or forked code. e.g. chrome includes license of webkit / blink (forked webkit) in their credits section.)c) The free of charge code doesn't apply in private domain. (let me explain what I mean by this with an e.g. Suppose if Google is working on gmail server project & they use free & open-source reusable component in gmail project. Now, they employ / pay a person who modifies the Node.JS to well work well with gmail, who finally privately gives / in-directly sells unnamed forked Node.JS to Google for their Gmail server product. Thus in this case Google is not re-distributing Node.JS to public, its just used within their organisation & internally within their product & they may have pay someone to develop this forked Node.JS)However, if they want to re-publish my code, either in compiled or un-compiled form (as if it's their own code) on some other public repository / website or branch within my repository itself for re-use, then following restrictions should apply (e.g Google releasing forked Webkit i.e. Blink for public use):a) it should include, apply & obey my original license agreement. (what I meant is to include this license, when packaging my original code / modified or forked code. e.g. chrome includes license of webkit / blink (forked webkit) in their credits section.)b) They must publish the modified source code, if the code (either in compiled or un-compiled form) is intended for re-usable or generic component.  in this case the code should be free of any charge. (e.g. Google releasing forked webkit i.e. Blink for re-use in public; & should be free of any charge.)c) The modified source is not necessary to publish, only when the code is in compiled form and is hosted as part of application or program, that is not intended for reusable software components. in case as code itself is not sold, rather it is part of application; the free of charge code doesn't apply here. (it is same thing I meant in clause 1c. please suggest if clause 1c is also obvious or does needs to be specifically mentioned in the license?)d) The code must have some modifications done apart from just naming conventions / comments / format changes. (reason, I wanted to include this as one the clauses is, because someone might take my code, change some variable names, re-distribute & take unnecessary credit. instead, I would like, if people report any bugs or also necessary modifications, may it be minor variable change or major enhancement at my code repository)e) People cannot publish the modified code, with same title / heading as original. E.g. if original code is published with name / title / heading, say 'ABC Common Components' they should give either entirely different name  or prefix with some words, say 'ABC Common Components extensions'. The new title must not contain version as prefix say, ABC Common Components V2'  or Version 2 or just 2. (ok, I see from responses, that I need to use a trademark to protect my software name being reused. then if that's the solution, I can remove this clause too)f) People should not force me to incorporate their modification to my original published code trunk / branch, however they can suggest / request modifications and report bugs to my original published code. (after, all your responses, it seems that, I don't need to worry about it as it's something obvious, thus we can safely remove this clause.)
Need free / open source software licences for specific requirements
license recommendation