# Open Source Policy ## Lizenzprüfung (AUTOMATISCH BEI JEDER DEPENDENCY) ### Erlaubte Lizenzen ✅ | Lizenz | Typ | Kommerziell OK | |--------|-----|----------------| | MIT | Permissive | ✅ | | Apache-2.0 | Permissive | ✅ | | BSD-2-Clause | Permissive | ✅ | | BSD-3-Clause | Permissive | ✅ | | ISC | Permissive | ✅ | | MPL-2.0 | Weak Copyleft | ✅ | | LGPL-2.1 / LGPL-3.0 | Weak Copyleft | ✅ (nur linking) | | CC0-1.0 | Public Domain | ✅ | | Unlicense | Public Domain | ✅ | ### Verbotene Lizenzen ❌ | Lizenz | Grund | |--------|-------| | GPL-2.0 / GPL-3.0 | Copyleft - infiziert Projekt | | AGPL-3.0 | Network Copyleft - SaaS-Killer | | SSPL | Server Side Public License | | BSL | Business Source License | | "Non-Commercial" | Keine kommerzielle Nutzung | | "Educational Only" | Nur für Bildung | | Proprietary | Keine OSS | --- ## Workflow bei neuer Dependency ### 1. Vor dem Hinzufügen prüfen ```bash # NPM Package npm view license # Python Package pip show | grep License # Go Module go-licenses check ``` ### 2. Bei Unklarheit - README.md des Projekts lesen - LICENSE-Datei prüfen - SPDX-Identifier suchen - Im Zweifel: **NICHT verwenden** ### 3. Nach dem Hinzufügen **SBOM aktualisieren:** https://macmini:3002/infrastructure/sbom ```bash # SBOM generieren cd /Users/benjaminadmin/Projekte/breakpilot-pwa # Python pip-licenses --format=json > sbom/python-licenses.json # Node.js npx license-checker --json > sbom/node-licenses.json # Go go-licenses csv ./... > sbom/go-licenses.csv ``` --- ## Grenzfälle ### Dual-Licensed Packages - Wenn MIT **oder** GPL angeboten wird → MIT wählen - Dokumentieren welche Lizenz gewählt wurde ### Transitive Dependencies - Auch indirekte Abhängigkeiten prüfen - `npm ls`, `pip-tree`, `go mod graph` ### Fonts & Assets - Google Fonts: ✅ (OFL) - Font Awesome Free: ✅ (CC BY 4.0 / OFL / MIT) - Icons8: ❌ (Attribution required, kompliziert) --- ## Checkliste bei PR/Commit Wenn neue Dependencies hinzugefügt wurden: - [ ] Lizenz ist in der Whitelist - [ ] SBOM wurde aktualisiert - [ ] Keine GPL/AGPL-Abhängigkeiten eingeschleppt - [ ] Bei Dual-License: MIT/Apache gewählt