views:

106

answers:

4

I've often wondered about this. I'm not looking for legal advice, just casual opinions ;)

If some company publishes an API on the web for their closed-source library, would it be legal for another party to release an open-source implementation of that API? Are function declarations considered source code?

Take GNU implementing the UNIX APIs, for example. The UNIX standard gives the following function declaration and defines its required behaviour in English:

char * mktemp(char *template);

Now, consider an API that lists and declares and describes several thousand (more much complex) functions, enums, etc.; an API which defines a solution to a non-trival set of problems. If an open-source project publishes C headers that copy (verbatim) the function definitions contained in the closed-source company's published API, doesn't that violate some sort copyright law?

A: 

I think that is perfectly legal unless the company doesn't register the api names as trademarks.

Simone Margaritelli
+6  A: 

Since no one famous has been sued for copying the interface definition, the answer is trivially, "No". SCO keeps suing companies for actually copying their intellectual property. And they keep losing because they can't prove they actually bought it.

You can't copyright the interface idea, only the publication of the interface.

Copyright applies to a specific document or a specific pile of source code (which is considered a document). Go to the US copyright page for more information. It's pretty clear what you're protecting when you send stuff in for a copyright certificate.

http://www.copyright.gov/

An interface or a design might be patentable (it shouldn't be, but that's another story). But an interface cannot be copyrighted.

The interface documentation, the source code, any document can be copyrighted. But not an idea.

"But it's the exact same line of code". Right. But it's not the whole document. Copyright does not prevent all use. It gives you recourse when you find that someone has copied your document. Retyping a few lines of code here and there out of a larger work is protected fair use.

When you copyright source code, BTW, you don't send all the source to the Library of Congress, just 50 pages of source (first 25 and last 25). Enough to establish a claim on a the specific copy of the source.

A clean-room development (from scratch, without viewing the original source) circumvents copyright protection. It's a protected, widely-used practice. One person writes a specification, the other person writes the code. If -- coincidentally -- the code is similar, the "clean-room" means you guarantee that the person writing the code never saw the original, and it's coincidence.

Could someone possibly be sued? In the US, someone can always be sued.

From http://www.copyright.gov/circs/circ61.pdf

Copyright protection extends to all the copyrightable expression embodied in the computer program. Copyright protection is not available for ideas, program logic, algorithms, systems, methods, concepts, or layouts.

S.Lott
@S.Lott, I'm pretty sure you don't need to send anything to copyright.gov to copyright a work... merely authoring it is sufficient... the only reason to send it to copyright.gov is to create proof of copyright ownership... merely authoring the work and making a claim of copyright ownership (e.g. "My Name. Copyright (C) 2010") is sufficient for it to be protected under international copyright law.
Michael Aaron Safyan
@Michael Aaron Safyan. Correct. You don't need to deposit anything. See http://www.copyright.gov/circs/circ01.pdf. The Notice must be of the form "(C) Year, Owner". But the rules for deposit give a hint as to how much the copyright office actually cares about your gigantic pile of source code.
S.Lott
+1  A: 

UNIX is a trademark of the OpenGroup, and the Single UNIX Specification as well as the Open Group Base Specification / IEEE Std 1003.1 are open standards which anyone is permitted to implement.

If you were to use someone else's header file, then yes, you would be in trouble. If, however, you write all the source code from scratch, including the declarations, then you should be ok. Keep in mind that copyright law and patent law are quite different; copyright applies to a "work" that you produce (e.g. the source code), not to the concept or idea, whereas patent law covers the idea, concept, algorithm, etc.

Michael Aaron Safyan
I was just using UNIX as an example, not realizing it's an open standard ;)
splicer
+1  A: 

It is legal, but that company might sue you anyway if they managed to trick USPTO to give them patent for that. Especially if that company is SCO, Microsoft, or Apple. Patent law is broken and some companies like to exploit it.