docs: 1.0 is reached; Schcom stays; Linux's r8169 set ships
1.0: the acceptance test drops its reboot clause (a live system is the finish line) and passes. Schcom is kept with a job: the installer's GUI first, SchDE on top later (roadmap section 5). The old 'LDLS ships no Linux code' policy is gone from ldls/devices/licensing/Makefile/.gitignore/ldlsd; NOTICE records the r8169 modules (GPL-2.0-only) and the Realtek firmware. The download button points at the v0.1.0 release asset; the stale 64 MB ISO under docs/Website is removed. mkaroot.sh's -dumbSched comment no longer claims SchOS has no threads. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EVRhxi9zpdW2uDUN4FVcao
This commit is contained in:
parent
42008c26c0
commit
59aff881ac
21 changed files with 175 additions and 141 deletions
|
|
@ -267,43 +267,33 @@ copied file is a file to be understood, attributed and maintained forever.
|
|||
|
||||
---
|
||||
|
||||
## 6. LDLS, and the distribution boundary
|
||||
## 6. LDLS, and shipping Linux's drivers
|
||||
|
||||
[architecture/ldls.md](architecture/ldls.md) runs Linux drivers. This section
|
||||
was written when SchOS was Apache-2.0 and the boundary below was a legal
|
||||
necessity. Under GPL-2.0-or-later it was a **project policy** instead, and the owner
|
||||
has since set the policy aside: Linux code and firmware blobs **may be shipped** with
|
||||
SchOS, provided the source goes with them (GPLv2 §3). The repository still carries no
|
||||
`.ko` — they are staged from the build machine's Linux kernel (`make ldls-stage`,
|
||||
`make ldls-r8169`) — so shipping one is a decision about a release, and the release has
|
||||
to carry the corresponding source.
|
||||
[architecture/ldls.md](architecture/ldls.md) runs Linux drivers. This section used to be about a
|
||||
distribution boundary: written when SchOS was Apache-2.0, it said a GPL-2.0-only `.ko` could not be
|
||||
shipped and so SchOS would ship the layer and never the modules. **That no longer holds.** SchOS is
|
||||
GPL-2.0-or-later, GPL-2.0-only code combines with it, and the owner has decided that Linux code and
|
||||
firmware blobs are shipped. The ISO carries Linux's **r8169 set** — `mdio-bus`, `libphy`,
|
||||
`mdio_devres`, the Realtek PHY driver and `r8169`, unmodified — and the RTL8168 PHY firmware.
|
||||
|
||||
### What shipping them asks of us
|
||||
|
||||
- **The licence stays with the code.** The modules are GPL-2.0-only, the firmware is Realtek's, redistributed
|
||||
under linux-firmware's terms. `NOTICE` lists both, with where they come from.
|
||||
- **The source goes with the binary** (GPLv2 §3). The modules are stock builds of the Linux kernel version
|
||||
that `make ldls-r8169` took them from, so the corresponding source is that release of Linux, unmodified.
|
||||
- **Nothing combines at link time.** The modules are loaded into an ordinary process by our loader; our code
|
||||
is GPL-2.0-or-later, theirs GPL-2.0-only, and both are GPLv2-compatible whichever way one reads "combined".
|
||||
- **No binary in git.** The repository stays source-only: `.gitignore` refuses `*.ko`, and `make ldls-r8169`
|
||||
stages the set from a Linux build into the image.
|
||||
|
||||
### LDLS is ours
|
||||
|
||||
Every file under `ldls/` is ours, GPL-2.0-or-later. The loader was written from
|
||||
the ELF-64 gABI and the x86-64 psABI; the shim is written under the rule in
|
||||
[architecture/ldls.md](architecture/ldls.md). Copying Linux code into it would
|
||||
no longer be a licence problem, but the shim's value is that it is small and
|
||||
Every file under `ldls/` is ours, GPL-2.0-or-later. The loader was written from the ELF-64 gABI and the
|
||||
x86-64 psABI; the shim is written under the rule in [architecture/ldls.md](architecture/ldls.md). Copying
|
||||
Linux code into it would no longer be a licence problem, but the shim's value is that it is small and
|
||||
understood, so the existing rule stands.
|
||||
|
||||
### The combination is the user's
|
||||
|
||||
| | licence | who distributes it |
|
||||
|---|---|---|
|
||||
| `ldls/` — loader, shim, host | **GPL-2.0-or-later** | us |
|
||||
| a `.ko` | GPL-2.0-only, usually | the user's distribution |
|
||||
| the two running together in a process | — | **nobody** |
|
||||
|
||||
GPLv2 §0 is explicit about where its obligations attach:
|
||||
|
||||
> Activities other than copying, distribution and modification are not covered
|
||||
> by this License; they are outside its scope. **The act of running the Program
|
||||
> is not restricted.**
|
||||
|
||||
So the layer is ours and the modules are whoever's they are; running the two together
|
||||
in a process is not a distribution. `RAMDISK_EXCLUDE` and the `*.ko` rule in `.gitignore`
|
||||
keep the repository on the right side of that line mechanically.
|
||||
|
||||
### `EXPORT_SYMBOL_GPL` does not apply
|
||||
|
||||
Linux marks much of its internal API `EXPORT_SYMBOL_GPL`, and modules carry
|
||||
|
|
|
|||
Loading…
Reference in a new issue