Monday, July 26, 2010

Repositories Debian non officiels

Un travail, un peu ingrat mais qui sera aussi utile à d'autres, j'ai mis à jour la liste des repositories ( catalogues ?) Debian non officiels dans l'article UnofficialRepositories sur le Wiki debian, en ajoutant un systeme de pseudo-tags, indiquant notamment si le repository en question est géré par un développeur Debian, ou une entité commerciale ( Sun, Skype, Opera, Oracle ... ).
Ajouter un repository de façon permanente, c'est en effet donner un accès root à distance au créateur du repository. N'importe quel aptitude upgrade peut ainsi remplacer un paquet officiel par un paquet non-officiel si ce dernier a un numéro de version supérieur.
D'où l'importance des signatures GPG pour les repositories exterieurs, de la bonne idée d'Ubuntu des PPA pour encadrer la distribution de paquets binaires en dehors de la cage dorée de l'archive standard, et de l'importance d'avoir son paquet dans la distribution officielle.
Une telle liste existe-t-elle pour Ubuntu ? J'ai trouvé repogen.simplylinux.ch qui aide à constituer son sources.list à partir d'une liste donnée de repositories.
Si vous connaissez d'autres repositories, le wiki Debian est ouvert en écriture a tous !

Monday, April 12, 2010

The protection has been implemented

La censure sur Internet, comme la grande muraille anti opposition du gouvernement chinois, on en a vaguement entendu parlé. Mais quand vous y êtes confrontés pour la première fois, pour ma part hier en Turquie, ca fait quand même un choc. Et ca ressemble a ça.

La cause du blocage de youtube en Turquie ? Des videos offensantes envers Mustafa Kemal, le fondateur de la Turquie républicaine, objet d'une loi de protection bien vague. Techniquement, le blocage de youtube ( et de nombre de sites pornos ) ne repose que sur les serveurs DNS du FAI, et est donc facilement contournable. Mais en quoi le fabricant de meubles est il reponsable du contenu qui va y être entreposé ? Dès que je rentre au pays, je monte un noeud TOR.

Update: ajout du lien vers la loi en question 

Wednesday, March 17, 2010

pkg_rollling-replace et pkgsrc

Je pense beaucoup de bien de pkgsrc, une infrastructure multi plateforme pour installer des logiciels à partir du code source,  dont je me sers pour bénéficier des dernières nouveautés du libre à côté des outils standards de ma plateforme.
Pkgsrc permet sur OSX d'avoir ainsi git, mplayer, unrar, hatari, gpg, nedit et sur Linux ( Debian ) d'avoir la dernière version de svn et d'openvpn, sans mettre le bazar dans dpkg.

Pour la dernière mise à jour de pkgsrc, je me suis laissé tenté par pkg_rolling-replace en lieu et place de l'habituel pkg_chk. pkg-rolling-replace a le principal avantage par rapport à pkg_chk de faire une mise à jour progressive, alors que pkg_chk deinstalle tout ce qui doit être mis à jour avant de recompiler.
Comme sur ma machine ( PowerPC 1,42 GHz), la compilation de mes 500 paquets prend plusieurs jours, cela représente un intérêt évident.
J'ai documenté sur le wiki netbsd  les étapes utilisées, la commande principale étant

pkg_rolling-replace -rsuvX bmake,bootstrap-mk-files,pax,pkg_install

Deux échecs seulement dans la mise à jour des 506 paquets.

===> Building for physfs-1.0.1nb1
/Volumes/Projects/netbsd/bin/bmake  all-recursive
/bin/sh ./libtool --mode=link gcc  -O2 -pipe -O2 -I/Volumes/Projects/netbsd/include -I/usr/include -D_REENTRANT -D_REENTRANT -D_THREAD_SAFE   -L/V
olumes/Projects/netbsd/lib -L/usr/lib  -Wl,-framework -Wl,Carbon -Wl,-framework -Wl,IOKit -no-undefined -o test_physfs  test_physfs.o ./libphysfs.
la -lpthread -lz
gcc -O2 -pipe -O2 -I/Volumes/Projects/netbsd/pkgsrc/devel/physfs/work/.buildlink/include -D_REENTRANT -D_THREAD_SAFE -Wl,-framework -Wl,Carbon -Wl
,-framework -Wl,IOKit -o .libs/test_physfs test_physfs.o  -L/Volumes/Projects/netbsd/pkgsrc/devel/physfs/work/.buildlink/lib ./.libs/libphysfs.dyl
ib -lpthread -lz
Undefined symbols:
  "_readline", referenced from:
      _main in test_physfs.o
  "_add_history", referenced from:
      _main in test_physfs.o
      _main in test_physfs.o
ld: symbol(s) not found

Ceci est du à un petit LDFLAGS+=      -lreadline manquant et a fait l'objet d'un rapport de bug (#42468) pour aboutir à la conclusion que ceci avait déja été corrigé, et que mon source n'était pas à jour ! Apparemment csup avait manqué quelques répertoires lors de la mise à jour, ou quelque chose a manqué entre la chaise et l'ordinateur lors de l'update.

===> Installing for tex-courier-2008.7340
ERROR: tex-courier-2008.7340 conflicts with installed package(s):
ERROR:     teTeX-texmf-3.0nb16
ERROR: They install the same files into the same place.
ERROR: Please remove conflicts first with pkg_delete(1).

Un cas de paquet renommé, rien de bien méchant après quelques pkg_delete et bmake install, l'erreur disparait.

Tuesday, February 2, 2010

Nouveau Noyau, Nouvelle Plateforme: Palm Pre avec WebOS

Depuis quelques temps déja, je réfléchissais à l'idée d'un nouveau téléphone, avec Wifi et vrai clavier, et possédant pourquoi pas un Unix libre embarqué. Un smartphone avec du libre en quelque sorte. Il existe actuellement trois plateformes de téléphonie mobile basées sur Linux:
  * Maemo ( pour le Nokia N900 )
  * WebOS ( pour le Palm Pre )
  * Android ( pour différents modèles, entre autres le Motorola Milestone )

Quand à OpenMoko, la plateforme semble etre encore au stade du développement, et ne supporte pas l'UMTS. Enfin il semblerait que le Sidekick LX 2009 utiliserait le noyau NetBSD, mais il s'agit plus de suppositions que de faits prouvés.

Je me suis finalement décidé pour un Palm Pre avec clavier QWERTZ acheté sur ebay 266 €, essentiellement pour des raisons de taille de l'appareil, le Palm Pre étant le plus petit des smartphones unix-based. Je n'ai en effet aucune envie de poser mon téléphone sur la table à chaque fois que je m'assieds, comme les possesseurs d'iPhone. De plus je savais qu'au moins un développeur Debian (Joey Hess ) avait installé un chroot Debian sur cet appareil.

Après réception de l'engin, je ne suis pas décu du tout. Tout d'abord le Palm Pre est vendu sans Simlock par O2 en Allemagne, ce qui le rend  utilisable sur mon réseau. Ensuite en branchant le Pre sur le port USB on trouve sur la flash le document opensource.pdf, qui contient le nom et licences des produits utilisés, de bsdiff à script.aculo.us.
Ensuite contrairement à certains portables android et iPhones qui ont besoin de cracks postés sur des forums par Jean Kevin, il suffit d'installer le SDK de Palm et d'activer le mode développeur du Palm en suivant la documentation officielle de Palm pour avoir un accès complet au téléphone. Un shell root nous nous sommes bien compris.

Enfin le SDK WebOS ( basé sur VirtualBox et Eclipse ) est multiplateforme, étant supporté sous GNU/Linux, Windows et OSX.

Évidemment tout n'est pas rose sur la plateforme, comme le fait que Palm vous oblige par défaut à créer un compte sur leurs serveurs pour activer le téléphone au démarrage du téléphone ( mais on peut par ailleurs désactiver l'activation avec une ROM custom, ce que j'ai fait)
C'est en quelque sort d'ailleurs plus le hardware qui est non est bridé, que la plateforme, dont l'interface graphique n'est pas libre.

Enfin pour ceux  qui réfléchissent à l'achat d'un smartphone linux, ( et ils doivent être nombreux, étant donné que le marché du smartphone connait une croissance à deux chiffres ) je conseille vivement l'installation des SDK WebOS, Maemo ou Android qui permettent de se faire une très bonne idée du logiciel du téléphone avant l'achat.

Le SDK WebOS permet ainsi de tester le navigateur Web inclus dans le téléphone, et de simuler les "taps" des doigts sur l'écran avec des clics de souris.

Note Complémentaire: oui, on peut aussi passer des appels téléphoniques dessus.

Saturday, January 9, 2010

Pygrub et Wikis

Le mois dernier, je me suis pensé sur pygrub, un petit utilitaire bien pratique de Xen 3.2 et plus, qui permet à une VM Xen d'avoir son propre noyau indépendamment du noyau du dom0, et contenu dans son propre FS.
Très pratique pour mettre à jour le noyau du domU sans rien toucher au dom0.
Plus de détails sur cette doc écrite pour le wiki Debian.

Une petite déception d'ailleurs en parlant de Wiki, alors que le Wiki Debian est ouvert en écriture à tous,  NetBSD a apparemment décidé en Novembre dernier de créer un Wiki officiel ouvert uniquement aux développeurs, au lieu de rendre officiel le Wiki communautaire de Zafer Eydogan, déjà bien rempli.

Debian et Ubuntu utilisent des Wikis ouverts en écriture à tous (ainsi que le squad), et le contenu de ces wikis n'est en rien décevant.

Saturday, December 5, 2009

Aide mémoire sysbench

Afin d'avoir de la matière pour comparer des pommes et des oranges, il est bien pratique d'avoir un petit benchmark sous le coude. Je vous présente donc sysbench, présent dans l'archive Debian/Ubuntu et dans les ports/pkgsrc BSD. Sysbench permet des comparaisons rapides et de vérifier que les cores/cpus qu'on vous annonce avec fanfare servent à quelque chose. Nous mesurons ici le temps de calcul des 10 000 premiers nombres premiers.

Machine 1:
grep "model name" /proc/cpuinfo # deux cpu/cores
model name : AMD Athlon(tm) Dual Core Processor 5400B
model name : AMD Athlon(tm) Dual Core Processor 5400B

for THREADS in 1 2 3 4 ; do printf "threads: $THREADS" ; sysbench --test=cpu --cpu-max-prime=10000 --num-threads=$THREADS run | grep "total time:" ; done

threads: 1 total time: 36.2429s
threads: 2 total time: 18.1774s
threads: 3 total time: 18.5373s
threads: 4 total time: 18.1599s


Machine 2 :
grep "model name" /proc/cpuinfo
model name : Dual-Core AMD Opteron(tm) Processor 2220
model name : Dual-Core AMD Opteron(tm) Processor 2220
model name : Dual-Core AMD Opteron(tm) Processor 2220
model name : Dual-Core AMD Opteron(tm) Processor 2220


for THREADS in 1 2 3 4 ; do printf "threads: $THREADS" ; sysbench --test=cpu --cpu-max-prime=10000 --num-threads=$THREADS run | grep "total time:" ; done

threads: 1 total time: 35.7832s
threads: 2 total time: 17.8263s
threads: 3 total time: 12.0110s
threads: 4 total time: 11.9021s

Conclusion:

Le passage de 1 à 4 cpus permet bien des gains de performance pour une application de calcul, mais ceci de manière non linéaire. Pourquoi ? De mémoire, le nombre de threads augmentent, plus le noyau doit passer de temps  à les synchroniser . J'aurais bien aimé trouver un lien pour confirmer, mais non, cette fois ci, STFW se tait (ou cherche dans le vide plus exactement)

Thursday, November 26, 2009

Ecran noir au démarrage de GDM suite à l'installation d'usplash

Le paquet usplash, permet sur Debian d'avoir une belle barre de progression qui s'affiche en lieu et place des messages de démarrage de la séquence d'init. Problème, sur un thinkpad x31, une fois le runlevel 2 atteint et gdm lancé c'est l'écran noir total. Pas de Ctrl-Alt_Backspace out Ctrl-Alt-F1, rien. Problème de framebuffer peut être ?
Après un tour sur Ubuntu, apparemment non, un problème de framebuffer aurait donné un écran noir à la place de usplash, et non pas après usplash.

Le coupable: le paquet console-setup, qui met l'affichage en vrac lorsqu'il est utilisés avec usplash.
Ce paquet sert à changer la police en mode texte, ainsi qu'a choisir le layout du clavier.
Après l'avoir supprimé, usplash fonctionne parfaitement, et le layout du clavier est de toutes façon activé par console-common.