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

to translate, adapt, alter, transform, modify, or arrange the Original Work, thereby creating derivative works ("Derivative Works") based upon the Original Work;

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

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.