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,

  1. 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)

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

  • 5
    That's nothing like an open source license. Commented Oct 4, 2015 at 1:47
  • Hi, why do you think its not anything like open source licence. I want to make my code free & open source, also want to restrict any modifier to keep / preserve it's free & open source nature, with some exceptions that are very valid in case of private domains or cloud softwares
    – RJoshi
    Commented Oct 4, 2015 at 2:00
  • e.g public cloud services like, AWS, rackspace, google cloud platform or azure softwares are based on linux, however the server application they made on top of linux to make their cloud business work, need not be open sourced or even free, i guess, or do you mean they have open sourced these too?
    – RJoshi
    Commented Oct 4, 2015 at 2:02
  • 5
    Your paragraph 1a restricts the code to a select group of people, and your paragraph 2a says anyone republishing the software must use the same license, restricting the use to (I guess) another group of people. So it's not open source by any definition that I know of. I don't know of any license that would force you to take modifications, so you probably don't even need to state that. Commented Oct 4, 2015 at 3:34
  • 1
    Limitations or permissions to the name of the program are not related to Copyright law but to trademarks. No opensource license handles this trademark specific things, so you usually can use the original name for an unmodified version but are not allowed to use the original name for a modified version.
    – schily
    Commented Oct 4, 2015 at 8:35


Browse other questions tagged or ask your own question.