I’ve pushed in a change today to remove some of the HAL_F4Light code. The HAL is still in ArduPilot, but a number of key pieces are removed to it can’t be built from the ArduPilot git repository.
This change was needed because we discovered that some of the code in HAL_F4Light was under a license which wasn’t compatible with the GPLv3 icense used by ArduPilot. Unfortunately I didn’t notice this when we first brought HAL_F4Light into the tree.
The problematic code is licensed under the STMicrosystems liberty_v2 license which specifically disallows using the code in a project licensed under the GPL, BSD, Apache or MIT licenses. The wording is:
- No use, reproduction or redistribution of this software partially or totally may be done in any manner that would subject this software to any Open Source Terms. “Open Source Terms” shall mean any open source license which requires as part of distribution of software that the source code of such software is distributed therewith or otherwise made available, or open source license that substantially complies with the Open Source definition specified at www.opensource.org and any other comparable open source license such as for example GNU General Public License (GPL), Eclipse Public License (EPL), Apache Software License, BSD license or MIT license.
I worked with @night_ghost for a few weeks on trying to get things cleaned up so HAL_F4Light didn’t contain any code under this license. Unfortunately we did not get that completed in a reasonable time, so we’ve decided to remove the code now to bring us into compliance.
@night_ghost can still maintain the F4Light HAL if he wants to, but it has to be his own decision. We can’t endorse it as a project as that may expose us to legal risk.
I’d like to apologise for any inconvenience removing this code may cause, and also apologise for not looking closely enough at licensing when we first brought the F4Light HAL into ArduPilot.
As some people have pointed out, there are quite a few open source projects (including projects under the GPL) which include code licensed under this ST license. I don’t know on what basis that is done, but it isn’t our job in the ArduPilot project to police what other projects do. We just need to be careful for our own code.