Instead of dual-licensing or using the LLVM Exceptions, I am thinking of defining an exception to the Apache license that is similar to what is found in the MPL2 that confers it compatibility with the GPLv2.
For example, as follows, in which I have copied and modified the text from the MPL2:
======= Special exception to the Apache License v2.0 =======
“Larger Work” shall mean a work that combines the Work or Derivative Works with other material, in Source form, that is not part of the Work or Derivative Works.
“Secondary License” shall mean either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.
As a special exception, if the Larger Work is a combination of the Work or Derivative Works with a work governed by one or more Secondary Licenses, You may additionally distribute the Work or Derivative Works under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Work or Derivative Works under the terms of either this License or such Secondary License(s).
Would this be acceptable? Or would it be considered a "crayon license"?
Would it be acceptable even if there's no SPDX exception identifier for my custom exception?
Would it be better for me to dual license my software as
Apache-2.0 OR GPL-2.0-only or
Apache-2.0 OR LGPL-2.1-only instead of adding this custom exception?
I think this is a good option, so that I can add on compatibility to all three GNU Secondary Licenses similar to the MPL2.