Search code examples
open-sourcelicensingsoftware-distribution

Help me out choosing a software license


My application is reaching a pretty nice beta/alpha level and I might at some point publish it. I have not decided what software license to use in my application. The application is under construction. I bet this must be a question that every developer thinks about at some point.

My software is more like a library and here are some key factors in my case:

  • It must be an open-source license.
  • It must be free for developers to use as a library for their applications.
  • Developers are allowed to redistribute the source code as part of their applications modified or unmodified.
  • The library can be used for closed-source software.
  • I want attribution/credit. A one-line credit in the software Help dialog or somewhere in about section of their website is fine. As long as it is reasonable easy for a 3rd-party to find out what library was used to produce the resulting software.
  • Forking a new project out of my existing source code should not be allowed. I want people to be able to use it and even modify it, but not clone a new similar product to compete against my existing product.
  • The license needs to state that I take no responsibility for any damage whatsoever.

Is there such a license? Would those requirements even fit in an open-source license?


Solution

  • Forking a new project out of my existing source code should not be allowed

    Above is in conflict with Open Source idea (which allows/encourages forking). More info here: Which open source license has no forking

    If you think that you can drop that requirement the best choice is LGPL and additional requirement that people must give you credit (you will have to define what type of attribution/credit do you want per different uses)

    As James stated in previous comment:

    Forks very rarely happen

    1. It is very hard to fork a (big) project
    2. You can benefit more if there are forks - you can take the good ideas from the fork and leave the bad. That way the better judgement about features/code will eventually win (which is part of the idea of Open Source)