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. Regards! _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development