8

I check Open Source Compliance for commercial code.

I have recently found a few examples where the commercial source is matched against quite a few OSS projects. The matches are very similar, but not exact, say about 30 lines of code with about 4 methods, a few variables names differ, some extra lines in the commercial code, ... but substantially the same. I don't think this is auto-generated code, nor copy-pasta, because things like comments will differ.

Rather it just looks like boilerplate - the developers say that Grails (and these examples always seem to come up in Grails, but it could be any framework) requires a specific script format for CRUD operations (and these examples are also predominantly CRUD operations). If one adds in a standard source-code style, then it amounts to boilerplate - even if it is original it's going to end up as very similar looking across a number of codebases.

Which leaves me with 2 questions:

  1. Is this a reasonable defence against accusations of copyright infringement?
  2. How would one form a judgement that codeX is such boilerplate, but codeY is not (as a non-expert in the language+framework)?
  • 1
    The fewer lines of code needed to complete a task, the likelier that different original implementations will be the same. If asked to sum all elements in an array, pretty much everybody is going to use a loop with an externally defined variable to hold the running total. There's two major directions to take a factorial function. The code submitted for things like Code Chef might be interesting to examine here - for all distinct (correct!) results, run a diff. – Clockwork-Muse May 23 '14 at 13:23
12

Disclaimer: I am not a lawyer.

This is part of the idea/expression divide. The short form is that ideas cannot be copyrighted, only their expression can. And if the idea has only one (or a small number of) expressions, those expressions can't be copyrighted.

Whether or not this can be used as an infringement defense depends on jurisdiction and/or legal precedents.

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.