I understand the concept of linking into a FOSS client library, but does linking extend to IP connections made from your client software into an open source server, such as databases? Or put another, way, can you deploy a FOSS stack and not invoke the link clauses in licenses by connecting to the stack over IP?
Recent Questions
Customize this|
1
|
|
|
|
|
|
I can't imagine it would apply for components connecting over a network. Otherwise it would apply to things like mail clients talking to mail servers and browsers talking to Web servers, no? Would I be prohibited from using GPL JavaScript library to make an AJAX call to a server running ASP.NET that I have no control over? That seems unrealistic. |
||
|
|

|
|
So, I am not a lawyer ... That being said we looked at this once at a very large telecom along with their lawyers. We ended up deciding that the linking the original license author was intending to describe was the same as you would perform in a C or C++ makefile or any similar system. Wikipedia actually has a good entry on this topic. |
||
|
|
|
|
Another factor to consider is the wire protocol being used. If you're implementing open source to a standard such as an RFC, you have the IP rights associated with that standard as a shield. If you are reverse-engineering a proprietary wire protocol, it is always possible that a lawyer associated with that proprietary protocol might express an interest. Whether that interest would bear fruit at all, much less more fruit than the damage to the reputation of the creator of the proprietary protocol is likely a question that would require someone more lawyerly or marketingly than I to answer. |
||
|
|
|
|
That's a really excellent question, and to be honest, I'm not sure. It's probably a question for the SFLC. If I understand the question, however, my guess would be that an IP based connection would not, in fact, count as linking. A number of factors mitigate against it: one, the latency inherent to that type of connection presumably means that it wouldn't be a true derivative work, two, the requisite API would presumably act as an additional layer of abstraction between the calling component and the requested resource (be that a library, a database, etc), three, with all of the FOSS stacks currently deployed in IP based networks, I would assume that someone would have claimed a violation previously. But that's just a guess. Really good question. |
||
|
|
|
|
The short answer is no - connecting to an application over the network cannot be classified as "linking" in the context of a FOSS license. The "linking" terms in the popular OSS licenses (like the GPL) relate to either "static" or "dynamic" linking of software components. Static linking takes place at compile time - when multiple source files are compiled together to form a single executable. Dynamic linking occurs at run-time, when one application loads one or more separately compiled modules into its own address space. So in the case of one app talking to another over an ip network, neither static nor dynamic linking has taken place, so the is no "linking" that is relevant to the license. |
||
|
|
|
|
The intent of these clauses is to identify the extent of the dependencies between components. A component that is statically linked to another component is entirely dependent on it. A component that is dynamically linked is, theoretically, less dependent on the other component. I would ask you to question your intent. Are you dependent on the open source server or database to the extent that your application will not work without it? Are you using an IP connection for the sole purpose of avoiding the responsibilities of the FOSS license? If that is the case you might be violating the intent of the license, but not necessarily the exact wording of it. Another issue is that of local drivers deployed with your client software. If the database driver you are using is FOSS and has link clauses then the fact that the server is behind an IP connection does not matter, as your client software is linking to a FOSS driver. P.S. The 'linking' clauses in open source licenses are problematic because they are technology-specific. For example they make sense when referring to C programs, but not when referring to Java programs. |
||
|
|

