Linux France

S'abonner à flux Linux France
Mis à jour : il y a 14 min 34 sec

Revue de presse de l'April pour la semaine 45 de l'année 2014

Lundi 10 Novembre

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[ZDNet] Créatifs libres et open source: les lauréats étudiants de l'Open World Forum

Par Thierry Noisette, le dimanche 9 novembre 2014. Extrait:

Six projets, nominés à la Student DemoCup, ont été présentés à l'OWF. Les lauréats ont pour objet la mesure de la neutralité du Net, un éditeur visuel pour jeux vidéo 3D et une appli pour les personnes ayant des troubles d’élocution graves.

Lien vers l'article original: http://www.zdnet.fr/actualites/creatifs-libres-et-open-source-les-laureats-etudiants-de-l-open-world-forum-39809259.htm

[Le Monde.fr] Les tablettes au collège, la fausse bonne idée de François Hollande

Par Damien Leloup, le vendredi 7 novembre 2014. Extrait:

«Des cours de codage» et «une tablette et une formation au numérique» pour tous les élèves de cinquième à partir de la rentrée 2016: voilà les deux principaux points du «plan numérique» pour l'école qu'a précisé François Hollande, jeudi 6 novembre sur TF1. Les tablettes au collège, c'est presque une spécialité du président de la République: la Corrèze, son fief, équipe depuis 2010 les collégiens en iPad, la tablette d'Apple, dans le cadre d'un programme pilote qui prévoyait initialement d'équiper les élèves d'ordinateurs portables.

Lien vers l'article original: http://www.lemonde.fr/pixels/article/2014/11/07/les-tablettes-au-college-la-fausse-bonne-idee-de-francois-hollande_4520005_4408996.html

[La Presse] Quand l'austérité est aveugle

Par Mylène Moisan, le vendredi 7 novembre 2014. Extrait:

Miguel Ross était tout content, il avait décroché un super boulot. Il allait aider le gouvernement à économiser de l'argent en trouvant des logiciels libres, donc gratuits, pour remplacer ceux qui coûtent une petite fortune à l'État.

Lien vers l'article original: http://www.lapresse.ca/le-soleil/opinions/chroniqueurs/201411/06/01-4816600-quand-lausterite-est-aveugle.php

[Capital.fr] «Demain, presque tout sera gratuit»

Par Gilles Tanguy, le vendredi 7 novembre 2014. Extrait:

Dans son dernier livre «La Nouvelle Société du coût marginal zéro» (Ed. Les Liens qui libèrent), le célèbre économiste américain Jeremy Rifkin, qui a conseillé Angela Merkel, ne pronostique rien de moins que la fin du capitalisme actuel. Grâce à l'explosion des plates-formes de partage.

Lien vers l'article original: http://www.capital.fr/enquetes/economie/demain-presque-tout-sera-gratuit-978272

Et aussi:

[Silicon.fr] L'Open Source gagne du terrain dans l'administration

Par Alain Merle, le jeudi 6 novembre 2014. Extrait:

L’Open Source infuse de plus en plus de couches d’infrastructures au sein de l’administration. Ce mouvement est doublement bénéfique: il limite l’adhérence aux grandes technologies propriétaires et laisse libre court à l’expérimentation, explique la DSI de l’Etat dans cette tribune.

Lien vers l'article original: http://www.silicon.fr/open-source-administration-bases-donnees-cloud-tribune-101296.html

[Challenges] "Open innovation": quand les grands groupes lorgnent les start-up

Par Olivier Ezratty, le jeudi 6 novembre 2014. Extrait:

Olivier Ezratty, consultant high-tech, explique comment les grands groupes lorgnent sur les start-up pour faire éclore l'innovation à bon compte. Opération gagnant-gagnant?

Lien vers l'article original: http://www.challenges.fr/tribunes/20141104.CHA9800/innovation-ouverte-quand-les-grands-groupes-lorgnent-les-start-up.html

[Next INpact] L'Allemagne pourrait forcer les sociétés américaines à dévoiler leurs codes-source

Par Vincent Hermann, le mercredi 5 novembre 2014. Extrait:

L’Allemagne travaille actuellement sur un projet de loi assez radical: l’obligation pour les entreprises américaines de montrer patte blanche si elles veulent fournir du matériel et des services à des secteurs jugés critiques de l’économie. Une décision qui pourrait largement favoriser les sociétés allemandes, en particulier Deutsche Telekom.

Lien vers l'article original: http://www.nextinpact.com/news/90772-l-allemagne-pourrait-forcer-societes-americaines-a-devoiler-leurs-codes-source.htm

Et aussi:

[01netPro.] L'Open source et l'Inria, une relation durable

Par Marie Jung, le mardi 4 novembre 2014. Extrait:

Depuis 30 ans, l'engagement de l'Inria en faveur des logiciels libres ne faiblit pas. Présent à l'Open World Forum, l’institut de recherche a fait le panorama de ses différentes initiatives dans le domaine.

Lien vers l'article original: http://pro.01net.com/editorial/630702/l-open-source-et-l-inria-une-relation-durable

Télécharger ce contenu au format Epub

Lire les commentaires

Gel de Debian 8.0 Jessie

Lundi 10 Novembre

Le gel de Debian 8, nom de code Jessie, la future version stable donc, a eu lieu comme prévu le 5 novembre 2014 à 23h59.

NdM : pour mémoire, Debian gère une version ancienne dite oldstable encore mise à jour (Debian 6 Squeeze pour l'instant), une version courante dite stable (Debian 7 Wheezy), une version avancée/préparatoire dite testing (Debian 8 Jessie) et une version en évolution constante dite unstable (nom fixe, Debian Sid). Tous les noms de version sont tirés des noms de personnage des films d'animation Toy Story (à venir Debian 9 Stretch et Debian 10 Buster).

Les changements possibles ne sont plus que des corrections de bogues critiques et importants dans des logiciels qui ne font pas partie du noyau. À 18h (UTC) le jour de gel, 310 bugs critiques pour la sortie de Jessie étaient recensés. Des paquets non indispensables contenant des bugs critiques pourront être supprimés.

Comme de coutume, aucune date de sortie n'est prévue (mais la politique de gel prévoit des étapes les 5 décembre 2014, janvier et février 2015).

D'après le site listant les paquets Debian, les versions suivantes devraient être présentes (liste évidemment non exhaustive) :

  • noyaux Linux 3.16.3 / Kfreebsd 10.1 ;
  • Xen 4.4 / QEMU-KVM 2.1 ;
  • Apache 2.4.10 / Nginx 1.6.2 ;
  • MySQL Server 5.5.39 / Mariadb 10.0.14 /PostgreSQL 9.4 ;
  • Squid 3.4.8 ;
  • Exim 4.84 / Postfix 2.11.2 ;
  • Dovecot 2.2.13 / Cyrus 2.4.17 ;
  • Gnome 3.14 / KDE 4.14.2 / Xfce 4.10.1.
Télécharger ce contenu au format Epub

Lire les commentaires

Debian bug Squashing Party (Jessie) du 14 au 16 novembre 2014 à Paris

Dimanche 9 Novembre

Une chasse aux bogues (Bug Squashing Party, BSP) est organisée dans les locaux de Mozilla à Paris (Mozilla, 16 bis boulevard Soult, 75009 Paris, France). L'évènement aura lieu du vendredi 14 novembre jusqu'au dimanche 16.

Le but d'une BSP est de rassembler des contributeurs Debian pour corriger un maximum de bogues dans la distribution Debian. Des développeurs Debian seront présents pour aider à comprendre le fonctionnement du projet ainsi qu'aider à l'intégration des correctifs à Debian.

Pour des raisons d'organisation, l'inscription sur le Wiki Debian ou sur meetup.com est obligatoire.

Télécharger ce contenu au format Epub

Lire les commentaires

Votre blogue à la maison sur Raspberry Pi

Dimanche 9 Novembre

Nous verrons dans ce tutoriel comment installer un Raspberry Pi pour en faire un serveur web hebergé chez vous, derriere votre box internet.

    Sommaire Conventions établies adresse IP du rpi = 192.168.1.10 (nom : rpi) adresse IP de votre ordinateur = 192.168.1.11 (nom : pc) adresse IP de votre box Internet = 192.168.1.1 (nom : box) votre compte sur le pc = votre_login_pc votre compte sur le rpi = votre_login_rpi nom du site = nomsite.sytes.net (un fournisseur de DNS dynamique gratuit)
    • Je n'utilise pas sudo, donc les commandes se font par un passage en root par su ;
    • Sur le rpi, la connexion est possible par wifi avec une clé USB, mais j'utilise l'Ethernet ;
    • Le tutoriel est entièrement basé sur Linux et il n'y a pas d'interface graphique, sauf accident. J'ai testé TV + souris + clavier, je n'en ai pas trouvé l'intérêt dans le cadre choisi ici ;
    • Lorsque le système sera sur la clé USB, il restera une seule sortie USB, suffisante pour une utilisation du clavier s'il y a besoin d'une connexion en mode console pour un dépannage ;
    • La légèreté a été privilégiée contre toute autre considération, entraînant le choix de Nginx et de Pluxml. Nginx est réputé pour être moins lourd qu'Apache, et Pluxml n'utilise pas de bases de données. Mais d'autres choix peuvent être faits.
    Achat du rpi

    J'ai acheté les produits ci-dessous chez www.kubii.fr.

    32,99 € Raspberry Pi 512Mo Model B 3,15 € Cordon d'alimentation 1.8 mètres, USB A M-MICRO B M 7,90 € Adaptateur USB euro noir 2,40 € Cable HDMI 2 mètres 6,87 € Boitier 11,95 € Expédition 65,26 € TOTAL

    Après cet achat et après avoir fait du rangement chez moi, j'ai trouvé un vieux mini-hub USB 4 ports avec son câble USB mâle-mini mâle (ou micro) qui permet d'assurer l'alimentation du rpi et d'avoir plus d'entrées USB. Mais il faut avoir la bonne tension, je n'y connais rien, donc si vous n'êtes pas sûr, achetez tout le nécessaire. La longueur des câbles doit être décidée en fonction de l'endroit où vous poserez votre rpi (prise de courant, boîtier Internet, TV). De plus, si vous n'en avez pas, achetez aussi un câble Ethernet. Vous aurez aussi besoin d'une carte SD et d'une clé USB de 8 Go. Si vous suivez ma configuration, achetez la carte SD la plus petite et la moins chère, elle ne servira qu'à démarrer, le reste étant sur la clé USB. Celle-ci servira de disque dur, elle doit donc être robuste et rapide, mais les spécifications ne sont jamais précisées. Je possède trois clés USB et une carte SD de classe 4, j'ai donc fait des tests de lecture/écriture, peu fiables apparemment, mais qui donnent peut-être des indications. J'ai tout formaté en ext4.
    Tests de lecture (relancer plusieurs fois pour trouver une moyenne) :

    hdparm -t --direct /dev/sdc sd 20 MB/s hdparm -t --direct /dev/sdd usb1 29 MB/s hdparm -t --direct /dev/sde usb2 22 MB/s hdparm -t --direct /dev/sdf usb3 22 MB/s

    Tests d'écriture (relancés plusieurs fois pour trouver une moyenne) :

    sync;time bash -c "(dd if=/dev/zero of=/mnt/test bs=8k count=10000; sync)" sd 930 MB/s usb1 1.1 GB/s usb2 1.1 GB/s usb3 850 Mb/s

    Bien sûr, ces résultats en écriture sont délirants, mais je constate que la SD et l'USB3 sont les moins rapides, et que l'USB1 s'en sort le mieux, c'est donc celle que j'ai choisie pour installer Raspbian.

    Installation de Raspbian et partitionnement

    Plusieurs distributions sont disponibles, j'ai choisi la Raspbian Wheezy, une dérivée de la Debian Wheezy, téléchargeable ici. Elle se présente sous la forme AAAA-MM-JJ-wheezy-raspbian.img et pèse 500 Mb. Vous la dézippez sur le PC et l'installez sur la clef USB (/dev/sdX avec X=c dans mon cas, mais ça peut changer chez vous) par la commande :

    dd if=AAAA-MM-JJ-wheezy-raspbian.img of=/dev/sdX

    Attention : /dev/sdX doit bien être votre clef USB, et non un disque dur, sinon le contenu sera écrasé. Vous obtiendrez le partitionnement suivant :

    • un espace vide de 4 Mb (taille probablement aléatoire)
    • partition /dev/sdX1 en FAT32 d'une taille de 56 Mb, c'est la partition /boot
    • partition /dev/sdX2 en ext4 d'une taille de 1.75 Gb, la partition système /

    Sur le PC vous formatez votre carte SD en FAT32 (/dev/sdY avec Y=d dans mon cas). Ensuite vous montez la partition /boot de votre clef USB, et la partition de la carte SD, afin de copier les fichiers de démarrage de la carte USB vers la carte SD :

    mkdir /tmp/mnt_usb ; mount -t vfat /dev/sdX1 /tmp/mnt_usb mkdir /tmp/mnt_sdcard ; mount -t vfat /dev/sdY1 /tmp/mnt_sdcard cp -av /tmp/mnt_usb/* /tmp/mnt_sd/

    Il faut indiquer maintenant au rpi où se situe la partition système. Pour cela éditez le fichier cmdline.txt de la carte SD, /tmp/mnt_sd/cmdline.txt, et remplacez root=/dev/mmcblk0p2 (ce nommage de la carte SD peut être différent chez vous) par root=/dev/sda2 : ce qui se présente actuellement sous le nom de /dev/sdY2 (ou autre) sur votre ordinateur, sera nommé /dev/sda2 sur le rpi. Vous pouvez démonter la carte et la clef USB. Cette dernière peut être laissée en l'état ou repartitionnée selon vos besoins.

    Personnellement j'ai supprimé l'espace vide et la partition FAT32 puis déplacé /dev/sdY2 au début du disque en l'agrandissant à 3 Go (actuellement mon / ne dépasse pas 1,5 Go).

    Il est aussi possible de créer d'autres partitions (swap, données, etc.), mais vous pourrez toujours le faire ultérieurement si besoin. Il y a aussi un fichier de swap de 100 Mo dans le système qu'on peut réduire ou agrandir (/etc/dphys-swapfile & /var/swap), mais n'ayant pas de problème de mémoire je n'y ai pas touché (mon blogue est très léger et requiert entre 200 et 250 Mo sur les 512 Mo du rpi).

    Vous pouvez maintenant insérer la carte SD et la clef USB sur le rpi, connecter le câble Ethernet et le câble d'alimentation, et enfin lancer la petite bestiole.

    Configuration de base du rpi Raspi-config

    Le rpi a démarré et devrait fonctionner. Comment vous connecter ? La première chose à faire est de consulter votre boîtier Internet pour connaître l'adresse IP dynamique attribuée au rpi. Vous trouvez par exemple 192.168.1.30. La commande ssh pi@192.168.1.30 avec le mot de passe raspberry vous permet de vous identifier avec l'utilisateur par défaut pi. Cette commande ssh nom_user@adresse_ip_rpi est la seule commande vous permettant d'accéder au rpi sans interface graphique. Commencez par attribuer un mot de passe à root par sudo passwd root, vous permettant de vous identifier en root par su, afin de de configurer le rpi avec la commande raspi-config (ce menu peut changer si votre version de raspbian est plus récente que la mienne). Il est imprudent de s'indentifier directement en root par SSH, nous verrons comment l'interdire plus loin.

    Dorénavant nous serons presque exclusivement en root pour toute la suite des démarches :

    ssh pi@192.168.1.30 sudo passwd root password su raspi-config

    La dernière commande affiche cet écran sur 2 colonnes, chaque ligne pouvant être sélectionnée pour modification; je mets en commentaire à droite mes propres choix.

    info Information about this tool expand_rootfs Expand root partition to fill SD card # inutile overscan Change overscan # inutile configure_keyboard Set keyboard layout # mettez fr pour avoir l'azerty en cas de connexion TV change_pass Change password for 'pi' user # votre mot de passe change_locale Set locale # je garde par défaut [*] en_GB.UTF-8 UTF-8, sinon la connexion SSH est graphiquement polluée change_timezone Set timezone # Europe/Paris change_hostname Set hostname # raspberrypi par défaut memory_split Change memory split # gpu=4 : l'utilisation de la carte graphique étant inutile, je donne au GPU la valeur minimale de 4 Mb, tout le reste étant disponible pour le CPU overclock Configure overclocking : * None 700MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt * Modest 800MHz ARM, 250MHz core, 400MHz SDRAM, 0 overvolt * Medium 900MHz ARM, 250MHz core, 450MHz SDRAM, 2 overvolt # j'ai choisi Medium * High 950MHz ARM, 250MHz core, 450MHz SDRAM, 6 overvolt * Turbo 1000MHz ARM, 500MHz core, 600MHz SDRAM, 6 overvolt ssh Enable or disable ssh server # enable boot_behaviour Start desktop on boot? # non camera Enable/Disable camera addon support # non rastrack Add this Pi to Raspberry Pi Map - Rastrack # non update Try to upgrade raspi-config # non (on le fera plus tard)

    Vous pouvez redémarrer, vous reconnecter par SSH, puis passer en root et vérifier que le surcadencement (« overclocking ») est correct de différentes manières :

    vcgencmd get_config int vcgencmd get_config arm_freq cat /boot/config.txt

    Il est aussi conseillé de modifier le fichier /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor en remplaçant powersave par ondemand.

    Au fait, ça chauffe un rpi? Allez voir /opt/vc/bin/vcgencmd measure_temp.

    IP statique

    Pour un serveur Web je préfère une IP statique, ce qui s'obtient en modifiant /etc/network/interfaces (j'ai diésé les options se référant au DHCP et au wifi)

    auto lo iface lo inet loopback iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 network 192.168.1.1 broadcast 192.168.1.255 gateway 192.168.1.1

    Après un redémarrage, vous vous connectez par ssh pi@192.168.1.10

    Faisons un peu de ménage

    Le rpi va nous servir uniquement à créer un blogue, et c'est tout. Pour un serveur Web, de nombreux éléments sont inutiles, ce qui va nous permettre de faire un grand nettoyage à la tronçonneuse. Pour commencer, supprimons des consoles inutiles dans notre cas. Dans le fichier /etc/inittab vous pouvez diéser les 4 dernières lignes, c'est-à-dire les consoles 3 à 6.

    1:2345:respawn:/sbin/getty --noclear 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 #3:23:respawn:/sbin/getty 38400 tty3 #4:23:respawn:/sbin/getty 38400 tty4 #5:23:respawn:/sbin/getty 38400 tty5 #6:23:respawn:/sbin/getty 38400 tty6 Gestion des utilisateurs et des groupes

    Je préfère supprimer l'utilisateur pi qui est connu et donc identifiable pour les intrus. Créons d'abord un nouvel utilisateur et son groupe, qui par convention auront pour nom votre_login_rpi

    useradd --home-dir /home/votre_login_rpi --create-home --skel /etc/skel --user-group --uid 1000 votre_login_rpi passwd votre_login_rpi

    Vérifiez que votre nouvel utilisateur est bien créé :

    id votre_login_rpi uid=1000(votre_login_rpi) gid=1000(votre_login_rpi) groups=1000(votre_login_rpi)

    Vous devez vous déconnecter en faisant 2 fois Ctrl+d (exit de root, puis exit de pi), puis vous reconnecter par ssh votre_login_rpi@192.168.1.10, repasser en root et supprimer l'utilisateur pi:

    userdel --remove pi groupdel pi

    Je décide aussi de supprimer les utilisateurs et groupes inutiles
    userdel

    • games
    • lp

    groupdel

    • fax
    • voice
    • cdrom
    • floppy
    • tape
    • sudo
    • audio
    • video
    • lpadmin
    • indiecity
    Les modules son

    lsmod affiche des modules de son dont nous n'aurons pas besoin. Dans le fichier /etc/modules il suffit de commenter le module son #snd-bcm2835

    Suppression des services inutiles

    Pour désactiver un service sans supprimer son script de lancement (dans /etc/init.d/):

    /etc/init.d/nom_service stop update-rc.d -f nom_service remove

    Procédez ainsi avec les services triggerhappy plymouth plymouth-log.

    Pour visualiser les services présents et/ou actifs il faut installer sysv-rc-conf avec les commandes:

    apt-get update apt-get install sysv-rc-conf sysv-rc-conf --list # liste de tous les services présents sysv-rc-conf # interface minimale (mais ça rame) pour activer/désactiver les services Gestion des logiciels Raspbian

    La version de Raspbian que vous avez installée peut nécessiter une première mise à jour, opération que vous effectuerez de temps à autre de cette manière :
    apt-get update qui réactualise le fichier répertoriant les logiciels disponibles ; relancez cette commande chaque fois que vous souhaitez rechercher, mettre à jour ou installer des paquets ; apt-get dist-upgrade fait une mise à jour globale de la distribution

    Il se peut qu'une mise à jour du micrologiciel (« firmware ») du rpi soit nécessaire, pour cela il faut lancer rpi-update. Depuis peu c'est un paquet intégré à Raspbian, mais je ne sais pas s'il est intallé d'office. Si la commande ne répond pas, installez ce paquet par apt-get install rpi-update
    Avant cette mise à jour lancez les commandes /opt/vc/bin/vcgencmd version et uname -a et notez les résultats.
    Puis lancez rpi-update, redémarrez, et comparez les nouvelles versions du système.

    Suppression des paquets inutiles

    Vous pouvez également utiliser raspbian-ua-netinst, qui produit une image minimale sans fantaisie (pas d'utilisateur pi et d'autres trucs).
    Après la mise à jour, dans l'optique d'un serveur Web, de nombreux paquets sont inutiles, donc vous pouvez les supprimer par la commande aptitude purge:

    aptitude purge alsa alsa-base alsa-utils cups-bsd cups-client cups-common dillo gconf-service gconf2 gconf2-common ghostscript gnome-themes-standard libgconf-2-4 gksu libgksu2-0 gnome-accessibility-themes gnome-icon-theme gnome-themes-standard gnome-themes-standard-data gpicview lxde leafpad lightdm liblightdm-gobject-1-0 libxklavier16 lightdm-gtk-greeter libsamplerate0 libqt4-network libqt4-xml libqtdbus4 libqtwebkit4 lxappearance lxde-common lxde-core lxde-icon-theme lxinput lxpanel lxpolkit lxrandr lxsession lxsession-edit lxshortcut lxtask lxterminal pistore scratch squeak-plugins-scratch squeak-vm libfm-data libfm-gtk-bin libfm-gtk1 libfm1 libmenu-cache1 lxmenu-data omxplayer pcmanfm penguinspuzzle sudo xarchiver ed galculator midori wpasupplicant xpdf libraspberrypi-doc libiw30 wireless-tools wpagui libcupsimage2 sudo wolfram-engine

    Pour achever cette suppression, installez deborphan qui vous permettra de lister les dépendances devenues inutiles à supprimer, puis lancez-le

    apt-get update apt-get install deborphan deborphan

    Si vous êtes accro aux éditeurs vi, nano ou autres passez votre chemin. Personnellement, pour la mise en place et la configuration du blogue, j'ai choisi de laisser un peu de X-Window afin d'utiliser le petit éditeur nedit par SSH, donc apt-get install nedit

    Le serveur web Installation de Nginx

    Tout d'abord il faut un utilisateur et un groupe dédiés au serveur web. Raspbian l'a fait pour vous, ils se nomment www-data : uid=33(www-data) gid=33(www-data) groups=33(www-data).
    Il faut aussi un répertoire dédié au blogue :

    mkdir /var/www; chown -R www-data.www-data /var/www

    Tant qu'on y est, dans /etc/passwd changez www-data:x:33:33:www-data:/var/www:/bin/sh par www-data:x:33:33:www-data:/var/www:/bin/false afin d'empêcher une connexion sous ce nom, ce qui est plus sécurisé, mais vous devrez tout faire en root et penser à rétablir les propriétaires pour chaque fichier et répertoire créé ou modifié. Pour cela :

    chown -R www-data.www-data /var/www/répertoire # pour la totalité du répertoire chown www-data.www-data /var/www/répertoire/fichier # pour un fichier

    Passons à l'installation proprement dite de Nginx

    apt-get update aptitude install nginx-full nginx-common geoip-database libgeoip1

    Avec les dépôts de Raspbian, j'ai eu la version 1.2.1-2.2 de Nginx, qui date de juillet 2012, alors que la version stable de juin 2013 est la 1.4.0. Mais rien ne vous empêche de compiler aux petits oignons la dernière version de Nginx, avec tous les modules qui vous plaisent.

    Ensuite, pas de serveur web sans php (NdM: enfin sauf LinuxFr.org bien sûr :-)

    apt-get update aptitude install php5 php5-common php5-fpm php5-gd libonig2 libqdbm1 Configuration de Nginx

    Les fichiers de configuration de Nginx sont sous /etc/nginx, les principaux étant:

    • nginx.conf le fichier principal de configuration
    • sites-available/ répertoire contenant les fichiers de configuration du ou des sites
    • sites-enabled/ répertoire contenant les fichiers de configuration du ou des sites actifs (liens symboliques vers le répertoire site-availables)

    Maintenant on va faire un peu joujou avec le serveur, ca vous fera comprendre un peu mieux comment ça se passe. D'abord, dans le fichier /etc/hosts du pc, ajoutez l'adresse IP du rpi et le nom du site : 192.168.1.10 nomsite.sytes.net.

    Si, comme moi, vous avez un XP virtuel installé, il faut mettre la même information dans le fichier C:\windows\system32\drivers\etc\hosts, ce qui permettra de vérifier l'aspect du blog sur un autre système d'exploitation.

    Nginx a été installé, mais pas encore activé. Pour lancer un service sur Raspbian : service nginx start (start pour démarrer le serveur, restart pour le relancer, stop pour l'arrêter).

    Ouvrez un navigateur web et entrez l'adresse IP du rpi, vous devriez obtenir un « Welcome to nginx! »

    Mais ce que vous voulez, c'est créer votre propre site, il faut donc configurer un fichier spécifique, ce sera donc /etc/nginx/sites-available/nomsite, avec une configuration minimale pour tester.

    server { listen 80; root /var/www; server_name localhost; location / { index index.php index.html; } # enable php location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }

    Ce site est « available », mais pas « enabled », donc :

    cd /etc/nginx/sites-enabled rm default # suppression du lien sur le site par défaut présent à l'installation de Nginx ln -s ../sites-available/nomsite service nginx restart

    On va maintenant créer deux petits fichiers de test dans le repertoire /var/www/ où seront rangées toutes les données qui apparaîtront sur votre site. Personnellement, j'ai tout rangé à la racine du répertoire, mais vous pouvez créer un répertoire dédié à votre site sous /var/www/.
    Un premier fichier index.html avec :

    <html><body>Hello world, c'est ma page de mon nouveau site !</body></html>

    Et un petit script php info.php avec :

    <?php phpinfo(); ?>

    N'oubliez pas, vous êtes en root et vous créez des fichiers root pour un serveur dont l'utilisateur est www-data. Les fichiers qui n'ont pas www-data comme propriétaire ne s'afficheront pas sur le site, donc

    chown -R www-data.www-data /var/www/

    ou

    chown www-data.www-data /var/www/index.html /var/www/info.php

    Maintenant affichez dans la barre d'adresse de votre navigateur 192.168.1.10/index.html, et vous devriez voir s'afficher son contenu.
    Pour afficher les infos PHP de votre système, entrez 192.168.1.10/info.php.

    Bon, tout fonctionne, mais le fichier /etc/nginx/sites-available/nomsite est minimaliste. Incapable de faire un tutoriel sur nginx, je vous présente tel quel mon propre fichier, fabriqué à partir de mes recherches, et notamment des références que je donne à la fin. Ce fichier est sûrement approximatif et très perfectible.

    /etc/nginx/sites-available/nomsite

    server { listen 80; server_name localhost: root /var/www; index index.php index.html index.htm; client_max_body_size 20M; # set maximum upload size access_log /var/log/nginx/access.log combined; # format combined pour logwatch error_log /var/log/nginx/error.log; autoindex off; # pour eviter de lister les répertoires # drop.conf include drop.conf; # voir fichier plus bas # default try order location / { # First attempt to serve request as file, then as directory, then as /index.php?$args try_files $uri $uri/ /index.php?$args; } # enable php location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass php5-fpm-sock;#/etc/php5/fpm/pool.d/www.conf /etc/nginx/conf.d/php5-fpm.conf fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

    /etc/nginx/drop.conf

    ### protection de fichers et répertoires contenus dans /var/www/ # # protection des fichiers caches location ~ /\. { deny all; } # # protection du fichier de version de pluxml location /version { return 404; } # #protection de répertoires location ~ /(update|data)/ { deny all; }

    Selon les informations du blogue de pablo-ruth, on configure php5-fm comme suit.

    Création du fichier /etc/nginx/conf.d/php5-fpm.conf :

    upstream php5-fpm-sock { server unix:/var/run/php5-fpm.sock; }

    et modification du fichier /etc/php5/fpm/pool.d/www.conf (le point-virgule dans la ligne suivante indique un commentaire) :

    ;listen = 127.0.0.1:9000 listen = /var/run/php5-fpm.sock

    Pour finir j'ai modifié le fichier /etc/php5/fpm/pool.d/www.conf, mais les valeurs dépendent de la taille du contenu de votre site, vous trouverez des informations dans cette réponse.

    pm = dynamic pm.max_children = 8 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 5 pm.max_requests = 500 ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com ;php_flag[display_errors] = off ;php_admin_value[error_log] = /var/log/fpm-php.www.log ;php_admin_flag[log_errors] = on ;php_admin_value[memory_limit] = 32M php_flag[display_errors] = on php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on

    Dans /etc/nginx/nginx.conf il faut dédièser server_tokens off;, ce qui permet de cacher la version de Nginx, ce que vous pouvez tester depuis votre pc par telnet (ou nc ou lynx -head ou d'autres) :

    telnet 192.168.1.10 80 HEAD HTTP/1.1

    Ce qui affiche nginx au lieu de nginx.numversion. Pour cacher plus d'informations, il faut compiler Nginx.

    Vous créez un répertoire pour les journaux de Nginx et redémarrez le service :

    mkdir /var/log/nginx/ service nginx restart Hello The World La box Internet

    Pour le moment vous êtes le seul à pouvoir accéder à votre site, mais le reste de l'univers s'impatiente. Il faut rendre votre site accessible à l'extérieur, d'abord par votre boîtier Internet. Le mien est celui de SFR, mais le principe est le même partout. Dans la partie NAT, Il faut effectuer une translation de port entre votre rpi et l'Internet par le port 80. Vous entrez l'adresse IP du rpi, établissez un protocole TCP, et définissez le port 80 comme port de communication.

    Votre nom de domaine chez noip

    Le boîtier a ouvert une porte, mais il vous manque une adresse. Vous pouvez acheter un nom de domaine, autour de 15 euros, mais dans ma démarche de solutions gratuites, j'utilise un nom de domaine attribué par www.noip.com. Bien sûr, cette solution comporte le risque de la disparition soudaine d'un service gratuit mais privé. Vous pouvez vous inscrire ici, prenez l'option « Free » et créez votre compte No-IP. Vous pouvez choisir un nom selon les disponibilités, en le faisant suivre de .noip.me, .zapto.org, .sytes.net, etc.

    Attention, il y a un petit piège. Remplissez le formulaire, avec par exemple nomsite.sytes.net, et cochez le petit carré blanc « Create my hostname later », et ensuite validez par un Sign Up. Ensuite confirmation par mail, vous êtes redirigé dans votre espace membre et vous pouvez « Add a host ». Ici vous enregistrez votre adresse nomsite.sytes.net, choisissez le type DNS Host(A), et ajoutez l'adresse IP externe de votre boîtier Internet.

    Si vous avez comme moi une adresse IP dynamique, le boîtier de SFR gère bien le lien avec no-ip dans Menu Réseau/DynDNS. Activez le service, sélectionnez no-ip.com, entrez vos compte et password no-ip, ainsi que l'adresse nomsite.sytes.net. La prochaine fois que vous redémarrerez votre boîter Internet, 3 ou 4 minutes suffiront pour que votre nom de domaine soit associé à la nouvelle adresse IP dynamique.

    Si vous êtes chez un autre fournisseur d'accès, vous pouvez utiliser ce logiciel fourni pour no-ip pour mettre à jour votre DNS : http://www.noip.com/downloads.php?page=linux

    Maintenant que votre nom de domaine est visible depuis l'extérieur, dans le fichier /etc/nginx/sites-available/nomsite il faut remplacer server_name localhost; par server_name nomsite.sytes.net; puis

    service nginx restart Installation et configuration de Pluxml

    Récupérez le fichier d'installation ici, dézippez-le et copiez-le dans /var/www/ en lui donnant les droits appropriés.

    chown -R www-data.www-data /var/www/ chmod -R 770 /var/www/ service nginx restart

    Depuis votre navigateur allez à l'adresse http://nomsite.sytes.net/install.php et remplissez le formulaire:

    langue+heure Nom de l'administrateur Identifiant de connexion à l'administration Mot de passe Installer

    Après cela supprimez le fichier /var/www/install.php. Vous pourrez installer différents thèmes, ajouter des extensions, etc. Visitez le site, où vous trouverez un wiki, des thèmes, un forum, etc.

    Modifier le thème

    Un petit conseil si vous souhaitez modifier les fichiers PHP et CSS du thème du blogue (mais rien ne vous y oblige si votre thème vous satisfait) :
    Je n'ai pas supprimé tous les paquets graphiques de Raspbian afin d'éditer ces fichiers plus confortablement avec Nedit. Pour cela vous lancerez ssh -X -Y -p 22 votre_login_rpi@192.168.1.10. Ensuite vous pouvez éditer avec nedit les fichiers concernés situés dans /var/www/themes/defaut/, defaut étant le nom du thème par défaut.

    Par contre cela pose des problèmes de droit sur ces fichiers dont www-data.www-data est propriétaire. Deux possibilités s'offrent à vous :

    • ajoutez votre_login_rpi au groupe www-data dans /etc/group ;
    • chmod o+w *.php style.css, édition des fichiers, puis chmod o-w *.php style.css.

    J'ai choisi la deuxième solution, plus contraignante mais plus sécurisée.

    Corriger un bogue

    Il y a un bogue dans Pluxml lorsque les personnes qui viennent poster un commentaire souhaitent inscrire leur site web. Le site nomsite.sytes.net est récupéré tel quel sans « http:// », donc si on clique dessus la redirection ne s'effectue pas. J'utilise le thème « defaut », peut-être que ce boque est absent des autres thèmes. Pour ajouter « http:// » par défaut dans le formulaire, il faut modifier le fichier /var/www/themes/defaut/commentaires.php et remplacer:

    <input id="id_site" name="site" type="text" size="20" value="<?php $plxShow->comGet('site',''); ?>" />

    par

    <input id="id_site" name="site" type="text" size="20" value="<?php $plxShow->comGet('site','http://'); ?>" /> Administration du serveur

    Maintenant vous avez un blogue, vous postez vos articles, recevez des commentaires, etc. Tout va bien. Vraiment bien ? Votre serveur est une porte ouverte sur internet, votre nom de domaine est fixé pour l'éternité, connu du plus grand nombre. Il faut donc lui prodiguer protection et surveillance, à l'aide de quelques outils à mettre en place et à configurer.

    Le pare-feu Iptables

    Je ne vais pas vous faire un cours, mais seulement vous montrer mon pare-feu. Les règles iptables sont le moyen le plus simple de filtrer les entrées/sorties de votre rpi. Attention à cette étape, une mauvaise règle ssh peut vous faire perdre votre connexion avec le rpi, et dans ce cas la seule solution sera de vous connecter via la tv pour réparer le script.

    Il y a 3 scripts à écrire, et pour les rendre plus lisibles, j'emploierai cette nomenclature :

    • adresse.ip.rpi (192.168.1.10)
    • adresse.ip.pc (192.168.1.11)
    • adresse.ip.box (192.168.1.1)

    /etc/init.d/fw

    #!/bin/sh ### BEGIN INIT INFO # Provides: fw # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: pare-feu iptables # Description: iptables ### END INIT INFO case $1 in "start") /etc/fwstart ;; "stop") /etc/fwstop ;; "restart") /etc/fwstop /etc/fwstart ;; esac

    /etc/fwstop

    #!/bin/sh # remise à zero des règles de filtrage iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # nous les faisons pointer par défaut sur ACCEPT iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

    /etc/fwstart

    #!/bin/sh if=eth0 # remise a zero des règles de filtrage iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # règles par défaut iptables -t filter -P INPUT DROP iptables -t filter -P OUTPUT DROP iptables -t filter -P FORWARD DROP # rebouclage/loopback iptables -t filter -A OUTPUT -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT iptables -t filter -A INPUT -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT # règles pour abandonner/droper silencieusement les transmissions internes du réseau local iptables -I INPUT -i $if -s adresse.ip.box -d 224.0.0.1/24 -p igmp -j DROP iptables -I INPUT -i $if -s 172.16.255.254 -d 224.0.0.1/24 -p igmp -j DROP # dns local iptables -A OUTPUT -o $if -s adresse.ip.rpi -d adresse.ip.box -p udp -m udp --sport 1024: --dport 53 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i $if -s adresse.ip.box -d adresse.ip.rpi -p udp -m udp --sport 53 --dport 1024: -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # ssh rpi - pc ### ATTENTION à cette règle : mal écrite, elle supprime votre connexion au rpi ### iptables -A OUTPUT -o $if -p tcp --source adresse.ip.rpi --source-port 22 --destination adresse.ip.pc --destination-port 1024: -j ACCEPT iptables -A INPUT -i $if -p tcp --source adresse.ip.pc --source-port 1024: --destination adresse.ip.rpi --destination-port 22 -j ACCEPT # règles http du serveur iptables -A OUTPUT -o $if -p tcp --source adresse.ip.rpi --source-port 80 --destination-port 1024: -j ACCEPT iptables -A INPUT -i $if -p tcp --source-port 1024: --destination adresse.ip.rpi --destination-port 80 -j ACCEPT # règles http du rpi comme client internet, à activer pour les mises à jour apt-get et Pluxml (plugins et une partie de l'administation), à dédièser selon les besoins (les mises à jour ne sont pas fréquentes, une fois par semaine au maximum) #iptables -A OUTPUT -o $if -s adresse.ip.rpi -d 0.0.0.0/0 -p tcp -m multiport --dports 80,443 -m conntrack ! --ctstate INVALID -j ACCEPT #iptables -A INPUT -i $if -s 0.0.0.0/0 -d adresse.ip.rpi -p tcp -m multiport --sports 80,443 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # whois pour awstats iptables -A OUTPUT -o $if -p tcp --source adresse.ip.rpi --source-port 1024: --destination-port 43 -j ACCEPT iptables -A INPUT -i $if -p tcp --destination adresse.ip.rpi --source-port 43 --destination-port 1024: -j ACCEPT # ntp iptables -A OUTPUT -o $if -p udp --source adresse.ip.rpi --source-port 123 --destination-port 123 -j ACCEPT iptables -A INPUT -i $if -p udp --source-port 123 --destination adresse.ip.rpi --destination-port 123 -j ACCEPT # journalisation des connexions abandonnées/dropées iptables -t filter -A INPUT -p all -j LOG --log-prefix="DROPIN: " iptables -t filter -A OUTPUT -p all -j LOG --log-prefix="DROPOUT: "

    Vous pouvez enregistrer votre script puis le démarrer

    update-rc.d fw defaults service fw start

    Il est recommandé d'installer nmap et de vérifier l'état des ports du rpi par nmap -v nomsite.sytes.net.

    Rsyslog

    Pour obtenir une meilleure lisibilité des journaux du site, il faut modifier /etc/rsyslog.conf, au début de la partie RULES et avant les premières règles.

    :msg, contains, "DROPIN: " -/var/log/dropin.log & ~ :msg, contains, "DROPOUT: " -/var/log/dropout.log & ~

    En lien avec les 2 dernières règles de /etc/fwstart, ceci permettra à Iptables d'envoyer les messages de drop dans des fichiers à part, à consulter régulièrement.

    service fw restart service rsyslog restart SSH

    SSH est un moyen sécurisé de connexion entre ordinateurs. Le fichier /etc/ssh/sshd_config du rpi peut être configuré plus finement. Attention des erreurs vous feront perdre votre connexion SSH avec le rpi. Améliorons le fichier /etc/ssh/sshd_config :

    • Port 22 par défaut le port SSH est 22, vous devriez en choisir un autre (et revoir les règles SSH d'Iptables). Prenez un port disponible (voir /etc/services et Google).
    • PermitRootLogin no il vaut mieux activer cette option et vous loguer sur le rpi comme utilisateur non privilégié, puis passer en root par su
    • AllowUsers votre_login_pc@adresse.ip.pc seul l'utilisteur « votre_login_pc » de cette machine (le nom de l'utilisateur du pc) pourra se connecter au rpi par SSH (ne pas confondre le nom de l'utilisateur du rpi « votre_login_rpi » et le nom d'utilisateur du pc « votre_login_pc »)

    Puis service ssh restart

    Quelques commandes SSH :

    • connexion simple

    ssh -p 22 votre_login_rpi@adresse.ip.rpi

    • connexion graphique
    ssh -X -Y -p 22 votre_login_rpi@adresse_ip_rpi nedit /var/www/themes/defaut/style.css &
    • depuis le pc, copie de fichier du pc vers le rpi
    scp -P 22 nom_fichier votre_login_rpi@adresse_ip_rpi:/home/votre_login_rpi/ Les clefs SSH

    Il y a une méthode plus sécurisée pour assurer la connexion SSH entre le PC et le rpi, par un système de clefs. Alors que la connexion classique est autorisée par un mot de passe, la connexion par clefs entrepose des données sur les 2 machines, et SSH ira vérifier la validité de ces données sur chacune, ainsi qu'un mot de passe, pour autoriser la connexion. Sur votre PC en tant qu'utilisateur votre_login_pc (je suis sur Arch mais la procédure doit être la même partout) :

    • ssh-keygen -t rsa génération d'une paire de clefs, une clef privée id_rsa et une clef publique id_rsa.pub dans le répertoire par défaut /home/votre_login_pc/.ssh/
    • Enter passphrase (empty for no passphrase): entrez une passphrase, c'est-à-dire un mot de passe
    • Your identification has been saved in /home/votre_login_pc/.ssh/id_rsa
    • Your public key has been saved in /home/votre_login_pc/.ssh/id_rsa.pub

    Il faut maintenant envoyer au rpi la clef publique ssh-copy-id -i ~/.ssh/id_rsa.pub votre_login_rpi@adresse.ip.rpi -p 22

    Vous vous connectez comme auparavant par ssh -p 22 votre_login_rpi@adresse.ip.rpi, mais dorénavant c'est la passphrase qui vous sera demandée.

    Logwatch

    Logwatch parcourt et analyse les fichiers journaux dans /var/log/ et envoie un courriel.
    apt-get install logwatch installe les paquets exim4-base exim4-config exim4-daemon-light heirloom-mailx libdate-manip-perl libyaml-syck-perl logwatch.

    L'installation va jusqu'à sa fin, mais au moment du lancement du serveur de courriels Exim, j'ai eu cette erreur:

    [ ok ] Starting MTA: exim4
    ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken
    C'est un problème avec IPv6 qui n'est pas présent sur le rpi, il faut donc modifier /etc/exim4/update-exim4.conf.conf en remplaçant
    dc_local_interfaces='127.0.0.1 ; ::1' par dc_local_interfaces='127.0.0.1'
    puis lancez update-exim4.conf

    Afin de lire les courriels root sous votre compte votre_login_rpi, modifiez /etc/aliases en ajoutant root:votre_login_rpi
    service exim4 restart

    mkdir /var/cache/logwatch cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

    J'ai modifié /etc/logwatch/conf/logwatch.conf en commentant les lignes suivantes :

    #MailTo = root #MailFrom = Logwatch #Service = "-zz-network" #Service = "-zz-sys" #Service = "-eximstats" #mailer = "/usr/sbin/sendmail -t"

    et remplacé « Detail = Low » par « Detail = 10 » afin d'avoir de plus amples informations.

    Un script cron lancera un script logwatch tous les jours à 6h25, l'étude se faisant sur les fichiers journaux de la journée précédente, et sur vos services activés et présents dans le fichier /usr/share/logwatch/default.conf/services. Demain, sous votre compte, vous n'aurez qu'à taper mail.

    Le problème, c'est que Nginx n'est pas présent dans la liste de Logwatch, il faut donc s'en occuper.

    D'abord Logwatch lit un certain format de fichier, c'est pour cela que les fichiers de log de Nginx sont au format combined dans /etc/nginx/sites-available/nomsite access_log /var/log/nginx/access.log combined;
    Nginx rejette le format combined pour error.log, je ne suis pas parvenu à l'intégrer.

    On peut maintenant configurer des fichiers Nginx pour logwatch, en prenant comme modèle les fichiers http.conf.

    cd /usr/share/logwatch/default.conf/logfiles cp http.conf nginx.conf

    et modifier ce dernier en supprimant toutes les lignes LogFile = et Archive =

    puis ajoutez

    LogFile = nginx/*access.log LogFile = nginx/*access.log.1 Archive = nginx/*access.log.*.gz cd /usr/share/logwatch/default.conf/services/ cp http.conf nginx.conf

    et modifier ce dernier en remplaçant au début http par nginx

    Title = "nginx" LogFile = nginx cd /usr/share/logwatch/scripts/services cp http nginx

    pas de modification

    En attendant les prochains courriels de Logwatch, vous pouvez le lancer en direct, en ciblant les services et en utilisant les logs de Today ou Yesterday:

    logwatch --output stdout --format text --detail 10 --service cron --service iptables --service pam_unix --service sshd --service nginx --range Today --hostname raspberry

    Cependant, vous comprendrez mieux ce qui se passe sur votre système en examinant directement les journaux dans /var/log/, et en particulier ceux de /var/log/nginx/, où nginx.error vous informe des problèmes du serveur, et access.log qui vous montrera la liste de vos visiteurs, les tentatives de connexions illicites, etc.

    Logrotate

    Logrotate fait tourner les fichiers journaux dans /var/log/, donc ceux de Nginx aussi. Mon fichier /etc/logrotate.d/nginx se présente comme suit, avec une rotation par semaine :

    /var/log/nginx/*.log { weekly missingok rotate 10 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate [ ! -f /var/run/nginx.pid ] || kill -USR1 cat /var/run/nginx.pid` endscript } Sauvegarde du système

    Bon, il y a les méthodes subtiles et la mienne, genre bourrin, mais c'est efficace : débrancher le rpi, retirer la carte SD et l'USB, et les monter sur le pc afin de les sauvegarder dans les répertoires SD et USB.

    cp /chemin_de_montage_sd/* SD/ (en n'oubliant pas le fichier caché .firmware_revision) rsync -aAXv /chemin_de_montage_usb/* USB/

    Pendant que vous y êtes, un petit e2fsck sur la carte et la clef ne sont pas inutiles e2fsck -f -v /dev/sd...

    Bien sûr on peut faire les sauvegardes sans arrêter le rpi, avec rsync ou tar (à distance?) sur les bons répertoires, puis copie scp sur le pc. Mais quand tout est bien installé et finalisé, les sauvegardes deviennent rares et les seules informations à sauvegarder restent les données Pluxml dans /var/www/data/.

    Analyse et tests Awstats

    Afin de lire les statistiques de votre site, créez un répertoire où elles seront lisibles.

    mkdir /var/www/statistiques chown -R www-data.www-data /var/www/statistiques

    Pour utiliser Awstats, vous aurez besoin de Whois, ainsi qu'une règle Iptables, déjà écrite dans le script en 7.1. L'installation se fait ainsi :

    apt-get update apt-get install awstats libnet-xwhois-perl whois cp /etc/awstats/awstats.conf /etc/awstats/awstats.nomsite.sytes.net.conf

    avec quelques lignes à remplacer :

    • LogFile="/var/log/apache2/access.log" par LogFile="/var/log/nginx/access.log"
    • LogFormat=4 par LogFormat=1
    • SiteDomain="" par SiteDomain="nomsite.sytes.net"
    • HostAliases="localhost 127.0.0.1" par HostAliases="localhost 127.0.0.1 nomsite.sytes.net"
    • SkipHosts="" par SkipHosts="192.168.1.11" afin de masquer l'adresse ip de votre pc dans les statistiques, avec une modification de /usr/lib/cgi-bin/awstats.pl comme indiqué ici :

    Remplacez

    my @arrayunreg = map { if (/\(\?[-^\w]\*:(.*)\)/) { $1 } } @$array;

    par

    my @arrayunreg = map { UnCompileRegex($_) } @$array;

    Un script Cron relance régulièrement la mise à jour des statistiques en envoyant des données dans /var/lib/awstats/. C'est le fichier /etc/cron.d/awstats, avec, par exemple, une mise à jour toutes les 2 heures :

    MAILTO=root 5 */2 * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.nomsite.sytes.net.conf -a -r /var/log/nginx/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=nomsite.sytes.net -update > /dev/null

    Lorsque vous souhaitez lire les statistiques sur votre site, le plus simple est de lancer :

    /usr/share/awstats/tools/awstats_buildstaticpages.pl -dir=/var/www/statistiques/ -update-config=nomsite.sytes.net

    Inscrivez nomsite.sytes.net/statistiques/awstats.nomsite.sytes.net.html dans votre navigateur et vous pourrez voir de nombreuses statistiques sur le mois en cours. Après l'ivresse de votre succès, vous pourrez faire rm /var/www/stat/*

    Tests du site

    Des sites existent pour savoir si votre blogue fonctionne correctement :

    Références

    sans lesquelles je n'aurais pas pu faire cette installation ni ce tutoriel

    Télécharger ce contenu au format Epub

    Lire les commentaires

    OpenWrt Barrier Breaker 14.07 guide vos routes

    Samedi 8 Novembre

    La communauté OpenWrt a annoncé la nouvelle version de leur système d'exploitation éponyme pour routeurs, le 31 juillet dernier, soit un peu plus d'une année après Attitude Adjustment. La recette du cocktail Barrier Breaker sera disponible sur tous vos routeurs dès leur mise à jour.

    _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- BARRIER BREAKER (14.07) ----------------------------------------------------- * 1/2 oz Galliano Pour all ingredients into * 4 oz cold Coffee an irish coffee mug filled * 1 1/2 oz Dark Rum with crushed ice. Stir. * 2 tsp. Creme de Cacao ----------------------------------------------------- Nouveautés principales depuis Attitude Adjustment (12.09) Principaux changements
    • L'interface web utilise désormais BootStrap
    • Le noyau Linux est passé à la version 3.10
    • Un nouveau système d'init et d'évènements systèmes écrit en C : systemd^W procd
    • Des logiciels/services installables en plus du système de base comme, par exemple :
      • ocserv : service VPN de type OpenConnect
    Les systèmes de fichiers
    • La mise à jour du firmware (sysupgrade) peut être faite sur la mémoire flash NAND
    • Un système de snapshot et de rollback a été rajouté
    • Le système de montage a été réécrit en C pour le rootfs et les block devices.
    Le gestionnaire de configuration UCI
    • Il gère maintenant le test des configurations et permet de revenir sur la dernière configuration qui fonctionnait
    • Le système de déclencheur de changement système a été unifié pour redémarrer les services sur demande
    • Une couche de validation des données a été ajoutée.
    Quel est l'intérêt de mettre OpenWrt sur son routeur ?

    De prime abord, j'ai été un peu sceptique face à l'interface web d'origine de mon routeur qui ne me permettait pas d'avoir une configuration fine de mon réseau.

    Ensuite, ça permet d'avoir des mises à jour régulières des logiciels qui tournent sur le routeur. Ce qui peut permettre de régler des problèmes de sécurité, et autres, assez facilement en téléchargeant une nouvelle image et en le flashant.

    Enfin, OpenWrt m'a permis d'ajouter de nouvelles fonctionnalités sur mon routeur qui n'étaient pas incluses dans le firmware de base, comme le service VPN par exemple, ou encore la séparation en sous-réseaux différents selon les ports ethernet disponibles.

    En outre, on obtient du confort, notamment grâce à un accès SSH à la machine. Donc la possibilité d'exécuter des commandes directement dessus et de lire les sorties d'erreurs facilement lors de tests.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Joker, un logiciel pour doubler des films sous licence GPL

    Vendredi 7 Novembre

    Après avoir travaillé 6 ans dans deux studios de post-production parisiens spécialisés dans le doublage de film et de série, j'ai décidé de me mettre à mon compte et de développer un nouvel outil sous licence GPL. Il faut savoir que les logiciels utilisés en post-production sont quasiment tous propriétaires (Pro Tools, Final Cut, Avid, Mosaic, Synchronos…). Seul ffmpeg sert de temps en temps de boîte à outil vidéo mais parce que c'est gratuit et que ça permet de bidouiller dans son coin.

    Joker est un logiciel capable de lire un fichier vidéo et un fichier texte (différents formats sont supportés). La lecture peut être synchronisée à un enregistreur externe en [MIDI]. La bande rythmographique qui défile donne des indications très précises de timing de début et fin. Voici une vidéo illustrant le fonctionnement du logiciel : https://vimeo.com/98430505 et en voici une autre du résultat que l'on peut obtenir : https://vimeo.com/110453352 (un peu d'indulgence, j'enregistre avec des amis débutants).

    Pour information, j'ai créé ma société (« Phonations ») et j'essaye de faire financer le développement par les professionnels. L'outil a entre autres choses servi à doubler la dernière saison de How I Met Your Mother. Cependant, j'ai fait le choix de le diffuser sous licence libre GPL pour deux raisons :

    • favoriser sa dissémination au sein des studios de doublage ;
    • permettre à des particuliers de s'approprier l'outil.

    J'utilise le framework Qt et pour l'instant le projet fonctionne sur MacOSX et Windows qui correspondent à l'environnement de mes clients. J'ai commencé à regarder la compatibilité sur Ubuntu mais ça avance doucement par manque de temps. Si quelqu'un est intéressé pour m'aider la dessus, le projet est disponible sur Github.

    Les versions Windows et Mac sont téléchargeables sur le site du projet. Pour tester, vous pouvez utiliser cette séquence vidéo (plus texte original) et une adaptation réalisée par un ami adaptateur de doublage.
    NB: pour comprendre le principe de la bande rythmographique, je vous invite à regarder une petite vidéo sur le doublage.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Séminaire gratuit "Concevoir un système embarqué Linux avec Yocto"

    Jeudi 6 Novembre

    Le projet Yocto a tendance à devenir la solution de référence pour les industriels qui veulent concevoir un device autour de Linux embarqué.

    Hébergé par la Linux Foundation et soutenu par de très nombreux fondeurs tels Intel, AMD, Broadcom, Texas Instruments, Freescale, il sert de base à des solutions Linux commerciales, mais peut également être utilisé par tout développeur qui souhaite bénéficier d'une solution Linux embarqué à fort contenu applicatif, avec une grande qualité de production de la distribution tant du point de vue de la richesse que de la fiabilité ou de la reproductibilité.

    C'est pourquoi CIO Systèmes Embarqués, pour le compte du programme Cap'tronic qui vise à réussir l’intégration de solutions électroniques et de logiciel embarqué dans les produits des PME, anime un séminaire gratuit dédié à ce sujet le 4 décembre 2014 à Villefontaine (Isère).

    Ce séminaire d'une 1/2 journée est l'occasion de faire un point sur 10 années d'évolution de Linux dans l'embarqué, puis de mettre en avant la nécessité de se doter d'un outil adapté pour créer une distribution embarquée adaptée aux besoins actuels, avant d'entrer plus en détail sur le projet Yocto et l'outil qu'il propose.

    Une démonstration de l'utilisation de l'outil sur le poste développeur, et de la distribution générée sur carte ARM intégrant un processeur IMX.6 de Freescale est prévue en fin de séminaire, ainsi qu'une session de questions / réponses.

    Si le séminaire est gratuit, les inscriptions sont obligatoires.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Pythran 0.6 - compilation de noyaux scientifiques écrits en Python

    Jeudi 6 Novembre

    Pythran est un compilateur pour les noyaux de calcul scientifique écrit en Python. Il permet d'écrire des modules dans un large sous-ensemble de Python + Numpy, d'ajouter quelques lignes de commentaire pour spécifier les types des fonctions exportées, enfin de compiler l'ensemble pour obtenir un module natif capable (parfois !) d'utiliser efficacement multi-cœurs et unités vectorielles. Le reste de la dépêche décrit le fonctionnement du compilateur, les évolutions récentes et propose une comparaison avec les alternatives : Cython, numba et parakeet.

    Sommaire Exemple d'utilisation de Pythran

    Prenons un petit code de calcul classique, extrait de la suite de validation de parakeet

    import numpy as np def harris(I): m,n = I.shape dx = (I[1:, :] - I[:m-1, :])[:, 1:] dy = (I[:, 1:] - I[:, :n-1])[1:, :] # # At each point we build a matrix # of derivative products # M = # | A = dx^2 C = dx * dy | # | C = dy * dx B = dy * dy | # # and the score at that point is: # det(M) - k*trace(M)^2 # A = dx * dx B = dy * dy C = dx * dy tr = A + B det = A * B - C * C k = 0.05 return det - k * tr * tr

    C'est un bon exemple de code scientifique écrit en Python : c'est du haut niveau, on travaille pas mal sur les tableaux (à la FORTRAN ;-)). Le code est un peu polymorphique (la fonction marche sur des tableaux de float ou de double par exemple), mais il y a un contrat implicite (sur la dimension de I). On attend généralement d'un bon développeur Python + Numpy qu'il écrive - quand c'est possible et que cela reste lisible - du code de haut niveau qui aurait cette forme.

    Pour compiler ce code avec Pythran, trois choses à faire :

    1. le mettre dans un fichier / module à part, disons speedy.py, éventuellement avec d'autres fonctions compatibles avec Pythran. Gageons que cela permette de séparer la partie calcul du reste de l'application (<< oui, ceci est une tentative maladroite de justifier une contrainte imposée par Pythran !) ;

    2. ajouter une ou plusieurs lignes pour informer Pythran des versions de cette fonction à générer, par exemple :

    #pythran export harris(float64[][]) #pythran export harris(float32[][])

    3. compiler le module en module natif :

    $ pythran speedy.py

    cette ligne aura pour effet de générer un module natif speedy.so que l'on peut importer comme un module « normal »

    from speedy import harris Fonctionnement interne de Pythran

    Pythran est un compilateur statique, par opposition à un compilateur faisant de la compilation à la volée, ce qu'on trouve majoritairement dans le monde des langages interprétés (voir par exemple PyPy, Pyston, mais numba et parakeet comptent aussi). Cython est lui aussi un compilateur statique. Le prix à payer est une petite ligne pour déclarer le type de la fonction exportée (mais pas des fonctions intermédiaires!), on peut espérer y gagner en temps d'exécution (on a plus de temps pour compiler, donc on peut se permettre des analyses / optimisations plus coûteuses), même si on dispose de moins d'informations (aucune information de contexte sur la valeur des paramètres).

    Une séance de compilation (c'est un peu la séance de massage du .py ;-)) se déroule ainsi :

    1. Transformation du .py en un Arbre syntaxique abstrait (AST) en utilisant le module standard ast ;
    2. Vérification des contraintes de Pythran (pas d'eval !) et simplification de l'AST en une Représentation Interne (IR) qui reste proche de l'AST;
    3. Analyses de l'IR (par exemple fonctions pures, use-def chains, cfg, etc.) et optimisations (indépendantes du type) de l'IR, par exemple propagation de constantes interprocédurales, élimination de code mort, forward substitution, passage en évaluation paresseuse
    4. Génération de code, soit du Python, dans ce cas Pythran n'a pas besoin des annotations d'export de fonction et on s'arrête à cette étape, soit du C++, dans ce cas un Méta-programme (comprendre : une soupe de template) est généré et on passe à l'étape suivante.
    5. Instanciation du méta-programme à l'aide des annotations d'export de fonction par le compilateur C++ de votre choix. Cette étape repose sur la présence d'une bibliothèque, pythonic basée sur NT2, qui fournit des conteneurs et des opérations optimisées pour la calcul scientifique. Certaines optimisations ont lieu à ce moment (Expression templates mes amours).
    Performance du code généré

    Il est toujours difficile (et bien souvent biaisé) de sortir des courbes de performance et de se comparer aux autres. Prenons le cas de la fonction harris. Elle vient de la suite de validation de parakeet, donc au moins, elle n'est pas biaisée en notre faveur ;-)

    Pour mesurer les perfs, j'utilise le très standard module timeit. Bon en fait je l'ai monkey patch pour qu'il me donne aussi l'écart type, mais ça a peu d'importance. Donc :

    ~~&xx000A;$~~ python -m timeit -s 'from harris import harris; import numpy as np ; a = np.random.randn(512, 512)' 'harris(a)'

    Pour du code Python (2.7, désolé, numpy 1.8.2), j'obtiens ça (les temps sont en nanosecondes, c'est ce que sort timeit):

    bench engine min average dev ----- ------ --- ------- --- harris Python 5441 5471 25

    En compilant avec Pythran, sans options particulières et en utilisant GCC (4.9) comme backend, on a grosso modo un facteur d'accélération de deux, qui correspond principalement à la suppression des tableaux intermédiaires :

    bench engine min average dev ----- ------ --- ------- --- harris pythran 2512 2644 150

    Cela correspond à peu près aux temps obtenus par parakeet (0.24):

    bench engine min average dev ----- ------ --- ------- --- harris parakeet 2919 2939 18

    numba (0.15.1) est hors course, mais le code de haut niveau, ce n'est pas trop son truc, il préfère les boucles :

    bench engine min average dev ----- ------ --- ------- --- harris numba 6420 6435 10

    On peut s'amuser à utiliser Clang (3.5) au lieu de GCC (4.9) comme backend, dans ce cas on obtient:

    bench engine min average dev ----- ------ --- ------- --- harris pythran-clang 2563 2695 144

    c'est-à-dire pas de grosse différence.

    Pas de benchmark Cython, parce qu'utiliser Cython, ça veut dire réécrire son code, que c'est berk et que je n'ai pas envie de benchmarker ma (mé)connaissance de leur sous-langage.

    Pour faciliter nos développement, j'ai regroupé des benchmarks glanés ici et là sur un dépôt https://github.com/serge-sans-paille/numpy-benchmarks avec deux trois outils pour collecter les temps et les formater. Je ne vais pas me lancer dans l'exercice périlleux de leur interprétation, mais voilà une sortie qui donnera peut-être lieu à des commentaires intéressants !

    Les temps sont ceux sortis par timeit en nanosecondes (c'est des moyennes hein), 0 veut juste dire que le compilateur a échoué à compiler le code. Ni vectorisation ni parallélisation là dedans ;-)

    Python numba parakeet pythran pythran-clang allpairs_distances 37601 0 1752 *1718* 1763 allpairs_distances_loops 50650 55759 2611 1757 *1671* arc_distance 1377 1373 1444 855 *816* conv 1947702 2596320 *1805* 1868 1886 create_grid *3788* 3895 0 3836 4059 cronbach 1702 1642 0 *1479* 1782 diffusion 22597 23201 14684 4913 *4153* evolve 5958 0 0 3887 *3408* fdtd 1571130 2028434 0 *1184* 2802 fft 24023 0 0 *813* 1138 grouping 2117 0 0 836 *785* growcut 1799480 4123 *2114* 3861 5545 harris 5471 6435 2939 *2644* 2695 hasting 9 10 61 *1* *1* hyantes 258354 294639 1863 *1707* 1920 julia 2678910 2801 *49* 2465 2498 l2norm 5807 5753 12221 *876* 881 local_maxima 57142 0 0 5198 *1299* lstsqr 7544 6851 0 2305 *2282* mandel 443242 *4581* 0 5153 5758 multiple_sum 2999 3132 7640 1673 *1254* pairwise 3937063 5665 *3397* 3471 3424 periodic_dist 1779 1870 0 *1002* 1136 repeating 1245 1282 0 659 *560* reverse_cumsum 2636 2642 0 *2370* 2372 rosen 14192 12891 1522 1446 *1232* slowparts 5606 0 *983* 2470 2507 smoothing 982609 4878 6266 4866 *3146* specialconvolve 8171 7394 7917 2197 *1373* vibr_energy 2584 2557 2282 *1192* 1494 wave 52355 51844 0 *1078* 1239 wdist 82199 91824 2456 1536 *1364* Nouveauté dans la version 0.6

    Pour les courageux, d'après le Changelog, que je vous traduis pour l'occasion :

    • Support complet de la vectorisation. Toutes les expressions numpy sont vectorisées (AVX/SSE) grâce à Boost.SIMD !
    • Meilleure gestion de la mémoire à la frontière entre Python et C++
    • Support des appels par paramètres nommés (e.g. np.zeros(10, dtype=np.int32))
    • Meilleur support des nombres complexes
    • Beaucoup de nettoyage de code
    • Génération de code plus efficace pour les boucles explicites
    • Paquet ArchLinux, guide d'installation sur MacOS
    • Validation par Travis, qui valide en mode séquentiel, vectoriel et parallèle !
    • Améliorations des performances pour les expressions Numpy
    • Utilisation de memcpy pour les copies de tableaux / sous-tableaux dès que possible
    • Propagation de constante bien plus efficace
    • Possibilité de compiler du code Pythran à travers distutils
    • Plus de fonctions numpy supportées, et amélioration de l'existant
    • Forward substitution de meilleur qualité
    • Passage à la nouvelle version de NT2
    • Dépendance sur libgomp maintenant optionnelle
    La suite ?

    Il commence à y avoir une petite communauté d'utilisateurs, c'est très agréable d'avoir des retours (même si ce sont souvent des retours de bugs), voir des demandes d'améliorations ! Passez faire un coucou sur l'IRC (FreeNode, #pythran) si ça vous tente de contribuer ;-)

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Jeudi du libre du 6 novembre 2014 à Lyon

    Jeudi 6 Novembre

    Comme tous les premiers jeudis du mois, l'ALDIL, le GULL Lyonnais, organise son jeudi du libre, avec pour thème Ubuntu fête ses 10 ans à Lyon !. Il s'agira d'une conférence-débat en deux parties sur l'histoire et l'avenir de la distribution la plus connue du grand public et des utilisateurs de GNU/Linux.

    1. Rétrospective au travers de l'histoire de la communauté francophone
    2. Ubuntu : perspectives et évolutions

    La soirée sera animée par la présence d'utilisateurs mais aussi et surtout de contributeurs au développement de la distribution.

    La conférence se déroulera à la Maison Pour Tous / Salle des Rancy, au 249 rue Vendôme - 69003 LYON (Métro Saxe Gambetta), et débutera à 19h30.

    • Rétrospective au travers de l'histoire de la communauté francophone

    La première version d'Ubuntu, dérivée de Debian, a vu le jour en octobre 2004. En France dès cette époque une communauté s'est créée autour du site http://www.ubuntu-fr.org/. Le forum, la documentation ont rapidement donné naissance à l'association francophone devenue "loco-team officielle".

    Comment les rapports avec Canonical s'organisent-ils ? Qui produit les versions francophones ? Comment s'organisent l'infrastructure du site ainsi que les ubuntu-party ?

    • Ubuntu : perspectives et évolutions

    Depuis ses débuts Ubuntu, ainsi que le "paysage numérique", ont beaucoup évolué. Utilisateurs historiques, écrans tactiles, mobilité, interface grand public, besoins des grandes structures (Chine, Corée du Sud, entreprises…) sont quelque-unes des thématiques auxquelles Ubuntu doit répondre.

    Comment concilier des attentes contradictoires ? Au delà des débats stériles Ubuntu se résume-il à Unity ? Que pourrait être Ubuntu à l'avenir ? Et quelle est la place de la communauté dans tout ça ?

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Worldwide Meteor 1.0 Day

    Mercredi 5 Novembre

    Rejoignez nous à Paris jeudi 6 novembre vers 18h30 chez Numa pour un événement unique : le Worldwide Meteor 1.0 Day ! Meteor est une plate‐forme open source facilitant le développement d’applications modernes Internet et mobiles en JavaScript.

    Toute la communauté Meteor organise des meetups simultanément à travers le monde le 6 novembre ; ouvert à tous ceux qui sont intéressés à en apprendre plus sur la plate-forme Meteor.

    Vous aurez la chance de rencontrer des développeurs d'applications réalisées avec Meteor, jouer avec les nouveaux exemples et tutoriels ainsi que de participer à une session de questions/réponses via Hangouts avec un développeur du Meteor Development Group et d'experts de la communauté.

    Avec le soutien de Morea et d’Amazon AWS nous aurons des bonus à distribuer aux plus méritants d'entre-vous. N'oubliez pas d'apporter vos ordinateurs portables pour tester et développer ensemble en Meteor pendant la soirée.

    Si vous avez développé une application Meteor, n'hésitez pas à nous contacter afin de la présenter pendant la session “Show & Tell”. Cela peut être tout type de projet, petit ou grand, une application complexe ou juste quelque chose que vous avez fait rapidement un week-end.

    Lieu :

    Numa, 39 rue du Caire, Paris

    Planning :
    • 18h30 - Ouverture des portes.
    • 19h00 - Introduction à Meteor. Présentation des nouveaux tutoriels et exemples.
    • 19h30 - Install party. L’occasion pour tout le monde d’installer Meteor et déployer un des exemples.
    • 19h59 - Courte pause. Prenez une photo de groupe et tweetez la. :)
    • 20h00 - Q & A. Hangout en direct avec la core team de Meteor ou des experts de la communauté Meteor (préparez vos questions à l’avance).
    • 20h30 - Lunch
    • 20h45 - Show & Tell. Vous avez développé une application avec Meteor ? Nous voulons la voir ! Courtes démos informelles ou courtes présentations des développeurs Meteor Français.
    • vers 21h00 - Ouverture du co-programmation / networking. Objectif: Construire quelque chose de cool avec ce que vous venez d'apprendre.
    Télécharger ce contenu au format Epub

    Lire les commentaires

    Tails 1.2, une distribution pour votre anonymat

    Mercredi 5 Novembre

    La distribution Tails (The Amnesic Incognito Live System) est un media de type live-CD et live-USB, basé sur Debian GNU/Linux, visant à protéger votre anonymat et votre vie privée quand vous vous connectez à Internet.

    La sortie de la version 1.2 a été annoncée le 16 octobre dernier par l'équipe de développement.

    Plus de détails dans la suite de la dépêche sur cette version 1.2, ainsi que sur les
    versions mineures 1.1.1 et 1.1.2 sorties depuis la dépêche précédente.

    Sommaire Depuis Tails 1.1

    Depuis la dernière dépêche sur le sujet, annonçant la sortie de la version 1.1, les versions mineures 1.1.1 et 1.1.2 ont été publiées.

    Les problèmes de sécurité qui avaient été discutés lors de la précédente dépêche ont dû être résolus, au moins en partie, lors de ces sorties correctives. Bien que les failles relevées par Exodus Intelligence n'aient pas été rendus publiques, il semble qu'un certain nombre concerne I2P ce qui explique les modifications apportées à ce logiciel dans la version 1.1.1. La société Exodus Intelligence a d'ailleurs écrit deux billets de blogues où elle livre quelques détails ici et .

    Tails 1.1.1

    La version corrective 1.1.1 a été annoncée le 2 septembre.

    Correctifs de sécurité

    Comme à chaque nouvelle version, des correctifs de sécurité sont ajoutés. Parmi les logiciels qui se sont vus apporter des correctifs, on peut citer Tor (CVE-2014-5117), le noyau Linux (CVE-2014-3534, CVE-2014-4667 et CVE-2014-4943), CUPS (DSA-2990), openssl (DSA-2998), nss (DSA-2994), krb5 (DSA-3000), libav (DSA-3003) gpgme (DSA-3005) ou encore python-imaging (DSA-3009).

    Par ailleurs, Tails empêche maintenant dhclient d'envoyer le nom de l'hôte sur le réseau. Tails outrepasse également le nom de machine fourni par le serveur DHCP.

    Améliorations et modifications mineures

    OpenJDK 6 n'est plus présent ; I2P prefère la version 7 et la présence des deux versions n'est pas nécessaire. Toujours concernant I2P, il faut maintenant ajouter « i2p » à la ligne de commande noyau pour qu'il soit accessible en mode « live », dans le cas contraire, il ne sera pas accessible. Par ailleurs, l'installeur de Tails ne devrait plus mettre à jour les propriétés de partition du système sur les partitions MBR.

    Le Torbutton a été mis à jour avec la version 1.6.12.1. Les paquets gnome-user-guide et cups-pk-helper ont été ajoutés améliorant ainsi la documentation.

    En ce qui concerne SquashFS, le tri des fichiers afin d'optimiser les accès lors du boot a été amélioré. On devrait donc y gagner lors de l'utilisation d'un Live-DVD. Toujours en ce qui concerne SquashFS, le niveau de compression est plus élevé ce qui réduit la taille de l'ISO de Tails.

    Une liste complète et plus technique des changements est disponible en consultant le changelog (en anglais).

    Tails 1.1.2

    La version corrective 1.1.2 a été annoncée le 25 septembre.

    Correctifs de sécurité

    Pour cette nouvelle vague de correctifs de sécurité, on peut citer file (DSA-3021), curl (DSA-3022), gnupg (DSA-3024), apt (DSA-3025, DSA-3031), dbus (DSA-3026), libav (DSA-3027) et bien entendu bash (DSA-3032) dont la faille récente « shellshock » avait fait l'objet d'une dépêche ici-même.

    Une liste complète et plus technique des changements est disponible en consultant le changelog (en anglais).

    Les nouveautés de Tails 1.2 Améliorations et modifications mineures

    Le nouveau navigateur web s'appuie maintenant principalement sur le Tor Browser au lieu d'Iceweasel précédemment. La version installée correspond au Tor Browser 4.0 qui est fondé sur Firefox ESR 31.2.0. La faille POODLE n'est ainsi pas exploitable. Par ailleurs, Tor est disponible en version 0.2.5.8-rc.

    Plusieurs applications importantes ont été confinées avec AppArmor (la note de sortie ne donne pas plus de détails).

    La version 0.9.15 d'I2P est présente. Par ailleurs, un I2P Browser fait son apparition afin d'isoler tout le trafic I2P du Tor Browser. Par ailleurs, I2P démarre automatiquement lors de la connexion au réseau, si l'option de démarrage i2p est ajoutée.

    Suite à l'arrêt du développement assez étrange de TrueCrypt, ce logiciel sera retiré de Tails 1.2.1. Ainsi, cette version intègre une documentation qui explique comment ouvrir des volumes TrueCrypt en utilisant cryptsetup qui sera son remplaçant.

    syslinux est présent en version 6.03-pre20 ce qui devrait corriger des problèmes de démarrage UEFI sur certains matériels.

    Correctifs de sécurité

    Concernant les correctifs de sécurités, la note cite plusieurs corrections liées au Tor Browser (MFSA-2014-74, MFSA-2014-75, MFSA-2014-76, MFSA-2014-77, MFSA-2014-79, MFSA-2014-81 et MFSA-2014-82), NSS (DSA-3033), apt (DSA-3047), rsyslog (DSA-3040, DSA-3047) et encore bash (DSA-3035).

    Une liste complète et plus technique des changements est disponible en consultant le changelog (en anglais).

    Et pour la suite ?

    D'après l'annonce qui a été faite au moment de la sortie de Tails 1.0, voici ce que l'on peut attendre pour les futures versions majeures de la distribution.

    Tails 2.0 se focalisera sur la soutenabilité et la maintenabilité. La grosse partie consiste à réduire la charge de travail demandée par la création de nouvelles versions de Tails grâce à l'amélioration de l'infrastructure et à l'automatisation des tests. L'objectif est d'être capable de sortir des mises à jour de sécurité le jour même.

    Tails 3.0 se focalisera sur les changements internes de Tails pour le rendre plus sécurisé. Cela comprendra un sandboxing (compartimentage) des applications critiques et un durcissement des logiciels.

    Tails 4.0 prévoit de s'appuyer sur Debian Jessie.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    openSUSE 13.2 : nouvelle version du caméléon disponible !

    Mardi 4 Novembre

    Chers contributeurs, ami(e)s et fans : openSUSE 13.2 est sortie ! Après un an d'amélioration continue sur les outils et les procédures et de nombreuses heures de développement, empaquetage, tests et corrections de problèmes, une nouvelle version stable est là, fournissant ce que le meilleur du Libre et de l'Open Source doit offrir avec une touche spéciale verte : stabilité, innovation et fun !

    C'est la première version après le changement de mode de développement. La phase de stabilisation est désormais plus courte grâce à l'augmentation des tests réalisés quotidiennement sur la distribution en rolling release, qui est utilisée maintenant comme base pour la distribution classique versionnée. D'où un meilleur équilibre entre innovation et stabilité, tout en conservant la liberté de choix à laquelle les utilisateurs d'openSUSE sont habitués.

    Cette dépêche est une traduction (autant que possible) de l'annonce :
    http://en.opensuse.org/Release_announcement

    Sommaire

    openSUSE 13.2 est…

    Innovante

    Construite autour des technologies GNU/Linux les plus innovantes : Snapper pour tirer le meilleur des possibilités de sauvegarde du puissant système de fichiers Btrfs, Wicked pour amener la lumière sur la configuration réseau, Dracut pour assurer des temps de démarrage plus courts… Pour les utilisateurs qui veulent toujours plus d'innovations, Plasma 5.1, la nouvelle génération de l'espace de travail par KDE, est également disponible en aperçu technologique.

    Peaufinée

    Cette version est le premier pas vers l'adoption par le système du nouveau design openSUSE. Le changement graphique est identifiable partout : sur l'installateur, sur le chargeur d'amorçage, sur l'écran de démarrage et sur chacun des sept (!) bureaux proposés (KDE, GNOME, Xfce, LXDE, Enlightenment, Mate and Awesome). Même l'expérimental Plasma 5.1 est adapté à l'expérience globale.

    Facile

    Le nouvel installateur d'openSUSE 13.2 a reçu plusieurs changements visant à rendre le processus d'installation plus facile et plus accueillant pour les nouveaux utilisateurs. Ces changements incluent un nouveau déroulement plus direct, des propositions automatiques plus intelligentes, moins d'options de configuration en désordre et une nouvelle apparence. En outre, plusieurs outils sont inclus pour faciliter l'administration des systèmes comme l'outil de gestion des profils pour AppArmor ou le module YaST pour Snapper, pour ne citer qu'eux.

    Pour les utilisateurs KDE


    Écran d'accueil de KDE

    KDE 4.14, dédié à la mémoire de Volker Lanz, fournit une apparence, un ressenti et des fonctionnalités familières avec la stabilité solide comme le roc des dernières versions à support long terme de l'environnement de bureau Plasma (4.11.12) et des applications du dernier KDE SC (4.14.2). La couche KDE Telepathy offre des fonctionnalités comme le chiffrement Off-the-Record (OTR) pour la messagerie instantanée, la prise en charge de nombreux protocoles et un jeu d'éléments graphiques pour l’environnement Plasma. Les applications utilisant la couche multimédia sont maintenant basées sur la version 1.0 de GStreamer, permettant une réduction notable des dépendances.

    GNOME


    GNOME météo

    GNOME 3.14 prend bien mieux en charge les écrans à haute densité de pixels (HiDPI) et les périphériques d'entrée multipoint (multitouch). La gestion du réseau et de la géolocalisation a également été largement revue, tout comme l'intégration de Wayland. Toutes les applications GNOME ont reçu de nouvelles fonctionnalités et améliorations. En outre, c'est la première version d'openSUSE à inclure GNOME Software, l'AppStore pour le bureau GNOME.

    Autres environnements de bureau


    Le menu LXDE

    C'est la première version d'openSUSE à inclure officiellement MATE (1.8.1), qui fournit un bureau traditionnel, idéal pour ces utilisateurs qui adoraient GNOME du temps de la 11.4… Comme dans la précédente version, openSUSE 13.2 propose aussi Xfce (4.10), LXDE (0.5.5), Enlightenment 19 (0.19.0) et Awesome (3.4.15). Tous ces environnements ont reçu des mises à jour, allant des améliorations visibles concernant l'interface à d'autres moins visibles concernant la prise en charge de systèmes sous-jacents tels systemd et upower.

    Pour les administrateurs


    Outils système GNOME

    Virtualisation

    En plus de LXC 1.0.6 et des solutions de virtualisation complètes fournies avec openSUSE (notamment QEMU 2.1 et VirtualBox 4.3.18), cette version inclut Docker 1.2. Avec la disponibilité des images de la 13.2 dans le Docker Hub, openSUSE est un système de base tout à fait adapté pour distribuer des applications.

    Amélioration de YaST


    Résumé de l'installation

    Plusieurs composants de YaST ont été améliorés et nettoyés après la conversion automatique du langage YCP vers Ruby effectuée avec la 13.1. Le nouveau YaST est ainsi plus rapide, plus stable et mieux intégré avec systemd, Btrfs et les autres technologies récentes incluses dans openSUSE 13.2. Le nouveau processus d'installation supprime la phase de configuration après le premier redémarrage, ce qui permet notamment de créer un profil AutoYaST complet et réutilisable sans avoir à effectuer l'installation proprement dite.


    L'interface texte de YaST

    Pour les développeurs EDI et outils


    KDevelop 4.7.0

    openSUSE 13.2 propose le très complet KDevelop en version 4.7.0, la dernière des versions basées sur la plate-forme de développement de KDE 4.x. En plus du C++, cet EDI prend en charge des langages comme PHP ou Python via des greffons. En outre, les dernières versions d'autres EDI populaires sont disponibles, comme Anjuta 3.14 et deux variantes de Qt Creator 3.2.1 (une pour Qt4 et l'autre pour Qt5).

    Langages et bibliothèques


    Qt Creator avec Qt5

    KDE Frameworks 5, une suite de bibliothèques de développement construite par KDE au-dessus de Qt 5, est présente dans sa dernière version stable (5.3.0). Les bibliothèques coexistent avec les variantes 4.x, permettant le développement d'applications basées sur KF5 dans un espace de travail stable basé sur une version 4.x. Dans le domaine des langages dynamiques, l'empaquetage concernant Ruby est maintenant plus facile. Besoin de JRuby ? Envie de Rubinius ? Pas de problème. Non seulement Ruby a été mis à jour (2.1.3), mais aussi Python (2.7.8 et 3.4.1), PHP (5.6.1), Perl (5.20) et bien d'autres.

    Go, utilisez la !

    Pour télécharger openSUSE 13.2, rendez-vous sur http://software.opensuse.org/132/fr. Nous vous recommandons de lire les notes de version avant toute mise à jour ou installation.

    Les utilisateurs actuellement sous openSUSE 13.1 peuvent mettre à jour vers openSUSE 13.2 en suivant les instructions.

    Consultez les images disponibles pour l'architecture ARM sur le wiki ARM. Les images stables de la 13.2 pour ARMv7 et ARMv8 (AArch64) sont là et recevront des mises à jour de maintenance tout au long de la durée de vie de la 13.2. L'image pour ARMv6 est expérimentale et n'offre aucune garantie.

    Merci !

    Le développement de la 13.2 a regroupé les efforts de milliers de développeurs qui participent à nos distributions et aux projets livrés avec elles. Les contributeurs, internes et externes au projet openSUSE, devraient être fiers de cette version et ils méritent un grand « merci » pour tout le travail et les soins qui ont été consacrés à celle-ci. Nous croyons que la 13.2 est la meilleure version d'openSUSE et qu'elle contribuera à encourager l'utilisation de GNU/Linux partout ! Nous espérons que vous aurez tous beaucoup de plaisir lors de son utilisation et nous sommes impatients de travailler avec vous sur la prochaine version !

    À propos du projet openSUSE

    Le projet openSUSE regroupe une communauté mondiale qui encourage l'utilisation de GNU/Linux. Il crée une des meilleures distributions Linux au monde, travaillant ensemble de manière ouverte, transparente et conviviale dans le cadre de la communauté du Logiciel Libre et Open Source à travers le monde entier. Le projet est piloté par sa communauté et s'appuie sur les contributions d'individus, travaillant comme testeurs, rédacteurs, traducteurs, experts en ergonomie, artistes et ambassadeurs ou encore développeurs. Le projet englobe une grande variété de technologies, des personnes ayant différents niveaux d'expertise, parlant différentes langues et ayant des origines culturelles variées. Si vous souhaitez en savoir plus à ce sujet, c'est sur opensuse.org.

    Fusion des dépôts Tumbleweed et Factory

    L'actualité openSUSE est également marquée par la fusion récente des dépôts Tumbleweed et Factory. Nous avions :

    • Le dépôt Tumbleweed qui proposait une distribution en perpétuelle évolution (rolling release) en maintenant ses logiciels constamment à jour.
    • Le dépôt Factory qui proposait la version de développement de la distribution.

    Tumbleweed sera le nom conservé pour le nouveau dépôt unique, proposant une distribution rolling release mais pouvant aussi servir de base pour la préparation des versions classiques telles que cette 13.2.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Fuzix OS, parce que les petites choses sont belles

    Mardi 4 Novembre

    « Ras le bol de systemd ? Kdbus est la goutte de trop ? La communauté Linux est trop vaste et trop bruyante ? Vous languissez de ce bon vieux temps où vous connaissiez chaque contributeur par son nom et que le code source tenait sur une seule disquette ? »

    C’est par ces mots qu’Alan Cox a introduit Fuzix OS ce 31 octobre, un noyau Unix pour Zilog Z80. Le Z80 est un processeur 8 bits conçu dans les années 70.

    Alan Cox est un programmeur britannique très impliqué dans le développement de Linux et ce depuis le début. Il est notamment connu pour avoir maintenu pendant très longtemps la version 2.2 de Linux ainsi qu’une version personnelle de Linux 2.4 (oui, il semble s’attacher facilement aux vieilleries). Après avoir été employé par Red Hat pendant 10 ans puis par Intel, il avait annoncé prendre de la distance avec Linux en janvier 2013, pour des raisons familiales.

    Mais il y a toujours de la place pour faire des choses rigolotes ! Et le fun est la motivation principale d’Alan Cox dans ce projet.

    Le nom FUZIX fait référence à un système d’exploitation déjà existant, UZI (Unix: Z80 Implementation), et à ses multiples dérivés incompatibles et non portables (UZI180, UZIX, uMZix…). FUZIX reprend divers éléments de ces différents forks ainsi que plusieurs bonnes choses de ELKS (Embeddable Linux Kernel Subset) et OMU (One Man Unix), en saupoudrant un peu de POSIX et quelques idées de Minix dans le chaudron. Le but est de mettre un peu de cohérence dans tout cela et à terme, de fournir une expérience System V complète, mais sans embonpoint !

    Alan Cox ne ferme pas la porte à d’autres architectures éventuelles, il parle déjà du 8086 mais pour évoquer le manque crucial de compilateur C ANSI pour cette architecture, qui l’eût cru ?

    Les plate-formes actuellement prises en charge par FUZIX sont Z80Pack, un système d’émulation de l’architecture Z80, et l’Amstrad NC100, un petit ordinateur portable des années 90. L’Amstrad NC100 permet à Alan d’éprouver FUZIX sur du vrai matériel.

    Les hackers intéressés pourront se référer au README pour découvrir ce que FUZIX a de plus qu’UZI, par exemple des noms de fichiers de 30 caractères, la possibilité d’être compilé par le compilateur moderne SDCC (Small Device C Compiler), ainsi que pleins de nouveaux bugs ! Il faudra bien évidemment se référer au même document pour découvrir ce qu’il manque encore à FUZIX, notamment un alias /dev/tty, une pile TCP/IP, etc. Si vous avez toujours rêvé d’implémenter une pile TCP/IP sur architecture 8 bits, voici peut-être venue votre heure de gloire.

    Je vois d’ici ceux du fond avec les yeux qui brillent en pensant à leur TI-83, malheureusement FUZIX nécessite au minimum 40K de mémoire vive pour le noyau seul, FUZIX ne tournera donc pas sur votre calculatrice bien aimée. Vous pourrez vous rabattre sur le T80, un cœur Z80 pour FPGA.

    Alan Cox a donc annoncé le projet FUZIX le 31 octobre dernier à l’occasion d’Halloween, et ce n’est pas une farce. Ceux qui préfèrent le 8086 sont invités à continuer l’effort de rendre le Portable C Compiler (pcc 8086) compatible ANSI.

    FUZIX est distribué sous license LGPL. Il était une fois Fuzix OS, et ça se forke dès maintenant.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Revue de presse de l'April pour la semaine 44 de l'année 2014

    Mardi 4 Novembre

    La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

    Sommaire

    [JDN] L'open source désormais au cœur des systèmes industriels stratégiques

    Par Antoine Crochet- Damais, le vendredi 31 octobre 2014. Extrait:

    Open CIO Summit 2014 Le JDN a pu assister à l'Open CIO Summit 2014. Organisé dans le cadre de l'Open World Forum, cet évènement pour DSI à huis clos a permis de découvrir des projets open source de haut vol.

    Lien vers l'article original: http://www.journaldunet.com/solutions/dsi/open-cio-summit-2014.shtml

    Et aussi:

    [01 Business] L'open source modernise en profondeur le SI de l'Etat

    Par Par Alain Merle, DISIC, Directeur du programme « Transformation des centres informatiques », le vendredi 31 octobre 2014. Extrait:

    L’open source infuse de plus en plus les couches d’infrastructures de l’Administration. Ce mouvement est doublement bénéfique: il limite l’adhérence aux grandes technologies propriétaires et laisse libre court à l’expérimentation.

    Lien vers l'article original: http://pro.01net.com/editorial/630062/l-open-source-modernise-en-profondeur-le-si-de-letat

    [Numerama] Mes-Aides, un outil public open-source créé par l'Etat

    Par Julien L., le vendredi 31 octobre 2014. Extrait:

    Dans le cadre de l'action de l'État visant à simplifier l'accès à l'administration et modernisation l'action publique, un service Mes-Aides permet de calculer les aides dont les individus peuvent bénéficier. Particularité, le service met à disposition son code source pour faciliter les contributions extérieures.

    Lien vers l'article original: http://www.numerama.com/magazine/31145-mes-aides-un-outil-public-open-source-cree-par-l-etat.html

    [La Tribune] Le mobile a relancé, en pire, la guerre des systèmes d'exploitation

    Par Laszlo Perelstein et Romain Charbonnier, le jeudi 30 octobre 2014. Extrait:

    Rencontré à Lyon à l'occasion du Blend Web Mix, Tristan Nitot, fondateur et président de l'association Mozilla Europe depuis 2003, explique pourquoi le Web est une plate-forme à privilégier, au moment où, avec le mobile, la guerre des systèmes d'exploitation reprend de plus belle.

    Lien vers l'article original: http://www.latribune.fr/technos-medias/20141030trib676c601de/le-mobile-a-relance-en-pire-la-guerre-des-systemes-d-exploitation-tristan-nitot-president-de-mozilla-europe.html

    [Le Journal de Montréal] Informatique gouvernementale: un changement de culture

    Par Pierre Bouchard, le jeudi 30 octobre 2014. Extrait:

    L’État est un immense paquebot qui ne se manœuvre pas aussi facilement qu’une motomarine. Mais ce n’est pas une raison pour ne pas donner un sérieux coup de barre lorsqu’il est nécessaire de le faire. C’est pourquoi l’annonce de la démission du Dirigeant principal de l’information (DPI) offre au gouvernement une occasion parfaite pour opérer un changement de culture informatique au sein de l’État.

    Lien vers l'article original: http://www.journaldemontreal.com/2014/10/30/informatique-gouvernementale-un-changement-de-culture

    [Le Monde.fr] Tim Berners-Lee: «L'intérêt pour les libertés numériques est sans précédent»

    Par Damien Leloup, le mercredi 29 octobre 2014. Extrait:

    Le World Wide Web Consortium (W3C), l'organisme chargé de fixer les standards du Web et de son principal langage, le HTML, fête ses 20 ans mercredi 29 octobre. Tim Berners-Lee, fondateur du W3C et principal inventeur du Web, revient sur les évolutions passées et à venir du réseau.

    Lien vers l'article original: http://www.lemonde.fr/pixels/article/2014/10/29/tim-berners-lee-l-interet-pour-les-libertes-numeriques-est-sans-precedent_4513902_4408996.html

    [Slate.fr] Terrorisme: Internet n'est pas l'ennemi

    Par Jillian C. York, le lundi 27 octobre 2014. Extrait:

    Pourquoi les initiatives internationales visant à stopper l’organisation État islamique ne doivent pas s'opérer aux dépens des libertés numériques.

    Lien vers l'article original: http://www.slate.fr/story/93911/terrorisme-internet-ennemi

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Install party lubuntu à Igny (91) les 16 novembre et 13 décembre 2014

    Lundi 3 Novembre

    Deux install parties lubuntu sont organisées à Igny (Essonne), par l'association SecondeViePC, dans la salle des fêtes de la mairie, pour recycler ses vieux PC. Elles auront lieu les 16 novembre et 13 décembre 2014, de 11h à 17h.

    Comment donner une seconde vie à un PC vieux de 2 ans ou même de 10 ans ?

    • Votre ancien ordinateur rame, grogne, bref ne veut plus fonctionner ?
    • Vous avez envie de découvrir un système d’exploitation libre, simple, stable, rapide et sécurisé ?
    • Vous avez entendu parler d’Ubuntu (gnu/linux), mais vous n’osez pas vous lancer seul ?
    • Vous maîtrisez gnu/linux et souhaitez soutenir ceux qui veulent le maîtriser ?

    L'évènement est ouvert à tous. Une participation aux frais de 15€ est demandée (clé usb fournie + pizza à midi).

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Documentaire "Les Gardiens du nouveau monde" de Flo Laval

    Lundi 3 Novembre

    Le 6 septembre dernier, lancelotsix publiait un journal sur le documentaire « Les Gardiens du nouveau monde » de Flo Laval (durée 55min), concernant « l’émergence d’une nouvelle génération de militants hacktivistes ». À l'époque, Mediapart avait publié un article dessus et les abonnés de ce journal pouvaient apprécier la publication en .webm/.ogg. Pour les autres, le DVD pouvait (et peut toujours) être obtenu via l'éditeur.

    Dans les commentaires du journal précédent, un lien vers une vidéo non autorisée avait été donné (et bloqué par la maison d'édition), et le réalisateur était venu préciser sa position : « Je suis le premier désolé que ce film ne soit pas en CC. (…) Laissez nous le temps de rentrer dans nos frais, et dans quelques mois, je peux vous assurer que nous mettrons le film en ligne gratuitement ! Je vais même tout faire pour que le producteur le passe dans une licence CC. »

    Non seulement il a tenu parole, mais en plus il est revenu l'annoncer : « le film est désormais disponible en consultation libre et licence CC » (CC By-NC-SA). Les esprits chagrins râleront sur la licence non-libre retenue et les autres auront à cœur de remercier l'auteur d'avoir tenu sa promesse et faciliter la diffusion du documentaire.

    Et pour revenir au contenu du documentaire : « Le casting des intervenants est assez classique avec pour ne citer qu'eux Jean-Marc Manach ou Jérémie Zimmermann. Notons la présence importante de Okhin (membre de télécomix) aidant le documentaire à traiter des questions d'activisme sur et via internet. Il est également question de vie privée de protection des communications et des enjeux associés. »

    « C'est un documentaire qu'il peut être intéressant de faire voir aux personnes peu au fait de ces questions pour les sensibiliser / attiser leur curiosité. »

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Points Libres GNU/Linux, Blender, Logiciels Libres le 3 novembre 2014 à Montpellier

    Lundi 3 Novembre

    Le lundi 3 novembre 2014 de 14h00 à 19h00 a lieu le rendez-vous mensuel Points Libres proposés par Montpel’libre.

    Les Points Libres proposés par Montpel’libre prennent leurs quartiers à la Maison des Adolescents de l’Hérault MDA34 (9, rue de la République 34000 Montpellier). Tous les premiers lundis de chaque mois la MDA hébergera les Points Libres, dans les salles accueil cyberespace et partenaires.

    Programme de l'évènement

    14h00-16h00 : accueil à la Maison des Adolescents de l’Hérault des personnes qui souhaitent approfondir leurs connaissances sur les systèmes et logiciels libres, Linux ou utiliser librement les ressources numériques, salle accueil PC.

    16h00-19h00 : toute une équipe de passionnés, vous proposent l’animation de l’atelier « Points Libres » par les membres de Montpel’libre. Permanence Logiciels Libres, discussions libres et accompagnements des utilisateurs aux systèmes exploitation libres, Linux, Haiku. Installation de Mint, Ubuntu, Emmabuntüs et HandyLinux sur le cyberespace de consultations libres.

    16h00-17h00 : introduction à Blender, (inscriptions recommandées).

    • téléchargement et installation ;
    • généralités sur l’image 3D ;
    • présentation générale de l’interface ;
    • découverte des outils de base ;
    • configuration et préférences.

    Pour les utilisateurs plus avancés, une aide sur des points précis ou blocages et possible, salle partenaires à l’étage.

    Le fond documentaire de la bibliothèque de logiciels libres de Montpel’libre est disponible dans la salle des partenaires.

    L'entrée est libre et gratuite pour tout public. De plus, le lieu est certifié « Accessibilité PMR ».

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Rust 0.12 : non, pas le jeu vidéo, le langage !

    Lundi 3 Novembre

    Le langage de programmation Rust continue son bonhomme de chemin et se prépare à une version bêta 1.0 avant la fin de l'année.

    En attendant, Rust 0.12 est sorti le 9 octobre 2014 ! Pour rappel, Rust est un langage de programmation système qui vise la performance et la sûreté. Il est développé par Mozilla, en parallèle d'un nouveau moteur expérimental de rendu de pages web écrit en Rust : Servo.

    Rust est open source au sens de l'OSI et libre. Son développement est fait de façon ouverte sur GitHub et le code source est publié sous double licence Apache 2.0 et licence MIT.

    Pour une meilleure compréhension des détails techniques de cette dépêche et des évolutions de Rust, il est conseillé de se référer à la dépêche sur Rust 0.8 (ainsi qu’aux suivantes que vous trouverez via les tags rust et langage_rust).

    Sommaire

    Évolutions

    Depuis sa première sortie en 2012 (voir la dépêche sur la version 0.1), le langage a connu un développement rapide en intégrant des fonctionnalités qui incluent les types de données algébriques, les fermetures, l'inférence de type, la sécurité de la mémoire garantie et un environnement d'exécution minimal.

    Depuis la version 0.11, les spécifications du langage ont peu changé.

    Principaux changements

    Voici une liste laconique des apports majeurs :

    • les annotations de durées de vie ne sont plus obligatoires dans plusieurs cas communs ;
    • clauses where ;
    • notation pour les tranches. C’est un opérateur surchargeable ;
    • travail sur les types à taille dynamique ;
    • plein d’autres RFC implantées, par exemple :
    Prochains changements avant la version 1.0

    Il y a un an, la version 1.0 était prévue pour la fin 2014. La feuille de route se remplit petit à petit. Cependant, il reste quelques points (attention, c’est un peu technique) :

    • types de taille dynamique : cette extension du système de type permet de gérer des types à taille fixe mais non connue à la compilation ;
    • fermetures unboxed ;
    • types associés ;
    • clauses where ;
    • traits Multidispatch ;
    • destructeurs ;
    • threads verts (green thread).

    On trouve également des discussions sur les RFC pour implanter de l’héritage dans Rust.

    Plateformes prises en charge

    Rust fonctionne sous Windows (7, 8, Server 2008 R2) seulement x86, Linux (diverses distributions) ARM, x86 et x86-64, OSX 10.7 ("Lion") et ultérieurs x86 et x86-64, ainsi qu'Android. Nouveauté toute fraîche, un portage pour Dragonfly BSD a été réalisé avec succès.

    Les procédures d'installation déjà en place pour la version 0.8 (pour Windows, Ubuntu, Arch Linux et Gentoo) décrites dans la dépêche d'il y a un an sont toujours valables et ont été mises à jour pour cette version. Dès l'annonce, les paquets pour Ubuntu ont été générés dans le PPA hansjorg/rust, une compilation pour Arch est disponible dans le dépôt [community] et pour Gentoo, l'overlay rust contient un ebuild pour cette version. Le guide — qui remplace le tutoriel — détaille aussi l'installation sur les différentes plateformes.

    Des chiffres ! Projets utilisant Rust

    OpenHub (anciennement Ohloh) tient des statistiques sur l'utilisation de Rust dans les projets qu'il recense, comme pour tout autre langage. On peut ainsi voir que le nombre de personnes qui modifient du code Rust est relativement faible, mais augmente (de 121 projets pour la version 0.10 à 165 dans les projets recensés et 1 007 386 lignes de code). Par ailleurs, le nombre de projets recensés sur GitHub passe de 1428, lors de la sortie de la 0.10, à 3262.

    Computer Language Benchmark Game

    Tout d’abord, quelques rappels sur le Computer Language Benchmark Game. C’est un test de performance entre différents langages sur différents tests. Le code source destiné au test pour chaque langage doit utiliser le même algorithme.

    Lors de son entrée dans ce fameux test, mentionnée dans la dépêche sur 0.10, Rust montrait des performances inégales en fonction des tests, bons pour fasta (génération et écriture de séquences ADN aléatoires dans le format FASTA) (aussi bon que C++) mais mauvais pour pidgits (calcul de décimales de pi).

    Avec la dernière version, le test sur pidgits place le langage à égalité en première place avec le C, avec tout de même une plus grande consommation mémoire. Le langage est même plus performant que C++ pour la moitié des tests.

    Pour plus de détails sur les différents tests (algorithme, codes source pour les différents langages), vous pouvez consulter la page qui liste tous les tests.

    Outils Gestionnaire cargo

    Cargo s'occupe de télécharger les dépendances nécessaires au projet, teste le projet, démarre la compilation (et le binaire).

    Par exemple, on peut commencer un nouveau projet avec cargo new bonjour_monde --bin. L'exécution est immédiatement possible avec cargo run.

    Tests

    Rust est livré avec un système de tests natif. Il prend la forme de directives directement intégrées dans le code source pour les tests unitaires, alors que les tests d'intégration nécessitent la création d'un fichier dédié.

    L'exécution des tests fait appel à cargo via un simple cargo test.

    Documentation rustdoc

    Un autre utilitaire est livré gratuitement avec Rust : rustdoc permet de générer une jolie documentation écrite en Markdown. La syntaxe ne sera déroutante ni pour les moules, ni pour les utilisateurs de GitHub et StackExchange :

    /// `bonjour` est une fonction qui souhaite le bonjour à la personne spécifiée en paramètre /// /// # Arguments /// /// * `nom` - Le nom de la personne que vous souhaitez accueillir. /// /// # Exemple /// /// ```rust /// let nom = "Roger"; /// bonjour(nom); // Affiche "Bonjour, Roger!" /// ``` fn bonjour(nom: &str) { println!("Bonjour, {}!", nom); } Formatage

    À la manière de gofmt, rustfmt permet de standardiser la manière d'écrire du rust. C'est encore en développement, mais il est possible de le voir en action quand on utilise play.rust-lang.org et qu'on appuie sur le bouton format.

    Des frameworks web

    De nombreuses bibliothèques sont disponibles, seulement elles ne sont pas encore stabilisées. On compte par exemple, les cadriciels Iron et nickel.rs.

    Il existe cependant quelques essais de développements, notamment TodoMVC, qui utilisent nickel.rs.

    Liens Notes de version
    • Le Wiki dispose de notes de versions détaillées ;
    • le fichier RELEASES.txt contient aussi des informations sur cette version.
    Conclusion

    Depuis le début, le design de Rust a beaucoup été simplifié. Les différents symboles indiquant un type de pointeur, à part & et &mut, ont disparu, les clôtures prennent en charge moins d’options, etc. Ceci ne s’est pas fait au détriment de la praticité : on peut en faire autant qu’avant, voire plus.

    Tout ces changements sont articulés autour des concepts centraux de propriété et d’emprunt. Introduit pour partager efficacement des données entre tâches, il s’est révélé que cela a permis de déplacer beaucoup de choses dans des bibliothèques.

    Rust est donc maintenant beaucoup plus proche du métal qu’il n’était possible de l’imaginer avant. Toutes les constructions du langage se traduisent directement en opérations machines et le runtime est optionnel, permettant d’écrire (par exemple) des noyaux de système d’exploitation.

    Note : le runtime est nécessaire pour la gestion des tâches, les pointeurs gérés par un ramasse-miettes, etc. — tout ce qui n’est pas géré par le programme ou les bibliothèques et nécessite un peu de gestion de l’extérieur.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Les journaux LinuxFr.org les mieux notés du mois d'octobre 2014

    Lundi 3 Novembre

    LinuxFr.org propose des dépêches et articles, soumis par tout un chacun, puis revus et corrigés par l'équipe de modération avant publication. C'est la partie la plus visible de LinuxFr.org, ce sont les dépêches qui sont le plus lues et suivies, sur le site, via Atom/RSS, ou bien via partage par messagerie instantanée, par courriel, ou encore via médias sociaux.

    Ce que l’on sait moins, c’est que LinuxFr.org vous propose également à tous de tenir vos propres articles directement publiables, sans validation a priori des modérateurs. Ceux-ci s'appellent des journaux. Voici un florilège d'une dizaine de ces journaux parmi les mieux notés par les utilisateurs… qui notent. Lumière sur ceux du mois d'octobre passé.

    Ce mois-ci ayant été très prolifique, beaucoup d'autres journaux dépassent les 25 points et auraient pu être sélectionnés :

    Cette extraction est issue de l'aide à la rédaction de dépêche des meilleurs journaux, comme cela est indiqué sur le modèle.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    XQF 1.0.6, la résurrection

    Dimanche 2 Novembre

    En juillet 2013, MCMic proposait aux lecteurs de LinuxFr.org d’occuper leur été en contribuant à un jeu libre et proposait une liste de jeux intéressants qui avaient fortement besoin de contribution. J’avais rajouté en commentaire un autre projet qui n’était pas un jeu en lui-même, mais qui était très utile aux joueurs et qui avait grandement besoin de contributions : XQF.

    Et voilà, finalement je m’y suis collé ! XQF est un logiciel libre qui liste des serveurs de jeu en ligne pour permettre au joueur de trouver facilement une partie qui lui plaît. XQF est certainement un des plus anciens dans sa catégorie (créé en 1998) et, oui, il est donc toujours actif, incroyable ! (tous les détails dans la suite de la dépêche)

    Sommaire Résumé

    8 ans après la publication de la version 1.0.5 et un petit peu plus d’un an après l’invitation de MCMic, voici la version 1.0.6 ressuscitée et remise à jour par votre serviteur ! XQF 1.0.6 a été publié le dimanche 26 octobre 2014 et une mise à jour 1.0.6.2 a été faite ce 2 novembre (il faut dire que fêter une résurrection le jour des défunts, ça a son charme).

    De très nombreux jeux ont été ajoutés. Mais pendant tout ce temps, l’un a eu le temps d’être forké 4 ou 5 fois et l’autre de devenir libre, puis à nouveau propriétaire… Le gros défaut d’XQF était de ne plus proposer une liste de jeux pertinente ! Le code a été quelque peu rafraîchi et la traduction française a été complétée, et très soignée !

    Il reste encore plein de vieilleries dans le code, mais XQF n’a jamais été aussi stable. Vous trouverez le détail de toutes ces bonnes choses dans la suite de la dépêche. Pour l’occasion le dépôt a migré de subversion vers git avec l’aval de l’équipe originelle, afin de faciliter les contributions (à commencer par les miennes).

    À quoi sert XQF ?

    Chaque jeu possède habituellement son propre explorateur de serveurs en ligne, intégré au jeu lui-même, mais cela signifie qu’il faut lancer chaque jeu un par un pour lister toutes les parties jouables de ces différents jeux.

    XQF permet à l’utilisateur de lister les jeux multijoueurs qu’il a installés (et proposés par XQF) et, pour chacun de ces jeux, XQF fournit une liste de serveurs maîtres (modifiable). Les serveurs maîtres sont les serveurs qui listent les serveurs qui hébergent des parties jouables. XQF forme alors une liste unifiée de serveurs de jeu avec le nom du serveur, le type de jeu, le nombre de joueurs actuellement présents et la plupart du temps les noms des joueurs connectés. Les jeux (et les serveurs maîtres) sont affichés dans la colonne de gauche et la liste des serveurs disponibles est affichée à droite, en fonction de la sélection de l’utilisateur. Il suffit alors de double-cliquer sur un serveur ou de cliquer sur « Connexion » pour que XQF lance le jeu avec les bons paramètres.

    Exemple d’explorateur de serveur de jeu intégré, celui d’Unvanquished. À l’heure où cette copie d’écran a été faite, il valait mieux chercher un autre jeu… XQF est là pour ça !

    XQF centralise au même endroit les listes de plusieurs jeux, ainsi on peut par exemple décider de jouer à un jeu parce qu’il est fréquenté à ce moment là ou parce qu’un autre joueur particulier est présent et on peut donc savoir sur quel jeu il joue à cet instant.

    Jeux ajoutés

    De nombreux dérivés des moteurs id Tech ont été ajoutés, mais pas seulement !

    • Xonotic est un fork du jeu Nexuiz dont le développement a été arrêté par son développeur principal (et qui a revendu le nom), la communauté de joueurs a donc migré vers Xonotic. Les joueurs pouvaient configurer XQF pour traiter Xonotic sous le nom de Nexuiz, mais voici une solution plus adaptée.
    • Unvanquished, un fork en développement actif du jeu Tremulous désormais arrêté. La communauté de joueurs de Tremulous est très dispersée, entre ceux qui jouent toujours à l’antique Tremulous 1.1.0, ceux qui jouent à la GamePlayPreview du développement abandonné de Tremulous 2 et ceux qui jouent à ses mods comme TremFusion… Le jeu Tremulous était un des derniers jeux ajoutés avant que le développement d’XQF ne se mette en pause. J’ai donc ajouté Unvanquished, Tremulous GPP et TremFusion afin de permettre aux joueurs de rejoindre facilement un serveur peuplé, quelle que soit la version du jeu.


    N’hésitez plus entre Unvanquished et Tremulous, jouez au jeu auquel d’autres jouent en même temps que vous.

    • Smokin'Guns, un jeu de tir à l’âge du Western américain, façon Le bon, la brute et le truand.
    • Urban Terror, un jeu qui exploite un scénario désormais très classique dans le genre : « forces spéciales contre terroristes ». Ce jeu avait été en fait ajouté dans la version 1.0.5.2, jamais annoncée et très peu distribuée en dehors du dépôt svn… À l’époque le jeu était basé sur ioquake3 et s’appelait ioUrbanTerror, désormais le moteur de jeu n’est plus libre et est basé sur le SDK d’id Software et une migration sur le nouvel Unreal Engine 4 est en cours… Autant dire que sans la publication de cette nouvelle version d’XQF, ce jeu aurait été ajouté pour rien !
    • OpenArena, un projet qui ambitionne d’être un clone libre de Quake Ⅲ Arena et donc de fournir des cartes libres en remplacement de celles de Quake 3. Il n’est peut-être pas aussi soigné, mais il est tout à fait jouable et on trouve beaucoup de serveurs disponibles.
    • World of Padman, un FPS très coloré.
    • ZEQ2 Lite qui emmène le joueur dans l’univers de Dragon Ball Z.
    • Alien Arena, un FPS se déroulant dans un univers de science fiction façon années 50 et avec des extra terrestres à la manière de Mars Attack, et basé sur le moteur CRX (un fork d’id Tech 2).
    • Quelques autres mods plus anecdotiques comme Reaction, Turtle Arena ou Q3 Rally.
    • Jedi Knight 2: Outcast, XQF proposait déjà la prise en charge de Jedi Knight 3: Academy et un contributeur avait proposé en 2008 un patch pour l’épisode précédent. Il aura fallu du temps pour qu’une personne y jette un œil, mais voilà, patch accepté !

    • OpenTTD, est une réécriture libre du jeu original Transport Tycoon Deluxe, un « jeu de simulation jeu de gestion et planification urbanistique ». Attention, pour interroger les serveurs de ce jeu une mise à jour de QStat est nécessaire. Cette mise à jour est déjà très ancienne mais beaucoup de distributions ne distribuent que des versions préhistoriques de QStat.
    • Enemy Territory: Quake Wars, un jeu dans la lignée de Wolfenstein:Enemy Teritory mais se passant dans l’univers de Quake.
    • Enemy Territory: Legacy, l’initiative qui maintient et améliore le code libre du jeu Wolfenstein: Enemy Territory.
    Mises à jour et nouveautés
    • L’icône d’XQF a été redessinée en SVG, afin d’être rendue proprement sur nos bureaux modernes qui ont tendance à afficher de très grandes icônes !

    • XQF respecte désormais la spécification XDG pour les répertoires de base, en particulier les chemins des fichiers de configuration. Le dossier de configuration, anciennement nommé ~/.qf/, se trouve désormais dans $XDG_CONFIG_HOME/xqf/ (généralement ~/.config/xqf/). XQF 1.0.6 détecte automatiquement lorsqu’un ancien dossier de configuration existe et le déplace vers son nouveau chemin.

    • Unvanquished, Wolfenstein: Ennemy-Territory et Savage utilisent des codes couleurs étendus et XQF ne filtrait que les codes couleurs de Quake 3, ce qui avait pour conséquence de laisser apparaître les balises étendues dans les noms de serveurs ou de joueurs. C’est corrigé !

    • La liste des serveurs maîtres a été mise à jour (par exemple, le maître ioquake3 remplace celui d’id Sofware) et de nombreux jeux ont vu leur numéro de version de protocole actualisé (notamment War§ow qui change cela souvent…).

    • XQF ne plante plus lorsqu’un serveur envoie un caractère spécial. En fait, le bug est ancré très profondément : XQF lit la sortie de Qstat en mode raw et Qstat utilise le codage ISO-8859-1 en sortie raw. Or, XQF est localisé en UTF-8, et g_io_channel_read_chars retourne une erreur lorsqu’il reçoit un caractère non UTF-8. La solution élégante serait de réécrire toute cette partie en utilisant la sortie XML de Qstat qui peut être demandée en UTF-8, mais dans l’immédiat, un contournement simple et efficace a été trouvé : le flux brut de Qstat est lu en mode binaire (g_io_read_chars laisse alors tout passer) et les caractères non ASCII sont ensuite filtrés. Les serveurs qui retournent des caractères spéciaux sont rares et, en attendant une éventuelle prise en charge de la sortie XML de Qstat, on évite au moins de planter XQF parce qu’il y a un serveur allemand parmi mille sur cette planète qui envoie un caractère ß. Begrüßen !

    Corrections et nettoyage

    Le code obsolète est en cours de nettoyage ; il reste encore plein de choses à nettoyer, mais j’ai priorisé le nettoyage de code obsolète qui était devenu cassé à cause de changements dans des bibliothèques tierces (Glib je pense à toi). Ce qui marche en mode compatibilité est laissé en l’état pour cette version et sera corrigé à partir de cette publication. En effet, à défaut d’avoir pu faire du release early, release often, au moins je veux faire du oui, mais pas trop tard.

    Mais surtout, en corrigeant plusieurs problèmes, je me suis rendu compte qu’au moins trois d’entre eux étaient présents dès le premier commit sur le tout premier dépôt CVS en l’an 2000…

    Lorsque XQF filtrait les balises couleurs dans les noms de serveurs, il lisait parfois un caractère en dehors des limites d’une chaîne de caractères, ce qui provoquait plus tard une erreur de malloc à un moment toujours inattendu…

    En portant le mécanisme de lecture de descripteur de fichier vars GIOchannel, j’ai corrigé un bug qui était dû à un Gobject nettoyé plusieurs fois (plus exactement le descripteur de fichier où XQF lisait la sortie de Qstat), ce qui signifie qu’avec un peu de malchance on essaie de libérer un zone déjà réutilisée et hop le segfault.

    Plus anecdotique, il manquait une virgule dans une liste de paramètres de jeu de Quake 2, ce qui concaténait deux paramètres en un…

    De nombreux patchs qui étaient maintenus par Debian en marge du projet ont été importés, afin de simplifier le travail de paquetage par les distributions. Avec le temps cette pile de patchs était devenue la seule version d’XQF compilable, désormais cette branche a été fusionnée avec le tronc commun. Un grand merci à Jordi Mallach de chez Debian pour avoir maintenu XQF pendant toutes ces années de vaches maigres !

    Ce qui est abandonné

    La prise en charge de GTK+1 est définitivement enterrée et seule la version GTK+2 est prise en charge. Le nettoyage du code a commencé, mais pour le moment, c’est plus une décision politique qu’une réalisation technique : il s’agit de se libérer d’une contrainte et de pouvoir continuer le développement la tête libre, sans se soucier des vieilleries. Ainsi, il devient plus facile de remplacer les appels de fonctions obsolètes.

    Et oui il serait peut-être temps, on ne va pas attendre GTK+4 pour acter la migration vers GTK+2 !

    Bugs connus

    Pour le moment, XQF n’indique plus la progression de l’actualisation d’une liste de serveurs (mais XQF indique lorsqu’il a terminé de le faire). Cette régression est due à une réécriture de l'analyseur de liste de serveurs obtenue par les serveurs maîtres et de l'analyseur de description de chacun de ces serveurs. Ces analyseurs étaient cassés suite à l’obsolescence de plusieurs composants utilisés et le comportement était erratique. Le retour visuel de l’actualisation est encore manquant, mais l’urgence était de faire en sorte que XQF n’arrête pas cette actualisation en cours de route quand quelque chose lui déplaît…

    Lorsque l’on met à jour une liste de serveurs et que l’option d’actualisation des information de ces mêmes serveurs est activée, l’actualisation se fait correctement sauf pour la liste des joueurs connectés. Une actualisation normale met à jour cette liste.

    Ces bugs ne portent pas atteinte à la stabilité de XQF.

    Télécharger XQF 1.0.6

    Les sources d’XQF peuvent être téléchargées sur la page dédiées aux archives de version.

    XQF 1.0.6 est déjà en cours d’intégration dans Debian et Ubuntu, les plus bidouilleurs pourront donc essayer d’installer les versions 1.0.6 déjà empaquetées par Debian ou par Ubuntu mais non encore officiellement distribuées.

    Pour des raisons administratives, la version 1.0.6 correspond à la révision qui a été utilisée pour se faufiler in extremis avant le gel de Debian Jessie. La version 1.0.6.1 correspond à l’incorporation dans la branche principale d’un patch qui a été écrit pour permettre à Debian (et certainement d’autres distributions) d’empaqueter proprement XQF. La version 1.0.6.2 correspond à quelques corrections de langue française en vue de la présente dépêche.

    Vous pouvez donc dès maintenant télécharger XQF 1.0.6.2 « édition spéciale LinuxFr.org » en cliquant sur le lien suivant :

    Lien suivant. ;-)

    Contribuer

    Le dépôt a migré depuis un vieillissant dépôt subversion hébergé par SourceForge vers un tout nouveau dépôt git hébergé par GitHub.

    Cette version n’ambitionne pas d’être parfaite, elle ambitionne seulement de remettre XQF sur les rails. Si de nouveaux jeux ont été ajoutés, il est possible que certains autres soient moins bien pris en charge maintenant qu’avant par la seule force du temps et de l’obsolescence. De nombreuses choses sont à améliorer et à réécrire dans le code.

    Cette publication est donc aussi faite dans le but de soumettre XQF à quelques paires d’yeux supplémentaires. N’hésitez pas à vous servir d’XQF, et je vous invite fortement à rapporter des bugs (ici), et si vous trouvez une solution, n’hésitez pas à forker puis proposer vos corrections !

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Pages