Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

LZO implementation is GPL-licensed #12

Open
gniezen opened this issue Oct 24, 2018 · 7 comments
Open

LZO implementation is GPL-licensed #12

gniezen opened this issue Oct 24, 2018 · 7 comments
Labels

Comments

@gniezen
Copy link

gniezen commented Oct 24, 2018

Hi there,

I noticed that node-lzo is licensed under the MIT license, but the LZO implementation used is GPL. Wouldn't that make node-lzo GPL-licensed as well?

@schroffl
Copy link
Owner

schroffl commented Oct 24, 2018

I guess you are right, I never really looked at the legal side of software development.
Do you have any advise other than updating the license?

Edit: What's with the older versions of the library, do I have to update their license as well? It would be annoying to purge everything from the git repository.

@schroffl schroffl added the legal label Oct 24, 2018
@gniezen
Copy link
Author

gniezen commented Oct 24, 2018

Unfortunately not. We have BSD-2 licensed code and it would've been great to use node-lzo. Having a GPL-licensed dependency shouldn't be an issue for us, as our code is already open-source, but but we want people to be able to use our code in closed-source apps as well.

I think we'll have to switch to an LZO implementation with a more permissive license (MIT/BSD) or LGPL. I have not been able to find any MIT/BSD licensed implementations, but there are LGPL implementations in for example ffmpeg.

@schroffl
Copy link
Owner

I am sorry for that. The only way you could use this is if I were to write the LZO implementation on my own or used a library that works with the MIT License, right?

@gniezen
Copy link
Author

gniezen commented Oct 25, 2018

Yes, an MIT- or BSD-licensed library would be ideal, but the only one I've found is written in C#. You could also used a LGPL-licensed implentation. I've started working on building a module that makes use of the one in FFmpeg's avutil C library, using N-API to wrap the calls.

@schroffl
Copy link
Owner

I actually planned on writing a pure JavaScript implementation when I kicked off this library, but I was very much too inexperienced with C and not motivated enough to dig through the code and translate everything to JS. It also doesn't help that everything is written in a rather obfuscated manner.
Do you know of any resources that outline the process? Maybe even pseudocode? I wasn't able to find anything back then and I don't think it has gotten a lot better.

@gniezen
Copy link
Author

gniezen commented Oct 25, 2018

I do indeed: https://www.kernel.org/doc/Documentation/lzo.txt It's a description of how the LZO decompression algorithm in the Linux kernel works.

@schroffl
Copy link
Owner

Oh cool, I will definitely take a look at it. Thank you!

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants