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