Good afternoon!

I'm interested in a legal issue regarding code licensing. I am writing an Ansible role for two companies, and each company wants to impose its own license on this code: “full or PARTIAL copying is prohibited”.

The point is that I am writing a role for the same environments and services. Naturally, it turns out that the roles are very similar. And since the changes in the code can not be swung in the role of Ansible, no matter how you say it, it will be at least recognizable.

For example:

- name: "Oracle | Install basic Oracle 7 repos"
    name: "{{ item.name }}"
    description: "{{ item.description | default ('No descr') }}"
    baseurl: "{{ item.baseurl }}"
    gpgcheck: "{{ item.gpgcheck | default ('0') }}"
    gpgkey: "{{ item.gpgkey | default ('file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5') }}"
    state: "{{ item.state | default('present') }}"
    enabled: "{{ item.enabled | default('yes') }}"
    priority: " {{ item.priority | default('20') }}"
  with_items: "{{ linux_oracle_yum_repo }}"
    - update

In both companies, this piece of code is similar to one and it does not work out to change much.

I ask for a little help in the legal issue of this situation: HOW much do I need to change the code so that it does not regarded as "partial copying"?

Is this changing a one character in a file? Or in the whole program? Or changing one line? Or need to dial a certain percentage of the code difference? Or is it enough just to change a name the variables and the descriptions?

Thank you for help!


If you change a single character, that's clearly a partial copy.

Copyright protection has a limited extent, however. The protected work must be original and not obvious. For example, there are only so many ways to write a function that computes the average of two numbers, so the copyright owner of one body of code cannot claim infringement by the author of a second body of code simply because they both have a function float Average(float a, float b) { return (a + b) / 2; }

A surefire way to avoid infringing copyright is to specify the function of the code and then have someone who has never seen the code write it from scratch. This is sometimes called clean-room engineering.

Otherwise, there is no way to answer your question definitively. If you create a modified copy of the code (a "derived work" in copyright terminology), there is no strict formula available to evaluate the extent of the infringement. It comes down to a case-specific analysis of the facts by a judge. Depending on the jurisdiction, which you have not specified, there may be specific laws or judicial precedent that guide the judge, but the determination will still require a specific analysis of the facts. For example, if the alleged infringer raises these arguments, the judge would have to determine how obvious the code is, or whether the copyright claimant even owns the copyright to the code.

  • Ok, thanks you! The one character method is good for me. – Piknik Oct 8 '19 at 9:19
  • I living in Russia and a judges can't to read the code here. It's ideal for me. And thanks for the detailed answer - it's vary useful for me in future. If the one character method is useful for a judges, clean-room method is good for other people, who should not guess that the code is at least a bit like each other. – Piknik Oct 8 '19 at 9:36
  • @Piknik changing one character = making a partial copy = infringement. If you're going to rely on incompetent judges or not getting caught, you might as well copy the code verbatim. The clean room method is not for "people who should not guess..."; rather, it legally absolves the developer of copyright infringement liability because the code is demonstrably not a copy. There is no deception involved. – phoog Oct 8 '19 at 12:40

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.