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

fobject dependency issues #180

Closed
lookfirst opened this issue May 4, 2016 · 8 comments
Closed

fobject dependency issues #180

lookfirst opened this issue May 4, 2016 · 8 comments

Comments

@lookfirst
Copy link

lookfirst commented May 4, 2016

Please bear with me, this is node backwards incompatibility dependency hell.

This project has a dependency on fobject. That project depends on graceful-fs@3.x.

graceful-fs@3.x is incompatible with node 6. isaacs/node-graceful-fs#61

fobject author isn't fixing things for months now. notslang/fobject#4

So, you get the pressure now. Either dump fobject or find a replacement please.

@lookfirst
Copy link
Author

Ok, now the author just changed the license to GPL3, which means that you can no longer depend on it at all without causing other people to get infected.

@notslang
Copy link
Contributor

notslang commented May 4, 2016

Sorry about the delay - I published v0.0.4 which upgrades all the deps (without any breaking changes).

@lookfirst: With regards to being "infected", read this: http://www.rosenlaw.com/html/GPL.pdf ... accord, roots, and all the other related software is already FOSS and is fully compliant with the terms of the GPL. The license change just prevents you from taking the new version of fobject, modifying it, and then releasing it to users without providing the source code. IIRC, you can even use a GPL-3.0 module in a proprietary project so long as the source of that module isn't modified or that modified source code is provided to users (since a node module acts as a standalone component). The text of the GPL calls this an "aggregate":

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

@lookfirst
Copy link
Author

You're right about the infected part, I take that back.

The rosenlaw pdf was written in 2001, which is ~6 years before GPLv3 was published. It is referring to v2.

@jescalan
Copy link
Owner

jescalan commented May 4, 2016

Well then, it looks like the next step here is to bump the dependency and release. Anyone want to put in a PR?

@jescalan
Copy link
Owner

jescalan commented May 4, 2016

Ok merged up 👍

@jescalan jescalan closed this as completed May 4, 2016
@lookfirst
Copy link
Author

do a release please?

@jescalan
Copy link
Owner

jescalan commented May 4, 2016

released as accord@0.23.0

notslang referenced this issue in notslang/fobject Jun 30, 2016
(only applies to work after this commit)
@gwhite
Copy link

gwhite commented Aug 26, 2016

It's worth noting that the definition of an "aggregate" under the GPLv3 differs to the version @slang800 quoted above. The actual definition includes an extra condition, highlighted below:

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

This suggests to me that if you were to use a GPL node module such as fobject within a node application, you could not consider it to be an aggregate, and so the special exemptions granted to aggregates would not apply.

If you want to distribute a node application that uses a GPL node module, you have to decide whether your application would be considered to be a "work based on" the module. If it is, the whole application must be licensed under the GPL.

It is somewhat debatable whether a program which uses a GPL library is considered to be a "work based on" that library. The GPL FAQ indicates that it is - see for example:

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

4 participants