docs: add licensing and compliance documentation
Add comprehensive FOSS compliance documentation including: - COPYRIGHT.md: copyright holders and code ownership - LICENSING.md: GPL-3.0-or-later policy and source offer - NOTICE: attribution requirements for permissive licenses - THIRD-PARTY-LICENSES.md: third-party software inventory - TRADEMARKS.md: trademark notices and non-affiliation - os-release hook and files: identify FWS as separate from Arch Linux These documents establish legal compliance baseline for GPL/AGPL/Apache/MIT/BSD obligations before public distribution.
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
# Logiciels tiers & licences — FWS
|
||||
|
||||
Ce document est l'**inventaire de conformité** (« bill of materials ») des
|
||||
logiciels tiers que FWS reconditionne, embarque ou redistribue. Il sert à
|
||||
satisfaire les obligations d'**attribution** et de **préservation des avis de
|
||||
licence** des licences GPL, LGPL, AGPL, Apache, MIT et BSD.
|
||||
|
||||
Trois familles de tiers :
|
||||
|
||||
1. **La base du dépôt** : FWS est un fork d'**archiso**.
|
||||
2. **Les paquets construits/redistribués par FWS** (`pkgbuilds/` + `local-repo/`),
|
||||
notamment l'installateur **Anaconda** et ses dépendances Python.
|
||||
3. **L'ensemble des paquets Arch Linux** agrégés dans l'ISO live (chacun sous sa
|
||||
propre licence ; l'avis de licence de chaque paquet est présent dans
|
||||
`/usr/share/licenses/<paquet>/` sur le système installé/live).
|
||||
|
||||
---
|
||||
|
||||
## 1. Base du dépôt
|
||||
|
||||
| Composant | Rôle | SPDX | Détenteur | Source amont |
|
||||
|---|---|---|---|---|
|
||||
| **archiso** | système de build (mkarchiso, profils, man, Makefile) | `GPL-3.0-or-later` | Arch Linux / Archiso Authors | https://gitlab.archlinux.org/archlinux/archiso |
|
||||
|
||||
Auteurs originaux : voir [AUTHORS.rst](AUTHORS.rst).
|
||||
|
||||
---
|
||||
|
||||
## 2. Paquets construits / redistribués par FWS
|
||||
|
||||
Sources des recettes : `pkgbuilds/*/PKGBUILD`. Binaires : `local-repo/*.pkg.tar.zst`.
|
||||
La **source correspondante** (au sens GPL/LGPL) de chacun est le tarball amont
|
||||
référencé par `source=()` dans le PKGBUILD, plus le PKGBUILD lui-même.
|
||||
|
||||
| Paquet | Version | SPDX | Détenteur principal | Source amont |
|
||||
|---|---|---|---|---|
|
||||
| anaconda | 45.8 | `GPL-2.0-or-later` | Red Hat, Inc. & contributeurs Anaconda | https://github.com/rhinstaller/anaconda |
|
||||
| anaconda-widgets | 45.8 | `GPL-2.0-or-later` | Red Hat, Inc. | https://github.com/rhinstaller/anaconda |
|
||||
| pykickstart | 3.74 | `GPL-2.0-or-later` | Red Hat, Inc. | https://github.com/pykickstart/pykickstart |
|
||||
| python-blivet | 3.13.2 | `LGPL-2.1-only` | Red Hat, Inc. | https://github.com/storaged-project/blivet |
|
||||
| python-meh | 0.43 | `GPL-2.0-or-later` | Red Hat, Inc. | https://github.com/rhinstaller/python-meh |
|
||||
| python-productmd | 1.50 | `LGPL-2.1-or-later` | Red Hat, Inc. / release-engineering | https://github.com/release-engineering/productmd |
|
||||
| python-simpleline | 1.8 | `LGPL-3.0-or-later` | Red Hat, Inc. | https://github.com/rhinstaller/python-simpleline |
|
||||
| python-requests-file | 2.1.0 | `Apache-2.0` | David Shea | https://github.com/dashea/requests-file |
|
||||
| python-requests-ftp | 0.3.1 | `Apache-2.0` | Cory Benfield | https://github.com/Lukasa/requests-ftp |
|
||||
| python-pid | 3.0.4 | `Apache-2.0` | trbs | https://github.com/trbs/pid |
|
||||
| python-iso639 | 0.4.5 | **`AGPL-3.0-only`** ⚠ | Mikael Karlsson (noumar) | https://github.com/noumar/iso639 |
|
||||
| python-langtable | 0.0.51 | `GPL-3.0-or-later AND MIT` | Mike FABIAN | https://github.com/mike-fabian/langtable |
|
||||
| python-xkbregistry | 1.5 | `MIT` | Stephen Early | https://github.com/sde1000/python-xkbregistry |
|
||||
| libreport | 2.17.15 | **`GPL-2.0-only`** ⚠ | Red Hat, Inc. (projet ABRT) | https://github.com/abrt/libreport |
|
||||
| satyr | 0.43 | `GPL-2.0-or-later` | Red Hat, Inc. (projet ABRT) | https://github.com/abrt/satyr |
|
||||
| libxmlrpc (xmlrpc-c) | 1.64.03 | `custom` (BSD-style permissive) | Auteurs xmlrpc-c | https://xmlrpc-c.sourceforge.net/ |
|
||||
| winboat-bin | 0.9.0 | `MIT` | Auteurs WinBoat (TibixDev) | https://www.winboat.app |
|
||||
|
||||
> Les versions et identifiants SPDX ci-dessus proviennent des champs `license=`
|
||||
> des PKGBUILD et des `.PKGINFO` des paquets de `local-repo/`. Quand le `.PKGINFO`
|
||||
> portait une étiquette ancienne et imprécise (`GPL`, `Apache`), l'identifiant
|
||||
> SPDX retenu est celui du dépôt amont (p. ex. `satyr` → `GPL-2.0-or-later`).
|
||||
> **À corriger dans les PKGBUILD** pour des étiquettes SPDX exactes.
|
||||
|
||||
---
|
||||
|
||||
## 3. Paquets Arch Linux de l'ISO
|
||||
|
||||
L'ISO live agrège tout l'ensemble de paquets listé dans
|
||||
`configs/releng/packages.x86_64` et `configs/baseline/packages.x86_64` (noyau
|
||||
Linux, Xorg, Openbox, environnements de bureau, utilitaires…). Chaque paquet
|
||||
conserve sa licence d'origine ; l'avis correspondant est fourni dans
|
||||
`/usr/share/licenses/<paquet>/` sur le système. FWS ne revendique aucun droit
|
||||
sur ces paquets.
|
||||
|
||||
---
|
||||
|
||||
## 4. Analyse de compatibilité des licences
|
||||
|
||||
**Licence effective du dépôt FWS : `GPL-3.0-or-later`** (imposée par la dérivation
|
||||
d'archiso, lui-même GPL-3.0-or-later).
|
||||
|
||||
### 4.1 Principe d'agrégation (le cas général)
|
||||
|
||||
L'ISO et le dépôt de paquets sont des **agrégations** de programmes indépendants
|
||||
(« mere aggregation », GPLv3 §5 / GPLv2 §2). Chaque paquet est distribué comme
|
||||
une unité séparée (binaire `.pkg.tar.zst` distinct, processus distinct,
|
||||
bibliothèque partagée distincte) et **conserve sa propre licence**. C'est
|
||||
exactement le modèle juridique sous lequel Arch Linux, Debian et Fedora
|
||||
distribuent des milliers de paquets de licences hétérogènes sur un même média.
|
||||
À ce niveau, la compatibilité copyleft **n'est pas requise** : il n'y a pas
|
||||
d'« œuvre combinée » unique.
|
||||
|
||||
### 4.2 Compatibilité au sein du runtime Anaconda
|
||||
|
||||
Anaconda charge plusieurs modules dans **un même processus Python** au moment de
|
||||
l'exécution. Les licences en présence et leur compatibilité montante vers GPLv3 :
|
||||
|
||||
| Licence du composant | Compatible GPLv3 ? | Note |
|
||||
|---|---|---|
|
||||
| `GPL-2.0-or-later` (anaconda, meh, pykickstart, satyr…) | ✅ | la clause « or later » autorise l'usage en GPLv3 |
|
||||
| `LGPL-2.1-only` (blivet) | ✅ | LGPL-2.1 §3 autorise la relicence en GPL ; usage dynamique |
|
||||
| `LGPL-2.1-or-later` (productmd) | ✅ | montée vers (L)GPLv3 |
|
||||
| `LGPL-3.0-or-later` (simpleline) | ✅ | sous-ensemble de GPLv3 |
|
||||
| `Apache-2.0` (requests-file, requests-ftp, pid) | ✅ | compatible GPLv3 (sens unique) ; voir [NOTICE](NOTICE) |
|
||||
| `MIT` (xkbregistry, winboat) | ✅ | permissive |
|
||||
| `MIT`/`BSD-style` (langtable, libxmlrpc) | ✅ | permissive |
|
||||
|
||||
### 4.3 ⚠ Deux points à surveiller (signalés en bonne foi)
|
||||
|
||||
1. **`python-iso639` est `AGPL-3.0-only`.** L'AGPL est compatible avec GPLv3 via
|
||||
la clause de compatibilité réciproque (GPLv3 §13 / AGPLv3 §13) : on peut
|
||||
combiner du code AGPLv3 et GPLv3. La **clause réseau** de l'AGPL (mise à
|
||||
disposition de la source aux utilisateurs distants d'un service réseau) est
|
||||
en pratique **inerte** pour un installateur hors-ligne. **Cependant**, l'AGPL
|
||||
est la licence la plus contaminante et beaucoup d'organisations l'interdisent
|
||||
par politique interne. **Recommandation béton :** si l'AGPL n'est pas
|
||||
souhaitée, remplacer `noumar/iso639` par une bibliothèque ISO-639 non-AGPL
|
||||
(p. ex. `pycountry` — BSD, ou les données `iso-codes`), ce qui élimine le
|
||||
sujet.
|
||||
|
||||
2. **`libreport` est `GPL-2.0-only`** (sans « or later »). GPL-2.0-**only** n'est
|
||||
**pas** compatible en montée avec GPLv3/AGPLv3. Tant que `libreport` reste un
|
||||
paquet **séparé** (bibliothèque partagée distincte, appelée via `python-meh`
|
||||
qui importe `report`), on demeure dans le régime d'agrégation §4.1 — et c'est
|
||||
la configuration que **Fedora elle-même distribue**. Le risque n'apparaîtrait
|
||||
que si l'on **liait statiquement** `libreport` (GPLv2-only) avec un composant
|
||||
AGPLv3-only/GPLv3-only dans un **seul binaire** : à éviter. En l'état (paquets
|
||||
séparés), pas de conflit.
|
||||
|
||||
### 4.4 Verdict
|
||||
|
||||
En l'état (paquets séparés, agrégation sur ISO, modules Python chargés au
|
||||
runtime), **la configuration est cohérente et alignée sur la pratique des
|
||||
distributions majeures**. Les deux points ⚠ ci-dessus méritent une décision
|
||||
explicite (garder / remplacer l'AGPL) et une revue par un juriste FOSS avant
|
||||
diffusion commerciale.
|
||||
|
||||
> **Ceci n'est pas un avis juridique.** Analyse de bonne foi fondée sur les
|
||||
> métadonnées de licence du dépôt à la date du 2026-06-17.
|
||||
|
||||
---
|
||||
|
||||
## 5. Préservation des avis
|
||||
|
||||
- Les textes de licence amont présents dans les sources sont conservés lors du
|
||||
`package()` (pacman installe `LICENSE`/`COPYING` dans
|
||||
`/usr/share/licenses/<paquet>/`).
|
||||
- Les attributions requises par Apache-2.0 / MIT / BSD figurent dans [NOTICE](NOTICE).
|
||||
- Aucun avis de droit d'auteur amont ne doit être retiré des sources ou binaires
|
||||
redistribués.
|
||||
Reference in New Issue
Block a user