We develop applications and libraries for a number of clients. While it is not unreasonable for a client to desire exclusive rights to software they pay to have developed, there are many common modules and libraries that are generic in their use. Furthermore, the idea of “owning” generic algorithms or methods seems ridiculous, as these methods are often public, common sense, or needed for such a wide range of applications that the concept of exclusive rights to them could only make sense to a deranged IP attorney.
An example: We recently developed several applications for different clients that required USB HID device interfacing. The .NET Framework does not provide a USB interface as of yet, and many libraries and samples people have posted in various forums and code sites offer limited or specific functionality, or rely heavily on unmanaged code, filter drivers, or other undesirable dependencies.
To address this, we developed HIDLib. This library is a general-purpose library for interfacing with standard HID-class USB devices. These interfaces and protocols are open standards for anyone to use, so the notion of one client “owning” the code to access HID devices is irrational. Furthermore, the idea of re-coding the entire library again, somehow differently enough to still work while not violating the copyright of the previous incarnation version, is ridiculous. So, it makes sense that such general-purpose reusable libraries fall under a less restrictive license.
While we specifically negotiated the non-ownership of HIDLib with our clients, we wanted to have a general system in place for dealing with this type of issue in other applications as well.
The goals of the GPL are admirable, but too many of our clients wish to “own” the code they buy for the proprietary applications they wish to sell, and will not agree to making their source code available. On the other hand, the LGPL allows any 3rd-party to use and sell applications that use pre-compiled libraries, allowing other for-profit entities to make money off our hard work.
What we wanted was a compromise: Something that let us do business with our clients, allowed us to contribute to the community, and also prevent other entities from profiting from our work. This seems like a good way to let proprietary companies contribute to the availability of open-source code, by funding its initial development and gaining some exclusive rights in exchange (namely the right to profit from the use and sale of the code).
We hope this license will be suitable to not only ourselves, but others as well. See the full text here.