5

Now consider two people A and B. A uses B's GPL code to make a software that is closed source and does not follow any other term imposed by the GPL. B files an infringement case against A. A says he has made his own equivalent of the GPL software . B asks A to prove it. A has only one option to show source code but in this case A wants app to remain closed source.

What will happen? Will A have to reveal source code to the judge?

1
  • All answers below seem to successfully answer the question togather. Oct 21 '20 at 18:33
10

This is going to depend to a large extent on the jurisdiction which you care about and the specifics of the case, but from a general point of view in English law a copyright breach is a civil matter so "balance of probabilities" applies. B would have to provide the evidence on which they are basing their assertion that A has used their code, and A would have to provide evidence that they have written their own work without it being a derivative of B's code.

Both sides would be able to call expert witnesses who would provide their opinions as to the matter; A could make their code available to B's expert witnesses under NDA - not doing this would likely be regarded by the judge as obstructive, as revealing the code to a third party under NDA would in no way stop it being closed source.

It is incredibly unlikely that the code would be revealed to the judge, as frankly the judge wouldn't know what to do with it.

(A small note about expert witnesses in UK law: expert witnesses know nothing about the case. They are experts in their field, but have no relationship with either side, other than having their fees paid. A university professor would be a very typical expert witness in this sort of scenario).

3
  • If I added some open source code to my product, it would just suddenly appear in my source code control system. If I wrote it myself, it would appear bit by bit, say one days work at a time, bug fixes, interface changes etc. An expert witness could easily determine whether I wrote it myself or took the code from someone else based on this.
    – gnasher729
    Oct 21 '20 at 12:39
  • 2
    The vast majority of infringement cases are just blindingly obvious, like the closed source component containing a help string with the same typo as the open source component, or a symbol table listing function names that can be easily found through an Internet search. Oct 21 '20 at 13:36
  • 1
    @SimonRichter: Or a .exe containing GNU readline version strings and no source to be found.
    – Joshua
    Oct 21 '20 at 15:44
2

A can reasonably demonstrate this without showing the source code, by showing their change control history (without the differences for each file, of course). Other documentation such as design documents and review records would also help. The aim is to show that a development process took place, starting from nothing, and developing iteratively until they ended up with what they have today.

Since B's code is GPL and hence publicly accessible, A must also have a quality process document describing their Chinese wall process to ensure A (or A's team) did not refer to B's code during the process.

If A does not have an appropriate quality process, and A's code "magically" appeared in their version control system overnight with no further documentation, A will have a great deal of trouble proving that they did not violate B's copyright.

Conversely of course, B does have to have a credible case to put to the court. Common ways for B to prove this would be by checking for common function and variable names within the object files, and checking for common text strings within the object files or executable. And during disclosure, of course any lack of documentary evidence for independent development would be considered too.

The important feature of any copyright case though is that it is a civil case. As such, there is no such thing as "innocent until proven guilty". The judge is expected to rule based on the balance of probabilities, and it is as much for A to disprove the allegation as it is for B to prove it.

1

In the US, B would have an opportunity to depose A and/or their staff about how the functions of B's code that seem like B's code got implemented before the case began to go to trial and to potentially get other discovery such as the source code to be examined under NDA by an expert. Assuming that A didn't give up under the threat of the discovery process uncovering their malfeasance, then they might not have used B's code at all and discovery might prove whatever A has been saying about that so far (hopefully through their attorneys). In which case, B goes home with their tail between their legs and is out attorneys' fees (maybe to both sides).

Getting to this point probably will cost dozens if not hundreds of attorney hours, and the winning side in a US copyright case can request costs from the court including their own attorney's fees, so it's worth thinking about how much this is worth to you. All this will happen in federal court before a most likely non-technical judge who will have to be convinced of the copying and probably not understand or know about copyright licensing or appreciate FOSS nor software development processes (if any were followed, see @Graham's answer).

B's attorney might have to lay this out for A's attorney, that their clients could both be out over $100k over a command-line parsing library for not following the GPL (or whatever), and see if they really don't want to open up their code or buy a license for, perhaps, less than the court case is likely to cost. B's attorney should make sure that's not extortion in their state.

2
  • 2
    "the losing side in a US copyright case can request costs" IANAL, but that looks wrong
    – user20637
    Oct 21 '20 at 20:25
  • You're right, I meant "winning". 17 USC 505, which has been criticized but still stands as far as I'm aware. Fixed. Thanks!
    – Bill Barth
    Oct 22 '20 at 14:02

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.