Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
projets:traduction_live_cd:script_francisation.sh [Le 23/04/2011, 18:10] – [Récupérer les scripts] oliveprojets:traduction_live_cd:script_francisation.sh [Le 11/09/2022, 13:17] (Version actuelle) – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art
Ligne 3: Ligne 3:
   * Connexion à Internet   * Connexion à Internet
   * [[:sudo|Droits superutilisateur]]   * [[:sudo|Droits superutilisateur]]
-  * [[:tutoriel:comment_installer_un_paquet|Installer les paquets]] **[[apt://squashfs-tools,genisoimage|squashfs-tools genisoimage]]** +  * [[:tutoriel:comment_installer_un_paquet|Installer les paquets]] **[[apt://squashfs-tools,genisoimage|squashfs-tools genisoimage bzr]]**
-  * Un autre script : [[projets:traduction_live_cd/inside_chroot.sh|inside_chroot.sh]]+
   * ~4Gio d'espace disque libre   * ~4Gio d'espace disque libre
  
 ===== Récupérer les scripts ===== ===== Récupérer les scripts =====
  
-Les scripts sont dans la [[http://bazaar.launchpad.net/~ubuntu-fr/+junk/iso-fr/branche iso-fr sur launchpad]]. +Les scripts sont dans Launchpad ( [[https://code.launchpad.net/~ubuntu-fr/+junk/french-cd|ICI]] pour 12.04 , ou [[http://bazaar.launchpad.net/~ubuntu-fr/+junk/iso-fr/|LA]] pour 10.04)
-Il est nécessaire d'avoir le paquet [[:tutoriel:comment_installer_un_paquet|bzr]] installé.+
 <code bash> <code bash>
 bzr branch lp:~ubuntu-fr/+junk/iso-fr bzr branch lp:~ubuntu-fr/+junk/iso-fr
Ligne 18: Ligne 16:
 **Les manipulations sont à faire en tant que superutilisateur.** **Les manipulations sont à faire en tant que superutilisateur.**
  
-Pour la version 11.04 : +Pour la version 11.04 :
 <code bash> <code bash>
 ./script_francisation.sh -r 11.04 -u http://cdimage.ubuntu.com/cdimage/daily-live/current/ -d /root/projets/traduction_live_cd ./script_francisation.sh -r 11.04 -u http://cdimage.ubuntu.com/cdimage/daily-live/current/ -d /root/projets/traduction_live_cd
 </code> </code>
  
-Pour la version 10.04.2 (LTS) : +Pour la version 10.04.2 (LTS) :
 <code bash> <code bash>
 ./script_francisation.sh -r 10.04 -u http://cdimage.ubuntu.com/cdimage/lucid/daily-live/current/ -d /root/projets/traduction_live_cd ./script_francisation.sh -r 10.04 -u http://cdimage.ubuntu.com/cdimage/lucid/daily-live/current/ -d /root/projets/traduction_live_cd
Ligne 30: Ligne 28:
 Le temps nécessaire pour générer une iso est d'environ 30 minutes. Ce temps peut beaucoup varier selon le processeur, le disque dur et le débit de la connexion à Internet. Le temps nécessaire pour générer une iso est d'environ 30 minutes. Ce temps peut beaucoup varier selon le processeur, le disque dur et le débit de la connexion à Internet.
  
-===== script_francisation.sh =====+===== Participation =====
  
 +Pour proposer une amélioration, il faut un compte sur launchpad.net.
 +Après avoir modifié les scripts : (changez //votresurnom// par votre pseudonyme launchpad)
 <code bash> <code bash>
-#!/bin/bash +bzr commit -m "un message explicatif" 
-  +bzr push lp:~votresurnom/iso-fr 
-# Translation script for Ubuntu CDs +</code>
-# Copyright (C) 2010  Didier ROCHE, Vincent-Xavier JUMEL, Olivier FRAYSSE, Islem ABD-EL RAHMAN +
-  +
-# This program is free softwareyou can redistribute it and/or modify +
-# it under the terms of the GNU General Public License as published by +
-# the Free Software Foundation, either version 3 of the License, or +
-# (at your option) any later version. +
-  +
-# This program is distributed in the hope that it will be useful, +
-# but WITHOUT ANY WARRANTY; without even the implied warranty of +
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +
-# GNU General Public License for more details. +
-  +
-# You should have received a copy of the GNU General Public License +
-# along with this program.  If not, see <http://www.gnu.org/licenses/>+
-  +
-# Be sure to set up the variables according to your needs and preferences+
  
-# Usageusage +Ensuite, sur https://code.launchpad.net/~votresurnom/iso-fr cliquez sur "Propose for merging".
-# Print the usage. +
-usage () { +
-    cat <<EOF+
  
-Usage: `basename $0` [OPTION] 
-Localize the CD 
- 
-  -d, --directory=WD      working directory (default to /root/projets/traduction_live_cd) 
-  -a, --arch=ARCH         Architecture (default to i386) 
-  -r, --release           Ubuntu release number and name (mandatory) 
-  -D, --debug   Turn on debuging, by not purging file 
-  -u, --url   Change url (if omissed, the script will try to do some auto-detection) 
-  -h, --help              print this message and exit 
-  -v, --version           print the version information and exit 
- 
-Report bugs to <bug-grub@gnu.org>. 
-EOF 
-} 
- 
-# This function should be called on error to unmount filesystems 
-exit_on_error () { 
-  for i in `grep $1 /proc/mounts | awk '{print $2}' | sort -r`  
-  do umount $i ; sleep 2  
-  done 
-  echo "Something went wrong, unmounting filesystems in working directory ..." >&2 
-  exit 1 
-} 
- 
-V_NUM=10.10 
-ARCH=i386 # Architecture 
-WD=/root/projets/traduction_live_cd # our working directory, should not interfere with anything you have 
-debug=0 # Setting the debug value 
- 
-# Note that we use `"$@"' to let each command-line parameter expand to a  
-# separate word. The quotes around `$@' are essential! 
-# We need TEMP as the `eval set --' would nuke the return value of getopt. 
-TEMP=`getopt -o d:a:r:u:hD --long directory:,arch:,release:,help,debug,url: -n 'script_francistation.sh' -- "$@"` 
- 
-if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi 
- 
-# Note the quotes around `$TEMP': they are essential! 
-eval set -- "$TEMP" 
- 
-while true ; do 
-  case "$1" in 
-    -d|--directory) WD=$2 ; shift 2;; 
-    -a|--arch) ARCH=$2 ; shift 2 ;; 
-    -r|--release) V_NUM=$2 ; shift 2 ;;  
-    -D|--debug) debug="1" ; shift 1 ;; 
-    -u|--url) DL_URL=$2; shift 2 ;; 
-    --) shift ; break ;; 
-    *) usage ; exit 0 ;; 
-  esac 
-done 
- 
-if [ $ARCH != i386 -a $ARCH != amd64 ]; then 
-  echo "Arch not recognized or supported" >&2 
-  exit 1 
-fi 
- 
-# This will create final working directory, even if the full path don't exists. 
-for i in mnt extract-cd edit tmp ; do  
-  if [ ! -d ${WD}/${i} ]; then  
-    mkdir -p ${WD}/${i} ;  
-  else 
-    rm -rf ${WD}/${i}/* 
-  fi 
-done 
- 
-# http://paste.ubuntu.com/419825/ 
- 
-FLAVOR="desktop" 
- 
-V_NUM_B=$V_NUM 
-LTS="" 
-if [ $V_NUM == "10.04" ]; then 
-  V_NUM_B="10.04.2" 
-  V_NAME="lucid" 
-  LTS=" LTS" 
-elif [ $V_NUM == "10.10" ]; then 
-  V_NAME="maverick" 
-elif [ $V_NUM == "11.04" ]; then 
-  V_NAME="natty" 
-else  
-  echo "Wrong version number" >& 
-  exit 1 
-fi 
- 
-VERSION=$V_NAME 
- 
-ISOPATH=$(echo $DL_URL | sed s,http://,,) 
- 
-if [[ -z "$ISOPATH" ]]; then 
-  if [[ "$FLAVOR" = "desktop" ]]; then 
-    ISOPATH="cdimage.ubuntu.com/cdimage/daily-live/current" 
-  elif [[ "$FLAVOR" = "alternate" ]]; then 
-    ISOPATH="cdimage.ubuntu.com/cdimage/daily/current" 
-  elif [[ "$FLAVOR" = "dvd" ]]; then 
-    ISOPATH="cdimage.ubuntu.com/cdimage/dvd/current" 
-  elif [[ "$FLAVOR" = "netbook" ]]; then 
-    ISOPATH="cdimage.ubuntu.com/cdimage/ubuntu-netbook/daily-live/current" 
-  elif [[ "$FLAVOR" = "server" ]]; then 
-    ISOPATH="cdimage.ubuntu.com/cdimage/ubuntu-server/daily/current" 
-  else 
-    echo "Unrecognized distribution, set ISOPATH manually" 
-    exit 1 
-  fi 
-fi 
-ISO=$VERSION-$FLAVOR-$ARCH.iso 
- 
-# Save the original location 
-ORIG_DIR=$PWD 
- 
-cd $WD 
- 
-# create identical formatted md5sum file from local copy 
-if [[ -f $ISO ]]; then 
-  md5sum $ISO | sed -e "s/  / */" > $ISO.md5.local  
-fi 
- 
-wget -q http://$ISOPATH/MD5SUMS 
-grep $ISO MD5SUMS > $ISO.md5.server 
-rm MD5SUMS 
-diff -q $ISO.md5.local $ISO.md5.server 
- 
-if [ ! $? -eq "0" ]; then 
-  echo "Performing rsync in $WD" 
-  rsync -avzhhP rsync://$ISOPATH/$ISO . 
-  if [ ! $? -eq "0" ]; then 
-    echo "Nothing have been downloaded :-(" >&2 
-    exit 1 
-  fi 
-else 
-  echo "no need to refresh" 
-fi 
-md5sum $ISO | sed -e "s/  / */" > $ISO.md5.local 
-diff -q $ISO.md5.local $ISO.md5.server 
- 
-if [ ! $? -eq "0" ]; then 
-  echo "rsync failed" 
-  exit 1 
-else 
-  echo "success" 
-fi 
- 
- 
-# Going into working directory 
-cd ${WD} 
-mount -o loop ${WD}/${V_NAME}-desktop-${ARCH}.iso ${WD}/mnt 
-rsync --exclude=/casper/filesystem.squashfs -av ${WD}/mnt/ ${WD}/extract-cd 
-  
-unsquashfs -d ${WD}/edit/. -f ${WD}/mnt/casper/filesystem.squashfs 
-umount mnt 
-  
-# Just replace archives by French ones 
-  
-sed -i 's/archive/fr.archive/' ${WD}/edit/etc/apt/sources.list  
-  
-# We just uncomment universe and multiverse for special package. They 
-# will be commented out by the end of the installation dans /var/lib/apt 
-# will be purged to gain space. 
-  
-sed -i -r -e 's/# (deb .* .*iverse)/\1/' ${WD}/edit/etc/apt/sources.list 
-  
-# Preparing and entering the chroot environment 
-cp /etc/resolv.conf ${WD}/edit/etc/ 
-cp /etc/hosts ${WD}/edit/etc/ 
-mount --bind /dev/ ${WD}/edit/dev 
-mount -t proc none ${WD}/edit/proc 
-mount -t sysfs none ${WD}/edit/sys 
-mount -t devpts none ${WD}/edit/dev/pts 
- 
-cp $ORIG_DIR/inside_chroot.sh ${WD}/edit/root/fr.sh 
- 
-chroot ${WD}/edit /bin/bash /root/fr.sh $V_NUM $V_NAME $ARCH 
- 
-if [ ! $? -eq "0" ] ; then 
-  exit_on_error $WD 
-else 
-  umount ${WD}/edit/proc 
-  umount ${WD}/edit/sys 
-  umount ${WD}/edit/dev/pts 
-  umount ${WD}/edit/dev 
-fi 
- 
-# Getting out the chroot environment 
-mv -f ${WD}/edit/initrd.lz ${WD}/extract-cd/casper/ 
- 
-# Updating the autorun.inf 
-sed -i 's/Install Ubuntu/Installer Ubuntu/' ${WD}/extract-cd/autorun.inf 
- 
-# Correction d'un BUG de traduction dans la 10.04.1 et 10.10 
-sed -i "s/Installer RELEASE/Installer Ubuntu ${V_NUM_B}${LTS}/g" ${WD}/edit/usr/share/applications/desktop.*.cache # desktop.fr_FR.utf8.cache desktop.C.cache 
-sed -i "s/Installer RELEASE/Installer Ubuntu ${V_NUM_B}${LTS}/g" ${WD}/edit/usr/share/applications/ubiquity-gtkui.desktop 
-  
-# Dealing with gfxboot  
-chmod -R u+w ${WD}/extract-cd/ 
-echo fr > ${WD}/extract-cd/isolinux/lang 
-echo fr > ${WD}/extract-cd/isolinux/langlist 
-cp ${WD}/extract-cd/isolinux/fr.* ${WD}/tmp/ 
-rm ${WD}/extract-cd/isolinux/*.hlp ${WD}/extract-cd/isolinux/*.tr 
-mv ${WD}/tmp/fr.* ${WD}/extract-cd/isolinux/ 
-chmod u-w ${WD}/extract-cd/isolinux ${WD}/extract-cd/isolinux/lang ${WD}/extract-cd/isolinux/langlist 
- 
-# Login in french keyboard and french language (for livecd, or for user "ubuntu" if installed with this user) 
-mkdir -p ${WD}/edit/var/cache/gdm/ubuntu 
-cat > ${WD}/edit/var/cache/gdm/ubuntu/dmrc << EOF 
-[Desktop] 
-Language=fr_FR.UTF-8 
-Layout=fr 
-EOF 
- 
-if [ $V_NUM == "10.04" ]; then BOOT_MENU="text.cfg"; else BOOT_MENU="txt.cfg"; fi 
- 
-sed -i " 
-s/\^Try Ubuntu without installing/^Essayer Ubuntu sans l\'installer/; 
-s/\^Install Ubuntu/^Installer Ubuntu/; 
-s/\^Check disc for defects/^Vérifier le disque/; 
-s/Test ^memory/Vérifier la ^mémoire/; 
-s/\^Boot from first hard disk/^Démarrer sur le premier disque/ 
-" ${WD}/extract-cd/isolinux/${BOOT_MENU} 
-  
-# Creating CD manifest 
-  
-chmod +w ${WD}/extract-cd/casper/filesystem.manifest 
-chroot ${WD}/edit dpkg-query -W --showformat='${Package} ${Version}\n' > ${WD}/extract-cd/casper/filesystem.manifest 
-cp ${WD}/extract-cd/casper/filesystem.manifest ${WD}/extract-cd/casper/filesystem.manifest-desktop 
- 
-echo -e "Calcule la taille du dossier chroot pour le fichier filesystem.size..." 
-printf $(du -sx --block-size=1 ${WD}/edit | cut -f1) > ${WD}/extract-cd/casper/filesystem.size 
-if [[ ! -e "${WD}"/extract-cd/casper/filesystem.size || -z `cat ${WD}/extract-cd/casper/filesystem.size` ]]; then 
-  echo "can't generate the filesystem.size file, exit..." >&2 
-  exit 0 
-fi 
- 
-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' ${WD}/extract-cd/casper/filesystem.manifest-desktop 
- 
-# Creating the squashfs 
-rm -f ${WD}/extract-cd/casper/filesystem.squashfs 
-mksquashfs ${WD}/edit ${WD}/extract-cd/casper/filesystem.squashfs 
- 
-chmod 777 ${WD}/tmp 
-rm -f ${WD}/tmp/md5sum.txt 
-rm ${WD}/extract-cd/md5sum.txt 
-cd ${WD}/extract-cd && find . -type f -not -name md5sum.txt -not -path '*/isolinux/*' -print0 | xargs -0 -- md5sum > ${WD}/tmp/md5sum.txt 
-cp ${WD}/tmp/md5sum.txt ${WD}/extract-cd/md5sum.txt 
-  
-cd ${WD}/extract-cd 
-mkisofs -r -V "Ubuntu ${V_NUM_B} Ed. 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-${V_NUM_B}-desktop-${ARCH}-fr.iso . 
-cd .. 
-echo "Update the Manifest file" 
-if [[ -s MANIFESTS ]]; then 
-  sed -i /ubuntu-${V_NUM_B}-desktop-${ARCH}-fr.iso/d MANIFESTS 
-fi 
-echo -e `md5sum ubuntu-${V_NUM_B}-desktop-${ARCH}-fr.iso ` "\n"`sha1sum ubuntu-${V_NUM_B}-desktop-${ARCH}-fr.iso ` "\n"` sha512sum ubuntu-${V_NUM_B}-desktop-${ARCH}-fr.iso` >> MANIFESTS 
- 
-if [ $debug -eq "1" ]; then 
-  cd ${WD} 
-  rm -rf ${WD}/mnt ${WD}/extract-cd ${WD}/edit ${WD}/tmp *.img 
-fi 
-</code>