Un volume réseau vient de monter dans le Finder d'un iBook G4 sous Mac OS X 10.4.11. Icône sur le bureau, glisser-déposer, éjection. Rien d'extraordinaire en apparence, sauf un détail : le partage se trouve sur un NAS récent qui ne parle que SMB2/SMB3, et aucun Mac PowerPC n'a jamais su faire ça avec ses outils natifs. Son pilote SMB intégré est resté bloqué au protocole SMB1, celui-là même que tout le monde coupe depuis des années.13

C'est exactement ce trou que comble AquaLink, une petite application Cocoa signée watermark_hd, développeur qui décrit son projet comme un travail personnel et non commercial pour la communauté PowerPC.1 Selon son auteur, c'est le premier client SMB2/3 fonctionnel jamais exécuté sur Mac OS X PowerPC.1 Hackaday s'en est fait l'écho fin août 2026.4

Le logiciel lui-même reste modeste : environ trente téléchargements au moment où nous écrivons, une seule configuration matérielle publiquement vérifiée, un dépôt de 35 commits dont la première date du 9 août.13 Ce qui mérite le détour, c'est la manière dont le problème a été attaqué, et le journal de build que l'auteur a pris la peine de tenir.2

Le mur SMB1

Une vieille machine ne perd pas le réseau parce qu'elle tombe en panne. Elle le perd parce que le réseau bouge autour d'elle.

Apple avait intégré Samba, l'implémentation open source de SMB, à Mac OS X dès la version 10.2 pour partager des fichiers avec Windows.6 Leopard, dernière version compatible PowerPC, s'appuie encore sur cette pile, qui s'arrête au protocole SMB1/CIFS. Quand Apple réécrit son partage Windows sous le nom SMBX dans Lion, puis fait de SMB2 le protocole par défaut dans Mavericks, la branche PowerPC est déjà morte depuis des années.6

Autour, le monde extérieur a relevé le plancher. SMB3, arrivé avec Windows Server 2012, ajoute notamment le chiffrement de transport ; les constructeurs de NAS exposent la version minimale de protocole comme réglage explicite,8 et le SMB1 traîne une longue histoire d'exploitation derrière lui, faute notamment de vérification d'intégrité des messages.10 Et 2026 ajoute une couche : macOS 27 retire carrément le client AFP, le protocole historique d'Apple, ce qui ferme aussi le passage Mac-à-Mac entre vieilles et nouvelles machines.7

Résultat : un iBook G4 démarre parfaitement, HFS+ inclus, mais son propriétaire copie ses fichiers par clé USB ou par FTP bricolé, faute de pouvoir monter le partage du NAS. C'est ce quotidien-là qu'AquaLink attaque.

gcc 4.0 contre SMB3

L'auteur n'a pas réécrit SMB3 à la main. Il est parti de libsmb2, une bibliothèque C en espace utilisateur maintenue par Ronnie Sahlberg, distribuée sous LGPL 2.1, capable de parler SMB2 et SMB3 et déjà portée sur des plateformes improbables, dont plusieurs machines PowerPC comme la PlayStation 3 ou la Wii.5 Selon le dépôt, c'est à peu près la seule bibliothèque cliente SMB2/3 qui compile encore sur une chaîne d'outils de cet âge.1

Compiler ne veut pas dire compiler sans douleur. Le journal de build décrit trois obstacles précis.2 Le SDK de Tiger ne contient pas le framework CommonCrypto, si bien que la détection automatique de libsmb2 croit pouvoir l'utiliser sur Apple et choisit un chemin AES inexistant : il faut patcher configure.ac pour tester explicitement l'en-tête. Le gcc 4.0 de l'époque signale beaucoup plus largement les variables masquées que les compilateurs actuels, donc -Werror devient un mur : désactivé. Et Kerberos n'existe nulle part sur ce système, faute de GSS.framework comme de krb5.h : on reste sur l'authentification NTLMSSP embarquée dans la bibliothèque, jugée suffisante pour un NAS domestique.

Le résultat est vérifié sur machine réelle, pas simulé : smb2-ls liste un partage du Mac hôte moderne en forçant ?vers=3, noms de fichiers japonais compris, sans corruption.2 L'application finale lie libsmb2 statiquement, construit toute son interface en code sans fichier nib, et tient dans un zip qu'on décompresse sur le iBook.13

Le pont loopback

Restait le problème de l'expérience. libsmb2 donne accès programmatique aux fichiers, mais rien n'apparaît dans le Finder, et c'est le Finder que veut un utilisateur de Mac.

La voie normale pour ce genre de pont s'appelle FUSE, un système de fichiers en espace utilisateur. Selon l'auteur, MacFUSE et OSXFUSE n'ont jamais supporté sa configuration et le support PowerPC a été abandonné aux alentours de 2011 ; la porte est fermée.3 La solution retenue tient en deux pièces.23 D'abord, AquaLink embarque un minuscule serveur HTTP/WebDAV écrit directement sur sockets BSD, qui gère juste ce qu'il faut : PROPFIND, GET, PUT, DELETE et quelques verbes voisins. Ensuite, il appelle mount_webdav, l'utilitaire fourni avec Tiger, en le pointant vers 127.0.0.1. Le système voit un montage WebDAV ordinaire, et le partage du NAS apparaît dans /Volumes comme n'importe quel volume réseau.

Glisser-déposer dans les deux sens, double-clic, éjection : tout fonctionne avec les gestes habituels. Le projet va même plus loin dans l'autre sens. Le même petit serveur, retourné, expose des dossiers locaux du iBook sur le réseau local, transformant la vieille machine en petit NAS consultable depuis un Mac moderne ou un PC. Le besoin initial était très concret : relire de vieilles photos RAW stockées sur le iBook depuis une machine récente, sans transfert préalable.2

En clair

Un point demande de la précision : la couverture presse et ses commentaires se sont emmêlés.4

Le dépôt porte un avertissement sans détour : le mode NAS d'AquaLink transmet le mot de passe en HTTP Basic Auth, sur HTTP non chiffré, parce qu'il n'y avait pas d'alternative réaliste sur ce système. L'auteur limite explicitement l'usage au réseau domestique de confiance et interdit toute exposition internet ; le script d'aide Windows touche d'ailleurs la base de registre pour rendre ce mode praticable.1

Deux chemins différents ne doivent pourtant pas être confondus. Le chemin client, celui qui relie le iBook au NAS, passe par une session SMB négociée en version 3 avec authentification NTLMSSP ; la bibliothèque sait chiffrer ce type de session quand on le lui demande.5 Hackaday indique que les partages chiffrés restent inaccessibles pour l'instant depuis cette génération de machines,4 et ni le dépôt ni l'article ne documente précisément où le blocage se situe. On ne sait pas encore exactement pourquoi le chiffrement bout-de-en-bout ne fonctionne pas ; c'est la zone d'ombre honnête du projet. Le tronçon WebDAV, lui, est confiné à la boucle locale et ne quitte physiquement pas la machine.2

{% irzSlide layout="comparison" variant="dark" title="Ce qui circule, et comment" value1="Client SMB3" label1="session SMB3 authentifiée NTLMSSP, chiffrement non garanti à ce jour" value2="Pont local" label2="serveur WebDAV limité à 127.0.0.1, ne sort pas du iBook" value3="Mode NAS" label3="mot de passe en Basic Auth HTTP en clair sur le réseau" value4="Hôtes concernés" label4="OS sans correctifs depuis longtemps : LAN de confiance uniquement" footer="D'après les avertissements du dépôt et la documentation libsmb2." /%>

Le soin apparaît dans les détails : l'historique des connexions garde les adresses mais pas les mots de passe, et le mode NAS range le mot de passe dans le trousseau système, avec les API Keychain déjà présentes sous Tiger.2 Le problème de fond demeure, et le projet l'assume : ces machines tournent sur des systèmes sans correctifs de sécurité depuis des années, et l'auteur demande de les traiter comme intrinsèquement peu sûres.1

La leçon PackBits

Le journal de construction vaut à lui seul le détour, parce qu'il raconte des échecs utiles plutôt qu'une success story.23

Pour que l'application ait une icône correcte sous Tiger, il a fallu fabriquer un fichier .icns à l'ancienne, avec des chunks bitmap bruts que les outils modernes n'écrivent plus. La compression PackBits a été codée avec une formule de contrôle erronée, mais l'encodeur et le décodeur étant faux de la même façon, le test aller-retour passait. Seule la vraie machine a montré le bug, sous forme de bruit visuel dans l'icône. La correction est venue en lisant le code de libicns, puis en décodant l'icône d'Aquafox comme référence externe. L'auteur en tire une règle générale : un encodeur et un décodeur auto-écrits qui se valident mutuellement ne prouvent que leur cohérence interne, jamais leur justesse.

Autre épisode, plus sérieux : pendant un temps, le bouton de déconnexion arrêtait le serveur WebDAV avant d'avoir confirmé le démontage du volume. Si le démontage échouait silencieusement, le système gardait un montage orphelin et l'ensemble de /Volumes se figeait ; le déblocage exigeait de remonter temporairement quelque chose sur le port. Le correctif inverse l'ordre : confirmer le umount, avec relance en force si besoin, puis seulement couper le serveur.2

Cette prudence est écrite noir sur blanc à la racine du dépôt : un fichier de consignes impose de créer une sauvegarde .bak avant chaque modification de fichier et de demander confirmation avant toute opération destructive, précisant que la machine cible est difficile à restaurer et qu'il faut piloter le iBook depuis un Mac hôte par SSH, faute d'outils modernes installables dessus.9 Le projet est développé avec l'assistance d'un outil IA, et ces consignes disent quelque chose de juste : sur du matériel fragile et irremplaçable, la prudence doit être écrite quelque part avant de lancer les commandes.

Un dernier épisode complète le tableau. Un utilisateur d'une image Snow Leopard PowerPC patchée non officiellement a signalé un démontage toujours refusé ; après investigation, deux API d'élévation de privilèges différentes échouaient identiquement alors que sudo en ligne de commande passait, et l'auteur a classé le cas comme limitation connue de cette image particulière plutôt que de promettre une correction impossible chez lui.2

Ce qui reste utilisable

Vous gardez une vieille machine en service ? Banque de sons, station de numérisation, machine d'écriture : AquaLink répond à un vrai problème quotidien, gratuitement et sans matériel supplémentaire. Il faut juste lire les limites : une configuration matérielle vérifiée publiquement, un projet personnel sans licence déclarée, donc sans droit de réutilisation explicite du code, et un périmètre de confiance qui reste le réseau domestique.1

La suite annoncée tient en une phrase sur la page projet : permettre d'accéder au partage depuis un navigateur, pour ne plus dépendre de l'application elle-même.3 Si ce pont tient, la leçon sera encore plus nette : quand l'industrie ferme une porte derrière une machine encore saine, quelqu'un peut parfois rouvrir celle-ci en espace utilisateur, avec un vieux gcc et beaucoup de minutie.