Grosso Modo

To content | To menu | To search

Sunday 7 February 2010

Raiders of the lost (debian) package

Avez-vous déjà eu un dysfonctionnement d'un programme lié au fait qu'un paquet recommandé, que vous ne jugiez pas utile, avait été enlevé alors qu'il était, en fait, utile ?

Parce que les paquets recommandés sont maintenant installés par défaut en même temps que le paquet demandé, mais pas toujours (il y a une heuristique un peu spéciale pour ne pas tenter de réinstaller tout le temps le même paquet dont vous ne voulez vraiment pas ; pour autant que je le sache, il s'agit de ne pas installer un paquet recommandé s'il aurait dû l'être et qu'il ne l'est pas, tout simplement). Au bout d'un certain temps, ça peut être agréable (nécessaire ?) de faire un inventaire des paquets qui auraient pu être installés mais refusés à un moment donné. De plus, certaines manipulations brutales du gestionnaire de paquets peuvent mettre des paquets sur votre système et qu'il lui manque une vraie dépendance (Depends ou Pre-Depends). Même si aptitude est capable de lister les problèmes for la deuxième question (aptitude search ~i~b est grosso modo la réponse), le premier problème n'admet pas de solutions simples (les recherches avec aptitude ne permettent pas de faire la différence entre un dépendance de A ou B, et une dépendance de A et B).

J'ai donc écrit (toujours en python avec python-apt ≥ 0.7.93, donc dans unstable actuellement) un programme apt-missing.

Seules les dépendances positives ont été envisagées (Pre-Depends, Depends, Recommends, Suggests et aussi si on veut Enhances). Les dépendances négatives ne sont pas encore traitées mais là c'est la présence d'un paquet dépendant dans une clause qui doit déclencher une réaction, pas l'absence de tous les paquets de la clause.

Le programme est hébergé , et les paquets sont hébergés ici.

Exemples

Lancer apt-missing seul (comme apt-missing --recommends) :
# Package abiword has some Recommends missing:
abiword-docs
# Package defoma has some Recommends missing:
libfont-freetype-perl
# Package doc-debian-fr has some Recommends missing:
developers-reference-fr
maint-guide-fr
apt-howto-fr
# Package dwww has some Recommends missing:
swish++
[...]
# Package xchat has some Recommends missing:
tcl
## "Depends" broken in 0 packages
## "Pre-Depends" broken in 0 packages
## "Recommends" broken in 31 packages
D'ailleurs, j'ai pu ainsi localiser des modules noyaux installés qui recommandaient des noyaux absents, parce que tout simplement ils avaient disparus. J'ai donc pu les effacer. apt-missing -a cherche tous les types de dépendance positifs :
# Package a2ps has some Suggests missing:
html2ps
t1-cyrillic
# Package abiword has some Recommends missing:
abiword-docs
[...]
## "Depends" broken in 0 packages
## "Pre-Depends" broken in 0 packages
## "Recommends" broken in 31 packages
## "Suggests" broken in 377 packages

Options

-h|--help
Ce texte d'aide
-d|--depends
Depends ou Pre-Depends manquants
-r|--recommends
Recommends manquants (par défaut)
-s|--suggests
Suggests manquants
-a|--any
N'importe quelle dépendance positive (comme ci-dessus)
-t|--type=string
Dépendance quelconque (par ex. Enhances)
-p|--package=string
Liste de paquets à analyser séparés par un espace (on peut répéter l'option, et si aucune option -p n'est présente, tous les paquets sont analysés)

Wednesday 27 January 2010

Packages and origins

Des fois, je veux vérifier d'où viennent mes paquets. C'est déjà ce que fait apt-show-versions, mais en se concentrant uniquement sur l'aspect distribution (stable/testing/unstable) et non pas sur le site d'où vient le paquet. De plus, je voulais pouvoir préciser un ordre entre les distributions (quand un paquet est à la fois dans unstable et testing, je veux qu'il apparaisse comme venant de testing; quand il est dans un dépôt local que j'ai créé, je veux qu'il apparaisse comme venant de ce dépôt, même s'il est une copie de unstable ou d'experimental).

Du coup, j'ai écrit mon premier programme (sérieux) en Python. La documentation est en anglais.

package_origins [options]

-h|--help
This help text
-l|--list
Just list available distributions
-c|--count
Just display package count by origin
-t|--tabular
Use tabular output format for origin display
-C|--columns=integer
Set the number of columns of the output
-L|--lines=integer
Set the maximal number of packages that can be displayed
-o|--order=string
Set the order in which packages are in the distributions. This is a space-jointed string of stanzas like alias1=site1/archive1 where alias1 is the display name of a distribution of name archive1 at site1.

Le programme lit aussi les dénominations dans un fichier ~/.package_origins sous la même forme, mais avec une origine par ligne. De multiples options -o peuvent être utilisées (elles sont accolées).

Un exemple de fonctionnement:

./package_origins -o 'stable=ftp.fr.debian.org/stable testing=ftp.fr.debian.org/testing unstable=ftp.fr.debian.org/unstable experimental=ftp.fr.debian.org/experimental  multimedia=www.debian-multimedia.org/unstable' -L 20 --columns 40 
,--------------------------------------.
| stable |
`--------------------------------------'
Too many packages (189). Use --tabular or --lines=X (x>=189).
,--------------------------------------.
| testing |
`--------------------------------------'
Too many packages (1529). Use --tabular or --lines=X (x>=1529).
,--------------------------------------.
| unstable |
`--------------------------------------'
Too many packages (317). Use --tabular or --lines=X (x>=317).
,--------------------------------------.
| experimental |
`--------------------------------------'
calendar-google-provider
calendar-timezones enigmail
,--------------------------------------.
| multimedia |
`--------------------------------------'
Too many packages (33). Use --tabular or --lines=X (x>=33).
,--------------------------------------.
| other |
`--------------------------------------'
emacs-snapshot emacs-snapshot-bin-common
emacs-snapshot-common emacs-snapshot-nox
fixkeyboard lipn-archive-keyring
nvidia-kernel-2.6.26-2-amd64
nvidia-kernel-2.6.30-2-amd64
nvidia-kernel-2.6.31-1-amd64
pbuilder-utils rftg rftg-data
,--------------------------------------.
| installed |
`--------------------------------------'
Too many packages (55). Use --tabular or --lines=X (x>=55).

Sunday 4 October 2009

Plugin dctranslations for Dotclear 2

Si vous voulez faire un blog en une seule langue, Dotclear le fait très bien par défaut. Si vous voulez mélanger des articles dans une langue et dans une autre, sans effort particulier de traduction, c'est également très bien géré. Si vous voulez faire un blog avec des articles en deux langues, tous traduits intégralement, vous pouvez (encore une fois par défaut) utiliser les capacités multi-blogs de Dotclear et faire simplement deux blogs distincts.

Mais si vous voulez réellement faire du contenu bilingue (petit à petit ou tout d'un coup), avec une réelle correspondance entre les articles, en en traduisant certains mais pas tous, en permettant aux lecteurs bilingues de sauter d'une traduction à l'autre, en mettant le maximum d'éléments dans la langue du visiteur (la navigation tout d'abord, et si un article existe en plusieurs versions, celle qui est préférée par le lecteur) tout en laissant accès au reste, bref, pour faire un réel site multilingue, cette extension dctranslations est pour vous.

Continue reading...

Saturday 3 October 2009

Plugin prevnext for Dotclear 2

Cette extension permet d'ajouter une navigation d'un article à l'autre d'un même blog par sujet d'intérêt ; pour chaque tag, pour la catégorie, pour la langue, il présente l'article suivant et précédent qui posssède le même tag, la même catégorie, la même langue.

Continue reading...

Plugin latexrender for Dotclear 2

Le plugin LaTeXrender est une extension destinée à permettre à un serveur web hébergeant une installation de Dotclear 2 et une installation de [tex]\LaTeX[/tex] (un traitement de texte dont un des points forts est la représentation des mathématiques et très utilisé pour publier dans le domaine de la recherche scientifique) d'afficher (sous forme d'image) des morceaux de texte composés en [tex]\LaTeX[/tex]. Il est livré avec une zone de réglages pour choisir les chemins ses programmes auxiliaires.

Ce plugin est d'une part une conversion d'une classe déjà existante (la classe latexrender, écrite en PHP pour un tas de supports); d'autre part, j'ai simplifié la classe (un bon nombre de choses sont complètement simplifiables dans le cadre restreint de Dotclear 2) mais aussi amélioré l'algorithme de choix de décalage vertical (lui-même ajouté par Mike Boyle) et introduit une gestion des couleurs (des gens utilisent des fonds sombres, et les équations en noir sur noir ou en noir sur bleu nuit, ce n'est pas très lisible).

Continue reading...

Plugin stacker for Dotclear 2

Le plugin stacker est une extension destinée à pallier dans Dotclear 2 un manque très précis : lorsque l'on veut redéfinir l'affichage des articles à la volée (sinon, il suffit de modifier l'article au moment où il est rédigé, pas où il est affiché), on doit redéfinir deux fonctions internes. Si on a deux extensions qui veulent modifier l'affichage à la volée, eh bien... une seule fonctionne. Sauf si l'on sait très précisément quels sont les plugins qui le font, etc, enfin bon, c'est compliqué. Le plugin stacker permet à ces extensions de se déclarer, et d'être appelées les unes après les autres. Voici des choses auxquelles j'ai pensées en concevant cette extension :

  • une liste de mots spécifique à lier à leur définition (la liste de mots pouvant être enrichie a posteriori)
  • changer des morceaux de texte par des images équivalentes (smileys, par exemple ; déjà fait en standard par Dotclear; mais aussi interprétation de formules mathématiques) :-)
  • transformer radicalement tout le texte d'un article (traduction)
  • changer des morceaux de texte par d'autres (censure, abréviations)

Continue reading...

Plugin kezako for Dotclear 2

Le plugin Kezako est une extension destinée à pallier dans Dotclear 2 deux manques très précis :

  • On ne peut pas décrire de mots-clefs (tags). Lorsque l'on choisit une sélection spécifique d'articles concernant un mot-clef spécifique, par exemple debian ou photo, on n'a le mot-clef affiché en haut sans explications (sur ce blog, ce n'est pas le cas pour debian).
  • On pouvait décrire les catégories, mais uniquement en une seule langue. Rajouter une gestion des langues par-dessus le système actuel nécessitait du travail un peu tordu.

J'ai donc implémenté un système qui permet d'associer une description dans une ou plusieurs langues de son choix à un mot-clef, une catégorie (qui remplace donc le système existant), ou en fait à ce qu'on veut (mais je n'ai rien fait qui permette de l'exploiter pour autre chose que mot-clef ou catégorie). C'est le plugin Kezako.

Continue reading...

Plugin moreuserprefs for Dotclear 2

Le plugin moreuserprefs est une extension qui permet d'éditer directement les billets en mode source plutôt qu'en mode visuel.

Continue reading...

Friday 24 April 2009

Plugin translatedwidgets for Dotclear 2

La présentation de ce plugin est courte : il ne sert que si vous utilisez le plugin dctranslations. Il s'agit d'une version du plugin standard widgets qui est modifiée pour fonctionner en plusieurs langues simultanément.

Continue reading...

Wednesday 22 April 2009

Plugin icsfeed pour Dotclear 2

Ce plugin est en réparation (compte tenu de son grand âge).

Si vous avez voulu tenir un blog qui, au lieu d’informer sur le passé, prévient du futur, si vous gérez un agenda électronique ou si vous pensez que vos lecteurs en utilisent, alors ce plugin est fait pour vous.

icsfeed est une extension pour Dotclear 2 qui permet d’attacher à un article de blog des événements : une date, un titre, un lieu, une durée. Les événements sont affichés dans la marge de l’article, et il est possible à un lecteur d’importer un de ces événements dans son calendrier électronique ou de s’abonner à tous les événements (ou aux événements d’un tag précis, ou à tous ceux d’un multiblog...)

Le plugin est livré avec une interface utilisateur entièrement configurable.

Le format de calendrier électronique est le plus courant pour ce genre de format (ICS) et est lisible avec de multiples logiciels (Google Calendar, iCal, Thunderbird+Lightning, Sunbird, etc.).

Continue reading...

My xorg.conf

Grand ménage de printemps dans mon fichier /etc/X11/xorg.conf, que je mets ici au complet :

Section "Device"
Identifier "nVidia Corporation NVIDIA Default Card"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "RandRRotation" "on"
EndSection

S'il n'est pas vide, c'est que j'ai une carte Nvidia (mauvaise utilisation de la 3D par les pilotes libres). Sinon, il serait vide. Pour un paramétrage complet de mon interface graphique, il faut aussi /etc/default/console-setup :

...
XKBMODEL="logielite"
XKBLAYOUT="fr"
XKBVARIANT="complete"
XKBOPTIONS="compose:menu,fixinet:logielite"

La configuration automatique fait vraiment des progrès !

xserver-xorg:  Installé : 1:7.4+1
nvidia-glx: Installé : 180.44-2
console-setup: Installé : 1.32

Monday 20 April 2009

Logitech Elite Keyboard and evdev support

Il y a eu pas mal de bruit récemment à propos d'evdev depuis son intégration par défaut dans Debian unstable (par exemple et et et ). Je suis le propriétaire (heureux ?) d'un clavier Logitech Elite (à ne pas confondre avec le Logitech Media Elite ou le Logitech Cordless Elite) (en jaune, les keycodes manquants, en rouge, les problèmes avec evdev):

Logitech Elite Keyboard

Ce clavier fonctionne (assez) correctement sans configuration, mais utiliser l'intégralité de ses touches spéciales a été un cauchemar depuis son achat, il y a quelques années. J'aimerais expliquer comment j'ai pu ajouter le support complet pour ce clavier dans la console, dans l'interface graphique X en utilisant evdev, console-setup et quelques bricolages à moi.

Continue reading...

Thursday 26 March 2009

Blocage de site pour HADOPI

D'après une interview de la Fédération française des télécoms (FFT):

Il n’est pas question ici de blocage ? Non, ça c’est pour les sites hébergés en France, pour lesquels des mesures existent déjà. Le blocage ne concerne que les sites hébergés à l’étranger. Une information serait communiquée aux opérateurs — dont on ignore encore la forme et la fréquence — qui devraient bloquer ces sites à travers l’identification des DNS.

Mais oui. Comme si le DNS était nécessaire pour atteindre un site.

Je ne raconte pas grand chose sur les projets de loi actuels en matière de censurerégulation de l'internet, d'abord parce que je n'ai pas grand chose à dire d'innovant sur des tas d'autres sites qui font de la veille d'actualité bien mieux que moi, ensuite parce que c'est tellement conidiot qu'il n'y a rien à en dire de plus. Toutefois, les bribes techniques qui arrivent dans les nouvelles de temps à autre sont pire que tout. Et bien sûr, les techniciens auront toujours des solutions pour contourner la loi (celle-ci est payante, mais je ne doute pas que des services encore moins chers voire gratuits apparaissent d'ici peu).

Wednesday 28 January 2009

A native 64bit java plugin java from Sun

L'un des bugs les plus longs à résoudre et les plus commentés de java aura sans doute été celui qui concerne l'absence de plugin permettant l'intégration de java dans les navigateurs web en 64 bits.

Continue reading...

Sunday 7 December 2008

German pictures under a free license

Depuis peu, Wikimedia Commons (un site cousin de Wikipedia) a reçu en don de la part des Archives fédérales allemandes un lot de 100 000 photos libres et réutilisables. Après la mise à disposition (mais ici, seulement consultables, et non pas libres) de la collection photo de LIFE par Google (celle-ci, par exemple), et en attendant la suite de la collection allemande, c'est un véritable trésor photographique qui est à la portée des doigts de l'internaute. C'est également une source extrêmement précieuse pour les adeptes du droit au remixage (et à la retouche, pour les photos) : on peut les faire apparaître dans des montages et des compositions.

J'insiste sur l'importance de la réutilisabilité : c'est ce qui me permet de vous faire profiter directement sur mon site de cette jolie photo, qui représente une photo (de 1962) d'une rue de Berlin (Est, à l'époque) qui a été remplie par de nombreux volontaires de briques pour être nettoyée. Cette photographie est sous licence CC-BY-SA.

Aufbauprogrammn, Berlin

Monday 1 December 2008

Why do I prefer Acrobat Reader to other free PDF readers?

I could answer this question saying that it's better, stronger, easier: that would be false. The real reason is that there exists some PDF that use advanced graphics feature of PDF that are simply not correctly implemented in other free readers.acroread-m.png

Continue reading...

Thursday 30 October 2008

Extended Templates plugin for Dotclear 2

Le plugin extpl est une extension destinée à remplir dans Dotclear 2 un rôle très précis : y mettre toutes sortes de fonctions templates et autres modifications que je trouve utile dans Dotclear et pas assez importantes pour mériter leur propre paquet.

Il y a actuellement trois fonctions dans ce paquet :

  • tpl:EntryCategoryShortURL
  • tpl:CategoryID
  • Des modifications à tpl:EntryIf (has_comment et has_ping)

Mise à jour : Dotclear 2.1 est sorti le 1er novembre 2008 et a rendu ce plugin complètement obsolète ! Chouette !

Continue reading...

Tuesday 13 May 2008

Openssl bug specific to Debian.

Suite au problème de sécurité sur openssl/openssh spécifique à Debian (visiblement, un manque d'aléatoire dans la génération des clés pour toute la bibliothèque OpenSSL), il est temps de régénérer vos clés SSH (un peu de ménage) et vos certificats SSL. Pourquoi ne pas en profiter pour faire des certificats qui permettent de répondre à plusieurs noms différents (avec un seul certificat et une seule adresse IP), comme expliqué ici ? En tout cas, cette affaire ne va pas aider la progression de mon patch d'openssh (qui n'a pas beaucoup avancé depuis qu'il a été soumis aux concepteurs...) :-(

Je ne veux pas donner trop d'autres informations, elles courent la blogosphère ; mais en une ligne pour openssh-server il suffit de faire sudo rm /etc/ssh/ssh_host*key*;dpkg-reconfigure -plow openssh-server. Mais surtout, n'oubliez pas de faire la mise à jour avant (0.9.8g-9 pour sid, 0.9.8c-4etch3 pour stable).

[MàJ] Un lien en anglais que je trouve intéressant sur l'affaire.

Friday 2 May 2008

Taxes declaration under Debian: utter failure

Comme chaque année, il faut déclarer ses impôts sur le revenu. Les années précédentes, j'avais réussi à le faire sans trop de problèmes. Cette année, ma machine étant passée en amd64, je soupçonnais des problèmes et j'avais raison : en une heure, je n'ai pas réussi à faire ma déclaration d'impôts, et j'ai mis moins de trois minutes sous MacOS X.

Continue reading...

Sunday 20 April 2008

John Howe expose son travail

John Howe est l'un des deux illustrateurs qui ont acquis une renommée internationale lors de la sortie de la trilogie du Seigneur des Anneaux (il était bien sûr connu avant, au point que comme Alan Lee il a été invité par Peter Jackson à participer au film, plutôt que simplement engagé).

Il commence une exposition de son travail (notamment sur le livre d'illustrations Fantasy Art) à la galerie Arludik (au bout de l'île Saint-Louis) et à l'occasion la Fnac Montparnasse organisait une petite rencontre avec les amateurs (moi, par exemple).

Continue reading...

- page 1 of 3