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,4 +1,4 @@
|
|||
<!-- SPDX-License-Identifier: Apache-2.0 -->
|
||||
<!-- SPDX-License-Identifier: GPL-2.0-or-later -->
|
||||
# Audio
|
||||
|
||||
A program that wants to make a sound opens `/dev/dsp`, writes PCM to it, and
|
||||
|
|
|
|||
|
|
@ -247,10 +247,11 @@ manager or equivalent, and SchOS will load it.
|
|||
The licensing reasoning matters and is worth stating exactly, because it is
|
||||
easy to get wrong in both directions:
|
||||
|
||||
- **Distribution is what triggers the GPL.** Shipping a GPL-2.0-only driver in
|
||||
an Apache-2.0 image is what cannot be done — see [../licensing.md](../licensing.md)
|
||||
§2. A user obtaining a driver themselves and loading it on their own machine
|
||||
is their act, not ours, and is not a distribution by us.
|
||||
- **Distribution is what triggers the GPL.** SchOS is GPL-2.0-or-later, so
|
||||
shipping a GPL-2.0-only driver in an image is now *possible* — see
|
||||
[../licensing.md](../licensing.md) §6 — but LDLS still does not, by policy. A
|
||||
user obtaining a driver themselves and loading it on their own machine is
|
||||
their act, not ours, and is not a distribution by us.
|
||||
- **Implementing a loader is not copying.** Writing support for a module format
|
||||
and a driver ABI from published documentation produces our own work. It is a
|
||||
clean-room implementation, and it stays one only if it is written from
|
||||
|
|
@ -259,8 +260,8 @@ easy to get wrong in both directions:
|
|||
identifiers say.
|
||||
|
||||
So the rule for this subsystem is the same as everywhere else in the tree: the
|
||||
loader is ours and Apache-2.0, what it loads is the user's business, and nothing
|
||||
GPL ever enters an image we build. `RAMDISK_EXCLUDE` and `NOTPORTS` are the
|
||||
loader is ours and GPL-2.0-or-later, what it loads is the user's business, and
|
||||
no third-party module enters an image we build. `RAMDISK_EXCLUDE` and `NOTPORTS` are the
|
||||
existing mechanisms for keeping that true mechanically rather than by intention.
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -54,9 +54,10 @@ ships the layer and never the thing it loads. `.gitignore` refuses `*.ko`,
|
|||
is deliberately not part of `all`, and `make ldls-unstage` takes it out again.
|
||||
|
||||
[../licensing.md](../licensing.md) §6 is the whole argument. The short form is
|
||||
that GPL obligations attach to *distribution*, we distribute Apache-2.0 code
|
||||
containing no GPL, and the combination happens in a user process on the user's
|
||||
machine — so no combined work is distributed by anyone.
|
||||
that the combination happens in a user process on the user's machine, so no
|
||||
combined work is distributed by anyone. Since SchOS moved to GPL-2.0-or-later
|
||||
that is no longer the only way it *could* be done — it is the way it is done,
|
||||
because a module we never ship is a module we never have to answer for.
|
||||
|
||||
### 2. It runs in a process, never in the kernel
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<!-- SPDX-License-Identifier: Apache-2.0 -->
|
||||
<!-- SPDX-License-Identifier: GPL-2.0-or-later -->
|
||||
# Virtual terminals
|
||||
|
||||
Six of them, `/dev/tty1` through `/dev/tty6`.
|
||||
|
|
|
|||
Loading…
Reference in a new issue