Application bureau ou ligne de commande
Un exécutable téléchargé et installé par l’utilisateur, sur Windows, macOS ou Linux. Outil en ligne de commande, application graphique, installeur.
Ce qui se passe réellement
| Question | Réponse |
|---|---|
| Un tiers reçoit-il le logiciel sous forme exécutable ? | Oui — c’est la définition du scénario |
| Un tiers interagit-il avec lui par un réseau ? | Non, sauf composant serveur embarqué |
| Le produit est-il un bien de consommation verrouillé ? | Généralement non : l’utilisateur contrôle sa machine |
| Le composant est-il lié à votre code ? | Souvent, et le mode de liaison est le choix retenu |
C’est le scénario pour lequel la GPL a été écrite. Les obligations sont pleines, mais elles sont connues, bornées et outillables.
Le verdict par famille
| Famille | Verdict | Raison |
|---|---|---|
| Permissive | ● | Attribution due, à livrer avec le produit |
| Copyleft faible fichier (MPL, EPL) | ● | Publier les fichiers modifiés, votre code reste privé |
| Copyleft faible bibliothèque (LGPL) | ◐ | Praticable en liaison dynamique ; coûteux en statique |
| Copyleft fort (GPL) | ◐ | Obligation pleine de fournir le source de l’œuvre distribuée. Possible si assumé |
| Copyleft réseau (AGPL) | ○ | Se comporte comme la GPL ici ; l’article 13 s’y ajoute si l’application expose un service |
| Source-available | ✕ | Restrictions d’usage incompatibles avec une distribution large |
La liaison dynamique, décision d’architecture
C’est le levier principal de ce scénario. En liaison dynamique, la LGPL est satisfaite sans rien de plus : l’utilisateur peut remplacer la bibliothèque partagée.
| Plateforme | Liaison dynamique |
|---|---|
| Linux | Naturelle — .so, dépendances de paquets |
| Windows | Naturelle — .dll |
| macOS | Naturelle — .dylib, mais la signature de code et la notarisation compliquent le remplacement |
| Binaire Go, Rust, application « portable » | Impossible en pratique : tout est statique |
Le dernier cas est important : distribuer un binaire Go statique contenant une bibliothèque LGPL revient à devoir fournir les fichiers objets permettant de relier. Peu d’équipes le font, et c’est une non-conformité silencieuse.
Ce que « fournir le source » veut dire concrètement
Pour un composant GPL distribué, le code source correspondant comprend :
- le code source de l’œuvre, y compris vos modifications ;
- les scripts de compilation et d’installation ;
- les fichiers de définition d’interface, les scripts de génération ;
- tout ce qui est nécessaire pour régénérer et installer l’exécutable.
Deux modalités possibles :
| Modalité | Contrainte |
|---|---|
| Fournir le source avec le binaire | Le plus simple : une archive à côté du téléchargement |
| Fournir une offre écrite de fourniture du source | GPL-2.0 : valable trois ans après la dernière distribution ; GPL-3.0 : au moins la durée de fourniture des pièces détachées |
L’offre écrite paraît plus légère, mais elle crée une obligation d’archivage longue durée : il faut pouvoir régénérer, trois ans après, la version exacte livrée. C’est exactement le même problème que la période de support du CRA — et donc la même solution.
Les pièges de ce scénario
L’installeur qui empaquette des bibliothèques tierces. Chaque composant conserve sa licence. Un installeur n’est pas une œuvre unique : c’est le plus souvent une simple agrégation, ce qui est une bonne nouvelle — mais chaque composant garde ses obligations propres.
Le fichier d’attributions introuvable. Sur un poste de travail, l’attribution doit être
accessible à l’utilisateur : boîte « À propos », fichier livré, entrée de menu. Un fichier
NOTICE au fond d’une archive n’est pas une mise à disposition sérieuse.
Le composant appelé en sous-processus. Invoquer un exécutable GPL depuis votre application ne crée généralement pas d’œuvre dérivée — mais si vous le distribuez avec votre produit, vous distribuez du GPL et l’obligation de source s’applique à ce composant.
Les mises à jour. Chaque nouvelle version distribuée est une nouvelle distribution, avec ses propres obligations. Le source correspondant doit suivre les versions.
macOS et la notarisation. La signature obligatoire ne pose pas de problème de GPL-3.0 sur un ordinateur généraliste — il ne s’agit pas d’un « produit de consommation » verrouillé au sens de l’article 6, puisque l’utilisateur peut désactiver les contrôles. La question se pose en revanche pour du matériel dédié.
Ce que le CRA ajoute
Une application distribuée est un produit comportant des éléments numériques de plein exercice : dossier technique, SBOM, période de support, marquage CE, divulgation coordonnée.
Le recoupement heureux : le code source correspondant à conserver pour la GPL et la capacité de reconstruire exigée par la période de support sont le même artefact. Un dispositif d’archivage bien conçu sert les deux — voir Conservation des preuves.