Nathanael Nerode wrote:
If your library has a well-specified API, anyone could make a library with the same API, and his client could use that. Under those circumstances, his client is not a derivative work of your library (although it may be a derivative work of the *API and other specifications*, if the specification is sufficiently clever and complex to be copyrighted).
Though there is always the chance that an API might be held to be a "method of operation" in which case it isn't copyrightable. I don't think there have been many (any?) court cases on the subject.
The closest is that the menu labels in user interfaces are not copyrightable, because that is a "method of operation". I could dig up the cite if need be.
Please note that it doesn't really have much to do with whether it's a command line interface or not.
It might, if a command line interface is help to be a method of operation (I'm pretty sure it would be) and a binary interface is not.
(The FSF's statements that linking with a library creates a derviative work of the library confuse people; it may help to remember that this only applies to the *binary image* created by the linkage, which contains elements of the library, not to the source code of the program using the library.)
A derivative work requires creative input. Neither a compiler nor a linker can provide that. There is no creative input in typing "make", so the binary can't be a derivative work if the inputs were not.