logoAnerty's Lair - Actualités << Home
enfr
^ Utilitaires Documentation
article

Info: DriveSort sous Linux

Linux DriveSort

J'ai fait quelque tests sous Ubuntu Linux v8.04 avec Wine v0.9.59 comme émulateur Windows, et il semble permettre à DriveSort de fonctionner sous Linux. Ca tombe bien, car je n'ai pour le moment pas l'intention de faire une version multi platforme de DriveSort vu que les sources sont fortement liées aux APIs Microsoft. Ca équivaudrait à tout réécrire une bonne partie de l'application, et je ne suis même pas sur qu'il existe des APIs portable pour la gestion des disques.

Par contre, il y a quand même quelque problèmes sous Wine:

  • J'ai seulement réussi a trier quelquechose en lançant DriveSort avec sudo wine DriveSort.exe, sinon il se plaint d'"Accès refusé" quand j'essaye d'ouvrir un système de fichier FAT monté.
    C'est ptet du à mes conditions de test un poil exotiques (j'essaye de trier une clef USB branchée sur ma machine Windows en faisant tourner DriveSort sur Wine sur Ubuntu Linux sur VMWare Player sur Windows). J'ai essayé d'éviter les problèmes potentiels de l'USB sous la machine virtuelle en triant un volume TrueCrypt monté directement sous Ubuntu, mais ça ne résoud pas le problème, je ne peux ouvrir le systeme de fichier que si je lance Wine entant que super-utilisateur. Ca vient peut être aussi du fait que mon installation d'Ubuntu est une image pré-installée (L'image de machine virtuelle Ubuntu que j'utilise).

    Si vous trouvez un moyen d'ouvrir un disque dans DriveSort sans lancer Wine entant que root, merci de me tenir au courant.
  • Il y a quelque fonctions Windows utilisées par DriveSort qui ne fonctionent pas sous Wine pour le moment. Certaines sont importantes, les autres moins:
    • Verrouillage de Volume (FSCTL_LOCK_VOLUME): Permet à DriveSort d'empécher les autres programmes de modifier accidentellement le système de fichier pendant que DriveSort est entrain de le trier, et empêche DriveSort d'ouvrir un système de fichier si un autre programme est déjà entrain de bosser dessus. Sans cette fonction, il n'y a aucune garantie que votre système de fichier FAT ne soit pas modifié par deux programmes en même temps, donc ça peut ammener à un système de fichier corrompu. Vous pouvez essayer d'éviter ça en ne faisant rien sur ce système de fichier, mais c'est un peu dangereux.
      Wine le signale comme ça: fixme:ntdll:NtFsControlFile stub! return success - Unsupported fsctl 90018 (device=9 access=0 func=6 method=0)
    • Déverouillage de Volume (FSCTL_UNLOCK_VOLUME): Permet à DriveSort de lacher un verrou sur un volume quand vous le fermez. Celui la ne nous manquera pas trop si on ne peut pas verrouiller le volume, mais quand même important si d'aventure Wine implémente le vérouillage dans une beta version sans implémenter celui la en même temps.
      Wine le signale comme ça: fixme:ntdll:NtFsControlFile stub! return success - Unsupported fsctl 9001c (device=9 access=0 func=7 method=0).
    • Structure d'un disque (IOCTL_DISK_GET_DRIVE_LAYOUT): Donne plus de détails sur la structure des partitions d'un disque à DriveSort.
      Wine le signale comme ça: fixme:mountmgr:harddisk_ioctl unsupported ioctl 7400c.
    • Lecture de fichier sur Internet (InternetReadFileExW): Permet à DriveSort de lire la dernière version depuis le net de manière asynchrone quand il se met à jour. Vu que le bouchon de Wine ne fait rien, la mise à jour va se plaindre qu'il est impossible de déterminer la dernière version de DriveSort avec "Succès" comme raison, ce qui ne dit pas grand chose.
      Wine le signale comme ça: err:wininet:InternetReadFileExW (0x3, 0x14eae0, 0x8, 0x14ead0): not implemented in native
  • Il y a une DLL Windows qui n'est pas distribuée avec Wine: MFC42u.dll. Pour faire tourner DriveSort il faut la mettre soit au même endroit que DriveSort.exe soit dans les fichiers système de Wine. On peut la trouver facilement via Google mfc42u.dll.
  • La plupart du temps, quand DriveSort referme un disque qu'il vient juste de trier, il tente de le démonter pour forcer le système d'exploitation à purger son cache du système de fichier. Sous Windows le disque est automatiquement remonté, donc c'est transparent pour l'utilisateur. Sous Wine, le disque n'est pas automatiquement remonté, donc ne paniquez pas si votre disque disparait quand vous le fermez sous Wine, suffit juste de le remonter.

Utiliser Wine vous permet donc de faire tourner DriveSort sous Linux, mais ça ne sera pas aussi sur que de le faire tourner sous Windows tant que Wine n'implémentera pas le verrouillage de disque.

article

Mise à jour: DriveSort v1.223

Une petite amélioration des performances d'ouverture en perspective avec cette version, j'ai pu différer un bout de code qui ne servait qu'à la fenêtre de propriétés, et qui pouvait prendre du temps avec beaucoup de fichiers, ou de gros fichiers.

Sinon, avec la quantité de bugs que j'ai trouvé la semaine dernière, je me suis dit que c'est bien beau de corriger tout ça, mais après il faut aussi que vous pensiez à mettre à jour votre version. Vu qu'il n'y avait pas de moyen de vérifier qu'on avait bien la dernière version depuis DriveSort, ça obligeait à aller sur le site, ce qui peut être un poil lourd. J'ai donc intégré une nouvelle tâche de fond qui vérifie si DriveSort est bien à jour. Si c'est pas le cas elle vous en informe, et vous propose d'ouvrir la page de téléchargement. Par défaut, cette vérification est activée, et ne se lance pas plus d'une fois par semaine, à l'occasion du démarrage de DriveSort.

Si vous voulez désactiver la vérification, ou changer la fréquence, ou lancer manuellement une vérification, vous avez un nouveau sous-menu "Mises à jour..." sous le menu mystère à droite ("?").

Si vous avez un firewall, il risque de vous demander si vous autorisez DriveSort à se connecter au Net. Pour vous aider à configurer tout ça, voici ce qu'il se passe quand DriveSort se met à jour:

  • DriveSort demande l'adresse IP du serveur www.anerty.net, via une requete DNS.
  • Une fois qu'il a trouvé ou c'est, il s'y connecte sur le port TCP 80 (HTTP)
  • Il envoie ensuite une requête sur l'URL suivante: /software/file/DriveSort/?style=ver&curVer=1.222&curLang=040c. Vous pouvez aller voir si vous voulez, ya juste le nom de l'appli et la version pour le moment. A terme j'ajouterai ptet d'autre choses, c'est pourquoi j'ai mis deux paramêtres qui décrivent la version que vous possedez, pour pouvoir ultérieurement faire des distinctions entre mises à jour mineures et majeures, et pouvoir vous diriger directement sur la traduction que vous aviez.
    • curVer c'est la version que vous avez (1.222 dans l'exemple)
    • curLang un code langue Windows qui veut dire \"Français (France)\" pour 040c ou \"English (US)\" pour 0409
  • Si il reçoit quelquechose ("DriveSort v1.223"), il vérifie qu'il est bien à jour, sinon il réessaye une deuxième fois, et si ça marche toujours pas il vous en informe et laisse tomber jusqu'à la prochaine fois.
article

BugFix & Mise à jour: DriveSort v1.222

Je me suis mis dans l'idée de faire un peu de ménage dans le code de DriveSort, histoire de virer quelque vieilleries liées à l'I-Bead (analyse partielle du fichier SETTINGS.DAT, affichage d'une icone particulière pour ce lecteur, ...).

Pendant mon grand ménage, je suis tombé sur quatre bugs:

  • Un problème d'arrondi dans ma gestion du FAT-12 empèchait de lire correctement les disques formattés dans ce système de fichier.Heureusement le FAT-12 n'est utile que sur de très petit disques (grand max 32Mo, habituellement moins de 8 Mo), donc à moins que vous ayez tenté de trier une disquette ça n'a pas tellement du vous ennuyer.
  • Quand on tentai d'ouvrir un disque verrouillé par un autre processus (par ex. fenêtre d'Explorer ouverte), DriveSort affichait un message d'erreur vous informant que le disque est verouillé, mais il déverouillait et démontait quand même le disque, ce qui permettait de l'ouvrir si on tentais une deuxième fois. Ce bug est plus grave, vu que si l'autre processus était entrain d'écrire celà à pu provoquer des erreurs. C'est maintenant corrigé, on peut le constater en laissant une fenetre d'Explorer ouverte sur le disque qu'on tente d'ouvrir. Tant que le vérou persiste, le message apparait à chaque fois qu'on tente d'ouvrir ce disque.
  • Lorsqu'on effectuait une sauvegarde ou une restauration de disque, le disque n'etait pas verrouillé correctement. Ce bug est grave vu qu'il a pu provoquer des backups incohérents ou des restauration corrompues si un autre processus écrivait sur le disque pendant ce temps. Maintenant, que ce soit pour une sauvegarde ou une restauration, la tâche de sauvegarde ou de restauration attend d'obtenir un verrou exclusif sur le disque pour faire son boulot. Elle apparait alors avec "Attends le verrou disque" dans son statut. Si le vérou se libère, elle démarrera la sauvegarde ou restauration dans les 15s qui suivent.
  • Le mode playlist ne fonctionnait pas correctement si on utilisait un mode de tri autre que ascendant avec les dossiers après les fichiers.En tri descendant les nombres étaient mal générés, ce qui faisait sauter les fichiers d'un bout à l'autre de la liste. Les contraintes d'ordre de dossier / fichier n'etaient pas intégrées au mode playlist, ce qui rendait certains fichiers et dossiers impossible à balader dans ce mode.

J'en ai profité pour ajouter un message de confirmation si on tente de sortir de DriveSort alors qu'il reste des traitements en cours (par exemple une sauvegarde ou une restauration de disque). Avant, les tâches restantes étaient automatiquement interrompues, ce qu'on peut encore faire avec le bouton 'Ignorer'.

article

Mise à jour: DriveSort v1.221

Vu que j'en avais marre de chasser la fenêtre de DriveSort à l'autre bout de l'écran à chaque démarrage, je me suis enfin décidé à ajouter une sauvegarde de la derniere position de la fenetre. Maintenant quand on relance DriveSort, il revient gentilment la ou on l'a laissé la dernière fois.

Sinon dans le genre un poil plus utile, j'ai ajouté une boite de dialogue sous le menu Playlist/Extensions... pour configurer quelles extensions de fichiers sont manipulables par le mode Playlist de DriveSort. Ca évite d'aller trifouiller dans le fichier de config DriveSort.ini à la main, et ça devrait rendre la vie un peu plus simple à ceux qui téléchargent DriveSort pour ranger leurs roms de GBA/DS... Par contre vu que je suis pas trop dans les consoles portables, j'ai aucune idée de quelles extensions sont utilisées, donc j'ai préféré vous laisser de quoi configurer tout ça plus simplement.