Unless you are arguing that network protocol compatibility is a different thing? It seems to me that there is a lot of overlap, since Samba relies on re implementing the same behavior as a Windows file server.
So.., if you implement an API in a different programming language, such that the text and structure is different, and yet the function remains the same... then have you not infringed any copyright?
To me an API, is just a formalization of declaring your intention to implement a particular functionality.
Nonetheless, I don't think the clean-roomness or otherwise of an implementation has an impact on this. Otherwise someone could copy music by listening to it and replaying it.
Like you said: the copyright is on the text, pattern and structure of the code. But it doesn't matter how it was replicated.
The trouble for doing that with Java APIs is the spec basically is the class declarations. You don't just need to "do the same thing" you need a tangible source file that has at least in part the same text.
Sane laws such as that automatically prevent issues such as this Java API dispute and also things such as the attempts to block interoperability for coffee machine "pods" by requiring a copyrighted magic string and using DMCA to prevent others from using it.
Please learn the difference between an API and a network protocol, else you end up looking foolish.
I don't believe that the distinction is that clear at all. Hence my comment:
Unless you are arguing that network protocol compatibility is a different thing? It seems to me that there is a lot of overlap, since Samba relies on re implementing the same behavior as a Windows file server.
I think it is pretty easy to argue that the pattern of network calls needed to make calls (eg authentication) is an API.
Is a WSDL SOAP definition an API? I think most would say yes. A REST endpoint and the definition of how to use it? Why exactly is the definition of the HTTP protocol different to the definition of the REST endpoint?
IANAL, etc. Which seems important these days.
The API's that Samba uses to access that protocol are nothing like the Windows API calls (and are a completely independent implementation).
I'm just pointing out that it isn't at all clear to me that the strong distinction that software people see between APIs and protocols is as clear under law.
And of course Samba isn't built of WIN32 APIs, that's not what we're talking about.
According to this case, they did.