Apple releases their XNU kernel source code for macOS with each minor release of the Operating System covered under the APSL Version 2 at their open source website. The license terms can be found here.
While it would appear that apple has released the full source code for their kernel, the power management subroutines from the production kernel are missing entirely from the source tree. There are references made in the production kernel to an xcpm
directory in the source tree which would include code for a family of xcpm_*
subroutines used for power management, however, no source directory or source code for these routines exist in the open source version of the kernel which apple releases.
Additionally, a family of subroutines dealing with HWP, or intel hardware controlled performance states, exist in the production kernel but are absent in the publicly released source tree.
According to the Open-Source license with which this code has been released, this does not appear to be legal. It is in direct violation of sections 2.2 (c) and section 2.3:
As per section 2.2 part c, if modifications to covered code are deployed to users or made publicly available, source code must be made available to either the users of the program or to the general public. This is not done with the macOS kernel sources.
As per section 2.3, if covered code is deployed externally deployed in executable form only, as it is in macOS, a notice must be distributed with the executable which states that the source code of the program is available with instructions of how to obtain said code. No such notice can be found within macOS.
So my question, then, is how is it that Apple can do this without any action being taken against them? Why is the license the code is distributed under not being enforced?
This should additionally apply to any of the publicly available Apple code available under this license which is used in iOS as well as macOS. For instance, the source code for the ARM port of the XNU kernel should additionally be available, no?