thirtythreeforty / neolink

An RTSP bridge to Reolink IP cameras
https://www.thirtythreeforty.net/posts/2020/05/hacking-reolink-cameras-for-fun-and-profit/
GNU Affero General Public License v3.0
895 stars 151 forks source link

Dissector license #341

Closed AlexxIT closed 1 year ago

AlexxIT commented 1 year ago

Hi. You have done an amazing job in researching the Reolink protocol. I was wondering if your description of the protocol could be used in the development of the MIT project? I don't really understand what the AGPL license affects in this project. Only the code on Rust or all the other research.

QuantumEntangledAndy commented 1 year ago

Thats a complicated question I think. The code itself is under AGPL which is not compatible with MIT. However although you can copyright code I don't think it's possible to copyright ideas of code.

Which MIT project are you working on that needs the protocol? I can perhaps direct you in its working. I've recently also RE the relay protocol that reolink uses that isn't documented yet. Should add that at some point

AlexxIT commented 1 year ago

This project: https://github.com/AlexxIT/go2rtc

Some Reolink models has awful RTSP/HTTP-FLV realisation. I think it would be better to use the native protocol. I am also capable of implementing two way audio for this cameras. But I certainly don't want to waste time researching this protocol again from scratch.

I would also like to hear the opinion of @thirtythreeforty

QuantumEntangledAndy commented 1 year ago

I see well, we shall wait for @thirtythreeforty then. But it a complicated issue. We are certainly not the only project with an REd Reolink protocol and there are a few python projects too. I do believe that this project has the most complete implementation though.

QuantumEntangledAndy commented 1 year ago

You may want to contact thirtythreeforty directly via email too as he isn't always active here.

AlexxIT commented 1 year ago

Looks like other python projects just take this dissector code and label it as MIT license. I want to make sure that the author does not think this is wrong. Or I'll just have to skip the native support for Reolink cameras until better times.

thirtythreeforty commented 1 year ago

Hey @AlexxIT. Good question! Let me see if I can clarify.

I did intend for the Lua dissector code itself to also be covered by the LICENSE file, e.g. AGPL; I think it is reasonably clear that that file applies to the whole project but we have been lax about including a notice in all the source files saying to refer to it. It is probably worth clarifying the license with a header comment in the file and perhaps reaching out to the projects that have grabbed it to make sure it's clarified with them.

That said, in my opinion there is nothing stopping you from reading and understanding the protocol using the dissector, or the protocol docs kindly made by Andy and others, and reimplementing a new library with whatever license you want. I'd appreciate a link back to the docs from your implementation, but even that isn't necessary. The information in those docs isn't copyrightable/licenseable. Only when your code is a derivative work of GPL'd code (e.g. copy/paste, direct translation to a new language, etc) does the GPL require a compatible license. So I think you're free to implement a new parser based on our docs!

AlexxIT commented 1 year ago

Thanks! It's great news. I'll do my best after finish some other tasks. Of course I'll put link to your work if get any success with this brand.