Just a heads up for everyone out there. I stumbled onto this during my work to create a Linux application for the FX3 device.
I believe that Cypress inadvertently made a licensing mistake for their cyusb library which is a thin wrapper on top of libusb. The Macintosh and Linux SuperSpeed library CYUSB from Cypress has been licensed as GPLV2. I suspect they wanted it to be LGPLV2. Big difference in the library effects.
The issue is that the FSF takes the stance that linking with GPL code causes your code to fall under the GPL:
It has always been the FSF's position that dynamically linking applications to libraries creates a single work derived from both the library code and the application code. The GPL requires that all derivative works be licensed under the GPL, an effect which can be described as "hereditary." So, if an application links to a library licensed under the GPL, the application too must be licensed under the GPL. …
That is clear. If it is legally binding, then there is a dilemma for applications built with that library.
However, if I understand things correctly, Cypress has the option to ignore use of its GPLV2 code in proprietary applications by not pursuing the end customer. In addition, the original copyright holder of the GPL license can give anyone they wish a "commercial" license version of the code if they wish.
But, to be safe, I would recommend that you *do not* use the Cypress' CyUSB library on macintosh or linux platforms unless you are ready to open all of your code, or can get a "commercial" license from Cypress.
Note there is a general provision in the GPLV2 that can help you if you really need it. You are able to charge a transfer fee (unspecified) for access to your source code. If you have not yet given the source code to any customers whatsoever, you can effectively protect your code by making the transfer fee extremely large, to the point you would not be damaged if it gets out into the wild. AFAIK, you have no say over what the people receiving the source code do with it, in terms of their transfer fee.
The libusb library, on the other hand, is LGPL. Under that license you can *dynamically* link with that library and keep proprietary your code. You are under no obligation to open your internal code. If you make modifications to the libusb library source, you are under obligation of LGPL to publish those changes. The transfer of those source code changes can, again, be subject to a transfer fee, if I understand the license properly.
In the end, it does not matter what I think. It matters what copyright holders and customers think. If a customer thinks that you owe them the source code, you need to be prepared. Either give them the code, present a large transfer fee, or supply a copy of the commercial license you were granted.
A good lawyer once told me the following: If they take you into court, you lose. Even if you win, the costs of protecting against litigation are so high that you lose, because you have to pay those costs.