# 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//` 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//` 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//`). - 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.