pub enum Licence {
Mit,
Lgpl,
Bsd,
LinuxUapi,
MingwPermissive,
Apache2,
AppleSdk,
MicrosoftSdk,
}Expand description
The licence an input arrives under.
The list is section 8.2’s table with one variant per row, plus the kernel headers, which every
Linux row needs and which no row is about. A closed list rather than a free text field, because
the question Licence::redistributable answers has to have an answer for every input and a
string does not.
Variants§
Mit
musl, which is MIT and the reason it goes first.
Lgpl
glibc, which is LGPL. Redistributable, with obligations that
spec/cross-compile/13-distribution.md owns.
Bsd
The BSD libcs, which are permissive.
LinuxUapi
The Linux uapi headers, which are GPL-2.0 with the syscall note.
The note is the whole reason this is a separate variant and not a refusal: it says that using the headers to make a system call does not put the calling program under the GPL, which is what every libc and every cross toolchain relies on. Redistributing the headers themselves carries the GPL’s own obligation, and the pinned source URL in the manifest is how it is met, the same way it is for glibc.
MingwPermissive
mingw-w64, which is a mix of permissive licences and public domain headers.
Apache2
Ours. The compiler’s own headers and its runtime.
AppleSdk
The macOS SDK, restricted by the Xcode agreement to Apple-branded hardware. Never shipped, only ever pointed at.
MicrosoftSdk
The Windows SDK and the universal CRT, which are not redistributable.
Implementations§
Source§impl Licence
impl Licence
Sourcepub const fn redistributable(self) -> bool
pub const fn redistributable(self) -> bool
Whether an artifact containing this input can be published.
Two of the eight answer false, and they are the two section 8.6 calls legal walls rather than engineering. A sysroot containing either is a local thing on the machine of somebody who accepted the licence themselves.