Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MPL License - Exhibit B #4680

Closed
giovannicintolo opened this issue Jan 24, 2025 · 7 comments
Closed

MPL License - Exhibit B #4680

giovannicintolo opened this issue Jan 24, 2025 · 7 comments
Labels
question ungroomed Ticket needs a maintainer to prioritize and label

Comments

@giovannicintolo
Copy link

Product

axe-core

Question

Dear axe team,

I am working on an open-source project distributed under the GPL v3 with a linking exception. While reviewing libraries for inclusion, we noticed that your library, axe, is licensed under the MPL 2.0, but it includes Exhibit B ("Incompatible With Secondary Licenses").

This addition creates an issue for using axe in our project because it prevents the relicensing of your code under the GPL. Our project also integrates other GPL v3 libraries, and the presence of Exhibit B makes it impossible to include axe, even with the linking exception in place.

We would like to ask whether the inclusion of Exhibit B was an intentional decision or if it might have been added unintentionally or without fully considering its implications. Allowing axe to be used in GPL projects would greatly benefit the open-source community and could increase the adoption of your library.

Thank you.

@giovannicintolo giovannicintolo added question ungroomed Ticket needs a maintainer to prioritize and label labels Jan 24, 2025
@WilcoFiers
Copy link
Contributor

@giovannicintolo can you provide more details about what you are hoping to do with axe-core, and why axe would need to be relicensed for that?

@dylanb
Copy link
Contributor

dylanb commented Jan 24, 2025

We only want one license for all copies and derivatives of axe-core. Nobody is allowed to re-license axe-core or a derivative under any terms except the ones in our license. This is intentional.

@giovannicintolo
Copy link
Author

@WilcoFiers @dylanb Thank you for your fast reply.

We fully respect and understand your intent to maintain a single license (MPL 2.0 with Exhibit B) for axe-core. However, the issue we are facing is not about relicensing axe-core itself but about the limitations imposed by Exhibit B when integrating axe-core into projects that also include GPL-licensed libraries.

The problem arises because Exhibit B ("Incompatible With Secondary Licenses") prevents axe-core from being combined with GPL-licensed libraries, even as part of a larger work licensed under GPL v3. While axe-core would remain under its original MPL license, the presence of Exhibit B makes it legally impossible to distribute the combined project due to the incompatibility between the licenses.

We are not asking to relicense axe-core. Instead, we would like to ask if you might reconsider the inclusion of Exhibit B or consider an exception for GPL projects. Removing Exhibit B would allow axe-core to be used alongside GPL libraries in a way that respects both licenses. Importantly, axe-core would always remain under MPL, preserving your intent.

@giovannicintolo
Copy link
Author

@WilcoFiers @dylanb Upon reviewing axe-core, it appears the library is licensed under standard MPL 2.0, not MPL 2.0 with Exhibit B.

If this is correct, axe-core is compatible with GPL projects as per Mozilla's guidelines. To avoid future confusion, we suggest adding a clear LICENSE.txt file to the repository specifying the exact license terms.

We would also be happy to contribute by creating a pull request to suggest the necessary updates to clarify the license text.

Thank you for your time

@dbjorge
Copy link
Contributor

dbjorge commented Feb 3, 2025

@giovannicintolo

Upon reviewing axe-core, it appears the library is licensed under standard MPL 2.0, not MPL 2.0 with Exhibit B.

⚠️ This is incorrect ⚠️. The existing LICENSE file at the root of the repo is the authoritative definition of the project's license terms, and it intentionally includes the text of Exhibit B.

It is true that the SPDX entry in the package.json license field incorrectly states MPL-2.0 where it should instead state MPL-2.0-no-copyleft-exception. We will investigate fixing this (I'll file a separate issue).

We are not asking to relicense axe-core. Instead, we would like to ask if you might reconsider the inclusion of Exhibit B or consider an exception for GPL projects. Removing Exhibit B would allow axe-core to be used alongside GPL libraries in a way that respects both licenses. Importantly, axe-core would always remain under MPL, preserving your intent.

Unfortunately, the practical effect of relicensing to use MPL-2.0 without exhibit B would be a de-facto relicensing of axe-core under each of the licenses listed in 1.12 of the license. Particularly, this clause of the MPL:

3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).

...means that if we were to relicense under MPL 2.0 without exhibit B, a recipient of your GPL-licensed larger work would be allowed to further distribute axe-core solely under the terms of the GPL. This is problematic for us because it means that such a recipient could make modifications to axe-core and redistribute them under the GPL and not the MPL, which would mean we couldn't reincorporate such changes back into axe-core under the MPL. You can find more information about how that would work in Mozilla's FAQ on combining MPL and GPL code.

We sympathize that our use of exhibit B limits users' options for combining axe-core and GPL-licensed libraries, but unfortunately, we consider exhibit B to be a necessary tradeoff to ensure that we are able to reincorporate modifications back into the main project.

We are not opposed in spirit to the GPL and would love to see more open source projects using axe-core, but you'd need to do so in a way that keeps axe-core distributed under its existing license. We cannot offer legal advice on exactly how to do that in specific cases, but in general Mozilla's MPL FAQ and the Free Software Foundation's FAQ on GNU Licenses are good starting points for you to research your options.

@tkfv
Copy link

tkfv commented Feb 4, 2025

Hello, I'm not a lawyer and this is just my 2 cents but I don't think that including a file with the full text of the MPL 2.0 license implies the usage of Exhibit B. It may be that the code released before the SPDX code change can legally be considered plain MPL 2.0. It might also be a good idea to clearly announce this change (as I imagine it could be advisable in the case of license changes) otherwise it may be that the change is made legally less effective.

@tkfv
Copy link

tkfv commented Feb 4, 2025

you might also want to look into the fact that a license change might require all previous contributors to approve the change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question ungroomed Ticket needs a maintainer to prioritize and label
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants