SchOS/ports/Makefile
Nexoniarz 26bca020b6 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>
2026-10-22 08:48:45 +02:00

41 lines
1.6 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-or-later
# SchOS ports — third-party software, one directory per port.
# Every port's licence must combine with GPL-2.0-or-later; see docs/licensing.md.
#
# ports/musl/ libc — installs headers/libs to build/ports/musl/prefix
# ports/mksh/ MirBSD Korn Shell — installed as sysroot/bin/sh
# ports/toybox/ core utilities — installed as sysroot/bin/<applet>
# ports/kilo/ the text editor — installed as sysroot/bin/{kilo,edit}
# ports/ncurses/ terminfo + screen library — link-time only, ships nothing
# ports/zsh/ the Z shell — installed as sysroot/bin/zsh, beside /bin/sh
#
# A port directory holds only a Makefile and optional patches/. Everything
# generated lives in build/ports/<name>/ — see mk/port.mk for the contract.
# Tarballs are cached in dist/ and are never removed by 'clean'.
#
# Order matters: musl must be built before anything that links against it.
# Ports that live in this directory but are deliberately not built by `make`.
# Empty for now; the filter stays because the reason it existed will recur --
# a port whose licence cannot be combined with GPL-2.0-or-later can be kept here for
# local testing but must never be built into a SchOS image.
NOTPORTS :=
PORTS := $(filter-out $(NOTPORTS), \
$(patsubst %/,%,$(sort $(dir $(wildcard */Makefile)))))
.PHONY: all $(PORTS) clean distclean
all: $(PORTS)
mksh: musl
toybox: musl
kilo: musl
fastfetch: musl
ncurses: musl
zsh: musl ncurses
$(PORTS):
$(MAKE) -C $@
clean distclean:
for p in $(PORTS); do $(MAKE) -C $$p $@; done