mdmintz / pynose

pynose fixes nose to extend unittest and make testing easier
https://pypi.org/project/pynose/
GNU Lesser General Public License v2.1
11 stars 6 forks source link

Update LICENSE #29

Closed mdmintz closed 2 months ago

mdmintz commented 2 months ago

Updating the LICENSE of pynose to also include the original nose license.


A dual-license structure is allowed. For reference: https://softwareengineering.stackexchange.com/a/304895/447507

A dual-license structure is also common. For reference: https://github.com/search?q=%22Dual+license%22+%22MIT+or+LGPL%22&type=code


Summary of LICENSE changes:

Dual License of MIT or LGPL

LGPL: Original "nose" code forked from https://pypi.org/project/nose/1.3.7/ (2015) MIT: New "pynose" code that wasn't part of the original. (2024)

alerque commented 2 months ago

This does not resolve #16. You are not allowed to dual license other people's projects any more than you are to change the license in the first place. You may choose to dual license your own original code and projects, but you may not mark code that you are not the original copyright holder of as dual licensed if that's not what the original authors (all of them) contributed under. This is still just as illegal as the current situation.

mauke commented 2 months ago

"Dual license" means recipients can choose the license under which they use the software; i.e. either license is valid for the whole thing. That's not what you're doing here.

You're trying to put different bits of this software under different licenses (LGPL for the original code, MIT for your modifications), meaning recipients have to comply with both licenses to use the whole thing. Not only is that not "dual licensing", the LGPL doesn't allow you to do this at all:

  1. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    [...]

    • c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

    [...]

    But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

(Emphasis mine.)

mdmintz commented 2 months ago

Using a link to the original license is acceptable. Reference: https://opensource.stackexchange.com/a/2335/34320

ninelore commented 2 months ago

StackExchange posts are in no way legal advice

A Fedora maintainer offered a real lawyers advice in #16, which you should consider

emilazy commented 2 months ago

I won’t quibble about linking to the licence, because for better or for worse it’s not that uncommon a practice and the requirement to convey the licence to anyone who receives a copy of your derivative work are slightly vague on the exact mechanism. But “Dual License of MIT or LGPL” is still legally inaccurate and actively misleading to anyone looking to use this code, contrary to your marking that comment thread as resolved, and the continued lack of any mentions of the copyright holders of the original repository as documented in its AUTHORS file is both legally questionable and comes off as being in bad faith.

mdmintz commented 2 months ago

Pretty sure that most undergraduate computer science curriculums (like mine) didn't have any lectures on the different types of license files and how all that works. Pretty sure most people studying computer science only get trained on problem-solving and how to code. We do the best with what we start with, and then try to learn more along the way. However, in any level of learning, people need to be respectful of each other and fair. Singling out individual developers isn't respectful. People can do better.

emilazy commented 2 months ago

I’m just trying to offer simple advice you on how to meet your legal obligations and show respect to the authors of the code you’ve forked from. I agree that both of those things aren’t covered by the average university CS curriculum.

(FWIW I don’t think dogpiling is conducive to resolving those things, which is why I have focused on concrete advice.)

mauke commented 2 months ago

Speaking of respectfully trying to learn more along the way, I'd be interested to learn why you deleted the issues relating to copyright violations from https://github.com/seleniumbase/resource-files/issues and https://github.com/seleniumbase/SeleniumBase/issues. (I assume it was you because you're listed as the sole member of the seleniumbase organization.)

astatide commented 2 months ago

Pretty sure that most undergraduate computer science curriculums (like mine) didn't have any lectures on the different types of license files and how all that works. Pretty sure most people studying computer science only get trained on problem-solving and how to code. We do the best with what we start with, and then try to learn more along the way. However, in any level of learning, people need to be respectful of each other and fair. Singling out individual developers isn't respectful. People can do better.

I've stayed quiet in this because my expertise isn't needed, but not only has no one dogpiled you, you've apparently been a lead or senior developer since 2011. That's 13 years of coding practice, and you're arguing you have no idea how a license or proper attribution of credit works? Really?

Also, people aren't "singling you out". You are literally the only person doing this. They are trying to help you avoid a legal minefield.

pg83 commented 2 months ago
  • You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

yes, but new parts of code may still be licensed under MIT too.

keszybz commented 2 months ago
  • You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

yes, but new parts of code may still be licensed under MIT too.

It's actually more complicated. New parts of the code if and only if they are not derived from the existing parts. When adding new code to an existing codebase, it's very hard to argue that the added parts are not at least partially based on the older code. Usually, that new code is at least written to use the same style and conventions and APIs. The default assumption is that new stuff added to the existing code base is derived work, and thus needs to follow the original copyleft license, if the original code was under a copyleft license.

pg83 commented 2 months ago

The default assumption is that new stuff added to the existing code base is derived work, and thus needs to follow the original copyleft license, if the original code was under a copyleft license.

Absolutely. But I, as a author of new lines, still can redistribute those exact new lines, under any licence of my choice.

Effectively, new lines written by me, can be dual licensed under LGPL + MIT, providing that derived work LGPL-licensed as a whole.

mdmintz commented 2 months ago

Taken care of in https://github.com/mdmintz/pynose/pull/30

userappgate commented 2 months ago

Pretty sure that most undergraduate computer science curriculums (like mine) didn't have any lectures on the different types of license files and how all that works.

Ignorantia juris non excusat https://en.wikipedia.org/wiki/Ignorantia_juris_non_excusat