septembre 2013

vendredi 13 septembre 2013

Suppression dans une arborescence avec find(1)

J'utilise régulièrement la commande find(1), pour un peu tout et n'importe quoi. Voici quelques exemples. Les fichiers Pour supprimer récursivement plusieurs fichiers situés dans une multitude de dossiers, on peut utiliser la commande suivante. (Je souhaite supprimer tous les fichiers Thumbs.db) $ find . -type f -name 'Thumbs.db' -exec rm -f {} \; Les dossiers (Je souhaite supprimer tous les dossiers thumbs/) $ find . -type d -name 'thumbs' -exec rm -Rf {} \; find(1) va renvoyer une erreur, mais pourtant les répertoires seront supprimés. Pour éviter ce désagrément, il faut utiliser la commande xargs(1). $ find . -type d -name 'thumbs' | xargs -exec rm -Rf Faites attention avec find(1), car...

Lire la suite...

Dimanche 15 septembre 2013

Connaître les dimensions d'une image vectorielle

ImageMagick fournit un utilitaire (identify) qui nous permet de connaître les dimensions (hauteur et largeur) d'une image. Son utilisation est très simple : $ identify -format "%G" midori.svg 60x60 On a donc une image avec comme dimension : hauteur : 60px largeur : 60px Vous le savez sans doute, mais un fichier .svg est tout simplement un fichier XML avec son propre espace de nom [1]. Bien souvent les dimensions sont mentionnées, il suffit de savoir les rechercher. Si la bibliothèque libxml2 est installée sur votre système, vous pouvez utiliser l'utilitaire xmllin, qui va avec. $ xmllint --noout --xpath "string(@width)" midori.svg 48 Dans cet exemple je recherche...

Lire la suite...

Bug #1211909 dans Midori

Midori est mon navigateur de prédilection sous FreeBSD [1], est donc, je suis son développement de prêt. Pour la prochaine version (0.5.6 aka Two Webkittens) un bug a attiré mon attention #1211909. On va donc abandonné Waf que j'aimais bien (car il est écrit en Python) au profit de CMake [2] (révision 6370). Pour que la mise à jour soit totalement transparente (sous FreeBSD), j'ai commencé à proposer une série de patches. Le premier est une « traduction » (wscript vers CMakeLists.txt) d'un correctif [3] (pour la dernière version stable, 0.5.5) pour les systèmes BSD, car on a besoin d'une bibliothèque sinon une extension ne se compile pas. Il est en attente de relecture. Le second [4], que...

Lire la suite...

vendredi 27 septembre 2013

Contourner le bug #65002 dans Poppler avec Vala

Récemment, je me suis mis à apprendre le langage Vala (je ne connais pas encore toutes les suptilités), et en essayant de comprendre un des exemples, la compilation a échoué. J'ai trouvé, qu'il avait déjà été mentionné ici. En parcourant le fichier poppler-glib.deps, on constate qu'il y a une référence à Gtk+2 (en réalité c'est GDK 2). Donc si on remplace le nom du package gdk-2.0 par gdk-3.0 tout fonctionne correctement. Pour éviter de modifier un fichier sur le système, le plus simple consiste à le copier [1] (dans le dossier où se trouve notre programme vala). $ cp /usr/share/vala-0.20/vapi/poppler-glib.* . On fait le remplacement, et si l'on a besoin de compiler avec le support de...

Lire la suite...