chore: relicense to AGPL-3.0-or-later and add SPDX headers
Replaces LICENSE (GPLv3 -> AGPLv3) and prepends `SPDX-License-Identifier: AGPL-3.0-or-later` to every source file across decnet/, decnet_web/, tests/, scripts/, and tools/. Rationale: closes the GPLv3 ASP loophole so any party operating a modified DECNET as a network service must offer their modified source. Personal copyright (Samuel Paschuan) + inbound=outbound contributions make a future unilateral relicense infeasible. - LICENSE: full AGPL-3.0 text (gnu.org/licenses/agpl-3.0.txt) - COPYRIGHT: project copyright notice - tools/add_spdx_headers.py: idempotent header injector (shebang- and PEP 263-aware) Touches 1565 source files (.py, .ts, .tsx, .js, .jsx, .css, .sh). No behavior change; comments only.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""MazeNET — nested deception topologies.
|
||||
|
||||
A topology is an arbitrary-depth DAG of LANs, connected by multi-homed
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""IP and subnet allocators for MazeNET topologies.
|
||||
|
||||
Extracted from :mod:`decnet.topology.generator` so the same primitives
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Compose-file generator for a MazeNET topology.
|
||||
|
||||
Produces a ``docker-compose.yml`` dict given a hydrated topology
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""MazeNET topology config + in-memory generation output."""
|
||||
from __future__ import annotations
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""MazeNET topology generator.
|
||||
|
||||
Produces a :class:`GeneratedTopology` — an in-memory DAG of LANs and
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Canonical hash of a hydrated topology dict.
|
||||
|
||||
Both master and agent need to agree on "is the applied state the one
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Adapter between :class:`GeneratedTopology` and the repository layer."""
|
||||
from __future__ import annotations
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Optional, Protocol
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""MazeNET topology status state machine.
|
||||
|
||||
Seven states — six active in v1. ``degraded`` is schema-reserved for the
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""Pre-deploy validator for MazeNET topologies.
|
||||
|
||||
Consumes a hydrated dict (output of
|
||||
|
||||
Reference in New Issue
Block a user