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
|
||||
//
|
||||
// Hardware watchpoints. docs/architecture/debugging.md milestone D4.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// The kernel log that outlives the kernel. See include/klog.h.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// Naming an address.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// PSOGM — the SchOS crash screen.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// The bounded string builder. See include/sbuf.h for what it is and why it
|
||||
// moved out of kernel/dev/procfs.c.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// /dev/dbg -- asking the kernel a question. See include/dbg.h.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// /dev/netdev -- a network interface whose backend is a process.
|
||||
// See include/netuser.h.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// /dev/pci -- PCI devices, reachable from userspace.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// Virtual terminals. See include/vt.h for why this exists at all; the short
|
||||
// version is that switching needs a backing store, and the console drew
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@
|
|||
// the controller is not complicated; BSD is much more valuable as the
|
||||
// reference you check yourself against than as the code you paste.
|
||||
//
|
||||
// (Licensing points the same way. The BSD stacks are BSD-2/3-clause, which is
|
||||
// compatible with Apache-2.0 -- Linux's drivers are GPL-2.0-only, which is
|
||||
// not. See docs/guides/adding-a-driver.md.)
|
||||
// (Licensing no longer decides it: the BSD stacks are BSD-2/3-clause and
|
||||
// Linux's drivers are GPL-2.0-only, and both combine with GPL-2.0-or-later.
|
||||
// The argument above is the whole reason. See docs/licensing.md.)
|
||||
//
|
||||
// Enumeration polls the event ring instead of using interrupts. That is not
|
||||
// laziness: pci_bind_all() runs from kmain() with interrupts disabled and no
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// devtmpfs: /dev, generated rather than stored.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// Attributes, and the index over them.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// SchFS copy-on-write B-tree — see btree.h for the contract.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// SchFS in the kernel: block device, mount, and the transaction bracket.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// SchFS object layer, read side: inodes, directories and file data.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// SchFS object layer, write side: create, link, unlink, rename, write,
|
||||
// truncate.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// SchFS internals: the volume (uberblock ring, block allocation) and the object
|
||||
// layer (inodes, directories, file data) that sit on top of the B-tree.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// SchFS space manager: which blocks are in use.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// SchFS behind the VFS: the fs_ops table that makes SchFS files reachable
|
||||
// through open(2), read(2), write(2) and the rest.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// SchFS volume layer: the uberblock ring.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// AF_INET sockets, on top of lwIP's raw API.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// lwIP's compiler/platform header for SchOS.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// lwIP configuration for SchOS.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// lwIP network interfaces over the netdev class.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// <ctype.h> for lwIP, shadowing the host's.
|
||||
//
|
||||
// Empty on purpose. Everything lwIP would take from this header is supplied by
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// <errno.h> for lwIP, shadowing the host's.
|
||||
//
|
||||
// Empty on purpose. Everything lwIP would take from this header is supplied by
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// <inttypes.h> for lwIP, shadowing the host's.
|
||||
//
|
||||
// Empty on purpose. Everything lwIP would take from this header is supplied by
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// <limits.h> for lwIP, shadowing the host's.
|
||||
//
|
||||
// Empty on purpose. Everything lwIP would take from this header is supplied by
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// <stddef.h> for lwIP, shadowing the host's.
|
||||
//
|
||||
// Empty on purpose. Everything lwIP would take from this header is supplied by
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// <stdint.h> for lwIP, shadowing the host's.
|
||||
//
|
||||
// Empty on purpose. Everything lwIP would take from this header is supplied by
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// <stdio.h> for lwIP, shadowing the host's.
|
||||
//
|
||||
// Empty on purpose. Everything lwIP would take from this header is supplied by
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// <stdlib.h> for lwIP, shadowing the host's. See shim/string.h for why these
|
||||
// files exist at all.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// <string.h> for lwIP, shadowing the host's.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// <unistd.h> for lwIP, shadowing the host's.
|
||||
//
|
||||
// Empty on purpose. Everything lwIP would take from this header is supplied by
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// The lwIP port layer: everything lwIP needs from the system it runs on.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// The network thread, and the one place the TCP/IP stack is started.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
//
|
||||
// rtnetlink, enough of it that getifaddrs(3) works.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
// Linux x86_64 syscall number -> SchOS syscall number translation.
|
||||
// Enabled per process by sys_enable_linux_abi (see kernel/sys/sys_compat.c).
|
||||
//
|
||||
|
|
|
|||
Loading…
Reference in a new issue