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?