Contenu | Rechercher | Menus

Ceci est une ancienne révision du document !



Attention cette page est en cours de rédaction.

Méthode de localisation du live-CD Karmic 32bits en français

Dans un but de transparence, voici ci-dessous la méthode que l'on va utiliser pour créer l'ISO Ubuntu 9.10 Edition Francophone (32bits) francophone. Elle est issue de la mise en commun de l'expérience des "créateurs d'ISO" du projet. Merci notamment à smo et titienne pour avoir rédigé la première version de cette méthode.

Cette méthode servira de base pour les autres versions (kubuntu, xubuntu…) francophones.

Page principale du projet : traduction_live_cd. Forum du projet : ici.


Préparation

Installation des outils nécessaires

Le paquet squashfs est nécessaire afin de pouvoir décompresser le système de fichier embarqué sur le live-cd. Le paquet mkisofs servira à la génération de l'iso finale.

sudo apt-get install squashfs-tools genisoimage

Placer l'iso de la Ubuntu 9.10 version desktop 32 bits dans le répertoire personnel

cd ~
wget -c http://releases.ubuntu.com/karmic/ubuntu-9.10-desktop-i386.iso

Création d'un répertoire de travail :

mkdir ~/live
cd ~/live

Utilisation de l'image iso récupérée

Nous allons monter l'image iso, afin de pouvoir en parcourir son contenu, et nous faisons une copie locale des fichiers de l'iso afin de pouvoir les modifier.

Extraction du contenu de l'iso :

mkdir mnt
sudo mount -o loop ~/ubuntu-9.10-desktop-i386.iso mnt
mkdir extract-cd
rsync --exclude=/casper/filesystem.squashfs -av mnt/ extract-cd

Nota : nom de l'iso à adapter éventuellement

Dans la foulée nous décompressons le système de fichier embarqué dans l'iso afin de pouvoir y faire des modifications. Ce système sera celui sous lequel l'utilisateur se retrouve lorsqu'il arrive sur la session de test du live-cd. Donc c'est dans ce dernier qu'il faut agir pour ajouter des paquets, changer le fond d'écran etc.

Extraction du système :

mkdir edit
sudo unsquashfs -d edit/. -f mnt/casper/filesystem.squashfs

Pour finir, on démonte l'iso :

sudo umount mnt

Le "sources.list"

Nous allons modifier le sources.list en activant les dépôts "universe" et en désactivant les dépôts sources (deb-src).

gksu gedit edit/etc/apt/sources.list

Remplacez le contenu par :

deb http://fr.archive.ubuntu.com/ubuntu karmic main restricted
# deb-src http://fr.archive.ubuntu.com/ubuntu karmic main restricted

deb http://security.ubuntu.com/ubuntu karmic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://fr.archive.ubuntu.com/ubuntu karmic-updates main restricted
# deb-src http://fr.archive.ubuntu.com/ubuntu karmic-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
# deb http://fr.archive.ubuntu.com/ubuntu karmic universe
# deb-src http://fr.archive.ubuntu.com/ubuntu karmic universe
# deb http://fr.archive.ubuntu.com/ubuntu karmic-updates universe
# deb-src http://fr.archive.ubuntu.com/ubuntu karmic-updates universe
# deb http://security.ubuntu.com/ubuntu karmic-security universe
# deb-src http://security.ubuntu.com/ubuntu karmic-security universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
# deb http://fr.archive.ubuntu.com/ubuntu karmic multiverse
# deb-src http://fr.archive.ubuntu.com/ubuntu karmic multiverse
# deb http://fr.archive.ubuntu.com/ubuntu karmic-updates multiverse
# deb-src http://fr.archive.ubuntu.com/ubuntu karmic-updates multiverse
# deb http://security.ubuntu.com/ubuntu karmic-security multiverse
# deb-src http://security.ubuntu.com/ubuntu karmic-security multiverse

Note IMPORTANTE !!! :

quand les sources sont mises à jour, une sauvegarde est faite dans /var/lib/apt, plus il y'a de sources décommentées, plus ce repertoire est gros, exemple main + universe = 54 mo actuellement, sans universe = 11 mo

ceci est donc a prendre en compte pour le poids final de notre live-cd, pour cela il suffit de veiller à ne laisser QUE main décommenté comme dans l'exemple ci-dessus et mettre à jour en fin d'édition en chroot (si besoin)

Le Chroot

Nous allons entrer dans le système de fichier contenu dans le live-cd (et que nous avons décompressé). Mais plus encore nous allons le lancer, faire comme si le live-cd était lancé et nous y connecter. C'est ce à quoi sert un chroot. Nous allons donc nous retrouver dans l'environnement du live-cd et chacune de nos actions va avoir des répercutions sur l'iso que nous génèrerons au final. Nous allons également monter quelques répertoires afin de nous donner accès au net depuis notre chroot.

Quelques réglages préalables puis passage en chroot pour personnaliser le système :

sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/
sudo mount --bind /dev/ edit/dev
sudo chroot edit /bin/bash
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root

Mises à jour des dépôts

Nous sommes dans le chroot. La première étape est de mettre à jour la liste des paquets disponibles :

apt-get update

Suppression des paquets inutiles

Afin de libérer de la place on supprime les paquets linguistiques qui sont déjà installés.

LANG=C
apt-get remove --purge $(dpkg -l | awk '{print $2}' | egrep "language-pack|aspell-|gimp-help-|language-support-|myspell-|language-pack-gnome-|gimp-help-|thunderbird-locale-" | xargs)

Note de Cymoud : la commande suivante est plus complète et mieux adaptée à la version 9.10 et permet de supprimer wamerican et wbritish plutot que de le faire dans filesystem.manifest-desktop :

aptitude purge $(dpkg -l | awk '{print $2}' | egrep "^language-pack-|^language-pack-gnome-|^language-support-|^aspell|^myspell-|^hunspell-|^wamerican$|^wbritish$|^openoffice.org-help-|^openoffice.org-hyphenation-|^openoffice.org-thesaurus-|^gimp-help-|^evolution-documentation-" | xargs)

Installation des paquets français

Maintenant on ajoute les paquets linguistiques pour le français :

apt-get install language-pack-fr language-pack-fr-base gimp-help-fr language-support-fr language-support-writing-fr language-pack-gnome-fr language-pack-gnome-fr-base manpages-fr manpages-fr-dev manpages-fr-extra openoffice.org-hyphenation openoffice.org-help-fr openoffice.org-l10n-fr wfrench gimp-help-common
LANG=fr_FR.UTF-8

attention, manpages-fr manpages-fr-dev manpages-fr-extra sont passé en universe depuis la version 9.10 (il faut fixer la procédure, j'ai ajouté temporairement universe puis supprimé)

Suppression des .mo inutiles

On continue notre nettoyage en installant localepurge qui va permettre de supprimer toutes les locales installées pour ne garder au final que celle pour le français.

→ idem localpurge est dans universe

apt-get install localepurge

Ne sélectionner que fr, fr_FR, fr_fr@euro et fr_FR.UTF-8

On lance la purge et on supprime le paquet :

localepurge
apt-get remove --purge localepurge

Modifier le nom d'utilisateur

Lorsque vous êtes sur le livecd, vous êtes connecté comme étant Live session user. Nous remplacerons ça par Session CD :-)

sed -i "s/Live session user/Session CD/g" /etc/casper.conf
sed -i "s/Live session user/Session CD/g" /usr/share/initramfs-tools/scripts/casper

Nota : la re-génération de initrd est nécessaire afin que soit prise en compte cette modification.

Firefox

Marque-page

Firefox 3 a ses menus en français, mais les marque-pages sont ceux de la version anglaise. Nous allons donc récupérer une archive française de firefox et en extraire les marque-pages en remplacement de ceux existant.

wget http://ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/firefox/boomarks.html -O /etc/firefox-3.5/profile/bookmarks.html

→ les ICON_URI ont été supprimés de ce fichier

Le site ubukey.fr ne fonctionne plus.

Modifier la page d'accueil

Pour modifier la page d'accueil on doit modifier le module "ubufox" pour ne pas avoir une page d'erreur si on n'a pas de connection à internet.

avant tout ce fichier etant un .jar, si la commande "jar" n'est pas disponible :

sudo apt-get install fastjar

il faut ensuite extraire, éditer puis recomprésser ce jar (a faire directement dans le chroot ou en local mais sans oublier de copier le fichier dans le chroot ensuite…)

## au cas ou on cree un repertoire de travail
mkdir -p /tmp/live/ubufox
cd /tmp/live/ubufox

cp /usr/share/ubufox/chrome/ubufox.jar /tmp/live/ubufox
fastjar -xf ubufox.jar
rm ubufox.jar

on passe a l'edition

cd /tmp/live/ubufox/content

# on change le lien par défaut
sed -i 's%http://start.ubuntu.com/9.10%http://start.ubuntu-fr.org/9.10%' startpage.html

## et la langue dans le cas ou la localisation n'est pas détectée correctement
sed -i 's/en-US/fr-FR/' startpage.html

Pour finir, on recrée le .jar

cd /tmp/live/ubufox
fastjar -cMf ubufox.jar .
cp ubufox.jar /usr/share/ubufox/chrome/

apt-get remove --purge fastjar

voilà pour ubufox et la page d'accueil

Autre

Modifier le "useragent" du profile par défaut:

echo 'user_pref("general.useragent.locale", "fr-FR");' >> /etc/firefox-3.5/profile/prefs.js

Modifier le lien de "Notes de version" qui se trouve dans le menu aide de Firefox :

echo 'user_pref("app.releaseNotesURL", "http://doc.ubuntu-fr.org/karmic");' >> /etc/firefox-3.5/profile/prefs.js

Note : en exemple, Les fichiers complets issu de ces explications sont ici : http://ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/firefox/

Les exemples de documentation en français

Deux choses pour la version Karmic, traduire le .desktop qui fait désormais office de lien et remplacer les exemples anglais par ceux traduits par la communautée

Le .desktop

traduire /etc/skel/examples.desktop + ajouter une icône pour que ce soit pas une icône "vide"

[Desktop Entry]
Version=1.0
Type=Link
Name=Exemples
Comment=Contenu d'exemples pour Ubuntu
URL=file:///usr/share/example-content/
X-Ubuntu-Gettext-Domain=example-content
Icon=folder

Puis :

## edition de casper
sed -i 's/Desktop/Bureau/g;s/Examples/Exemples/g' /usr/share/initramfs-tools/scripts/casper-bottom/10adduser

## profitons en pour ajouter un saut de ligne au texte de l'icone installer ubuntu 9.10
sed -i 's/Installer RELEASE/Installer \\nRELEASE/' /usr/share/applications/ubiquity-gtkui.desktop

Les exemples

Nous remplaçons ici les exemples du live-cd officiel par ceux traduits par la communauté ubuntu-fr (reprendre l'etape initialisation du chroot plus haut si besoin):

cd /usr/share/example-content
rm *
wget http://ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/radline_doc/Doc%209_10.tar.gz
tar xvf Doc%209_10.tar.gz
rm traductions-exemples.tar.gz
mv LiveCD_francais_remerciements.txt Ubuntu_Édition_Francophone_remerciements.txt

Les fichiers de traductions ne correspondent pas au contenu. Comparaison manuelle…

un petit script cron tourne désormais et regenere al doc tous les jours a minuit (jaunty en exemple pour l'instant) ;)

Clavier fr dans le tty1

dpkg-reconfigure console-setup

choisir les configuration suivante : - Generic 105-key (Intl) PC - France - France - Alternative - Pas de touche AltGr - Pas de touche « compose » - UTF-8 - # latin1 et latin5 : langues de l'Europe de l'ouest et turc - VGA - 16 - /dev/tty[1-6]

Installation de Simple Comme Ubuntu

Récupération du .deb, puis:

copie de scu-3d.png dans /usr/share/pixmaps (à mettre dans la prochaine version du paquet)

 dpkg -i simplecommeubuntu*deb
# création du .desktop sur le bureau…
mkdir /etc/skel/Bureau/
vim /etc/skel/Bureau/scu-9.10.desktop
chmod u+x /etc/skel/Bureau/scu-9.10.desktop

Son contenu :

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Simple Comme Ubuntu 9.10
Comment=Livre libre décrivant l'utilisation d'Ubuntu
Icon=scu-3d
Type=Link
URL=file:///usr/share/doc/simplecommeubuntu/scu-9.10.pdf.gz

Casper et messages de boot

Messages au reboot

Pour traduire les message au reboot du pc, "please remove your disk and close the tray…"

editez simplement le fichier ~live/edit/etc/init.d/casper

fichier exemple : http://ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/casper/etc-init.d/casper

Messages de vérification du live-cd

Pour les messages de vérification du live cd etc, la méthode que j ai utilisé :

En dehors du chroot:

apt-get source casper
cd casper*/casper-md5check

# maintenant traduire le fichier casper-md5check.c en console et recompiler avec la commande "make"
# restera ensuite à recopier le nouveau binaire:

cp casper-md5check ~live/edit/usr/lib/casper/
chmod +x /usr/lib/casper/casper-md5check

et voila :)

fichier recompilé (pour karmic): http://ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/casper/usr-lib-casper/casper-md5check

Vérifications

Recherche des logins dont l'uid est supérieur ou égal à 1000

grep '^[^:]*:[^:]*:[1-9][0-9][0-9][0-9]:' /etc/passwd
grep '^[^:]*:[^:]*:[12][0-9][0-9][0-9][0-9]:' /etc/passwd

Si les commandes précédentes renvoient quelque chose, il faut forcer l'uid à une valeur plus faible, sinon le live-cd ne démarrera pas :

usermod -u 500 $login

Initrd

On supprime l'initrd du squashfs généré lors du changement de locale:

rm boot/initrd.img-2.6.31-14-generic

Là nous mettons à jour le initrd afin de prendre en compte les changements faits plus haut dès qu'on touche à casper :

## genere l init mis à jour
mkdir -p /tmp/init
mkinitramfs -o /tmp/init/initrd.gz 2.6.31-14-generic

## extrait
cd /tmp/init
gzip -dc initrd.gz | cpio -id
rm *.gz

## recompresse en lzma, specifique à karmic...
find . | cpio --quiet --dereference -o -H newc | lzma -7 > /initrd.lz
cd /
rm -R /tmp/init

Et voila pour l'init en lzma

Nota : il faudra (voir plus loin) faire prendre en compte ce nouvel initrd par le noyau du live-cd. Sinon cela ne sert à rien ;-)

Sortie du chroot

nettoyage

On a fini les modifications dans le chroot donc on en sort proprement en enlevant nos traces, qui sinon se retrouveront sur le système final. Comme par exemple les paquets téléchargés qui vont gonfler inutilement la taille de notre système au final.

apt-get clean
rm -rf /tmp/*
rm -rf /var/tmp/*
rm /etc/resolv.conf
rm /etc/hosts
umount /proc
umount /sys
exit
sudo umount edit/dev

On récupère le initrd.lz

On récupère le initrd.lz précédemment compilé et on le place au bon emplacement afin qu'il soit utilisé par le noyau du live-cd

sudo mv -f edit/initrd.lz ~/live/extract-cd/casper/

Moteurs de recherche dans Firefox

cd edit/etc/firefox-3.5/profile
sudo wget http://www.ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/firefox/searchplugins.tar.bz2
sudo tar xvf searchplugins.tar.bz2
sudo rm searchplugins.tar.bz2
cd ~/live

Suppression de edit/etc/firefox-3.5/profile/searchplugins/ubuntu-france.xml: Il s'agit d'une violation du trademark de canonical (pas une loco et utilisation du nom ubuntu) Renommage de wikipidia-fr.xml en wikipedia-fr.xml

Remplacer les radio RhythmBox

nous allons remplacer les radio de RhythmBox par des radios françaises :

sudo wget http://www.ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/rhythmbox/radio.pls -O edit/usr/lib/rhythmbox/plugins/iradio/iradio-initial.pls

/!\ il m'a fallu rajouter (vu que la source ne l'avait pas):

[playlist]

autorun.inf

sudo sed -i 's/Install Ubuntu/Installer Ubuntu/' extract-cd/autorun.inf

Pour gfxboot

Ici nous allons modifier le tout premier écran qui apparait lorsque vous démarrez sur le live-cd. Nous modifions le fichier langlist afin qu'il ne propose plus le choix de toutes les langues et que celle choisie automatiquement soit le français. De plus nous créons le fichier lang qui fait en sorte que la langue d'affichage des menus soit le français.

cd ~/live/extract-cd/isolinux
sudo su
echo "fr" > langlist
echo "fr" > lang
exit
cd ~/live

Note de Cymoud : j'ai utilisé les commandes suivantes pour mettre le français en langue par défaut et supprimer les autres langues.

cd extract-cd/isolinux
chmod u+w .
echo fr > lang
echo fr > langlist
cp fr.* /tmp/
rm *.hlp *.tr
mv /tmp/fr.* .
chmod u-w . lang langlist

Création du CD

Pour le manifest

chmod +w extract-cd/casper/filesystem.manifest
sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d;/casper/d;/cryptsetup/d;/dmraid/d;/ecryptfs-utils/d;/gparted/d;/jfsutils/d;/keyutils/d;/kpartx/d;/libdebconfclient0/d;/libdebian-installer4/d;/libntfs10/d;/libreadline5/d;/localechooser-data/d;/ntfsprogs/d;/openoffice.org-hyphenation/d;/openoffice.org-thesaurus/d;/python-pyicu/d;/rdate/d;/reiserfsprogs/d;/user-setup/d;/wamerican/d;/wbritish/d;/xfsprogs/d' extract-cd/casper/filesystem.manifest-desktop

Note de Cymoud : en ce qui concerne wamerican et wbritish, je les ai supprimé dés le début du tutorial vue qu'ils ne sont pas utilisés pour le français. Ici j'ai remplacé la dernière commande par celle-ci après avoir récupéré la liste des dépendances non partagées de ubiquity, casper… cela donne :

sed -i '/casper/d;/cryptsetup/d;/dmraid/d;/ecryptfs-utils/d;/gparted/d;/jfsutils/d;/keyutils/d;/kpartx/d;/libdebconfclient0/d;/libdebian-installer4/d;/libdmraid1.0.0.rc15/d;/libecryptfs0/d;/libntfs10/d;/libreadline5/d;/localechooser-data/d;/lupin-casper/d;/ntfsprogs/d;/python-pyicu/d;/rdate/d;/reiserfsprogs/d;/ubiquity/d;/ubiquity-casper/d;/ubiquity-frontend-gtk/d;/ubiquity-slideshow-ubuntu/d;/ubiquity-ubuntu-artwork/d;/user-setup/d;/xfsprogs/d' extract-cd/casper/filesystem.manifest-desktop

Création du squashfs

Nous allons maintenant créer l'image de notre système de fichier que nous avons personnalisé :

cd ~/live
sudo rm extract-cd/casper/filesystem.squashfs
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

Nota : la première commande peut retourner une erreur (aucun fichier). C'est juste pour s'assurer qu'on est prêt pour la deuxième commande.

Création du md5sum

Ici on reconstruit le fichier md5sum.txt qui sert lors de l'auto-vérification du cd depuis le menu de boot.

sudo -s
rm extract-cd/md5sum.txt
(cd extract-cd && find . -type f -not -name md5sum.txt -not -path '*/isolinux/*' -print0 | xargs -0 -- md5sum > md5sum.txt )
exit

Création de l'image iso finale

Il est temps de créer notre iso :

cd extract-cd
sudo mkisofs -r -V "Ubuntu 9.10 Edition Francophone" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-9.10-desktop-i386-fr.iso .

Vous pouvez maintenant tester votre image Ubuntu Edition Francophone.




Le contenu de ce wiki est sous licence : CC BY-SA v3.0