2

Someone on GitHub forked my OSS under a GPLv3 license and deployed it on Vercel to disguise it as their portfolio without making any changes of the source code. (They embedded the service on their portfolio website using iframe(!))

I understand that forking the source code and using/redistributing it under the license is not a problem at all. It is still okay to deploy it on a hosting service. But I really don't feel good if they disguised it as their own project as their achievement.

Do you think it is possible to stop them from doing it or force them to show the copyright notice on his website?

8
  • Could you explain a bit more about the structure of your project? Did the fork only use backend code, or did they also use parts of your project browser-side (e.g. client-side JS, assets, …)?
    – amon
    Nov 13 at 10:03
  • @amon Thanks for the comment. I implemented a retro console game emulator written in React and Next.js, so my project essentially works on browser-side. They exported the Next.js application to static HTML and deployed it on Vercel. They embedded the HTML as it seemed as their project on their portfolio website using iframe without making any change to the source code. Nov 14 at 3:35
  • @Mureinik Thanks for the correction. Nov 14 at 3:37
  • Is the software you wrote completely yours (i.e. the whole GPL3 project is your code), or did you take an existing work (e.g. GPL3 licensed or GPL2+ licensed) and add to that, releasing that under GPL3?
    – Brandin
    Nov 15 at 12:35
  • 1
    Have you considered using AGPLv3 instead?
    – ruben2020
    Nov 16 at 4:41

1 Answer 1

5

I understand that forking the source code and using/redistributing it [is okay under the GPL v3]. ... But I really don't feel good if they disguised it as their own project as their achievement.

The GPLv3 has two mechanisms that you could use to disallow this.

The first is in Section 5 (https://www.gnu.org/licenses/gpl-3.0.txt):

  1. Conveying Modified Source Versions. ...

    d) If the work has interactive user interfaces, each must display

    Appropriate Legal Notices; however, if the Program has interactive

    interfaces that do not display Appropriate Legal Notices, your

    work need not make them do so.

This means that if you add a feature to your program that displays Appropriate Legal Notices, then re-users of the program must retain that feature and the "Appropriate Legal Notices" messages. The term Appropriate Legal Notices is defined at the top of the GPL v3 license; basically it's a "Copyright" screen or message.

There is some flexibility on exactly how these are implemented, based on what kind of program it is (it must be interactive, though). You can see a hypothetical example of how such an Appropriate Legal Notice might look in an interactive terminal program at the bottom of the GPL v3 text (after the "END OF TERMS AND CONDITIONS" part).

The second mechanism that the GPL v3 gives you is in Section 7:

Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or

b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or

c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or

...

To use Section 7, you will need to have authored the whole software, or basically the whole software (the License calls it "material"), or you would need permission from the Copyright holders to add an additional term to the license.

Then you would need to write an "Additional Term" that corresponds to one of the items on that list in Section 7. Both items b and c would seem to possibly do what you want, but those items don't become active until you write and attach a specific term to your software license.

You should read it carefully, though, because at the end of that list, the GPL v3 says this:

All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.

In other words, if you try to add a term that requires something other than what is described in the items a-f in Section 7, then the end-user could consider that term an "additional restriction" and could therefore remove that term and ignore it if she wishes.

If you want to use Section 7, I would recommend reading item c and then draft a specific requirement ("additional term") that tries to accomplish that goal ("prohibiting misrepresentation of the origin of that material") as easily and reasonably as possible. It should be specific, though. If you just say "don't misrepresent the origin" or something too vague like that, then it's not clear what a re-user has to do.

Making an exact copy and then hosting it somewhere is not necessarily misrepresenting the origin, for example. Also note that the GPL itself explicitly allows making exact copies in general. For the specific situation you described (someone embedded your software in an iframe), I'd suggest that you try to draft an Additional Term where you specify exactly what you want to happen if someone hosts your code inside an iframe, for example. Probably you should avoid specific technical terms if possible, though. For example, instead of saying "iframe" it may be better to refer to a more general description of it, such as "if you embed the Software on a Web page, then ...", for example.

1
  • 1
    Thanks for the detailed and kind explanation/suggestion. It is really helpful. Since the whole source code of the project was authored by myself, I will read the section 7 closely and consider to draft an Additional Term. Your answer is much more detailed than I could imagine when I posted this question. Thanks again! Nov 16 at 4:04

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.