Question

I'm writing a Java class, part of an opensource game development framework under the Apache 2.0 license.

There is another framework, under the same license, that happens to also have a Java class that addresses the same subject as mine. I recently checked it out, and my implementation is extremely similar to that. Heck, even the local variables. The differences are minimal.

Since both classes are opensource, I guess it doesn't matter. However, since the codes are so similar, anyone may come to the conclusion that I just modified theirs a bit, and eventually quote the license:

  • You must give any other recipients of the Work or Derivative Works a copy of this License;

  • You must cause any modified files to carry prominent notices stating that You changed the files;

Since I wrote my class, there's no need to put their copyright notice in my code. However, it cannot be proven that I didn't just copy their code and modified a bit.

What is one supposed to do in this scenario?

Était-ce utile?

La solution

You developed the code in isolation of the other code, the code is not a derivative work of the other. Do nothing that would claim that yours is a derivative of the other.

Writing code that does similar things will often be implemented the same way. An anecdote of this is I was working on some software to handle arbitrary precision decimals (money). The code had a long and an integer and some methods. Later I found another developer had previous implemented some code to handle decimal fractional quantities (it was a big project) - it had a long and an integer and some methods. Our internals were identical with very similar access methods. We were solving the same problem and had the same ideas about how to implement it - there are only so many ways to do it. If these were different software projects, mine still wouldn't be a derivative of his.

If you and I were both to implement an abstract factory for accessing files via a web server and we both chose to do it with annotations and had very similar base types... it doesn't make one a derivative of the other unless you were basing your code design off of mine.

Copyright covers the actual implementation. If you reworded it. Changed the variables. Modified the other to something in yours. Those are a derivative work, which would be covered by copyright law. But copyright law doesn't cover ideas - that is the domain of patent law. That you and the other both hand an idea and implemented the idea in the same way, that's just convergent coding.

Now, it wouldn't be a fun lawsuit to fight if it ever came down to it. Lawsuits are never fun to fight. But saying that yours is a derivative work can cause you more headaches down the road if you should ever decide to dual license or pursue someone else for copyright infringement of the work (because only the copyright holder can pursue the infringement, and you would be saying you're not the holder of that copyright).

Autres conseils

Why not contact the other project and offer to pool your resources?

Such "project merges" are reasonably common for open source projects.

Licencié sous: CC-BY-SA avec attribution
scroll top