43c1053bd7
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.
148 lines
8.0 KiB
Markdown
148 lines
8.0 KiB
Markdown
# 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.
|