12

I'd like to use UniPDF, which is a Go project to handle PDF documents, in my project.

UniPDF has a dual license: AGPL and commercial while my project is licensed under the GPLv3.

I'd like to fork UniPDF and use it in my project for two reasons:

  • The project renders the PDF document with a watermark that states that the document was created with an unlicensed version. I'd like to get rid of this. I contacted the company to see if there's a simple way of doing this but they didn't get back to me.

  • But even if the watermark part is solvable without forking, I'd like to add some functionality to the project that I don't think they'll be interested in.

So my questions are:

  1. Am I right assuming that the AGPL and GPLv3 are compatible?

  2. How should I proceed with the fork and the dual license? Should I keep the original README where the dual license model is explained, or can I just point that to the original README and state that it's a fork under the AGPL?

  3. What do I need to do to fully comply with the license in my project apart from just importing the Go library?

Thank you!

12
  1. Am I right assuming that the AGPL and GPLv3 are compatible?

Yes, you can combine them, with the combination effectively being governed by the AGPL v3 license:

GPL v3 section 13. Use with the GNU Affero General Public License.

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

As for:

  1. How should I proceed with the fork and the dual license? Should I keep the original README where the dual license model is explained, or can I just point that to the original README and state that it's a fork under the AGPL?

Dual licensing means that the publisher of the project makes it available under two licenses. Recipients of the project generally use it only under one. If a project is dual license under AGPL and a commercial license, then if you use it under the terms of the AGPL license you completely ignore the commercial license. You can keep or ignore the project's README, what matters is that you include the AGPL license in your project.

  1. What do I need to do to fully comply with the license in my project apart from just importing the Go library?

By including an AGPL v3 library in your project, your project now becomes an AGPL v3 licensed project. It's probably simplest for you to simply stop thinking of it as a GPL v3 project, and to replace all references, license files, etc, to the AGPL v3.

| improve this answer | |
  • 7
    In a case like this, when you distribute a modified version of a dual-licensed product, it is probably better to mention only the licenses under which you are offering the modified version. I think that would be only the AGPL in this case. – Bart van Ingen Schenau Jan 17 at 15:07
  • en.wikipedia.org/wiki/… indicates the AGPL3 and GPL3 are mutually compatible, section 13 in both licenses. – ChrisInEdmonton Jan 17 at 23:48

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.