7

This question is a follow-up on a number of questions that all mention some sort of software architecture X for creating software composites, and then goes on to ask: "Will using X to create a composite result in a derivative work?". For example:

The assumption behind under each and every one of them is that software architecture X may be suitable to for telling the difference between derivative and aggregate composites (otherwise they would not be answerable).

I am starting to suspect that this assumption is wrong, and would like to try a new tack on this.

What do we know about composites that involve both proprietary software and free software? (And yes, this is just rhetorical - I know that this far too broad for this site.)

To turn this into a more focused question, I would like to see examples of proprietary software that somehow makes functional use (i.e. proprietary software that in some way depends on free software in order to perform a useful function).

We all know that proprietary software runs on a kernel that is under GPL (e.g. Linux), and also that this is not considered a license violation. So this is an example of the sort of composite I am asking about. I am of course not interested in being reminded about this well-known fact, but rather why this is not considered a problem.

To narrow it down further, I will say that I am looking for answers that clearly identify the components of the composite program, their interdependency, and how they communicate or are linked. The best answer to this question will be the answer that is most illuminating in pointing out a pattern of use or linking that can be used by non-lawyers to tell the difference between a derivative and an aggregate. I have a priority interest in concrete examples based upon existing and usable software. The answer may also contain references to legal theory about this topic, but please note I am not looking for "mere theory". Any legal theory need to be connected to real examples, and its relevance to the example (if not obvious), need to be pointed out in the answer.

Edit: This question did not impose any restrictions on what type of license was used for the free software. It brought to light (some of?) linking and other exceptions that exists and how they are used in real projects. (I learned a lot more about the permissive side of open source than I knew beforehand from the best answer). However, I also would welcome examples that shows when and how copylefted free software can be combined with free software, but I believe this requires a new question: Are there examples of proprietary software that functionally depends on copylefted software?

  • 1
    I take it "proprietary software linked to open source libraries" (e.g. Steam) or "proprietary software running on an open source kernel" (anything running on Linux or the BSDs or...) doesn't answer your question; if so, could you clarify what more you're looking for? – Stephen Kitt Jul 18 '15 at 15:29
  • @StephenKitt. I am actually very interested in both. I know about Linux being used as platform for proprietary software, but would really like to see answers pointing out why this is not considered infringing use (see edited question). I don't know much about Steam, but if it "proprietary software linked to open source libraries", I am very interested in hearing more about it. – Free Radical Jul 18 '15 at 15:39
  • There are commercial products (I'd rather not name them) that use some of the code I've released under permissive licenses. They usually shoot me an email asking permission and I usually reply with "you don't need to ask me for permission, go ahead and do it". One of them also offered to pay me an hourly rate to integrate my code into theirs, but it didn't work out and they ended up doing this work rather than hiring me. A lot of his work ended up being contributed back to our code base, many bugs and performance bottlenecks fixed. Win. – Abhi Beckert Jul 19 '15 at 22:41
  • Comments are for constructive criticism and feedback, not extended discussion and linked answers; this conversation has been moved to chat. – Zizouz212 Aug 11 '15 at 0:18
11

I'll use Steam as an example. Steam is Valve Software's platform for hosting games (and movies etc.); it is itself proprietary. Initially it was Windows-only, but in the last few years it has been made available on Mac OS X and on Linux. (In fact Valve now have their own Debian-based Linux distribution, Steam OS.)

On Linux platforms it uses a number of open source libraries to function. The Steam client itself uses the following libraries:

% ldd $(find ~/.steam -name steam -type f) 
    linux-gate.so.1 (0xf7786000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf736d000)
    librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf7364000)
    libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf731d000)
    libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf7318000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7217000)
    libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf71fb000)
    libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf7051000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf702a000)
    /lib/ld-linux.so.2 (0xf7787000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf700d000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf7009000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf7002000)

The libraries are basically glibc and X11 client libraries. There's no license infringement here, all the libraries can be used in this way; but it's safe to say that it wouldn't be easy for Valve to replace the libraries with proprietary versions and still have Steam on Linux.

All this of course is running on a Linux kernel, which is another piece of free software essential to allow Steam to function on a Linux computer.

In addition to all this, many (most) games provided through Steam are themselves proprietary, and on Linux they depend on libraries as well. In addition to the above libraries, Steam itself includes a "Steam runtime" which includes many other open source libraries: NSS, Pango, GTK+, GStreamer, ALSA etc. Any program running on Steam is free to use these; their licenses allow linking proprietary software.

As to why this is allowed, the libraries' licenses in this case are all either permissive (X11, Expat), LGPL, or GPL with a linking exception (libgcc); this allows linking proprietary software to the libraries involved.

The kernel itself includes a caveat in its copy of the GPL, explaining that running programs which use the kernel via syscalls does not constitute derivative software:

NOTE! This copyright does not cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does not fall under the heading of "derived work". Also note that the GPL below is copyrighted by the Free Software Foundation, but the instance of code that it refers to (the Linux kernel) is copyrighted by me and others who actually wrote it.

-1

If Stack Exchange is an example of proprietary software, then here are a few examples of open source projects that they use. Before I list the points though, I do want to highlight that although the question asked for software, Stack Exchange is more of a system, with many operations that they need to take. I've posted this answer namely as a way to help others to find further examples of such dependencies. Namely, Stack Exchange is well known across this community, so it may be more clear to everyone that visits this post.

  • The Blog: (necessary for public communications, media relations)

    The Stack Exchange blog is based on Jekyll, an open source project for powering blogs. Before, they used Wordpress. The blog looks amazing now, and I suggest that you check it out!

  • Bosun: (necessary for reliable operations, problem diagnosis, systems monitoring)

    This is the monitoring system that Stack Exchange uses to make sure that their systems run smoothly without failure. It's able to forecast and predict failures, as well as maintenance on existing systems. You can check it out more on their blogpost.

These are just examples that Stack Exchange uses in their everyday operations. I've posted this answer namely to help illustrate some examples that are indirectly seen by the active community on this site.

  • These don't seem to be valid answers as those projects are open source. – curiousdannii Jul 31 '15 at 23:19
  • @curiousdannii Really? Stack Exchange is a system, not necessarily a program. The system actually relies on these two things to ensure their operation, albeit in areas you would not immediately expect: public communications and system monitoring. – Zizouz212 Jul 31 '15 at 23:41
  • AFAIK there is nothing shared between the Stack Exchange sites and their blog except for the domain name. – curiousdannii Jul 31 '15 at 23:42
  • 1
    Make your case in the answer itself. Although the company surely makes use of the blog, I can't see how the Q&A engine makes "functional use" of the blog. – curiousdannii Jul 31 '15 at 23:48
  • 1
    I don't see how this answer is relevant to the question. The question asks for examples of functional dependencies in software. As you point out yourself in the answer: " although the question asked for software, Stack Exchange is more of a system". Since you already know this, I don't understand why you think this answer is relevant. Can you improve the answer by pointing out why it is relevant (not why it is not)? – Free Radical Aug 1 '15 at 8:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.