I'm beginning work on a web application at the moment which ideally I'd like to dual license under the terms of the AGPL and the CPAL.

This would mean that anyone using the code in their own web application would have a choice of either distributing the source code to users (under the AGPL), or giving attribution to me for writing the code (under the CPAL), if I understand dual licensing correctly.

Is this possible with these two licenses?

I know that AGPL is based on the GPL and CPAL is based on MPL, and GPL and MPL are not compatible, but does that apply in a dual license situation? And if so, how would I do it? Just include both licenses and note that it's dual licensed under both?

  • 1
    What is "the CAPL"? I did a Google search for 'CAPL license' and the first hit mentioning such a license was this question. Mar 16, 2017 at 12:32
  • 2
    Do you mean the Common Public Attribution License (CPAL)? Mar 16, 2017 at 13:17
  • Yes, my mistake, I mistyped the abbreviation throughout my question. Fixed.
    – Danny M
    Mar 16, 2017 at 13:22
  • 2
    This question is currently on-topic because it can be answered by programmers, not just lawyers. If nothing else, there are several well-known examples of dual-licensed software, e.g. Qt.
    – user166
    Mar 16, 2017 at 14:27

1 Answer 1


License compatibility matters when you want to use someone elses code that was published under one license in your code base under a different license. For code that is written entirely by you, you own the copyright and can issue licenses however you wish. This includes dual-licensing.

Dual licensing is quite common: some web apps use a AGPL/commercial dual license, and the Perl interpreter is dual licensed under the GPL and Artistic License. If the two licenses were somehow compatible, there would be no need for dual licensing: you could just choose the compatible license and get the other implicitly (e.g. dual-licensing under MIT and GPL doesn't make any sense since you'd just use MIT).

To apply a dual license, I'd write a LICENSE file that offers receivers of this software a choice:

<project> - <description>

Copyright <year> <authors>

This is free software. You may use, modify, and distribute it
under the terms of either the <license-1> or the <license-2>.

<how to find the full license text>

<disclaim liability>

If you accept changes to your code from other authors, you have to make sure that they are providing these changes under both of these licenses, and didn't choose one of the licenses for their contributions. For that reason, dual-licensed projects commonly include a contributor license agreement.

You may not be able to issue your intended licenses if you do not own the full copyright of the software. In particular, this could be the case if you adapt code from other projects, or if you rely on a framework of which your code is effectively a derived work. In such cases, you are bound by the licenses of the original projects or of the framework, respectively.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.