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

Reply via email to