Rxswift: RxCocoa encumbered by GNU General Public License

Created on 10 May 2017  路  4Comments  路  Source: ReactiveX/RxSwift

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.

Most helpful comment

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.

All 4 comments

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.

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.

@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.

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?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

apoloa picture apoloa  路  3Comments

trungp picture trungp  路  3Comments

gaudecker picture gaudecker  路  3Comments

gekitz picture gekitz  路  3Comments

trant picture trant  路  3Comments