Two developers can define an interface between their programs.  If they are 
using C++, they might both be writing separate classes, which will get compiled 
into the same file.  They could also be writing separate classes which will be 
compiled into separate files, but still interact with each other.  And to 
complicate the matter more, this could be a configurable option, an argument to 
the compiler or linker.

If one of them licenses their software as to prohibit mixing of different 
software licenses into compiled binary, then this individual is choosing to 
restrict what process is permissible for a recipient to use in building the 
binary.  The motivation is to be coercive - You're choosing to be incompatible 
with anyone who doesn't use your license, to persuade people to release their 
code under the same license you're using.  You know there is enough gravity in 
your software as to be effectively persuasive.

But why stop there?  Why just draw the line at file boundaries?  A recipient 
who receives a mixed binary just knows it as "a program," or "an application."  
It came on a CD, or in a bundle of some kind, with a bunch of other files.  
According to the present license restrictions, it is ok to distribute a CD or 
ZIP file with an installer inside it for some GPL application, and another 
installer inside it for some closed-source commercial application.

No wait - If you create a ZIP file, you've created a derivative, binary 
compressed version.  But if you put them on a CD together, that's just a media 
store, with separate files.  But if it's an ISO, then it's a single file.  And 
even an ISO or a hard drive can be serialized into a single file...

Files contain other files.  Binaries contain pieces of other files glued 
together.

Virtual machines are nothing but big files.  

Define the interface between the separately licensed code chunks.  API's are 
not copyrightable.  From a philosophical standpoint, it's very difficult to 
even define what a file *is* or why, philosophically speaking, you need to use 
files as the boundary that limits the extent of your license reach and 
copyright assignment.

Using copyright law, you can forbid somebody from using your product, if 
they're identified as one of your business competitors.  You can forbid them 
from using it in a certain way.  And you use that to enforce a limit on whether 
the product is built into a file...  

"I do not grant you the license to use or distribute this software, if you 
combine this software into a file that was partially derived from some other 
software with a different license."

_______________________________________________
Discuss mailing list
Discuss@blu.org
http://lists.blu.org/mailman/listinfo/discuss

Reply via email to