On Thu, 26 May 2005 20:34, Boaz Harrosh wrote:
Therefore, I would suggest that you could use the generated .idl file to write your own .idl file that has the same interface, but would not be considered a copy or derived work. This is similar to what is often done for Platform SDK header files in Wine. Naturally, once you have your own .idl file that is free of copyright restrictions you can do whatever you want with it, including (4 and 5).
Again, Must it be Human made or can I use a program that does all the above automatically? Is there in the law a distinct separation between Human hand made, or machine generated. Given that the output is the same?
It depends more on what is done than how it is done. If it's OK to do manually, it's OK to do with a program. But the real question is whether the file you create could be regarded as a derivative work of the original file, which means asking if it contains any copyright-protected elements of the original file.
It is often convenient to say that the interface is not protected by copyright, but that's not quite true. The elements that are dictated by function are what is not protected. If there's only one way to correctly write something, that thing will not be protected. If there is more than one reasonable way to implement something, then copyright will apply.
In most cases that we care about for this purpose, interface is determined by functionality(*). There may be other bits that are determined by functionality, but if you go back to the interface and then develop the rest from that, you will normally be safe, and if you're not a lawyer of any description, that's probably the best approach to take.
(*) It is not impossible for an interface to be independent of functionality - for instance an interface that is entirely internal to a GPL program will be protected under the GPL since no other application needs to use that interface for interoperability. Interfaces requiring IDL will normally exist for interoperation with other programs, and so will determine, to that extent, the code implementing it.