On Sun, 2009-06-21 at 11:28 +0200, Freddie Chopin wrote: > As no satisfying solution has been decided I will try to summarise the > options I think are fine for Windows users. Please - put away your > "linux >> windows" attitude aside for a moment and do keep in mind three > things before proceeding: > > 1. Windows users usually have no knowledgle of linux and linux tools > 2. Windows users expect a software package to work "out of the box" > 3. Windows users are not familiar with open-source and GPL ideas > > Because of 1. a solution with VM running OpenOCD on linux is bad, > because instead of questions "how to use libftdi version" we will be > flooded with "how to use linux VM version". Because of 1. it is naive to > expect more than 1% Windows user to be able to compile OpenOCD for > private use. Becaue of 1. it is not a solution to distribute a VM with > linux crosscompiler and apropriate scripts. Because of 2. it is bad to > ship OpenOCD with libftdi which expects user to create custom drivers > (there are NO libusb drivers for FT2232 posted on vendor's websites), > download a hacked version of libusb0.sys and overwrite the original and > so on... Because of 3. Windows users see nothing wrong in using a freely > aviable ftd2xx library that is faster and supports virtual COM ports. > > So in reality I see only two solutions: > > 1. A ftd2xx.dll wrapper library, which would be published under GPL with > exception for ftd2xx.dll. Such library would dynamically link ftd2xx and > - as an open-source solution - could be linked with OpenOCD. This is a > very good proposal made by Herald Kipp and described in detail here: > https://lists.berlios.de/pipermail/openocd-development/2009-June/008265.html > > 2. A binary patch which would "convert" a libusb+libftdi based > executable to ftd2xx based one. Me and Michael Fisher managed to produce > such patch with bsdiff/bspatch. The patch is 30kB in size and works. > > Now, it's obvious that option 1 requires some work. The library has to > be created and OpenOCD code has to be modified to work with that. As the > libary would be a "wrapper" the change in OpenOCD would be merely a name > replacement "FT_..." => "OpenFT_..." (or whatever name would be chosen). > Before such work can be started it would be nice for anybody to comment > on what Herald wrote in the post I linked above. I took some time > yesterday to browse gnu.org website and I think that this solution would > not violate GPL. > > Moreover - _maybe_ such library could also provide a method to "switch" > ftd2xx to libftdi so that it would be up to user to decide what he/she > wishes to use (libftdi and ftd2xx are more or less compatible). This way > OpenOCD would not require a decision of library at compile time. > > The most obvious problem with that solution is that it requires time and > this would not be finished until 0.2.0 (which I hope is coming soon). > Maybe even a bigger problem is your attitude towards such solution... > > The second solution can be used right away. Nothing needs to be changed. > The major concern is - will you allow a patch, patch tool and > instructions to use that to be included in the installer in a folder > named - for example - "Non-GPL"? (I'm asking this for the third time and > I'd really like to hear the answer). > > Some will say that there is a third solution - improve libftdi and > libusb to work as good ad ftd2xx. That solution is very GPL friendly, > but... I think I would be able to create a "wrapper library" with some > (a lot [; ) help, but improving libusb and libftdi code is way beyond my > capabilities. I also haven't seen any volunteers that could do that job. > That's why I suggest to first use the "patch" solution, than "wrapper > library" while waiting for libftdi/libusb improvements, because these > may be complete in a month, in a year or in ten years... > > Currently There are many arguments against libftdi and libusb on > windows, most important of them: > 1. speed, > 2. no support for serial ports on the second channel, > 3. lack of vendor provided drivers online, > 4. no support for composite devices in published libusb code (need for > hacked libusb0.sys). > > That's why I think that without a good solution OpenOCD is more or less > dead for most of Windows users. So please - put at least half of "spaces > vs. tabs" energy in this discussion. This way we can find a solution > that is satisfactory for both parties, because now it's a win-lose in > GPL vs. windows users. > > Or maybe you just wish to ignore Windows and it's n00b users - if that's > the case, state that out loud, and we will be gone and stop bothering > you with our problems.
Please DO NOT try to cheat the GPL license. You do not understand how far I am willing to take these matters, and I believe any form of binary distribution to be a violation: a DLL wrapper, a binary patch, anything! Fix the problems with libusb and libfdti. Period. Cheers, Zach _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development