Catégories
Open-source Planet-libre Systeme Web

Installer et maintenir à jour Chromium sur Mac OS X

Cela faisait longtemps que je n’avais pas écrit un billet sur Mac OS X, il faut avouer que le MBP de la maison est souvent dans les mains de ma compagne. J’ai donc profité de ce week-end en solo pour jouer un petit peu avec la bête.

Après 5 minutes d’utilisations de Safari, j’ai décidé d’installer Chromium, mon navigateur dans le monde GNU/Linux. C’est alors que je me suis rendu compte que Google ne faisait pas une grosse pub pour ce navigateur libre sous Mac OS X, il préfère mettre en avant Google Chrome, on peut comprendre pourquoi…

J’ai donc décidé de regarder du coté des scripts d’installation et après quelques tests infructueux, j’ai décidé d’en écrire un qui à une double utilité: installer et maintenir à jour la dernière version de Chromium.

Le script est disponible sur le GitHub suivant: https://github.com/nicolargo/chromium-on-mac

Pour tester le script sur votre Mac, il suffit d’ouvrir un terminal et de saisir les commandes suivantes:

curl -L https://raw.github.com/nicolargo/chromium-on-mac/master/chromium-on-mac.sh > ./chromium-on-mac.sh
chmod a+x ./chromium-on-mac.sh
./chromium-on-mac.sh

Vous devriez ensuite avoir la dernière version de Chroium disponible dans vos applications: CTRL + ESPACE / Chromium.

Catégories
Open-source Planet-libre Reseau Web

Installation d’un serveur OpenVPN sous Debian/Ubuntu

Dernière mise à jour de ce billet: Le 20 octobre 2013.

Sur la longue route menant à la protection de la vie privée sur Internet, on entend de plus en plus parler des réseaux privés virtuels (VPN pour les geek). Cette technique permet la création d’une liaison chiffrée entre votre machine et un serveur hébergé sur Internet (par exemple chez un fournisseur d’accès se trouvant en France ou à l’étranger). Tous vos accès à Internet seront alors vus à partir de l’adresse IP de ce serveur VPN et non plus par celle de votre machine.

Avec la généralisation des systèmes de surveillance mis en place pour les lois de type Hadopi&Co, les offres de VPN payantes ont tendances à fleurir en ce moment sur le marché.

Nous allons dans ce billet voir comment installer et configurer son propre serveur VPN sous Ubuntu basée sur OpenVPN, une solution libre et compatible avec des clients multi-OS.

Toute petite introduction à OpenVPN

OpenVPN n’est pas un VPN IPSec. C’est un VPN SSL se basant sur la création d’un tunnel IP (UDP ou TCP au choix) authentifié et chiffré avec la bibliothèque OpenSSL.

Quelques avantages des tunnels VPN SSL:

  • Facilité pour passer les réseaux NATés (pas de configuration à faire)
  • Logiciel clients disponibles sur GNU/Linux, BSD, Windows et Mac OS X.

Installation du serveur OpenVPN

Nous allons détailler l’installation du serveur OpenVPN sur une distribution Ubuntu Server LTS 10.04 (mais la procédure doit être la même sur Debian like).

On commence par installer OpenVPN à partir des dépôts officiels:

sudo aptitude install openvpn

On copie ensuite les fichiers de configurations:

sudo mkdir /etc/openvpn/easy-rsa/

sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

sudo chown -R $USER /etc/openvpn/easy-rsa/

Configuration du serveur OpenVPN

A l’aide des scripts installés dans le répertoire /etc/openvpn/easy-rsa/ nous allons configurer OpenVPN pour utiliser une authentification par clés et certificats.

On commence par éditer le fichier /etc/openvpn/easy-rsa/vars:

export KEY_COUNTRY= »FR »

export KEY_PROVINCE= »06″

export KEY_CITY= »Nissa »

export KEY_ORG= »nicolargo.com »

export KEY_EMAIL= »dtc@hadopi.fr »

Ensuite on lance la séquence suivante qui va générer les clés (.key) et les certificats (.crt):

cd /etc/openvpn/easy-rsa/

source vars

./clean-all

./build-dh

./pkitool –initca

./pkitool –server server

sudo openvpn –genkey –secret keys/ta.key

On copie ensuite les clés et les certificats utiles pour le serveur dans le répertoire /etc/openvpn/:

sudo cp keys/ca.crt keys/ta.key keys/server.crt keys/server.key keys/dh1024.pem /etc/openvpn/

Puis on génère un répertoire /etc/openvpn/jail dans lequel le processus OpenVPN sera chrooté (afin de limiter les dégâts en cas de faille dans OpenVPN) puis un autre répertoire (/etc/openvpn/clientconf) qui contiendra la configuration des clients:

sudo mkdir /etc/openvpn/jail

sudo mkdir /etc/openvpn/clientconf

Enfin on créé le fichier de configuration /etc/openvpn/server.conf:

# Serveur TCP/443

mode server

proto tcp

port 443

dev tun

# Cles et certificats

ca ca.crt

cert server.crt

key server.key

dh dh1024.pem

tls-auth ta.key 1

key-direction 0

cipher AES-256-CBC

# Reseau

server 10.8.0.0 255.255.255.0

push « redirect-gateway def1 bypass-dhcp »

push « dhcp-option DNS 208.67.222.222 »

push « dhcp-option DNS 208.67.220.220 »

keepalive 10 120

# Securite

user nobody

group nogroup

chroot /etc/openvpn/jail

persist-key

persist-tun

comp-lzo

# Log

verb 3

mute 20

status openvpn-status.log

; log-append /var/log/openvpn.log

Ce fichier permet de créer un serveur VPN SSL routé basée sur le protocole TCP et utilisant le port HTTPS (443) enfin de maximiser sont accessibilité depuis des réseaux sécurisés par des Firewalls. Les clients obtiendrons une nouvelle adresse IP dans le range 10.8.0.0/24.

On teste la configuration en saisissant la commande suivante:

cd /etc/openvpn

sudo openvpn server.conf

On doit obtenir les messages suivants:

Si le serveur démarre correctement, on peut terminer la configuration sur serveur OpenVPN en décommentant la dernière ligne du fichier /etc/openvpn/server.conf :

log-append /var/log/openvpn.log

On lance le serveur avec la commande:

sudo /etc/init.d/openvpn start

A ce stade les machines clientes vont pouvoir se connecter au serveur VPN. Par contre impossible d’aller plus loin que ce dernier car l’adresse 10.8.0.x ne sera par routée en dehors de votre serveur. Il faut donc configurer le serveur pour qu’il joue le rôle de routeur entre l’interface VPN (tun0) et l’interface physique (eth0) et de NATeur entre les adresses en 10.8.0.x et son adresse IP réelle.

Configuration du routage:

sudo sh -c ‘echo 1 > /proc/sys/net/ipv4/ip_forward’

Pour rendre ce paramètrage de routage permanant (même après un reboot), il faut ajouter la ligne suivante au fichier /etc/sysctl.conf:

net.ipv4.ip_forward = 1

Puis configuration d’IpTables (si utilisé sur votre serveur) :

# règles obligatoires pour ouvrir déverrouiller l’accès :

sudo iptables -I FORWARD -i tun0 -j ACCEPT

sudo iptables -I FORWARD -o tun0 -j ACCEPT

sudo iptables -I OUTPUT -o tun0 -j ACCEPT

# autres règles : Translation d’adresses

sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

sudo iptables -t nat -A POSTROUTING -s 10.8.0.2/24 -o eth0 -j MASQUERADE

Pour rendre cette règle de NAT persistante après un reboot de votre serveur, il faut commencer par créer un script de chargement de règles de Firewall (ou utiliser  un script existant):

sudo sh -c « iptables-save > /etc/iptables.rules »

Puis éditer votre fichier /etc/network/interfaces pour y ajouter la ligne suivante après la définition de votre interface réseau principale (« iface eth0 inet… » par exemple):

pre-up iptables-restore < /etc/iptables.rules

Le serveur est maintenant prêt à accueillir les clients. Nous allons donc voir dans le chapitre suivant comment déclaration un client sur le serveur.

Création d’un compte client OpenVPN

Imaginons que l’on veuille créer une clés pour le client « pcportablenicolargo » (c’est un exemple :)), alors il suffit de saisir les commandes suivantes sur le serveur:

cd /etc/openvpn/easy-rsa

source vars

./build-key pcportablenicolargo

Note: si vous souhaitez protéger l’accès à vos clés par un mot de passe (c’est à dire qu’un mot de passe sera demandé à la monté du tunnel VPN), il faut utiliser la commande ./build-key-pass en lieu et place de ./buil-key.

Le script ./build-key va générer 3 fichiers dans le répertoire /etc/openvpn/easy-rsa/keys:

  • pcportablenicolargo.crt: Certificat pour le client
  • pcportablenicolargo.csr: Certificat à garder sur le serveur
  • pcportablenicolargo.key: Clés pour le client

On copie les fichiers nécessaires un sous répertoire du répertoire /etc/openvpn/clientconf/ préalablement créé:

sudo mkdir /etc/openvpn/clientconf/pcportablenicolargo/

sudo cp /etc/openvpn/ca.crt /etc/openvpn/ta.key keys/pcportablenicolargo.crt keys/pcportablenicolargo.key /etc/openvpn/clientconf/pcportablenicolargo/

On va ensuite dans le répertoire /etc/openvpn/clientconf/pcportablenicolargo/:

cd /etc/openvpn/clientconf/pcportablenicolargo/

Puis on créé le fichier client.conf (il faut remplacer A.B.C.D par l’adresse publique de votre serveur VPN que vous pouvez obtenir avec la commande « wget -qO- ifconfig.me/ip »):

# Client

client

dev tun

proto tcp-client

remote A.B.C.D 443

resolv-retry infinite

cipher AES-256-CBC

; client-config-dir ccd

# Cles

ca ca.crt

cert pcportablenicolargo.crt

key pcportablenicolargo.key

tls-auth ta.key 1

key-direction 1

# Securite

nobind

persist-key

persist-tun

comp-lzo

verb 3

Pour assurer la compatibilité avec le client Windows OpenVPN, on fait une copie du fichier client.conf vers client.ovpn:

sudo cp client.conf client.ovpn

On devrait ainsi avoir les fichiers suivants dans le répertoire /etc/openvpn/clientconf/pcportablenicolargo/:

  • ca.crt: Certificat du serveur
  • client.conf: Fichier de configuration du client OpenVPN (Linux, BSD, MacOS X)
  • client.ovpn: Fichier de configuration du client OpenVPN (Windows)
  • hennionn.crt: Certificat du client
  • hennionn.key: Clés du client
  • ta.key: Clés pour l’authentification

Il ne reste plus qu’à mettre ces fichiers dans une archive ZIP et de la transmettre sur le PC client:

sudo zip pcportablenicolargo.zip *.*

Update

Pour les plus fainéants, j’ai créé un script (dépôt source sous GitHub) permettant d’automatiser les étapes décrites dans ce paragraphe et donc de permettre simplement la déclaration d’un nouveau client VPN sur votre serveur:

/Update

Attribuer une adresse IP statique à un client VPN

Ce qui est expliqué dans ce chapitre est optionnel.

Pour des raisons de sécurité (par exemple l’application de filtre IP), il est parfois nécessaire d’affecter une adresse IP statique à un client VPN. Pour cela, il faut créer un répertoire qui va contenir les configurations statiques:

sudo mkdir /etc/openvpn/ccd

sudo ln -s /etc/openvpn/ccd /etc/openvpn/jail/ccd

Ensuite on édite à l’intérieur de ce répertoire un fichier correspondant au CNAME (X509) de l’utilisateur dont on veut rendre la configuration statique (par exemple pcportablenicolargo):

sudo vi /etc/openvpn/ccd/pcportablenicolargo

ifconfig-push 10.8.0.18 10.8.0.17

La syntaxe est la suivante: ifconfig-push @IPCLIENTTUNNELVPN @IPSERVEURTUNNELVPN.

Ainsi quand le client pcportablenicolargo se connectera au serveur VPN il obtiendra une adresse en 10.8.0.18. Le bout du tunnel VPN (coté serveur) sera lui en 10.8.0.17.

Note: A chaque modification de ce répertoire il faut en faire une copie vers le chroot (jail, à adapter à votre configuration):

cp /etc/openvpn/ccd/* /etc/openvpn/jail/ccd

On dé-commente la ligne suivante au niveau de la configuration du serveur (/etc/openvpn/server.conf):

client-config-dir ccd

Puis on relance le serveur:

sudo /etc/init.d/openvpn restart

Configuration d’un client OpenVPN sous Ubuntu

Les opérations suivantes sont à faire sur le PC client que l’on veut connecter au serveur VPN.

On part sur le principe ou le fichier pcportablenicolargo.zip a été téléchargé et dézippé dans le répertoire /etc/openvpn/pcportablenicolargo.

Gnome permet de configurer de manière graphique le client OpenVPN. Pour celà il faut ajouter les packages suivants sur sa distribution (Ubuntu Desktop 10.10 dans mon exemple):

sudo aptitude install openvpn resolvconf network-manager-openvpn-gnome

Il faut redémarrer la machine pour finaliser l’installation.

Déclaration du VPN sous Ubuntu

Ensuite on clique gauche sur l’icone réseau du Tableau de bord > Connexions VPN > Configurer le VPN.

On clique sur le bouton Importer.

On va dans le répertoire /etc/openvpn/pcportablenicolargo et on sélectionne le fichier client.conf.

La fenêtre suivante devrait s’afficher:

Il ne reste plus qu’à cliquer sur Appliquer.

Utilisation du VPN sous Ubuntu

Rien de très compliqué :). Si vous avez nommé votre déclaration de VPN Client alors, il suffit de cliquer gauche sur l’icone réseau du Tableau de bord > Connexions VPN > Client.

L’icône réseau du tableau de bord devrait se voir modifier (apparition d’un petit cadenas).

Pour ce déconnecter du VPN: Tableau de bord > Connexions VPN > Déconnecter le VPN.

Si vous avez une erreur lors de la connexion, vous pouvez essayer la méthode fournie par ce lecteur dans ce commentaire.

Configuration d’un client OpenVPN sous Windows

Update

Après quelques tests sous Windows XP, le client que je préconise ci dessous n’est vraiment pas concluant (impossible de se connecter au serveur une fois sur deux, pas de log…).

Je conseille donc l’utilisation d’une solution libre “OpenVPN  Windows” (à télécharger sur le site http://openvpn.net/index.php/open-source/downloads.html).

Une fois installé, il suffit de décompresser l’archive pcportablenicolargo.zip dans le répertoire C:\Programs Files\Openvpn\conf\ et de se connecter à partir du bouton qui se trouve dans la barre des taches.

/Update

On part sur le principe ou le fichier pcportablenicolargo.zip a été téléchargé et dézippé dans le répertoire c:\vpn\pcportablenicolargo.

On va utiliser le client OpenVPN pour Windows nommé « OpenVPN Acccess Server Windows client » téléchargeable sur le site suivant (il nécessite l’installation préalable du framework .NET 3.5 SP1, téléchargeable sur le même site).

Déclaration du VPN sous Windows

Une fois le logiciel téléchargé puis installé. Il suffit de cliquer sur le nouvel icône dans la barre des taches. La fenêtre suivante devrait apparaître. Il faut alors cliquer sur le bouton + pour ajouter une nouvelle connexion VPN.

Ensuite on sélectionne l’option d’importation locale (1) et on clique sur Import (2):

On sélectionne ensuite le fichier client.ovpn qui se trouve dans c:\vpn\pcportablenicolargo\:

On sauvegarde la configuration:

La nouvelle connexion VPN devrait apparaître dans la fenêtre principale:

Utilisation du VPN sous Windows

Il suffit de cliquer sur le nouvel icône dans la barre des taches.  Il faut alors cliquer sur le bouton correspondant à votre connexion VPN définie dans le paragraphe précédant.

Une fois la connexion établie, on a le message suivant:

Pour se déconnecter du VPN, il suffit de cliquer sur le bouton… « Disconnect » (bravo):

Surveiller les connexions VPN

Dans la configuration fournie en exemple, le processus OpenVPN server va écrire toute les minutes un état des clients connectés au serveur dans le fichier /etc/openvpn/openvpn-status.log.

On a, par exemple, les informations suivantes:

OpenVPN CLIENT LIST
Updated,Fri Jan 21 15:48:06 2011
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
client1,27.12.245.248:10086,306367,620864,Fri Jan 21 13:58:25 2011
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.10,client1,27.12.245.248:10086,Fri Jan 21 15:47:14 2011
GLOBAL STATS
Max bcast/mcast queue length,0
END

Sources:

Catégories
Open-source Web

Spideroak, un sérieux concurrent à Dropbox

Spideroak est un service en ligne de sauvegarde, synchronisation et partage de données. La fonction qui m’intéresse particulièrement est de pouvoir synchroniser des répertoires entres plusieurs machines.

Spideroak fonctionne sur le principe suivant: on commence par installer le client Spideroak sur une machine (GNU/Linux, Mac OS X ou Windows). Au premier lancement, le client va créer un compte utilisateur auquel sera associé une clé de chiffrement permettant de s’assurer que vous serez le seul à pouvoir accéder à vos données (même la société Spideroak…). Il va ensuite vous demander le nom de votre machine (je vous conseille de choisir un nom facile à reconnaitre, surtout si vous avez plusieurs machines) et la liste des répertoires à sauvegarder. On se retrouve donc avec, sur le serveur,  une association « Nom de machine / Répertoire de données ». A partir du moment ou le client est installé sur au moins deux machines, on peut passer à l’étape de la configuration de la synchronisation.  Il suffit de choisir une source (« Nom de machine 1 / Répertoire de données X ») et une destination (« Nom de machine 2 / Répertoire de données Y »). A partir de ce moment là, toute modification (ajout, modification, suppression) d’un fichier dans le répertoire local Y de la machine 2 sera répercutée sur le répertoire X de la machine 1 (et vice et versa).

On voit ici la flexibilité de Spideroak par rapport à Dropbox. En effet, Dropbox ne permet que de synchroniser un seul répertoire (appelé Dropbox par défaut). Tandis qu’avec Spideroak, il est possible de synchroniser autant de répertoire que nécessaire, Par exemple, un répertoire « Documents » d’un PC sous Linux avec un répertoire « Mes Documents » d’un pauvre PC sous Windows. Dans le même ordre d’idée il est possible de sélectionner les répertoires à synchroniser sur un PC donnée: il n’est par exemple pas indispensable de stocker sa collection de photos sur son PC du boulot mais il peut être utile de l’avoir sur son PC portable perso…

Voici pour mieux comprendre un petit screencast ou je partage un répertoire « test » entre mes PC Desktop et Laptop:

Source du screencast au format H.264 (720p).
D’autres screencast proposées par Spideroak.

Tout comme avec DropBox, il est également possible d’accéder en lecture à ses données à partir d’un simple navigateur Web ou à partir d’une application iPhone.

Spideroak propose gratuitement 2 Go de stockage (comme Dropbox), par contre l’offre payante est plus compétitive car on a 100 Go pour $10 par mois (ou $100 à l’année). Il faut ensuite compter $10 par tranche de 100 Go supplémentaire.

La société Spideroak ne distribue pas son client sous licence libre (ce qui est bien dommage mais il y a des chances que cela change dans le futur). Par contre elle met a disposition, sous licence GPLv3, une liste de logiciels développés autour de ce projet.

Cliquer ici pour installer et tester Spideroak sur votre machine.

J’attends vos retours !

Catégories
Reseau Web

Partager ses fichiers entre Linux, Mac, Windows, iPhone et Android

Je vais vous parler d’un service en ligne que beaucoup d’entre vous doivent connaitre et utiliser: Dropbox. Il permet de maintenir synchroniser un répertoire de votre disque dur entre plusieurs ordinateurs et ceci quelques soient leurs systèmes d’exploitations: GNU/Linux, Mac OS X, IPhone/Ipad, Android ou Windows (et bientôt Blackberry).

J’ai réalisé que c’était une des premières applications que j’installais sur mes nouvelles machines (le logiciel est intégré dans mon script de post installation Ubuntu). Après seulement 1 an d’utilisation, Dropbox est devenu avec Gmail et Google Reader un service en ligne dont j’aurai le plus grand mal de me séparer…

Installation de Dropbox

C’est simple, il faut d’abord créer gratuitement un compte qui vous donne droit à un espace de stockage de 2 Go (qu’il est ensuite possible d’augmenter moyenant finance, là est leur business model).  Ensuite lors de l’installation du logiciel Dropbox sur votre ordinateur, ce compte (login et password) vous sera demandé ainsi que le répertoire (que l’on appellera « la dropbox ») de votre disque dur à synchroniser (par défaut~/Dropbox).

Comment marche Dropbox ?

A partir de ce moment, tous les fichiers/répertoires de « la dropbox » seront synchronisés sur un serveur en ligne. On a donc dans un premier temps une simple fonction de sauvegarde de vos données (ce qui n’est déjà pas si mal).C’est en installant le logiciel Dropbox sur une deuxième machine que l’on bénéficie de la puissance de ce service.

En effet, toutes les données seront synchronisées par rapport au serveur. On se retrouve donc avec la même « dropbox » sur les deux machines. Il n’y a pas de limite au nombre de machines que l’on peut synchroniser.

Il est également possible de consulter et d’ajouter des fichier de votre Dropbox en ligne (via un simple navigateur Web).

Les +/- de Dropbox

Les + :

  • Grande simplicité d’installation
  • Utilisation transparente (on y pense plus et on a les données sur toutes ses machines…)
  • Espace de stockage de 2 Go gratuit sur le serveur
  • La fonction « Sync LAN » (active par défaut) permet de faire la synchronisation directement entre vos machines si elles sont connectées au même réseau local.
  • Possibilité de partager un répertoire avec d’autres personnes.

Les :

  • Le logiciel Dropbox n’est pas distribué sous licence « libre »
  • Vos données sont stockées sur un serveur, donc attention aux données sensibles/personnelles (rien ne vous empêche de chiffrer ces données).
  • L’offre payante est un chère à mon goût (environ 100€/an pour 50 Go, 200€/an pour 100 Go)
  • Pas d’assurance que le service de base restera gratuit… mais on a le même problème avec GMail ou Ubuntu One…

Pour vous inscrire et tester Dropbox, suivre ce lien !

Catégories
Musique Reseau Systeme

Backup de sa bibliothéque musicale avec rsync

Voici un petit shell script permettant, depuis Mac OS X, de synchroniser votre bibliothèque musical iTunes vers un disque dur externe au format FAT32.

Si en plus ce disque est réseau (NAS), ce script sera une première étape dans le partager de votre bibliothéque iTunes entres les différents ordinateurs de votre réseau local (je parle ici d’un VRAI partage avec play-lists, notes, suppression, modification…). Mais j’y reviendrai dans un prochain article…

Script:

[shell]
#!/bin/sh
SRC="/Users/nicolargo/Music/iTunes/"
DST="/Volumes/DDEXT/MUSIC/iTunes"
RSYNC="/usr/bin/rsync -a -x -S -v –modify-window=1 –delete"
$RSYNC $SRC $DST
[/shell]

Détail des variables:

SRC: Emplacement de votre bibliothèque iTunes (à modifier selon votre configuration). A noter, le / en fin de ligne.

DST: Chemin d’accès vers votre disque dur externe ou réseau (à modifier selon votre configuration). A noter, l’absence de / en fin de ligne.

RSYNC: chemin et option vers rsync avec:

  • –modify-window=1: si vous faite une synchronisation vers un disque FAT32, cette option est obligatoire (sinon les fichiers seront recopiés intégralement à chaque synchronisation…)
    Remarque: si vous utilisez un disque externe formaté en HFS, il faut utiliser l’option -E en lieu et place de –modify-window=1
  • -a: synchronise l’ensemble des fichiers, répertoires et sous-répertoire
  • -x: ne pas écraser les fichiers systèmes
  • -S: gère de manière efficace les fichiers fragmentés.
  • -v: affiche ce que rsync fait
  • –delete: efface du disque dur externe les fichiers inexistants de votre bibliothèque iTunes.
Catégories
Systeme

Automatiser la synchronisation iSync

Vous avez un Mac et un téléphone portable ? Vous connaissez alors surêment le logiciel iSync qui permet de synchroniser vos contacts et calendriers.

Il manque cependant une fonction importante à ce petit logiciel: la possibilité d’automatiser cette synchronisation. En attendant qu’Apple ajoute cette fonction à iSync (et oui c’est ça le problème avec les logiciels propriétaires, il faut attendre :(), voici un petit hack qui va fonctionellement nous rendre le même service.

Nous allons pour cela utiliser un AppleScript. Il faut éditer un fichier nommé SyncNow.scpt  dans le répertoire ~/Library/Scripts/ et contenant le code suivant:

tell application « Finder »
set iSyncRunning to 1
tell application « iSync » to synchronize
tell application « iSync »
repeat while (syncing is true)
delay 5
end repeat
if iSyncRunning is not true then
quit
end if
end tell
end tell

Ce script va ouvrir iSync, lancer un synchronisation, puis fermer iSync. Si le téléphone n’est pas à porté de Bluetooth, le script boucle jusqu’à ce que la synchronisation soit faite.

Vous pouvez tester le bon fonctionnement de ce script en ouvrant un terminal et en saisissant la commande suivante:

~/Library/Scripts/SyncNow.scpt

Afin d’automatiser le lancement de ce script, nous allons utiliser crontab (venu du monde unix). Elle permet de lancer une commande à une heure précise. Il faut ouvrir un terminal, puis saisir:

crontab -e

Vous allez vous retrouver dans l’éditeur « vi ». Pour ajouter la ligne suivante, il faut au préalable cliquer sur la touche i.

0 11 * * 1-5 osascript Library/Scripts/SyncNow.scpt

Pour sortir de l’éditeur vi, il faut appuyer successivement sur les touche ESC ensuite : puis x et enfin ENTREE.

Et voilà, tout les matin à 11h00 (0 11), du lundi au vendredi (1-5), le script sera lancé et la synchronisation effectué !

Catégories
Open-source Systeme

Installation de GStreamer sur Mac OS X

Update: Il existe maintenant un binaire d’installation de GStreamer sous Mac OS X !

http://www.itee.uq.edu.au/~davel/gstreamer/

 

Il n’existe pas de package de distribution officiel de GStreamer sous Mac OS X. Les versions disponibles dans les MacPorts sont anciennes et incomplètes. Nous allons donc dans ce billet voir comment installer GStreamer et ses plugins sur un Mac OS X.

Pre-requis

Il faut un certain nombre de pré-requis système pour compiler et installer GStreamer. La première chose à faire est d’installer les MacPorts (disponibles ici).

Ensuite, il faut ouvrir un terminal est saisir les commandes suivantes:

# sudo port install gzip m4 perl5.8 pkgconfig bison flex gettext glib2 libiconv libxml2 py25-gobject py25-numeric python25 zlib liboil libogg libtheora libvorbis cdparanoia

 

puis:

# sudo port install libcdio aalib flac jpeg libcaca libdv libpng libshout2 speex taglib wavpack XviD libdts faac faad2 libmusicbrainz neon libsdl a52dec lame libmpeg2 libmad libid3tag libdvdread

 

Pour installer le support de la librairie X.264, j’ai du faire:

# sudo port
> install x264
—>  Fetching yasm
—>  Attempting to fetch yasm-0.7.2.tar.gz from http://arn.se.distfiles.macports.org/yasm
—>  Verifying checksum(s) for yasm
—>  Extracting yasm
—>  Configuring yasm
—>  Building yasm
—>  Staging yasm into destroot
—>  Installing yasm @0.7.2_0
—>  Activating yasm @0.7.2_0
—>  Cleaning yasm
—>  Fetching x264
—>  Attempting to fetch x264-snapshot-20080724-2245.tar.bz2 from ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
—>  Verifying checksum(s) for x264
—>  Extracting x264
—>  Configuring x264
—>  Building x264
—>  Staging x264 into destroot
—>  Installing x264 @20080724_1
—>  Activating x264 @20080724_1
—>  Cleaning x264

 

Installation de GStreamer

GStreamer est composé de plusieurs packages:

On va commencer par récupérer les dernières versions disponibles sur le site officiel. On moment de l’écriture de ce billet, j’ai:

On télécharge donc tout ce beau monde:

# cd
# mkdir src
# cd src
# wget http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.22.tar.gz
# wget http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.22.tar.gz
# wget http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-0.10.13.tar.gz
# wget http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-0.10.10.tar.gz
# wget http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-0.10.10.tar.gz

 

Puis on commence par compiler GStreamer:

# tar zxvf gstreamer-0.10.22.tar.gz
# cd gstreamer-0.10.22
# LDFLAGS= »-L/usr/local/lib -L/opt/local/lib » \
CFLAGS= »-I/usr/local/include -I/opt/local/include » \
PKG_CONFIG_PATH= »/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig » \
./configure –prefix=/usr/local \
&& make DEPRECATED_CFLAGS= » » \
&& sudo make install

 

puis on continue avec les plugins-base:

# cd ..
# tar zxvf gst-plugins-base-0.10.22.tar.gz
# cd gst-plugins-base-0.10.22
# LDFLAGS= »-L/usr/local/lib -L/opt/local/lib » \
CFLAGS= »-I/usr/local/include -I/opt/local/include » \
PKG_CONFIG_PATH= »/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig » \
./configure –prefix=/usr/local \
&& make DEPRECATED_CFLAGS= » » \
&& sudo make install

 

… et les plugins-good:

# cd ..
# tar zxvf gst-plugins-good-0.10.13.tar.gz
# cd gst-plugins-good-0.10.13
# LDFLAGS= »-L/usr/local/lib -L/opt/local/lib » \
CFLAGS= »-I/usr/local/include -I/opt/local/include » \
PKG_CONFIG_PATH= »/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig » \
./configure –prefix=/usr/local \
&& make DEPRECATED_CFLAGS= » » \
&& sudo make install

 

… et les plugins-ugly:

# cd ..
# tar zxvf gst-plugins-ugly-0.10.10.tar.gz
# cd gst-plugins-ugly-0.10.10
# LDFLAGS= »-L/usr/local/lib -L/opt/local/lib » \
CFLAGS= »-I/usr/local/include -I/opt/local/include » \
PKG_CONFIG_PATH= »/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig » \
./configure –prefix=/usr/local \
&& make DEPRECATED_CFLAGS= » » \
&& sudo make install

 

… et les plugins-bad:

# cd ..
# tar zxvf gst-plugins-bad-0.10.10.tar.gz
# cd gst-plugins-bad-0.10.10
# LDFLAGS= »-L/usr/local/lib -L/opt/local/lib » \
CFLAGS= »-I/usr/local/include -I/opt/local/include » \
PKG_CONFIG_PATH= »/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig » \
./configure –prefix=/usr/local \
&& make DEPRECATED_CFLAGS= » » \
&& sudo make install

 

Vous devriez vous retrouver avec environ:

# gst-inspect-0.10

Nombre total :147 greffons, 439 fonctionnalités

 

Source: ce billet se base en grande partie sur ce Wiki.

Catégories
Open-source Systeme

MacPorts simplifie l’open-source sous Mac

macports-logo.pngvous le savez (ou pas), le système d’exploitation Mac Os X est basé sur un système Unix de type FreeBSD. Depuis le passage à une architecture de type Intel, il est donc théoriquement possible de compiler n’importe quel logiciel développé pour FreeBSD sur votre Mac.

La théorie étant souvent assez éloignée de la pratique, on se retrouve régulièrement avec des problèmes de compilation. Heureusement, il existe de bonnes âmes qui vous mâchent un peu le travail en « packagant » les sources des logiciels pour une complication sans souci. MacPorts est un projet de la communauté open-source visant à regrouper ces sources (il y en a plus de 5400 au moment de l’écriture de ce billet) tout en offrant un gestionnaire de paquets.

Nous allons voir comment installé les MacPorts sur votre machine sous Mac OS X puis donner quelques exemples de commande du gestionnaire de paquets.

Installation des MacPorts

Il existe plusieurs méthodes pour installer les MacPorts sur votre machine. La plus simple étant de télécharger l’image DMG (version 1.7.0 par exemple) puis de procéder à l’installation.

Attention: il faut que les pré-requis suivants soit installés sur votre machines:

  • Xcode version 3.1 (disponible sur le DVD d’installation de Mac OS X ou à télécharger ici.
  • X11 user + X11 SDK, également disponible sur le DVD d’installation de Mac OS X

Si vous avez déjà les MacPorts installés, pour les mettre à jour à la dernière version, il faut utiliser la commande suivante:

sudo port -v selfupdate

Utilisation des MacPorts

Nous n’allons pas faire un copier/coller de la documentation très complète disponible en ligne (en Anglais) mais juste donner quelques commandes pour débuter.

Liste des logiciels disponibles:

# port list

Liste des logiciels installés:

# port installed

Recherche un logiciel:

# port search iperf

iperf @2.0.4 (net)

A tool to measure maximum TCP and UDP bandwidth

Information sur un logiciel:

# port info iperf

iperf @2.0.4 (net)

Variants: universal

Iperf is a tool for measuring maximum TCP and UDP bandwidth, reminiscent of ttcp and nettest. It

has been written to overcome the shortcomings of those aging tools. Iperf can also test UDP

bandwidth, loss, and jitter.

Homepage: http://iperf.sourceforge.net

Platforms: darwin

Maintainers: pmq@macports.org

Installer un logiciel:

# sudo port install iperf

De-installer un logiciel:

# sudo port uninstall iperf

Vérifier si les logiciels installés sont à jour:

# port livecheck outdated

Mise à jour d’un logiciel:

# sudo port upgrade iperf

Mise à jour de l’ensemble des logiciels installés:

# sudo port upgrade outdated

Et voila, je vous invite à consulter le site officiel qui regorge d’information sur le projet. Si vous souhaitez y participer en intégrant vos développements (compatible Mac bien sûr…) aux MacPorts, il suffit de suivre la documentation suivante.

Catégories
Musique Open-source Web

Last.fm sous Ubuntu et Mac OS X

last-fm_audioscrobbler_logo.jpg

Last.fm est un service permettant de diffuser la liste des musiques que vous écoutez et de récupérer en échange des titres, des vidéos et des concerts collant au plus près à vos goûts. Il est donc possible d’écouter « une radio » ne passant que des chansons qui sont sensés vous plaire.

J’étais un peu septique, c’est pour cela que j’ai mis un certain pas à faire le grand saut… avec du recul, j’aurai dû le faire avant 🙂 En effet, Last.fm est convivial a utilisé et très pertinent dans ces propositions.

Dis, comment ça marche ?

C’est très simple, on commence par créer un compte sur le site puis on configure son lecteur audio pour qu’il diffuse ce qu’il joue sur votre base de donnée Last.fm (cela s’appelle « to scrobble »).

Sous Mac OS X, si vous utilisez iTunes, le plus simple est de télécharger le logiciel Last.fm qui va automatiquement « scrobbler » ce qui a été joué sur votre iTunes et même sur votre iPod ! Le logiciel dispose également d’un petit lecteur permettant d’écouter des musiques qui collent à vos goûts. Notamment la radio « Mes Recommandations », que j’écoute en boucle 🙂

Last.fm.jpg

Sous GNU/Linux et en particulier Ubuntu, tout dépend du logiciel que vous utiliser. La possibilité de « scrobbler » sur Last.fm est disponible sur la plupart des logiciels: Amarok, Banshee, SongBird… Je vous laisse trouver la procédure sur les sites correspondants.

Installation de Last.fm sous Ubuntu

Vous pouvez également installer le logiciel Last.fm assez simplement car il existe un dépôt Ubuntu. I suffit de suivre a procédure suivante:

wget -q http://apt.last.fm/last.fm.repo.gpg -O- | sudo apt-key add –

sudo vi /etc/apt/sources.list
# Ajouter la ligne suivante:
deb http://apt.last.fm/ debian stable

sudo apt-get update

sudo apt-get install lastfm

L’installation finie, le logiciel peut être lancé à partir du menu: Application / Son et vidéo / Last.fm

capture_200808264810.jpg

Et voila, il ne reste plus qu’a écouter et découvrir de nouveaux bijoux !

Vous pouvez consulter mon profile Last.fm à l’adresse suivante: http://www.lastfm.fr/user/nicolargo

N’hésitez pas à m’ajouter comme ami !

Catégories
Musique Open-source

Ecouter la musique de son Mac sous Linux

Si vous avez comme moi votre bibliothèque musicale stockée dans l’iTunes de votre Mac OS X et que vous souhaitez y accéder depuis votre PC Linux, alors ce billet est fait pour vous…

Comment ça marche ?

Nous allons utiliser DAAP (Digital Audio Access Protocol), un protocole commun entre votre Mac OS X qui va partager votre bibliothèque et votre lecteur audio sous Linux. Ce protocole se rapproche en fait du bien connu protocole HTTP (mais en écoute sur le port TCP/3689, avis aux utilisateurs de firewall…) permettant de partager des listes de lectures et de « streamer » des musiques (quelques soit le format/codec) sur le réseau.

Pour une description précise du protocole, vous pouvez consulter ce document.

Configuration du serveur DAAP sur le Mac OS X

Depuis iTunes 7.0, Apple (le vilain) a changé le protocole d’authentification des clients tiers. Il n’est donc plus possible d’accéder à une bibliothèque partager par iTunes 7.0 depuis un lecteur audio Linux comme Amarok, Banshee ou Rhytmbox.

Heureusement, la communauté open-source propose une solution alternative et que je trouve plus élégante: Fire Fly Media Server. Ce petit serveur DAAP (anciennement nommé mt-daap) est disponible sous Mac OS X.

Avant d’installer Fire Fly Media Server, on commence donc par vérifier que le partage est désactivé dans iTunes 7.0 afin qu’il n’y est pas de conflit entre les deux systèmes.

Partage-3.jpg

On peut alors passer à l’installation de Fire Fly Media Server. Il faut pour cela se rendre sur cette page et télécharger la dernière « nighly-build ».

Une fois installé, un nouvel icône est disponible dans les préférences systèmes:

Préférences Système.jpg

La configuration est très simple. On entre le nom du partage qui sera diffusé sur le réseau (1), le mot de passe (2) et si le serveur est lancé au démarrage de la session (3).

Firefly.jpg

Ensuite, dans l’onglet Avancé, on configure le répertoire ou se trouve la bibliothèque musicale (/Users/<login>/Music pour partager votre bibliothèque iTunes):

Firefly-1.jpg

Il ne reste plus qu’a démarrer le serveur .Cette action sera faite automatiquement au prochain reboot si vous avez sélectionné cette option (3).
Firefly-2.jpg

Configuration du client DAAP sous Linux

J’utilise le lecteur audio Banshee sous ma station Linux Ubuntu. La procédure pour accéder au partage est la suivante.

On commence par activer le plugin Partage de musique:

capture_200807313859.jpg

Le nom du partage devrait alors apparaître automatiquement dans la liste des Musique partagée de Banshee. Une fois sélectionné (1), il faut saisir le mot de passe (2).

capture_200807313522.jpg

Vous avez alors accès à votre bibliothèque. Lors de l’écoute d’un morceau, les données sont « streamées  » entre le Mac et le Linux. Ainsi, aucun fichier n’est stocké sur votre Linux.

capture_200807313727.jpg

Conclusion

Vous pouvez donc partager vos fichiers audio (MP3 ou autres) de manière très simple. L’avantage de cette solution par rapport à un simple partage iTunes (en dehors du fait que cela marche;) ) est qu’il n’est pas nécessaire de lancer iTunes pour accéder à vos musiques.

En cadeau bonux, Firefly Media Server dispose d’une interface Web d’administration accessible par défaut par l’adresse http://localhost:1024/index.html.