EPUB : Problème de compression Windows 10

Un bug de compression a été répertorié sur Microsoft Windows 10 depuis 2018 et empêchant les utilisateurs de correctement dézipper leurs archives, mais pas seulement… Personnellement je ne fais pas partie des utilisateurs malchanceux mais pour la compression d’un EPUB, c’est une autre affaire !

Pour rappel, concernant l’EPUB, il s’agit de fabriquer un fichier ZIP standard contenant les dossiers META-INF, OEBPS et le fichier MIMETYPE à sa racine, puis de renommer l’extension en .epub.
Sur ma version Windows 7 – 32 bits, aucun souci. En revanche avec Windows 10 – 64 bits, l’excellent EPUBCheck de Tobias Fisher me donne systématiquement l’erreur : « le fichier MIMETYPE est absent ou n’est pas le premier fichier de l’archive ».

Au début, j’ai cru que c’était l’application de Tobias qui était en cause. En effet, après plusieurs échanges entre nous, il se trouve que sa version 32 bits rencontre un souci si l’EPUB à analyser remonte trop d’erreurs : il y a un débordement de pile mémoire insolvable. Je pensais qu’il s’agissait de quelque chose de similaire. En fait, la version EPUBCheck 64 bits de Tobias fonctionne parfaitement bien tout comme la version 32 bits (malgré ce souci de pile mémoire), l’outil n’est pas en cause.

Si on vérifie le fichier EPUB en le dézippant, tout est bien en place, un vrai casse-tête. Mes fichiers sont corrects, il s’agit d’un ouvrage déjà contrôlé et validé, et la même opération réalisée sur Windows 7 ne remonte aucune erreur qu’il s’agisse de l’EPUBCheck sous Windows 7 ou Windows 10.

Je vous passe l’analyse de tous mes tests mais c’est bien Windows 10 qui est en cause et la gestion de l’arborescence lors de la compression. Le bug se retrouve aussi en utilisant des outils tiers (WinRar, Winzip ou 7-Zip) sous Windows 10. Pour une raison que je ne m’explique pas, le premier fichier MIMETYPE est considéré comme un dossier (du point de vue du chemin d’accès) ou son chemin (en racine) est tout simplement mal traité. Ainsi le souci concerne bien exclusivement le fichier racine.

Vous pouvez toujours essayer d’enregistrer l’EPUB en .rar puis avec WinRar de le (re)convertir en ZIP… ou intégrer un MIMETYPE avec une extension que vous retirerez dans le fichier ZIP… Cela ne changera rien, vous rencontrerez la même erreur. Il n’y a, aujourd’hui, qu’une seule solution : s’abstenir d’importer le fichier MIMETYPE !

L’unique solution que j’ai trouvée , mais c’est aussi la plus pratique, consiste à créer un fichier ZIP modèle contenant déjà le fichier MIMETYPE et généré avec Windows 7 – donc fonctionnel. Ensuite, il suffit d’ouvrir le fichier et d’y glisser le reste c’est à dire les dossiers OEBPS et META-INF puis de le renommer au nom de l’ouvrage et de modifier son extension en .epub.

Ça fonctionne… en attendant que peut-être un jour Microsoft au détour d’un xième patch ne corrige son compresseur/décompresseur ZIP.

Pour télécharger le fichier ZIP modèle contenant le MIMETYPE c’est ici

Un article sur le bug de la version 18h09, ici – mais il subsiste encore des problèmes puisque ma machine est notée Windows 20h2…

Affaire à suivre…