====== Swissbuntu maker ======
Le scripts et les fichiers sont disponible dans : http://www.swisslinux.org/documents/swissbuntu
===== Objectifs =====
Le but de ce script serait d'automatiser la création d'une image iso adaptée au besoin du projet revendeur de Swisslinux.org.
===== Etats =====
Pour l'instant le script est capable d'ouvrir l'image iso originale et de modifier les fichiers voulus. A terme, il devra aussi être capable d'ajouter les paquets souhaités, et si la place manque de retirer les paquets non voulu, à l'image de cet [[https://help.ubuntu.com/community/InstallCDCustomization/Scripts|ancien script]] proposé sur le wiki de Ubuntu dont il est inspiré.
==== swissbuntu.sh ====
* {{wiki:ok.png|}} : supprimer les paquets partman du pool
* {{wiki:ok.png|}} : comprendre comment fonctionne le système de signature et de dépôts locaux (apt-ftparchive)
* {{wiki:nok.png|}} : ajouter les paquets souhaité dans le CD
* {{wiki:nok.png|}} : mettre un script pour finaliser l'installation
==== swissbuntu.seed ====
* {{wiki:nok.png|}} : mettre un lien vers le script pour finir l'installation
* {{wiki:nok.png|}} : account setup à vérifier et éventuellement corriger
* {{wiki:nok.png|}} : x-org config à vérifier
* {{wiki:nok.png|}} : vérifier le choix du noyau
==== autoparded.udeb ====
* {{wiki:ok.png|}} : structure du script fonctionnelle, partitionnement absolu
* {{wiki:nok.png|}} : partitionnement en pourcent du disque et non en absolu
* {{wiki:nok.png|}} : modifier le script de autoparted pour permettre la sauvegarde des fichiers si le CD est utilisé comme recovery
==== Autres choses à réaliser ====
* {{wiki:nok.png|}} : Ajout d'un logo Swisslinux.org dans le bootsplash de l'installeur ubuntu
* {{wiki:nok.png|}} : Edition des fichiers d'aide F1.txt,F2.txt,... (ou suppression ...)
* {{wiki:nok.png|}} : Preseeding de toutes les questions (voir bugs)
* {{wiki:nok.png|}} : Script finalisant l'installation (regarder avec Informalys)
* {{wiki:nok.png|}} : Modification des sources de paquets, enlever la référence au cédérom.
* {{wiki:nok.png|}} : Ajout de Swisslinux.org en liens de Firefox
* {{wiki:nok.png|}} : Installation des codecs, de flash, ...
* {{wiki:nok.png|}} : Installation des paquets supplémentaires, et configuration de la langue.
* {{wiki:nok.png|}} : Ajout d'un écran d'accueil présentant les 4 libertés fondamentale des logiciels libres.
===== Fichiers =====
Tous les fichiers créés pour l'instant sont disponibles dans le dossier [[http://www.swisslinux.org/documents/swissbuntu/|Swissbuntu]].
===== Le script =====
Le fichier swissbuntu.sh contient le script de base.
En modifiant les valeurs au début du script, il est possible d'automatiser le montage de l'image iso préalablement téléchargée, d'en copier le contenu dans un dossier, puis de remplacer le fichier isolinux.cfg et d'ajouter le fichier swissbuntu.seed. Le script copie aussi le paquet autoparted, signe, puis recrée une nouvelle image iso.
===== Le fichier de seed =====
Le fichier [[http://www.swisslinux.org/documents/swissbuntu/swissbuntu.seed|swissbuntu.seed]] contient les réponses pour l'installeur Debian.
Il devrait permettre de répondre à toutes les questions, puis lorsque l'installation est terminée, il devrait lancer un script shell finalisant l'installation :
* Installation de paquets supplémentaires
* Installation de paquets langues manquant
* Configuration préalable des dictionnaires
* suppression de l'utilisateur oem, et mise en place de l'invite pour le nouvel utilisateur : sudo oem-config-prepare
L'utilisateur final ne devrait voir qu'un seul écran d'accueil du genre de cette fenêtre :
https://help.ubuntu.com/community/Ubuntu_OEM_Installer_Overview?action=AttachFile&do=get&target=7.png
La langue, le clavier et le fuseau horaire seraient déjà préconfiguré.
===== Le fichier isolinux.cfg =====
Le fichier [[http://www.swisslinux.org/documents/swissbuntu/isolinux.cfg|isolinux.cfg]] gère les options d'installation apparaissant du démarrage du CD.
Le choix de la langue est momentanément fixé à en_US à cause du preseeding de partman qui doit être fait avec des valeurs dans la langue de l'installation.
Pour l'instant il y a une option redondante :
anna/choose_modules=oem-config-udeb oem-config/enable=true
La première est (devrait) pour la version 7.04 et la deuxième pour la 7.10.
===== Autoparted =====
Pour fabriquer le paquet :
**dpkg-deb --build autoparted**
puis le renommer en .udeb et le mettre dans l'arborescence ( ** mv autoparted.deb pool/main/a/autoparted/autoparted.udeb).
===== Bugs et problèmes =====
===== Script après le reboot =====
* Se loguer en tant qu'utilisateur "OEM"
* Effectuer les changements désirés :
* Fond d'écran (?)
* Page d'accueil de firefox
* Informations "Premier démarrage" (4 libertés fondamentales)
* Installation de codecs/paquets supplémentaires: ubuntu-restricted-extras et dépendances (msttcorefonts?, java, flash, etc.)
* Désinstallation de paquets? Remplacer totem-gstreamer par totem-xine?
* Terminer par la commande sudo oem-config-prepare
sudo halt
===== Liens de documentation =====
==== Preseed ====
* https://help.ubuntu.com/7.04/installation-guide/i386/appendix-preseed.html
* https://help.ubuntu.com/community/InstallCDCustomization
* https://help.ubuntu.com/community/InstallCDCustomization/PreseedExamples?highlight=%28preseed%29
* https://help.ubuntu.com/7.04/installation-guide/example-preseed.txt
* http://wiki.debian.org/DebianInstaller/Preseed
* http://nic.phys.ethz.ch/projects/dphys3/
* http://doc.ubuntu-fr.org/netboot#configurer_les_fichiers_pxelinux.cfg
==== Isolinux ====
* http://www.debuntu.org/how-to-unattended-ubuntu-network-install-preseed-p5
* http://wiki.babel.com.au/index.php?area=Linux_Projects&page=isolinux
* http://members.chello.at/bobby100/ILpart2.htm
==== Partman ====
* http://d-i.alioth.debian.org/svn/debian-installer/installer/doc/devel/partman-auto-recipe.txt
* https://launchpad.net/projects/?text=partman&x=0&y=0
* http://loftninjas.org/blog/2007/07/complex-lvm-on-alternative-install-of.html (comment ne pas utiliser partman...)
==== Customization Tools ====
* https://launchpad.net/uck
* https://launchpad.net/reconstructor