2

Their fork in question is: https://github.com/weiluntong/ProtonVPN-server-load

My original upstream code is: https://github.com/twenty5151/ProtonVPN-server-load

First, I am aware of the two related questions: Can someone fork my GPL licensed project and re-license it under MIT or BSD?, and Relicensing a fork of a GPL project and source code distribution requirements. However, the situation here is that they have significantly modified the code.

I know that in principle, it is a violation of the GPL. However, upon reviewing their changes, there is very little similarity to my upstream version. In their commit message, they noted that it is "sufficiently derivative", but I think they meant "sufficiently original". Indeed, my original code has three files in total, and their fork has completely removed my code. Their core logic here essentially shares no original code.

Are their claims of "sufficiently original" valid and does that justify the license change? Is it a "derivative work" of the GPL code anymore? How much does the code need to change to become "original work"?

Edit: reading https://softwareengineering.stackexchange.com/questions/81705/rewriting-gpl-code-to-change-license, the structure of the code is different, but two names/lines have been reused verbatim (out of the entire repo):

response = requests.get('https://api.protonmail.ch/vpn/logicals')
servers_dict = json.loads(response.text)

I don't think using requests.get on the url or loading its json is copyrightable work, but the names have not been changed, therefore it is still a "derivative work"? Or can it still be considered Fair Use?

  • "The structure of a program, or the organization of code into files and classes might be sufficiently creative to qualify for copyright protection" - I think the new structure and organization of the fork, especially the use of poetry, qualifies it as original. The remaining pieces of the original are the two lines and some of the README, but I think they qualify for either the merger doctrine or fair use, because a clean room implementation would likely feature them anyway: using requests.get and json.loads is pretty generic, and the readme has to document the same things. Thoughts? – akazukin5151 Jul 26 '21 at 20:54
  • 3
    It does not really matter whether only two lines remain the same, or whether it was 200. Think about a translation of a book -- in a translation, the translator rewrites every single sentence of the original work from one language to another. Yet that translation is still considered a derivative work of the original. – Brandin Jul 27 '21 at 12:24
  • 1
    Other than similar names, the two pieces of code (in vpn_servers.py) look more or less completely different to my eyes. I.e. they are two different programs. They don't even appear to do the same thing. One prints to the console, for example, the other just returns a list. – Brandin Jul 27 '21 at 12:31
  • 1
    Related: Where is the line between copying code that isn't yours and getting idea from trivial code?. Also refer to the https://en.m.wikipedia.org/wiki/Abstraction-Filtration-Comparison_test – Brandin Jul 27 '21 at 13:31
  • Good point about the programs doing different things. This solidifies my opinion that the fork is sufficiently original. I think the remaining two lines and parts of the README aren't unique or original enough by themselves to qualify for copyright protection, given that they can both be used verbatim in two different, original programs. – akazukin5151 Jul 27 '21 at 15:34
  • For future context, the first (now hidden) comment was if https://opensource.stackexchange.com/questions/4345/theseus-paradox-applied-to-code-copyright answers my question. I ticked yes to SE as my question has been answered and it was marked as a duplicate. – akazukin5151 Jul 27 '21 at 15:40
  • 2
    Part of the issue is that GitHub makes it too easy to press "fork", and from there the 'forker' can just burn everything to the ground and start over if she wants (which is what seemed to have happened here). If these two programs were discovered independently of GitHub, it's unlikely one would say one is a "fork" of the other, though you could probably tell one was inspired by the other, based on the similar names. – Brandin Jul 27 '21 at 15:55

0 Answers0