openphotogrammetry / meshroomcl

MeshroomCL: An OpenCL implementation of photogrammetry with the Meshroom interface
Other
173 stars 8 forks source link

Source code used to build binaries not available (despite MPL2 licence of dependencies?) #33

Closed ochafik closed 2 years ago

ochafik commented 2 years ago

First off, super cool project, hope it matures!

However I couldn't help but notice (as others did in issues#24 and issues#21) that you're distributing (Windows-only) binaries without the sources needed to build them. It looks as though said Windows binaries are built from modified sources of https://github.com/alicevision/AliceVision (this repo only seems to contain a fork of the Python UI from https://github.com/alicevision/meshroom).

As you've ackowledged in your own COPYING.md, AliceVision is released under the MPL 2, which has a very nicely done FAQ. While the full license is worth reading on its own, the FAQ has two questions very relevant here which i've copied here:

Now, I'm not a lawyer but it looks to me that you can't just distribute your binaries without accompanied "actual" sources used to build them. And it might be debatable how much of those sources are themselves MPL-licensed, but I'd say if your OpenCL kernels were derived from the original CUDA kernels in any way (even if they're in new files, see section 1.10 of the MPL2), then they're likely "Modifications" of the "Covered Work" and hence MPL-licensed too.

Does that make sense?

revisionarian commented 2 years ago

Hi @ochafik, thanks for your interest in MeshroomCL, and for expressing your concerns about the licensing.

The MeshroomCL binaries are not based on any modified AliceVision code. The AliceVision components of MeshroomCL are compiled directly from the source code available in the AliceVision repository at https://github.com/alicevision/AliceVision. The OpenCL-accelerated portions of MeshroomCL are not derived from the CUDA code or algorithms of AliceVision (the MeshroomCL and AliceVision algorithms are very different).

MeshroomCL does use modified code from the Meshroom code repository at https://github.com/alicevision/meshroom. We've made the source code for those modifications available at https://github.com/openphotogrammetry/meshroomcl.

Your concern is premised on the assumption that MeshroomCL is based on modified AliceVision code, which is a wrong assumption. As far as we know, we are in compliance with MPL2.

ochafik commented 2 years ago

Hi @revisionarian, thanks for the quick clarifications!

The AliceVision components of MeshroomCL are compiled directly from the source code available in the AliceVision repository at https://github.com/alicevision/AliceVision

Got it! Out of curiosity, could you share which components / pipeline nodes you did retain & compile unmodified?

The OpenCL-accelerated portions of MeshroomCL are not derived from the CUDA code or algorithms of AliceVision

Edit: I had missed the COLMAP section in COPYING, now understanding how the app fits together :-D

Are they related to colmap / maybe https://github.com/openphotogrammetry/colmap-cl? (as suggested here). If that's the case, mentioning it (and its BSD-license) in COPYING would have helped reduce my and others' confusion :-)

Your concern is premised on the assumption that MeshroomCL is based on modified AliceVision code, which is a wrong assumption

I stand corrected then, thanks!