7

There's an iOS app I'd like to modify (named "THG Start" and I'm quite sure it is a rebranded version of "HIKMICRO Viewer")

In its Open Source Licenses (in Appendix A), among others, it lists the GPLv2. It doesn't say which library it uses that is GPLv2-licensed, but I assume it wouldn't list the GPL if it didn't use any GPL code.

Am I entitled to request a full copy of the app's source code? Also, do you have any advice on how to properly go about requesting that source code and would I need to know which GPL licensed library exactly is used in the app?

8
  • People do errors. So you should check yourself again that all parts are compatible. You can ask the app author to fix the incompatibilities. But do not assume you are not liable because you trusted app author. Commented Jul 4 at 8:40
  • Assuming they actually used GPL code in an iOS app, that's... not allowed (the GPL and the App Store policies are incompatible) Commented Jul 4 at 10:32
  • @QwertyChouskie Not according to Apple. Only according to Apple, any money a customer pays is for the license, so GPL licensed code cannot be sold on the App Store for money. Commented Jul 5 at 11:18
  • 2
    Does the appendix specifically say that it's a library? It might be a component that falls under the "mere aggregation" clause. Commented Jul 5 at 15:27
  • @gnasher729 They are incompatible, Apple even removed various GPLv2 software from the App Store. opensource.stackexchange.com/questions/9500/… Commented Jul 6 at 23:03

2 Answers 2

8

First, if a library is generally available, I can use it and pass the responsibility on to the provider of the library.

You can request the source code. They can give it to you or not. If you don't receive the source code, the copyright holder can sue them for copyright infringement. Assuming you are not the copyright holder, you can't.

To help them going to court, you'd have to find the copyright holder, and the first step would be to find the library. Then you'd have to convince the copyright holder that going to court is worthwhile for them.

On the other hand, Apple doesn't like apps with doubts about their copyrights on their store, so Apple can and might take action if you inform them.

9
  • 1
    Thank you! But in your example you would still have to provide the source code of your application if your distribution in any way contains that library, right? Commented Jul 3 at 9:32
  • 5
    @matthias_buehlmann, if any part of the App is under the GPL license, then the GPL license allows you to request the source code for the entire App (and the App developer should give it). Commented Jul 3 at 12:43
  • 5
    @gnasher729, I'm not sure where you get the idea that "if a library is generally available, [you] can use it and pass the responsibility on to the provider of the library". Are you relying on the system library exception in GPLv2 s3? Commented Jul 3 at 14:49
  • 3
    It's possible that a third party who is not the copyright holder (i.e. you) might also be able to sue them to get the complete app source code, but it depends on how the lawyers and judges in your country feel about things like that. Commented Jul 3 at 16:20
  • 2
    @gnasher729 option 3 is only available to you if you're distributing non-commercially, and only if that library was made available to you with a written offer to provide source on demand. If the upstream is providing source on the internet, they presumably didn't take that route, and so you can't, either. Commented Jul 5 at 12:44
5

Ok, first you need to establish if this is a GPL or an LGPL. These two are often confused but are quite different.

If a library is GPL, then yes, the resulting combined work must be licensed under terms compatible with the GPL, meaning that the source is available under all of the terms of the GPL with NO added restrictions.

If the library is LGPL, then you are entitled to the source code of any changes made to the library AND the binary must be presented in a way that you could relink the library where you to recompile that library (so depending on the OS, something like object files and headers or whatever). LGPL is specifically designed to allow proprietry software to link with it without letting the proprietary software vendor hide their modifications to the library from you.

Now, assuming you DO have a GPL violations on your hands, that doesn't automatically grant you the right to the code however. Its up to the copyright holder to pursue the violation of their copy rights. You could certainly try to ask for it, you'd be doing the world a favor if you did, and many vendors will go "whoops, looks like we forgot to put out the source" (A recurring theme with hardware embeddings) but if they refuse, your best bet is to contact the owners of the GPL code and report the violation to them. At that point ,they can choose to either pursue it, get lawyers involved, or contact someone like the FSF for help in resolving it. Unfortunately as you probably dont have juristiction (its not your copyright being violated) you probably dont have legal grounds for injunctory relief.

note: I'm not a lawyer, this isnt legal advice.

6
  • Oh, and if you can't find what the code possibly "stolen" is, look through the included dll/so/dylib files and see if anything jumps out at you, and if that doesnt work (meaning its statically linked and therefore possibly violating lgpl too) you could use a command like strings <filename> over the main binaries to hunt for strings revealing what libraries are being linked to. Bonus points if you find the term "GPL" in the source code. Commented Jul 4 at 8:09
  • To add to the above, this might be a little tricky for IOS, there ARE ways documented on the web to obtain copies of the IPA file (or whatever it is these days, been a good decade since I was last working as an IOS dev) but I'm not sure the TOS compatibility of doing so, and unclean hands might work against you legally if you try and pursue it legally. Commented Jul 4 at 8:14
  • If I use GPL licensed code without following the license, it is also possible to offer the copyright holder lots of money for a non-GPL licensed version. Commented Jul 4 at 21:35
  • It's the GPLv2, not LGPL. The open source license text however doesn't point out which library it's using that is GPLv2 licensed Commented Jul 8 at 23:34
  • Yeah thats a pickle. There probably is a GPL violation in there somewhere. But theres probably not a lot you can do to enforce it. If you want to take it further, I'd suggest getting in touch with the FSF for advice. Ultimately the best thing you could do is to try and isolate what the library is (maybe using my suggested methods in the comments) and if you do find it, notify the crew behind the library. Commented Jul 27 at 14:00

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.