4

I'm working on an AGPL web application that uses Vue3 for the UI. Most of my components are written from scratch, but for some I used a wellknown GPL3 project on Github as a reference (the project uses Vue2).

I'm not just copying and pasting code, i reimplemented the component trying to use modern javascript and Vue3 features. But, if someone compares the two, they might notice similar variable and function names, and similar behavior. I’m worried about potential plagiarism accusations.

I’m completely fine with giving credit to the original authors (and the project) by including a link and a note in my README.

My question is: what is the best practice here? Should I contact the original authors, or is it enough to simply include a reference/link?

Given that my project targets a different audience than the original, I'm confused about the term "derivative." Sorry, i'm a newbie in OpenSource, in general I associate "derivative" with forks, but my project is built from scratch using only some references from another project. Should I use the term "derivative"?

Any advice on how to properly credit the original work while ensuring compliance with licensing would be greatly appreciated.

2
  • 2
    Welcome to OpenSource! Forgive the observation, but you have a less-than-perfect history of accepting answers to questions you've asked on other sites in the network. Might I suggest that you go back and review some of your older questions on those sites, with a view to increasing the proportion of your questions that have accepted answers? That is rather the community compact. Commented Feb 10 at 9:46
  • 3
    Copyright is an intellectual property term. "I did not copy/paste" is insufficient to avoid violating copyright. Commented Feb 10 at 22:14

1 Answer 1

13

You seem to be conflating two things here: acknowledgment in the academic sense as relates to plagiarism, and copyright licensing and the conditions thereof.

The "derivative works" of which so much is here spoken refer not to forks per se but to copyright derivatives: that is, works that from a copyright standpoint derive from another, earlier, work by some other person. Copyright law generally grants the rightsholder in that earlier work a number of rights, including the right to "authorise or prohibit ... adaptation of the work".

If your work is a copyright derivative of an earlier work then you may not distribute your work unless the rightsholder in the upstream work grants you permission to do this. If they grant such permission, it may be conditional on your fulfilment of certain obligations, which will be spelled out in the copyright grant, or licence. Merely giving credit is not some magic bullet that implicitly frees you of these obligations. If you don't have such permission and you proceed regardless, it won't be plagiarism that you're accused of, it will be copyright infringement.

So is your work a derivative of an earlier work? That's a complex question, and has no simple answers; hence the existence of copyright lawyers, which I for one am not. That said, you note that you "used a wellknown GPL3 project on Github as a reference" and that you "reimplemented the component"; it's not completely clear what you mean by those, but they don't augur well for any claim that your work is copyright-independent of that earlier work. For a definitive answer, you would need to lay all the details out before a legal professional.

If you distribute derivative works of a GPLv3 work, you have a number of obligations, which are laid out in sections 4 to 6 of the GPL. The FSF notes that "you cannot take code released under the GNU AGPL and convey or modify it however you like under the terms of GPLv3, or vice versa", though they go on to note that "you are allowed to combine separate modules or source files released under both of those licenses in a single project" so with some care you may be able to release your work under a mixture of GPLv3 and AGPLv3.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.