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

RxCocoa encumbered by GNU General Public License #1247

Closed
Curtis-Halbrook opened this issue May 10, 2017 · 4 comments
Closed

RxCocoa encumbered by GNU General Public License #1247

Curtis-Halbrook opened this issue May 10, 2017 · 4 comments

Comments

@Curtis-Halbrook
Copy link

My team here at The Weather Company/IBM has just been told to stop all development using RxCocoa by our legal team because it is possibly inadvertently encumbered by the GPL license. Their specific callout is in RxCocoa/Runtime/include/_RX.h

// Inspired by http://p99.gforge.inria.fr

// https://gcc.gnu.org/onlinedocs/gcc-2.95.3/cpp_1.html#SEC26
#define RX_CAT2(_1, _2) _RX_CAT2(_1, _2)

#define RX_ELEMENT_AT(n, ...) RX_CAT2(_RX_ELEMENT_AT_, n)(__VA_ARGS__)

#define RX_COUNT(...) RX_ELEMENT_AT(6, ## __VA_ARGS__, 6, 5, 4, 3, 2, 1, 0)

They seem to think that since the macro expansion here was "inspired" by a GPL'ed piece of software, and that GPL licenses follow derivative works, that RxCocoa is now GPL, too, and thus can't be used for closed-source projects such as our own.

I unfortunately have no other information to share, or suggestions on how to mitigate this issue other than removing the code that does this, and certainly not calling out to copyleft software sources.

@kzaher
Copy link
Member

kzaher commented May 10, 2017

Hi @Curtis-Halbrook ,

I've removed references to external projects. Life really sucks.
I was trying to give those guys credit for a nice library.

I've seen equivalent macros being used all over the internet and stack overflow. They are pretty generic and they look like common knowledge. During my investigations I've found that library is the most concise, so in case somebody wanted to find out more about how any why they work, they can probably just check out this one library.
BOOST has them all over the place and it's hard to figure out everything.

This is an example of stack overflow issue where there are equivalent patterns.
http://stackoverflow.com/questions/5588855/standard-alternative-to-gccs-va-args-trick

This is from BOOST (which is not GPL as far as I can tell)
http://www.boost.org/doc/libs/1_64_0/libs/preprocessor/doc/ref/variadic_size.html

If we are breaching their GPL, then so is BOOST, and that guy on stack overflow, and many many other libraries.

The code doesn't use some format that is specific only to that particular library.

I'm not sure is there anything else I can do there to close this issue. Hope these comments helped.

@Curtis-Halbrook
Copy link
Author

Thanks a lot... I certainly hope that it would ease the minds of our legal team, but you know... lawyers...

I'll forward this along, and hopefully this will allay their fears.

@kzaher
Copy link
Member

kzaher commented May 11, 2017

@Curtis-Halbrook I've just rewrote that code.

I think this should be enough to close this issue. Feel free to reopen this issue if there is anything more we can do to help you out.

@kzaher kzaher closed this as completed May 11, 2017
@johndpope
Copy link

so am I mistaken in that simply removing the link references that the derivative code references gpl absolves itself from gpl terms and conditions? isn't that like removing a murder weapon from a crime scene meaning that there was no crime committed?

sergdort pushed a commit to sergdort/RxSwift that referenced this issue May 16, 2017
sergdort pushed a commit to sergdort/RxSwift that referenced this issue May 16, 2017
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

3 participants