Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Remove dogslow dependency, use permissive license #5

Open
tony opened this issue Aug 30, 2022 · 2 comments
Open

Remove dogslow dependency, use permissive license #5

tony opened this issue Aug 30, 2022 · 2 comments

Comments

@tony
Copy link

tony commented Aug 30, 2022

Most projects won't be able to use this package since it's virally license (LGPL) - I assume due to the https://bitbucket.org/evzijst/dogslow dependency - and that's not normal for python packages.

The reason why I think LGPL isn't used in python projects are excerpts like these (source):

When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not.

If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work.

That's arbitrary. Python doesn't use header files. 10 lines is just a number pulled out of a hat. It doesn't make sense or do anything but encumber users downstream.

If the https://bitbucket.org/evzijst/dogslow dependency is dropped (105 lines) and this package uses a license more usual for web apps (MIT, ISC, BSD, etc) it'll make adopting the package easier

@tony
Copy link
Author

tony commented Aug 30, 2022

To clarify, I brought the subject up on their tracker December 2021: https://bitbucket.org/evzijst/dogslow/issues/26/license-issue

@intgr
Copy link
Owner

intgr commented Aug 30, 2022

If the [dogslow] dependency is dropped

This package has no "dependency" on dogslow, it's a fork -- literally a derived work -- of the mentioned dogslow package. There are chunks of code in this repository to which I do not own the copyright, so I cannot relicense those parts of the code. Note that it's not just timer.py, there's also original code from __init__.py.

To change the license, it would be necessary to get the approval of everyone who contributed to the project in a non-trivial capacity, or some sort of cleanroom re-write of the parts for which there is no approval (although "just rewriting lines of code" without re-engineering the architecture seems legally dubious to me, but I'm not a lawyer).

FWIW I would be glad to re-license my own contributions to this project under a more permissive license.

Most projects won't be able to use this package since it's virally license (LGPL)

I'm not a lawyer, it seems neither are you, I think you are misinterpreting LGPL. Python code is normally distributed in source form, in which case the requirements for LGPL are satisfied even when "linking" (importing) code that has different licenses. If someone wants to redistribute this in binary form as .pyc files, the requirement "so that they can relink them with the library after making changes to the library and recompiling it" is also satisfied, because there is a one-to-one correspondence between source files and .pyc files, these files can be swapped out one by one.

But I have no interest in going deeper in the license legalese, I'm not a fan of the LGPL personally either.

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

No branches or pull requests

2 participants