I'm building a program which gets certain info off the net, makes calculations, then sends the info to the net again. I don't program the 'taking off the net' and 'sending to the net' parts though; instead I use a script to issue commands via a CLI that someone else built. Now here's my question:

Is this application a derivative work off the CLI? One might argue that the only change is that the calculations are now done by the pc instead of a brain. But what's actually happening is that the program I write simply issues some commands to the original, unmodified program.

If this program's license calls for derivative works to use the original's license, would that in my case mean I have to use the license?

To clarify: The CLI I'm talking about is included as a (git) submodule, so I'm just linking to it. The license in question is the OSL 3.0. Would anything change if I didn't even include it as a submodule, but I simply listed it as a dependency?

  • Two questions I have: What's a CLI? Also, how does the license define a derivative work? Through linking, or through modification of the work? – Zizouz212 Aug 26 '16 at 20:18
  • A CLI is a command-line-interface, meaning a program which is issued commands through the command-line instead of a GUI. The license's definition of a derivative work is a work produced by translating, adapting, altering, transforming, modifying, or arranging the original work. I would expect I'm not doing anything of that sort, but I could see the possibility to view it as an adaptation. – Wysaard Aug 26 '16 at 20:24

The OSL defines "Derivative Works" as


This would on the face of it seem to permit linking by omission. A little further research confirms that in the OSL FAQ (mirror):

The definition of Derivative Works in § 1(b) is particularly important. For one thing, that defined term includes no reference whatsoever to linking or to any other technical manner of making programs interoperate. The verbs used in § 1(b) ["translate, adapt, alter, transform, modify, or arrange"] reflect the kinds of activities that we generally do to create derivative literary or other expressive works, and those things—not functional linking—create Derivative Works as defined in this license. As a result, linking an unchanged Original Work with another independently-written work does not, absent more, create a Derivative Work subject to § 1(b); such an act is merely the incorporation of a copy of that Original Work into a collective work, authorized by § 1(a).

And this is code-level linking that is permitted. From the sound of it, your program just runs a shell script on the OSL-covered software, which is even less of a derivative work.

Your Answer

