We got a notice from our internal legal team that we cannot use this react native component (https://www.npmjs.com/package/react-native-activity-recognition) because it uses GPL License and that means when we distribute our mobile app we will also have to give away our source code. Is this true?

We are not doing any changes to that react-native-activity-recognition library, instead using as it is to integrate with other react native packages and build out our user facing app.

I would appreciate if community can help us to sort this out, because that involve major change in our app and finding some alternatives. I would be very surprised that any mobile apps that uses this package have to give away their complete app source code.

Thanks and appreciate your support.

  • I'm no java programmer, but the documentation for that package makes it look very much like a library that is compiled into your final executable. Do I have that aright, or is it used in a different way?
    – MadHatter
    Oct 11 '19 at 15:57
  • Yes, that is rite, we link that library to build a final executable
    – GammaVega
    Oct 11 '19 at 18:29
  • For LGPL that's okay for GPL isn't.
    – rook
    Oct 11 '19 at 19:57
  • @rook where exactly did LGPL come into this?
    – MadHatter
    Oct 11 '19 at 20:18
  • @MadHatter just mentioned here because talking about "linking libraries" usually comes along with LGPL, but with GPL you cannot do this. This JS module has GPL license (as stated at NPM).
    – rook
    Oct 11 '19 at 20:56

GPLv2 s2b requires that any derivative work based on GPL code must be released in its entirety under the GPLv2, which would mean giving your customers all the source code, and freedom to use it.

Whether dynamic linking to a GPL library creates a derviative work of that library is an open question. The position of the FSF is that it does, but since there is little or no case law on the question, the matter is capable of argument. We have summaries of the reasons why it should and it shouldn't on this site, but we can't give you a definitive answer.

Since your company's legal department has prohibited you from using the library, you might reasonably infer that they have at least some fear that the FSF are right. Personally, I agree with them.


1. GPL case
Modification of the software is just additional and expansional requirement which says that:

EVEN if you DO NOT ONLY USING this software BUT you ALSO MODIFYING and enhancing it with your own labour and efforts it MAKES NO DIFFERENCE and anyway falls under the GPL license

So if you use GPL modules as part of your product then your product falls under the GPL license and you must to follow the obligation. If GPL modules do useful work for your project (you include them in your product) so you need to contribute for that back to the society but without fair price judging - you just touched this and your project becomes GPL (that is why sometimes GPL called "toxic" license and makes people angry).

2. LGPL case
Later, clever people balanced the pendulum with the LGPL (Lesser GPL or "library GPL") license which ALLOWS you TO USE open source software BUT in a strictly defined way: in binary form as dynamically linked libraries. In this case it seems like a separated software realms and satisfying both sides. (LGPL became a "saviour" or "loophole" for the proprietary projects)

Note also that you CANNOT MODIFY LGPL software, you CAN ONLY USE it (as described above). Using means that your project is not obliged for changing the license terms (as it should be in the case of GPL where you must fall your project under the GPL). If you change the LGPL software included in your project you must change the license agreement of your project accordingly with the LGPL terms.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.