Are the Boost license and Mozilla license compatible with UE4 licensing?

I am looking to integrate the MLPack library for a project I am implementing in UE4, but the library depends on a math library known as Armadillo and the Boost C++ libraries. MLPack is covered under a BSD license so no problem there. Boost has its own license that is “different from the GPL”, per http://www.boost.org/users/license.html:

“How is the Boost license different from the GNU General Public License (GPL)? The Boost license permits the creation of derivative works for commercial or non-commercial use with no legal requirement to release your source code. Other differences include Boost not requiring reproduction of copyright messages for object code redistribution, and the fact that the Boost license is not “viral”: if you distribute your own code along with some Boost code, the Boost license applies only to the Boost code (and modified versions thereof); you are free to license your own code under any terms you like. The GPL is also much longer, and thus may be harder to understand.”

which sounds like it should be acceptable. However, Armadillo is licensed under the Mozilla public license 2.0 which sounds as if it may be problematic. From Mozilla Public License, version 2.0

"3.2. Distribution of Executable Form

If You distribute Covered Software in Executable Form then:

such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and

You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License."

though their FAQ seems to suggest that this shouldn’t be an issue provided that Armadillo is properly cited, per https://www.mozilla.org/en-US/MPL/2.0/FAQ/:

"Q8: I want to distribute (outside my organization) executable programs or libraries that I have compiled from someone else’s unchanged MPL-licensed source code, either standalone or part of a larger work. What do I have to do?

You must inform the recipients where they can get the source for the MPLed code in the executable program or library you are distributing (i.e., you must comply with Section 3.2). You may distribute any executables you create under a license of your choosing, as long as that license does not interfere with the recipients’ rights to the source under the terms of the MPL."

I didn’t see any explicit existing guidance regarding the Mozilla license from Epic so I thought this might be better safe than sorry to avoid a lot of time integrating the library only to find I can’t distribute the software. I would be using the code in library form only if that makes a difference. Thanks for your help.

Good questions. Having looked at the Boost license, I don’t view it as a Non-Compatible license as defined by the UE4 EULA.

But, as you correctly point out, compatibly licensed software may still contain its own third party software subject to more problematic licenses.

Having a look at MPL-2, it appears that it either is or is not Non-Compatible depending on how the covered software is used. It’s a bit like LGPL in that regard. As the sources you cite suggest, if the MPL code is contained in a “separate file” and you make the source available, or at least point how to get it, it’s not Non-Compatible.

So it looks like the compiled mlpack produces a .DLL file which I would presume meets the definition of separate file, so I think linking against it should be fine from the sounds of it. I’ll make sure to add a pointer to the Armadillo source code in the documentation. Thanks!