Debian Autorise l'IA Generative dans le Code: Ce Que le Vote de 2026 Change dans l'Open Source
Salut HaWkers, Debian a passe deux semaines a voter et a cloture le 28 aout 2026 la General Resolution 2026-002, la "LLM usage in Debian". Huit propositions figuraient sur le bulletin, allant de bannir les LLM via le Contrat Social jusqu'a accepter la contribution assistee sans ceremonie. C'est l'option 5, "Responsible Use of Generative AI", qui l'a emporte. Le projet qui empaquette une bonne partie de l'infrastructure d'internet a decide qu'il n'approuve ni n'interdit l'IA generative.
Vous contribuez a un projet open source, ou vous comptez le faire, et vous vous etes deja demande si vous pouviez ouvrir une PR avec du code que Claude ou Copilot a ecrit avec vous? Cette question est sortie du domaine de l'etiquette pour devenir une politique ecrite, avec des regles differentes dans chaque projet. Dans cet article je decortique ce que Debian a approuve, je compare avec ceux qui interdisent, et je montre comment automatiser la conformite dans votre propre depot avec des git hooks et de la CI.
Ce Que Debian a Decide Concretement
Le vote est reste ouvert du 15 au 28 aout 2026, avec 1 045 developpeurs habilites a voter et un quorum exige de 48,49 voix. Le bulletin comptait neuf lignes: huit propositions plus le classique "None of the above". Debian utilise Condorcet avec la methode de Schulze, donc il n'existe pas de "vote utile": chaque participant classe les options par preference et le systeme depouille tous les duels deux a deux.
Les huit propositions couvraient tout le spectre:
- Ban LLM contributions from Debian via Social Contract, de Matthias Geiger
- Allow AI-Assisted Contributions with conditions, de Lucas Nussbaum
- Reject LLMs as far as practical, update Code of Conduct, de Ian Jackson
- Accept AI contributions for Debian specific work, de Pierre-Elliott Becue
- Responsible Use of Generative AI, de Marc Haber
- A cautious approach to generative AI, de Tobias Frost
- Debian is created by humans, de Gard Spreemann
- Avoid the use of LLM: climate destruction is a deal breaker, de Holger Levsen
La proposition de Marc Haber a remporte tous les duels. Elle a battu celle de Lucas Nussbaum par 203 a 148, celle de Tobias Frost par 210 a 130 et celle de Pierre-Elliott Becue par 232 a 115. Le detail le plus revelateur du depouillement n'est pas dans qui a gagne, mais dans qui a perdu: les deux propositions d'interdiction stricte, celle de Matthias Geiger et celle de Ian Jackson, ont ete battues meme par le "None of the above". La base de Debian n'a pas seulement rejete leur texte, elle a rejete l'idee d'interdire.
Pourquoi "Ni Approuve Ni Interdit" Est la Partie Importante
Le texte approuve est court et tient en cinq engagements. Cela vaut la peine de lire chacun d'eux avec attention, parce que la formulation a ete choisie avec soin:
- Debian n'approuve ni n'interdit l'usage d'outils d'IA generative dans le developpement, la maintenance ou la documentation des logiciels, des paquets et des autres medias publies par le projet.
- Toute contribution repond au meme standard, quelle que soit la maniere dont elle a ete produite et avec quel outil: qualite, exactitude, maintenabilite et conformite legale.
- L'outil ne dilue pas la responsabilite. Celui qui soumet reste responsable de la contribution. L'attente est explicite: comprendre, relire, tester et, quand cela a du sens, modifier la sortie de l'IA avant de l'integrer.
- Tout processus automatise a besoin d'une supervision humaine, et cet humain repond du comportement du processus.
- La divulgation est encouragee, mais pas obligatoire. Le texte traite la transparence comme une courtoisie envers les autres contributeurs, pas comme une condition d'acceptation.
Remarquez ce que le point 5 evite. Une obligation de divulgation ne fonctionne que si quelqu'un peut verifier, et personne ne peut prouver qu'une fonction de trente lignes vient d'un modele ou de la tete de celui qui l'a ecrite. Le camp pro-IA a defendu exactement cela pendant le debat: une regle inapplicable ne produit pas de la conformite, elle produit une chasse aux sorcieres contre ceux qui paraissent suspects. Le camp oppose a repondu par la question qui reste sans bonne reponse, sur la maniere dont le contributeur certifie la situation legale d'un extrait qu'il n'a pas ecrit.
Debian a resolu la tension en repoussant le probleme entier vers le seul endroit ou il a toujours ete: la personne qui signe. Ce n'est pas une politique sur l'IA, c'est une politique sur la responsabilite qui mentionne l'IA au passage.
La Carte des Politiques: Qui Interdit, Qui Autorise, Qui n'a Pas Encore Decide
Debian n'a pas defini un consensus, il a defini sa position. L'ecosysteme reste fracture, et si vous contribuez a plus d'un projet vous devez savoir ou vous mettez les pieds.
Ceux qui interdisent:
- Gentoo est le plus direct. Il y est expressement interdit de contribuer avec du contenu cree a l'aide d'outils d'IA de traitement du langage naturel. Les motifs cites sont le copyright, la qualite et l'ethique.
- NetBSD traite le code genere par LLM comme du code contamine par presomption. Il ne peut pas etre commite sans approbation prealable ecrite.
- QEMU refuse les contributions qu'il croit contenir ou deriver de contenu genere par IA. L'argument est juridique et elegant: comme la situation de copyright de la sortie n'est toujours pas reglee et que les donnees d'entrainement peuvent inclure du code sous licence incompatible, le contributeur ne peut pas certifier honnetement le Developer Certificate of Origin.
Ceux qui autorisent avec une regle:
- Le noyau Linux a suivi un chemin proche de celui de Debian, mais avec plus de mecanique. Il autorise la contribution assistee par IA et a cree un trailer dedie pour cela, qui est le sujet de la section suivante.
Ceux qui n'ont pas encore tranche:
- Fedora, Rust, FreeBSD, GCC, Blender, NixOS et Jupyter ont une discussion vivante et aucune politique consolidee.
Remarquez que toute la bagarre ne porte presque jamais sur la qualite du code. Elle porte sur la provenance. QEMU ne dit pas que le code du modele est mauvais, il dit que personne ne sait a qui il appartient. Et il vaut la peine de separer cette discussion juridique de la discussion sur la qualite, qui existe aussi et qui a ses propres donnees. J'en avais deja parle quand est sortie l'etude sur l'impact du vibe coding sur l'open source, et les deux conversations avancent sur des rails differents.
Le Trailer Assisted-by: La Regle Que Vous Rencontrerez en Premier
Si vous comptez contribuer au noyau, c'est ici la partie pratique. La documentation officielle sur docs.kernel.org/process/coding-assistants.html etablit deux regles qui ne se negocient pas.
La premiere est une interdiction: les agents d'IA ne peuvent pas ajouter un Signed-off-by. Seul un humain peut certifier legalement le Developer Certificate of Origin. La seconde est un nouveau format de trailer pour crediter l'assistance:
# Format defini par la documentation du noyau
# Assisted-by: NOM_DE_L_AGENT:VERSION_DU_MODELE [OUTIL1] [OUTIL2]
git commit -s -m "net: corrige une fuite de reference dans le chemin d'erreur
Le chemin d'erreur de xyz_probe() ne liberait pas la reference du device
quand l'allocation du buffer echouait.
Assisted-by: Claude:claude-3-opus coccinelle sparse"Deux subtilites font la difference. Le flag -s de git commit ajoute votre Signed-off-by, et il reste obligatoire: le Assisted-by credite, il ne remplace pas. Et la liste d'outils entre crochets sert aux analyseurs specialises, comme coccinelle, sparse, smatch et clang-tidy. Un outil de developpement de base n'a pas sa place la. Ne listez pas git, gcc, make ni votre editeur.
Le reste du processus ne change pas: le code doit etre compatible GPL-2.0-only, ne peut pas introduire de warning de build et doit passer checkpatch.pl.
Automatiser la Politique dans Votre Depot
Une politique qui depend de la memoire humaine echoue des la troisieme semaine. Si vous maintenez un projet et que vous avez adopte une regle proche de celle de Debian ou du noyau, mettez-la dans un hook. Le commit-msg tourne avant que le commit existe et arrive a bloquer le probleme a la source:
#!/usr/bin/env bash
# .git/hooks/commit-msg
# Garantit qu'un agent d'IA ne signe pas le DCO et que le trailer
# Assisted-by respecte le format AGENT:MODELE.
set -euo pipefail
MSG_FILE="$1"
# Liste d'identifiants d'agent qui ne peuvent jamais signer le DCO
AGENTS="Claude|Copilot|Codex|Cursor|Gemini|GPT"
if grep -qiE "^Signed-off-by:.*($AGENTS)" "$MSG_FILE"; then
echo "ERREUR: un agent d'IA ne peut pas signer le Developer Certificate of Origin." >&2
echo "Utilisez le trailer Assisted-by et signez vous-meme avec git commit -s." >&2
exit 1
fi
# Si un Assisted-by existe, valide le format AGENT:MODELE
if grep -q "^Assisted-by:" "$MSG_FILE"; then
if ! grep -qE "^Assisted-by: [A-Za-z0-9._-]+:[A-Za-z0-9._-]+" "$MSG_FILE"; then
echo "ERREUR: format invalide du Assisted-by." >&2
echo "Attendu: Assisted-by: AGENT:MODELE [outil1] [outil2]" >&2
exit 1
fi
# Un trailer d'assistance exige un Signed-off-by humain dans le meme commit
if ! grep -q "^Signed-off-by:" "$MSG_FILE"; then
echo "ERREUR: un commit avec Assisted-by a besoin d'un Signed-off-by humain." >&2
exit 1
fi
fi
exit 0Un hook local, cependant, ne protege que celui qui a installe le hook. Il resout votre cas et celui des personnes qui ont clone avec core.hooksPath configure, et il ne resout pas la PR qui arrive de l'exterieur.
Porter la Verification dans la CI
La verification qui compte est celle qui tourne sur le serveur, sur tous les commits de la PR. Cette action parcourt l'intervalle de la pull request et echoue quand elle trouve un DCO signe par un agent:
# .github/workflows/ai-policy.yml
name: Politique de contribution assistee
on:
pull_request:
jobs:
trailers:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# Necessite l'historique complet pour parcourir l'intervalle de la PR
fetch-depth: 0
- name: Verifie les trailers de tous les commits de la PR
env:
BASE: ${{ github.event.pull_request.base.sha }}
HEAD: ${{ github.event.pull_request.head.sha }}
run: |
echec=0
for sha in $(git rev-list "$BASE".."$HEAD"); do
corps=$(git log -1 --format=%B "$sha")
if echo "$corps" | grep -qiE "^Signed-off-by:.*(Claude|Copilot|Codex|Cursor|Gemini|GPT)"; then
echo "::error::$sha a un Signed-off-by d'agent d'IA"
echec=1
fi
if echo "$corps" | grep -q "^Assisted-by:" \
&& ! echo "$corps" | grep -q "^Signed-off-by:"; then
echo "::error::$sha declare Assisted-by sans Signed-off-by humain"
echec=1
fi
done
exit $echecUn avertissement honnete sur la portee de tout ca: rien ici ne detecte du code genere par IA. Ca detecte un trailer mal forme et une signature indue, c'est-a-dire ce que l'on peut verifier concretement. C'est en reconnaissant cette limite que Debian a laisse la divulgation comme une courtoisie plutot que comme une exigence.
Ecrire la Politique de Votre Projet
Si vous maintenez un projet et que vous n'avez encore rien ecrit la-dessus, le CONTRIBUTING.md est l'endroit. Le modele ci-dessous suit la ligne de Debian, qui en pratique est la plus facile a tenir parce qu'elle ne promet pas un controle que vous ne pouvez pas exercer:
## Contributions assistees par IA
Ce projet n'approuve ni n'interdit l'usage d'outils d'IA generative.
Toute contribution passe par le meme critere, quel que soit l'outil:
qualite, exactitude, maintenabilite et conformite de licence.
Utiliser un outil ne transfere pas la responsabilite. En ouvrant une PR vous
declarez que vous avez compris, relu et teste le code que vous soumettez, et
que vous en repondrez pendant la revue.
Divulguer l'usage d'une assistance est encourage comme une courtoisie envers
l'equipe de revue, et ce n'est pas obligatoire. Si vous voulez le declarer,
utilisez le trailer:
Assisted-by: AGENT:MODELE
Les agents automatises ne signent pas le DCO. Le Signed-off-by est toujours
celui d'une personne.Adaptez la derniere ligne a votre contexte: si le projet n'utilise pas le DCO, remplacez-la par la personne qui repond de la revue. L'important est la structure, qui separe trois choses habituellement melangees dans la meme phrase: ce qui est permis, quel est le standard de qualite et a qui incombe la responsabilite.
Ce Qui Change dans Votre Routine de Contributeur
En pratique, quatre choses.
Lisez la politique avant la premiere PR. Ca a cesse d'etre optionnel. Un patch parfaitement bon est refuse chez NetBSD et chez Gentoo selon un critere que Debian n'applique pas. Cherchez le CONTRIBUTING.md, le Code de Conduite et une eventuelle page de politique avant d'investir des heures.
Partez du principe que vous allez defendre le code. Le standard de Debian et du noyau vous oblige a comprendre ce que vous avez soumis. Si vous n'arrivez pas a expliquer pourquoi une ligne est la pendant une revue, le probleme n'est pas que l'outil l'ait ecrite, c'est que vous ne l'ayez pas relue.
Traitez la provenance comme une partie de la livraison. Du code sous licence douteuse est votre probleme, pas celui du modele. Si la sortie ressemble a une implementation connue d'un projet, verifiez avant de soumettre.
Declarez quand ca aide. Ce n'est obligatoire presque nulle part, mais ca aide les relecteurs a calibrer leur attention, et vous n'y perdez rien.
Perspectives: Ce Qui Vient Apres le Vote
Le poids de Debian fait du "Responsible Use" un texte de reference. Il est probable que des projets plus petits copient la structure, de la meme maniere qu'ils ont copie le Contrat Social et la Definition du Logiciel Libre de Debian. La distance entre la position de Debian et celle du noyau Linux est aussi plus faible qu'il n'y parait, et les deux convergent au meme point: un humain signe, un humain repond.
Ce qui reste ouvert, c'est la question juridique que QEMU souleve et a laquelle personne n'a repondu, sur la situation de copyright de la sortie d'un modele entraine sur du code sous licence incompatible. Tant que ca ne sera pas tranche par les tribunaux, chaque projet va calibrer son propre risque. Fedora, Rust et FreeBSD ont la discussion ouverte en ce moment, et le resultat de Debian va peser dans ces debats.
Pour vous, l'effet immediat est simple et vaut plus que n'importe quelle prevision: la question n'est plus "est-ce que je peux utiliser l'IA?" mais "est-ce que je comprends ce que je soumets?". Cette deuxieme question est plus difficile, et elle a toujours ete la seule qui comptait.
Allez, on y va! 🦅
📚 Vous Voulez Suivre Ce Qui Arrive?
Cet article a couvert le vote de Debian sur l'IA generative, mais l'ecosysteme change chaque semaine et tout ne devient pas un article ici.
Sur X je partage ce que je teste, les coulisses de mes projets et les nouveautes qui apparaissent avant de devenir un post.
Suivez-Moi La-Bas
💡 Du contenu quotidien sur le developpement, la carriere et les outils que j'utilise vraiment

