Le binaire de Visual Studio Code n’est pas du Logiciel Libre. Voilà pourquoi.

Avez-vous téléchargé le binaire de Visual Studio Code directement depuis le site officiel ? Si c’est le cas, vous n’utilisez pas un Logiciel Libre et seul Microsoft sait ce qu’il y a dedans. Et vous devriez envisager le pire.

L’astuce de Microsoft

Je ne suis pas un juriste et je peux me tromper ou n’être pas assez précis (j’espère que vous me pardonnerez) mais je vais néanmoins vous présenter ma compréhension de la situation car le statut actuel de l’accord de licence de Visual Studio Code semble être fait de façon à tromper la plupart des utilisateurs.

Microsoft utilise une astuce simple mais efficace, autorisée par la licence du code source de Visual Studio Code: la licence MIT, l’une des licences très permissives du logiciel libre.

En effet la licence MIT est très simple. Elle dit en substance : Faite ce que vous voulez avec ce soft, conservez le copyright original et je ne suis pas responsable de ce qui peut arriver en utilisant ce soft. Ok. Sauf que, pour Visual Studio Code, cette licence ne couvre que le code source, pas le binaire !

À la différence de la plupart des licences GNU GPL, pour lesquelles le source code et le binaire construit à partir du code source sont couverts par les termes de la licence, utiliser la licence MIT autorise Microsoft à rendre disponible de façon libre le source code de leur soft, mais de pouvoir faire ce qu’ils veulent avec le binaire. Et ils ne vont pas s’en priver.

Une licence non-libre à la sauce Microsoft, qu’est-ce que c’est ?

Évidemment Microsoft n’utilise pas la licence MIT pour le binaire de Visual Studio Code à dessein. En fait ils utilisent une licence non-libre restreignant vos droits d’utilisateurs : la licence de logiciel Microsoft.

Jetons un oeil à cette licence. Vous pouvez lire la licence complète ici : https://code.visualstudio.com/license

This license applies to the Visual Studio Code product. The source code is available under the MIT license agreement.

Il s’agit de la première phrase de la licence en question. La différence entre la licence du code source et le “produit”, c’est-à-dire le binaire que vous utilisez vraiment, est clairement définie.

Data Collection. The software may collect information about you and your use of the software, and send that to Microsoft.

Collecte d’informations personnelles, évidemment, difficile d’attendre autre chose de la part de Microsoft.

UPDATES. The software may periodically check for updates, and download and install them for you. You may obtain updates only from Microsoft or authorized sources. Microsoft may need to update your system to provide you with updates. You agree to receive these automatic updates without any additional notice. Updates may not include or support all existing software features, services, or peripheral devices.

En acceptant cette licence, vous me donnez le droit (que Microsoft n’utilisera peut-être pas… pour l’instant) de casser votre installation sans vous prévenir et de se ficher des conditions dans lesquelles vous l’utilisez parce que, bon, c’est Microsoft.

SCOPE OF LICENSE (…) you may not:

  • work around any technical limitations in the software;

Aussi connu comme “hacker” depuis… des dizaines d’années.

  • reverse engineer, decompile or disassemble the software, or otherwise attempt to derive the source code for the software, except and to the extent required by third party licensing terms governing use of certain open source components that may be included in the software;

On vous interdit explicitement d’étudier le binaire en question par n’importe quel moyen, parce qu’il est hors de questions que qui que ce soit sache ce que Microsoft fait avec ce binaire… qui tourne quand même sur votre ordinateur.

  • share, publish, rent or lease the software, or provide the software as a stand-alone offering for others to use.

Je peux me tromper (de nouveau je ne suis pas juriste), mais il semble ici que cette licence vous interdise de redistribuer le binaire téléchargé chez Microsoft, sauf dans le cadre des conditions mentionnées dans les sections INSTALLATION et USE RIGHTS, principalement dans le cadre des besoins de votre entreprise et/ou pour donner des démos de vos produits à l’aide de VSC. Ainsi Microsoft force l’utilisateur lambda à passer par le site officiel, ce qui assure une bonne distribution de son propre binaire.

Les sections suivantes EXPORT RESTRICTIONS et CONSUMER RIGHTS; REGIONAL VARIATIONS incluent encore davantage de restrictions à l’usage et à la redistribution du binaire.

DISCLAIMER OF WARRANTY. The software is licensed “as-is.”

Enfin une condition qui se rapproche de celle de la licence MIT. Mais dans ce cas c’est évidemment pour limiter les obligations qu’a Microsoft envers vous. Pas fou.

Donc la licence Microsoft utilisée pour le binaire de VSC n’est absolument pas une licence de logiciel libre permissive, si jamais vous n’étiez pas convaincu par le fait que Microsoft utilise déjà une astuce en employant une licence différence pour le code source et le binaire.

Ce que vous pourriez faire

Ce problème a déjà été perçu par beaucoup et il existe des solutions. Après tout, le code source utilise quand même une licence du logiciel libre. Par exemple, pourquoi ne pas construire le binaire vous-même ? Certaines initiatives apparaissent également VSCodium,  un dépôt de binaire géré par la communauté. Ce serait un bon début pour s’affranchir du binaire officiel de Microsoft.

Au niveau des distributions GNU/Linux, empaqueter Visual Studio Code dans les distributions (voir ici la discussion de VSC dans  Debian) serait un bon moyen d’éviter que les utilisateurs soient abusés par l’astuce de Microsoft afin que la majorité des gens utilisent leur “produit” en croyant utiliser un binaire libre, mais étant en fait sous une licence made in Microsoft qui casse à peu près toutes les conditions qui font un Logiciel Libre.

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :

12 thoughts on “Le binaire de Visual Studio Code n’est pas du Logiciel Libre. Voilà pourquoi.

  1. C’est bien triste de tromper l’utilisateur de la sorte… ça prouve que M$ ne change qu’en façade.
    Il me semble que Atom ne présente pas cet inconvénient. Donc pour ceux qui veulent une alternative —> Atom !

    PS: j’utilise Atom avec bonheur depuis plusieurs années maintenant.

  2. Merci pour ces informations.

    Je me pose une question concernant les dépots tels que vscodium. Au final cela revient également à faire confiance à un inconnue qui pourrait subtilement ajouter malwares ou autres dans le binaire final ?

    La seule solution “safe” est donc de compiler soi même.

    • alors pas tout à fait, car ils partent des sources officielles disponibles sous licence MIT et détaillent ce qu’ils enlèvent. De plus, comme le binaire est fourni en licence MIT, tu peux le décompiler et faire de la rétro-ingénierie sans risque légal.

      En gros s’ils s’amusaient eux à rajouter des choses, ça se saurait très vite. C’est un projet libre et au développement ouvert.

      Microsoft l’interdit au niveau du binaire avec sa licence Microsoft et tu prends un risque légal si tu veux en savoir plus sur le binaire et que par exemple tu parlais de ce que tu trouvais sur un réseau social ou sur YouTube.

      • OK merci pour ces précisions ^^
        Surtout que je viens de voir que l’installation se fait autant voir plus facilement. Pourquoi s’en priver alor ?
        🙂

  3. Ça ou autre chose…
    Combien je vois de «libristes» utiliser des Mac OS, Cloudfare, Google Analytics, Let’s encrypt…alors faire un caca nerveux sur VS…

  4. Salut, deux remarques sur ton article :
    – C’est écrit « Open Source », pas « free/libre software » Donc, oui, de fait ce n’est pas un logiciel libre. Le logiciel libre est open source, la réciprocité n’est pas vrai.
    – Quelle est la pertinence de mettre un fichier binaire sous une licence open source ? Probablement pas plus pertinent que de placer un enregistrement vidéo sous une licence open-source.

    • Il y a (aura) toujours beaucoup de confusions en “Open Source” et “Libre”.
      En l’état actuel, Visual Studio Code est “Open Source” puisque les sources sont mises à disposition, on peut donc auditer le code et faire un fork si certaines choses ne nous plaisent pas.

      Sinon, c’est le même principe que Chromium/Chrome, c’est principalement Google qui met à jour Chromium qui est “Open Source” et ensuite rajoute sa couche pour donner “Chrome”. Pareil pour OpenJDK et plein d’autres exemples ! Ici, Microsoft est la source principale du code source de vscode et rajoute sa surcouche pour donner Visual Studio Code.

      A corriger si je me trompe, je peux confondre 😮

  5. Dans le libre, on a déjà assez d’éditeurs de code source.
    Donc ne pas s’emmerder avec les produits Microsoft.
    Utilisez plutôt Emacs car j’en suis sur celui là est bien libre 🙂

  6. Sous ArchLinux, le paquet “code” est construit plus ou moins avec les mêmes objectifs que vscodium (dont un “paquet” est dispo sur AUR) : https://www.archlinux.org/packages/community/x86_64/code/

    Donc y’a des chances que d’autres distributions s’inspirent de ce travail pour intégrer leur propre paquet. Par contre, le modèle de développement est clairement de toujours avoir la dernière version, dans ce cas je ne sais pas si Debian acceptera ça (quoiqu’ils avaient décidé de le faire pour PHP 5.4 vu que c’était trop chiant pour tout backporter).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *