licence: SchOS is GPL-2.0-or-later, no longer Apache-2.0

Nexoniarz is the sole author and SchOS was never published under
Apache-2.0, so this is a straight relicence. LICENSE is the FSF GPLv2 text,
every first-party SPDX header moves to GPL-2.0-or-later, and NOTICE,
README.md, docs/licensing.md and the site say so. projects/schfs-linux
follows the rest of the tree.

The GPL gives copyleft: a fork has to ship its source. It also lifts the
old "Linux drivers, never" rule, since GPL-2.0-only code combines with
GPL-2.0-or-later. "Or later" leaves room for GPLv3, but one binary still
has to pick one version, so docs/licensing.md now keeps Apache-2.0 and
GPLv3 code out of the kernel to keep Linux code possible there. BSD
4-clause code goes from "avoid" to "no", because the advertising clause
is GPL-incompatible.

LDLS still ships no .ko. That boundary is now project policy rather than
a legal requirement, and ldls.md, devices.md and licensing.md section 6
say so. refmod declares license=GPL, and ldls-check passes (27 checks).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Nexoniarz 2026-10-22 08:48:45 +02:00
commit 26bca020b6
135 changed files with 959 additions and 689 deletions

5
.gitignore vendored
View file

@ -45,7 +45,8 @@ docs/Website/releases/
# Kernel modules, ever. docs/plan/ldls.md rule 1: LDLS ships the layer and
# never the thing it loads, and that applies to this tree as well as to an
# image. The loader's test input is built from ldls/test/refmod.c, which is
# ours; a .ko here would be someone else's GPL code in an Apache-2.0 repo.
# ours; a .ko here would be someone else's code, with its own provenance, in
# a tree that is otherwise all first-party or attributed in NOTICE.
*.ko
*.ko.xz
@ -59,7 +60,7 @@ core.*
#
# help/ is where a third-party kernel gets cloned when it is worth reading --
# Zircon, at the time of writing. It is BSD-licensed and this project is
# Apache-2.0, so the licences are compatible and that is *not* the reason it is
# GPL-2.0-or-later, so the licences are compatible and that is *not* the reason it is
# ignored: it is ignored because a copy of another project's source inside this
# one is a copy that will rot, that nobody will update, and that makes the
# provenance of every file around it a question. Clone it, read it, learn the