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:
parent
3b26575b4a
commit
26bca020b6
135 changed files with 959 additions and 689 deletions
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
name: schunix-licensing
|
||||
description: "Schunix is Apache-2.0, copyright Nexoniarz; BSD drivers yes, Linux no, and ports/ licences bind regardless"
|
||||
description: "SchOS is GPL-2.0-or-later since 2026-10-22 (was Apache-2.0); Linux code now allowed, but no Apache/GPLv3 code in the kernel"
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: project
|
||||
|
|
@ -8,43 +8,34 @@ metadata:
|
|||
modified: 2026-08-08T16:18:39.569Z
|
||||
---
|
||||
|
||||
**`LICENSE` is Apache-2.0**, copyright *Nexoniarz* (not "Schunix Contributors" —
|
||||
one author, and a fictional collective makes future re-licensing harder).
|
||||
Chosen over MIT/BSD for the express patent grant.
|
||||
**`LICENSE` is GPL-2.0-or-later** since 2026-10-22, copyright *Nexoniarz*, sole
|
||||
author. It was Apache-2.0 before and was never published under it. Nexoniarz
|
||||
chose GPL for copyleft ("I can't be also too liberal because people just mostly
|
||||
steal that work") and so Linux code can be used. They picked "or-later" over
|
||||
"only" on my recommendation.
|
||||
|
||||
**Settled, do not reopen:** the "Apache-2.0 but shared-source" question was
|
||||
discussed at length in 2026-08 and **on 2026-08-08 Nexoniarz asked for it to be
|
||||
dropped from the docs entirely** — `docs/licensing.md` is about licensing, not
|
||||
about that debate. All references are gone from `docs/`, `LICENSE` and `NOTICE`;
|
||||
don't reintroduce them. The substance that survives, in one line inside §1:
|
||||
Apache-2.0 §2 is an irrevocable grant, so a restriction stated anywhere else
|
||||
does not narrow it, and restricting distribution would be a licence change
|
||||
(bespoke proprietary, or BUSL-1.1) rather than a wording change.
|
||||
**The rule that replaced "Linux no":** a single linked binary has to pick one
|
||||
GPL version. Linux code (GPL-2.0-only) makes it GPLv2; Apache-2.0 or GPLv3 code
|
||||
makes it GPLv3. They can't share a binary, so **the kernel takes no Apache-2.0
|
||||
or GPLv3 code**. Separate userland programs may be GPLv3 or Apache. Data files
|
||||
such as Roboto (Apache-2.0) are aggregation, and that holds inside the ramdisk
|
||||
too. BSD 4-clause code is now a hard **no** (GPL-incompatible).
|
||||
|
||||
The decision that actually mattered to them is **when to publish**, not the
|
||||
licence; the standing rule is still never ([[nexoniarz-sharing-preference]]).
|
||||
**LDLS still ships no `.ko`.** That is policy now, not a legal requirement. The
|
||||
`.gitignore` `*.ko` rule and `RAMDISK_EXCLUDE` stay.
|
||||
|
||||
**Binding regardless of what they pick:**
|
||||
- The kernel derives from xv6 (MIT). `LICENSE.MIT` was *missing* — it was
|
||||
referenced as `bk/LICENSE.MIT` and lost in the `bk/` → `kernel/` migration.
|
||||
Recreated; must not be deleted.
|
||||
- `ports/` is other people's code, redistributed in every image: musl (MIT),
|
||||
toybox (0BSD), mksh (MirOS). `NOTICE` carries the attribution musl and mksh
|
||||
require. Patches under `ports/*/patches/` inherit *their* licences.
|
||||
**Settled, do not reopen:** the old "Apache-2.0 but shared-source" debate was
|
||||
dropped from the docs on 2026-08-08. The question that matters to them is when
|
||||
to publish, and the standing answer is still never
|
||||
([[nexoniarz-sharing-preference]]).
|
||||
|
||||
New first-party files carry `// SPDX-License-Identifier: Apache-2.0`.
|
||||
**Binding regardless:**
|
||||
- The kernel derives from xv6 (MIT). `LICENSE.MIT` must not be deleted.
|
||||
- `ports/` is other people's code: musl, toybox, mksh, zsh, ncurses, lwIP,
|
||||
kilo and fastfetch are all permissive. `NOTICE` carries the attributions.
|
||||
|
||||
**Drivers: BSD yes, Linux no** (asked 2026-08-04, "for drivers we can try get
|
||||
it from like Linux?"). Linux is GPL-2.0-**only**, and Apache-2.0's patent and
|
||||
indemnity clauses are "further restrictions" under GPLv2 §6 — the two cannot
|
||||
be combined and redistributed. Using a Linux driver means relicensing all of
|
||||
Schunix to GPLv2 and dropping Apache-2.0; you cannot keep both. FreeBSD /
|
||||
NetBSD / OpenBSD are BSD-2/3-clause and **are** compatible: keep the notice,
|
||||
add to `NOTICE`, done. Reading Linux to understand hardware is fine;
|
||||
translating a driver function-by-function produces a derivative work whatever
|
||||
the identifiers say. Best source of all is the public specification — xHCI,
|
||||
virtio, AHCI, NVMe, e1000 — which carries no licence on what you write from
|
||||
it. Recorded in `docs/plan/roadmap.md` §1. See [[schunix-roadmap-and-projects]].
|
||||
New first-party files carry `// SPDX-License-Identifier: GPL-2.0-or-later`.
|
||||
The policy is in `docs/licensing.md`. See [[schunix-roadmap-and-projects]].
|
||||
|
||||
|
||||
## fs.c is third-party, and was unattributed until 2026-08-09
|
||||
|
|
|
|||
Loading…
Reference in a new issue