Mettons les choses au clair, quand je dit "une affirmation absurde", cela ne signifie en aucun cas une affirmation fausse. Oui, Ubuntu contient du code fermé, et je veux ici montrer que se baser sur cette caractéristique du système pour le rejeter est totalement incohérent.

Tout d'abord il est bon de savoir quels sont précisément les logiciels installés contenant du code propriétaire. Pour cela j'ai lancé la commande vrms sur une installation fraiche d'Ubuntu 8.10 dans Virtual Box, le résultat est le suivant :

            Non-free packages installed on strider-vbox

fglrx-modaliases          Identifiers supported by the ATI graphics driver
human-icon-theme          Human Icon theme
linux-generic             Complete Generic Linux kernel
linux-restricted-modules- Non-free Linux 2.6.27 modules helper script
linux-restricted-modules- Restricted Linux modules for generic kernels
nvidia-173-modaliases     Modaliases for the NVIDIA binary X.Org driver
nvidia-177-modaliases     Modaliases for the NVIDIA binary X.Org driver
nvidia-71-modaliases      Modaliases for the NVIDIA binary X.Org driver
nvidia-96-modaliases      Modaliases for the NVIDIA binary X.Org driver
tangerine-icon-theme      Tangerine Icon theme

            Contrib packages installed on strider-vbox

nvidia-common             Find obsolete NVIDIA drivers

  10 non-free packages, 0.8% of 1201 installed packages.
  1 contrib packages, 0.1% of 1201 installed packages.


Parmi cette liste ,j'élimine d'emblée les deux thèmes d'icones : Human et Tangerine qui sont sous license Creative Commons Attribution-ShareAlike 2.5 et qui n'ont rien a bénéficier d'une license GPL. Pour les libristes les plus intransigeants rappelons que Stallman lui même ne tiens pas particulièrement a voir des fichiers autre que du code source sous licence libre. Bref, ces thèmes d'icônes sont librement distribuables et c'est le principal. Un parenthèse sur Firefox et son logo qui ne sont pas utilisables librement. Un nom et un logo ne contiennent pas de code source, ils n'ont aucune raison d'être sous licence libre.

Un tour rapide des paquets concernant les drivers ATI et NVidia. nvidia-common est un script Pyhton sous GPL V2, il n'a rien a faire dans cette liste. Les paquets modaliases sont plus subtils : ils disposent d'un copyright d'AMD ou NVidia et ne sont pas sous GPL. Mais il ne s'agit pas des drivers a proprement parler mais uniquement d'une liste d'identifiant de cartes PCI avec le driver le plus adapté. En gros cela va indiquer au gestionnaire de pilote quel est le bon paquet a télécharger pour la carte en cours d'utilisation.

strider@strider-desktop:/usr/share/jockey/modaliases$ head -n2 nvidia-177 
# Listing generated by nvidia_supported. Do not edit manually.
alias pci:v000010DEd00000040sv*sd*bc03sc*i* nvidia nvidia-glx-177


Il nous reste maintenant le plus intéressant : Linux !
Le paquet linux-restricted-modules est le premier paquet comportant réellement du code propriétaire inclus dans trois projets distincts : ltmodem, broadcom et madwifi. Donc sans ce paquet vous aurez très peu de chance de voir votre modem interne avec un chipset Lucent, ou votre carte wifi avec un chipset Broadcom ou Atheros fonctionner. Si vous ne possédez aucun de ces trois type de matérie, vous pouvez désinstaller ce paquet si la présence de blobs binaires sur votre disque dur qui ne seront jamais exécutés vous dérange.
Et puis le meilleur pour la fin, le logiciel le moins libre de la distribution Ubuntu : le noyau Linux.
Je n'ai pas été chercher si les développeurs d'Ubuntu avaient rajouté certains modules fermés au noyau de base car celui ci, celui qui est en téléchargement sur kernel.org, en contient déjà suffisamment. Le noyau contient effet des blobs qui seront chargé sur les périphériques qui en ont besoin pour fonctionner. La FSF a bien évidemment crée un kernel linux libre dépourvu de ces blobs. Pour générer cette version spéciale du noyau, un script bash parcours toutes les sources du noyau a la recherche de microcode écrit en code machine et le supprime.
Kernel-libre
Le code nécessaire au bon fonctionnement du matériel est remplacé par le commentaire /*DEBLOBBED*/ . Le kernel libre offre donc les mêmes fonctionnalités que le kernel de base, les mêmes drivers sont présents, mais le périphérique demandant un microcode risque d'avoir quelques suprises quand il essayera de s'initialiser avec un kernel libre. La FSF n'a pas retiré les drivers propriétaires, elle les a rendu disfonctionnels ! On entre ici dans l'absurde mais on peut facilement continuer plus loin. Regardez autour de vous, essayez de vous faire une représentation de tout les appareils électroniques qui vous entourent et qui comportent un microprocesseur ou un microcontrolleur. Lesquels fonctionnent avec un code totalement libre ? Il y a de grande chances que la réponse soit zéro. La machine la plus "libre" que je connaisse est le XO Laptop de l'OLPC et celle ci demande quand même un microcode propriétaire pour faire fonctionner le chipset wifi...
Sérieusement, quelle est la raison pour laquelle on pousse les utilisateurs de systèmes GNU/Linux a installer des versions 100% libre ? Un noyau de base offre 2 possibilités : soit on a un périphérique nécessitant un microcode fermé et dans ce cas le périphérique fonctionnera, soit la machine n'a pas besoin de microcode (parce qu'elle inclus le code propriétaire dans une ROM, ce qui est encore plus hermétique) et alors le code fermé de Linux ne sera jamais exécuté. Dans le cas d'un kernel libre, on aura beau avoir l'âme en paix du fait de ne pas avoir quelques chaines en héxadécimal sur son disque dur, si on a la malchance de posséder un périphérique qui en a besoin, celui ci n'aura aucune chance de fonctionner.
Rendez vous a l'évidence : le moindre appareil électronique contient du code fermé, et il n'y a aucune raison de punir l'utilisateur parce que ce périphérique offre la possibilité de charger un firmware dynamiquement (en opposition a un firmware écrit de manière permanente en ROM, qui n'aura aucune chance d'être mis a jour). Le noyau Linux n'est pas libre a 100%, nous n'y pouvons rien, et nous pouvons déjà nous estimer chanceux que certains constructeurs aient permis la distribution de leurs firmwares pour assurer le bon fonctionnement de leurs périphériques.
Au final, on se rends compte qu'Ubuntu comporte quatre logiciels contenant du code propriétaire : ltmodem, broadcom, madwifi et linux. Tous concernent la gestion du matériel et il n'y aucun code non libre présent dans les programmes de l'utilisateur. Les alternatives 100% libres que sont BLAG, gNewSense et ututo n'ont aucun avantage par rapport aux autres si ce n'est la garantie de la liberté du code source. Il manque toutefois une liste mise en évidence sur les sites de ces distributions avec en titre "Voici la liste des périphérique qui ne fonctionneront pas sur notre distribution". Hormis les 3 distributions citées, toutes les autres distributions atteignent le même degré de liberté qu'Ubuntu, il est donc complètement absurde de dire "je quitte Ubuntu pour Mandriva/Debian/Gentoo/Fedora/etc... parce qu'Ubuntu n'est pas assez libre pour moi".


PS(1): Je ne souhaite pas m'étendre sur les facilités d'installation que propose Ubuntu pour certains logiciels propriétaires. Ubuntu n'est pas installé par défaut avec ceux ci et il appartient a l'utilisateur d'installer des programmes qui sont susceptibles de lui offrir une meilleure expérience au détriment de l'ouverture du code source. Toute fonctionnalité visant, d'une manière ou d'une autre a faciliter l'usage de la machine ne peut être qu'encouragée.

PS(2): Malheureusement certaines personnes font un amalgame entre logiciels propriétaire et format breveté. La plupart des codecs audio/video sont des logiciels libres, qui sont concus pour traiter des formats sous licence. Ce ce fait leur utilisation n'est pas légale dans tous les pays. Aussi on ne dit pas d'un format qu'il est libre mais qu'il est ouvert. Encore une raison pour insister sur le fait que le terme "libre" doit être appliqué uniquement aux logiciels (et aux documentations qui en découlent).

PS(3): Oui, Mono est un logiciel 100% libre