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.