|
From: Keith M. <kei...@to...> - 2007-01-04 10:54:21
|
Chris Wilson wrote, quoting me: >>> I don't know how to figure out which order they are in without trial and >>> error, or resorting to the VSS SDK. I guess that in either case, I would >>> not be able to publish a free header for use in MinGW based on such >>> information. Can anyone see another way to deduce the order of methods in >>> the vtable? >> >> I would have thought, if you can determine it *without* resorting to a >> study of the VSS SDK headers, by a purely trial and error approach, then >> that would be a perfectly legitimate way to derive the information you >> need for a free header; it is, after all, the approach we adopt to fill >> in the blanks, when the MSDN info is either incomplete, or inaccurate. > > That's interesting. I thought that such trial and error approaches were > "reverse engineering" and therefore not allowed? With the usual caveat that IANAL, that is not my understanding, at least in terms of United Kingdom law. This was all summarised in a recent issue of the UK `Linux Format' magazine, in an article which *was* written by a legal expert; my layman's understanding of that article leads me to the conclusion that:-- 1) When I purchase a software license from any software vendor, I *must* be granted a `fair use' entitlement to make that software interoperate with *any* other software I am legally entitled to deploy. 2) If the software vendor attempts to deny me that `fair use' right, by means of any wording in a License Agreement, then such clause is not legally binding, and in fact, renders the *entire* agreement legally invalid, and hence void. 3) If the software vendor refuses to publish, or otherwise disclose to me, such information as I require to achieve (1), then I am entitled under the `fair use' requirement to deduce it for myself; thus any trial and error approach I adopt to achieve that objective *must* be legitimate. Ok, so I've purchased a license to deploy Win2K on my desktop PC, (and I assume you have too -- your's may be for a later version, but that isn't pertinent to this discussion, and in any case, it isn't my responsibility to police your abuse of Microsoft licenses, in case you haven't). I also wish to use MinGW, as a software development tool, and I have a `fair use' right to make that work, on my Win2K platform. On MSDN, Microsoft publish the details of the API calls I need, to achieve interoperability with the Win2K core libraries; they don't always publish the appropriate values for all of the manifest constants specified for use in those calls, so I'm forced to deduce them experimentally. I conduct a scientific experiment, and I publish my results; I believe that is no more than `fair use'. (Besides, Microsoft should have documented the API properly in the first place). Do note that I am *not* advocating inspection of proprietary SDK headers, nor of `brute force' abuse of MSVC to simply `printf' the values of manifest constants it has compiled -- I don't believe that to be a valid experimental technique, and I will not accept patches based on this methodology. Also note that your admission that you have inspected the SDK headers leads me to conclude that any experimentally obtained data you provide may be tainted by knowledge you've gleaned from such inspection. If you want to contribute to MinGW, then please avoid inspection of proprietary Microsoft headers, from any source which does not grant you the right to verbatim reproduction. Regards, Keith. |