alicevision / AliceVision

Photogrammetric Computer Vision Framework
http://alicevision.org
Other
3.02k stars 826 forks source link

Copyright infringement #338

Closed pmoulon closed 6 years ago

pmoulon commented 7 years ago

I'm opening an issue regarding many copyright infringement you introduced recently in your project.

Here a short introduction for any new comers on this issue:

So, removing copyright is one thing, but being selective on the deletion of them sounds strange:

He some copyright notice you choose to keep:

Some copyright notices you choose to remove:

As a conclusion:

AliceVision wants to spread and foster a welcoming environment -> CODE_OF_CONDUCT.md

Starting with many copyright infringement seems not to be a "harassment-free" experience for everyone.

[1] https://opensource.org/faq#preserve-copyright-notices Can I strip out the copyrights on Open Source code and put in my own? Definitely not! This isn't even about Open Source, really: in general, you should not remove a valid copyright notice, no matter what license it specifies. Copyright notices are legal notices; they are also a source of information about the provenance of source code, and if that information is stripped out, recipients of downstream copies have no easy way to rediscover it.

julien-michot commented 7 years ago

+1

fabiencastan commented 7 years ago

Hi,

Mikros Image has started a project to develop photogrammetric tools for post-production and made the choice to release it in open source under MPL. The first step of this project was your CIFRE thesis. As part of your mission at Mikros Image you created this great open source project called openMVG. After your resignation, you removed Mikros Image write access to the repository, integrated your contributions without our validation and refuses almost all our contributions. After 2 years of attempts to setup a collaborative context, we moved to a new name. So AliceVision is not a new project that includes openMVG but the continuity of our developments under a new name.

The point was to change all the headers to use the new name and as the project is growing a lot (we are in the process of integrating MVS steps in the pipeline), we decided to move to a global management of copyrights. As explained here for instance: "there are also several problems with file-scope notices, particularly in large projects. They require a considerable amount of maintenance and attention over time as the size and developer base of the project increase. In a small program consisting of a few files, file-scope copyright notices are relatively easy to maintain." The other point is that Mikros Image is the initial copyright holder of openMVG and largely the main contributor (at least in this version) but is not present in a single copyright. It's probably due to a confusion between authorship and copyright at the beginning as Mikros Image has not transferred their natural rights. On our side, we are not even asking you to change it in your fork, but we claim our legitimacy to fix this in our project. That was also a reason to move to a global copyright management to avoid useless discussion per file and improve the long-term maintenance. That's why I only changed copyrights related to openMVG to move to a global management. The legacy of libmv is still clearly explained in the top level files, but the removal of libmv headers is a major error that will be fixed.

I also understand your remarks and I agree that the solution was too simple for this complex problem. I apologize for the tensions it has created. The intention was to make things simple and coherent across the project and not to be disrespectful but I understand that it can be seen like that. So I will make a new PR and I hope that it will make a consensus.

@gerv, I would be interested to know your recommendations for the particular case of individual files from another project (we have the case with BSD-2, BSD-3 and MIT license) integrated into the source tree and modified to use the data structures of the project. Should we keep the original license unmodified and publish the modification under the same license or does it makes sense to add MPL on top of it (as it is done currently) to say that the modified version has additional rules?

gerv commented 7 years ago

@fabiencastan If you want the modified version to have additional rules, you should add the MPL on top. If you want the modified version to be license-compatible with the original (so that you can, for example, send improvements to the upstream project) then you should leave the license headers as-is. Either is legal, as long as the original license is MPL2-compatible, which is true of all of BSD-2, BSD-3 and MIT.

pmoulon commented 7 years ago

Hi,


Thank you for your answer. I understand that the situation is not easy, and that your intention was to simplify things. I mean:

I totally understand the need for the AliceVision FORK, the objectives of OpenMVG and AliceVision are not the same:

I made this post to:

The other point is that Mikros Image is the initial copyright holder of openMVG.

  1. Me, MikrosImage and ENPC Imagine choose to use the MPL2 license.
  2. Since the OpenMVG project was released as open source it does not depends on any industrial, academic entity but only on his own license.
  3. Partners choose to use my copyright mainly because I have started the project before joining MikrosImage and ENPC Imagine. (i.e The original code of OpenMVG was actually developed as a FORK of Libmv on my own free time before I joined any industrial entity.)

Regarding the PR status from your organisation, I would not say that I declined your PRs:

Here the merged PRs: https://github.com/openMVG/openMVG/pull/71 https://github.com/openMVG/openMVG/pull/334 https://github.com/openMVG/openMVG/pull/324 https://github.com/openMVG/openMVG/pull/241 https://github.com/openMVG/openMVG/pull/427 https://github.com/openMVG/openMVG/pull/405

Here the declined PR: https://github.com/openMVG/openMVG/pull/450 https://github.com/openMVG/openMVG/pull/444 https://github.com/openMVG/openMVG/pull/376 -> At this time I already mention the fact that the MPL2 license header was missing and I kindly said that you can put your own copyright on the new files (2015) https://github.com/openMVG/openMVG/pull/369

In fact, it looks like more PRs have been accepted than declined.

Note: Copyright is also a way to track who wrote the file if the per file history cannot be maintained (when we bring external piece of code).

Looking forward to your PRs to restore the legacy of libmv license and copyright notices.

pmoulon commented 6 years ago

Copyright notices are important and should be preserved.

One famous library that keep copyrights notice and that is broadly used and trusted by the community is boost.

See https://github.com/boostorg/geometry/blob/develop/include/boost/geometry.hpp#L3 https://github.com/boostorg/serialization/blob/develop/include/boost/archive/archive_exception.hpp#L12 https://github.com/boostorg/chrono/blob/develop/include/boost/chrono.hpp#L3 ...

So every file is covered by the same license but keep the copyright of the creator.

Since the situation is not moving I propose the following:

From an external viewpoint your action is seen as hiding and claiming the ownership of the code rather than thanks the libmv and openMVG project that made your fork possible.

fabiencastan commented 6 years ago

Hi Pierre, Sorry for the delay to fix this. Thank you for your proposition which makes things easier to manage. I made a PR #361 based on this proposition. I hope this removes ambiguities and will make a consensus. Let me know if it is good for you.

pmoulon commented 6 years ago

I would like to see this PR re-opened and have this remaining point fixed: https://github.com/alicevision/AliceVision/pull/361#issuecomment-393014675

gregoire-dl commented 6 years ago

@pmoulon it's normally fixed with #415

oddkiva commented 6 years ago

Shall we bury the hatchet and move on now? Thanks.

pmoulon commented 6 years ago

Thx @gregoire-dl 👍 @davidok8 There is no war there. I just care about respect of the OpenMVG community, code, work done and relative copyright (This is how open source work).