The EUPL v1.1 and the GPL V3 are not "directly" legally compatible, even when providing the same freedoms to the users of the covered software. This is mainly because they both request from subsequent licensors of the covered software to distribute copies or derivative works under the same original licence. Therefore their “copyleft” provisions are in conflict.
The EUPL solved most potential copyleft conflicts thanks to a compatibility list (that was adopted by the Commission six months before the release of the GPLv3).
From the EUPL point of view, compatibility (or interoperability) between copyleft licences is based on the following principles:
- Never change the primary license of a received component "taken alone" (only the original author(s) could do that, knowing that unanimity of authors may be difficult to obtain in some cases);
- Make no obstacle to the distribution of larger derivative works (combining EUPL covered code with a component covered by another copyleft licence from a list), as long this larger work is licensed under copyleft conditions of this other licence (covering at least the source code, in order to avoid any appropriation of this source code).
- Distribution as a part of a specific larger work will not change the licence of the component covered by the EUPL.
The EUPL compatibility list includes the GPLv2 (in a group of five copyleft licences) but not the GPLv3. For this reason, the Free Software Foundation (FSF), while acknowledging that the EUPL is indeed a free software licence, once urged its followers not to use it (this has changed since August 2011 FSF updates).
On its side, the GPLv3 has no compatibility provision comparable to the EUPL (except in the direction of the AGPLv3, which is a GPLv3 extended to software communication “as a service”).
To be realistic, there are (short term) limited hopes that the GPLv3 and the EUPL will be directly compatible "at licence level": knowing the heavy approval process for producing a possible GPLv3.1 and EUPLv1.2 (including the OSI approval of both new versions) this would take some time and effort.
However, it is legally possible to take advantage of the "CeCILL roundabout" resulting from the compatibility of the CeCILL v2 licence (which is included in the EUPL compatibility list) with the GPLv3:
- Publish your own specific contribution under CeCILL v2 (or find a convenient piece of code covered by CeCILL v2);
- Combine with the EUPL component and publish the larger work under CeCILL;
- Add the needed GPLv3 components and publish the larger work under the GPLv3.
The whole operation looks a little bit tricky, but these three steps could be implemented in three minutes. Therefore the EUPL is "legally compatible" with all current Gnu GPL versions, according to the EUPL licence wording.
A second efficient possibility is to implement interoperability "at program level" or more globally “at library level” between covered components:
- any licensor of a program covered by the Gnu GPLv3 (having full distribution rights on this program) can publish an "Exception List" allowing all developers to integrate the program in any larger work and to distribute this larger work under the EUPL.
- any licensor of a program covered by the EUPL (having full distribution rights on this program) can publish an "Exception List" allowing all developers to integrate the program in any larger work and to distribute this larger work under the Gnu GPLv3.
"Having full distribution rights" means that the licensor must be the original author of all the code of the program and/or that he/she received distribution rights authorizing to grant the exception (this is the case if the program is elaborated from components obtained under permissive conditions, or if copyright was assigned to the licensor by a community of contributors).
For developers wanting to distribute solutions under the EUPL, an exception was obtained from Oracle (for their MySQL client libraries licensed under the GPLv2) and from Sencha (for several libraries licensed under the GPLv3).
For developers under the GPLv3, any EUPL licensor could do the same.
Exceptions, known as "F/OSS exception lists" are allowed (and compatible with both the EUPL and the GPLv3) because they extend (and not restrict) the recipients' rights.
Each granted exception must be analysed in detail. It can be general: “all developers can benefit from it, for making any larger work” or it could include some limitations. For example, the licensor of a library dedicated for software development may request that “the larger Derivative Work can reasonably be considered as an independent and separate work that is intended for use by end-users and not as a library for software development purposes.” (Sencha exceptions for applications).
In conclusion: yes, it is possible to make two programs under the EUPL and the GPLv3 legally compatible and distributed as a single larger derivative under a single licence. This is possible thanks to the "CeCILL roundabout" and/or thanks to licensors' exceptions, and cases reported to the OSOR team so far have been solved successfully that way.
The OSOR team will welcome, encourage and support these exceptions (and support the licensors accepting to implement it) in so far these exceptions represent a progress towards developers’ freedom of F/OSS licence choice and legal interoperability of software.
Example of a F/OSS exception list:
Article of Rowan Wilson explaining the CeCILL roundabout: