« Construire HandyLinux » : différence entre les versions
(Page créée avec « = Construire HandyLinux = HOW TO build HandyLinux cette page relate le processus complet de construction d'HandyLinux ces sources permettent de construire les deux versio... ») |
|||
Ligne 1 : | Ligne 1 : | ||
= Construire HandyLinux = | = Construire HandyLinux = | ||
cette page relate le processus complet de construction d'HandyLinux | cette page relate le processus complet de construction d'HandyLinux | ||
ces sources permettent de construire les deux versions i386 et amd64. | ces sources permettent de construire les deux versions i386 et amd64. | ||
mode d'emploi : suivez le tuto jusqu'au clonage des sources, puis affichez les sources à coté du tuto pour visualiser rapidement la structure du build et le rôle de chaque fichier. | mode d'emploi : suivez le tuto jusqu'au clonage des sources, puis affichez les sources à coté du tuto pour visualiser rapidement la structure du build et le rôle de chaque fichier. | ||
amusez-vous bien :) | amusez-vous bien :) | ||
need help ? mailme | need help ? mailme | ||
Introduction | Introduction | ||
HandyLinux est construite sur 3 ressources : | HandyLinux est construite sur 3 ressources : | ||
les paquets Debian présents dans les dépôts du sources.list, | |||
les paquets du dépôt HandyLinux, | •.les paquets Debian présents dans les dépôts du sources.list, | ||
les sources du build que vous consultez actuellement, à utiliser avec le programme live-build. | |||
•.les paquets du dépôt HandyLinux, | |||
•.les sources du build que vous consultez actuellement, à utiliser avec le programme live-build. | |||
les paquets sont appelés pas le fichier /config/package-lists/handylinux.list.chroot . | les paquets sont appelés pas le fichier /config/package-lists/handylinux.list.chroot . | ||
les sources modifient 'en dur' la construction de l'image ISO, soit en intégrant des fichiers de configuration, soit en modifiant la construction grâce à certains scripts. | les sources modifient 'en dur' la construction de l'image ISO, soit en intégrant des fichiers de configuration, soit en modifiant la construction grâce à certains scripts. | ||
Principe du live-cd | Principe du live-cd | ||
HandyLinux est distribuée sous forme d'image ISO destinée à être gravée ou transférée sur une clé USB afin de créer un 'live-cd'. | HandyLinux est distribuée sous forme d'image ISO destinée à être gravée ou transférée sur une clé USB afin de créer un 'live-cd'. | ||
un live-cd est constitué d'une image système (toute l'architecture embarquée d'une installation) compressée dans une archive de type "squashfs" et d'un programe de boot permettant de lancer ce système compressé. | un live-cd est constitué d'une image système (toute l'architecture embarquée d'une installation) compressée dans une archive de type "squashfs" et d'un programe de boot permettant de lancer ce système compressé. | ||
Ligne 22 : | Ligne 31 : | ||
sur HandyLinux, on utilise live-build, le programme de construction officiel des images disque Debian | sur HandyLinux, on utilise live-build, le programme de construction officiel des images disque Debian | ||
Principe du live-build | Principe du live-build | ||
live-build est constitué d'une série de scripts destinés à construire une image live et/ou installable d'un système Debian. | live-build est constitué d'une série de scripts destinés à construire une image live et/ou installable d'un système Debian. | ||
ces scripts acceptent des arguments permettant de personnaliser l'image finale. | ces scripts acceptent des arguments permettant de personnaliser l'image finale. | ||
les arguments peuvent être réunis dans des scripts qui sont placés dans le dossier 'auto' des sources. | les arguments peuvent être réunis dans des scripts qui sont placés dans le dossier 'auto' des sources. | ||
processus de construction | processus de construction | ||
lorsqu'on lance la commande de construction, live-build lit les instructions que vous avez laissé. | |||
live-build détecte l'architecture, le noyau à utiliser etc, puis il utilise debootsrap pour créer un chroot de base. | •.lorsqu'on lance la commande de construction, live-build lit les instructions que vous avez laissé. | ||
ensuite il complète l'installation dans le chroot avec les paquets listés dans le /config/package-lists/blah.list.chroot . | |||
tous les paquets sont mis en cache dans un dossier qui se créé au moment de la construction directement à la racine des sources (/cache). | •.live-build détecte l'architecture, le noyau à utiliser etc, puis il utilise debootsrap pour créer un chroot de base. | ||
une fois le chroot installé, live-build va reporter le contenu de /config/includes.chroot/ (votre personnalisation du système) dans le chroot. | |||
viennent ensuite les 'hooks', le(s) script(s) qui vont modifier le chroot juste avant de le démonter. | •.ensuite il complète l'installation dans le chroot avec les paquets listés dans le /config/package-lists/blah.list.chroot . | ||
puis live-build démonte le chroot et commence à le compresser en squashfs (la partie la plus gourmande et la plus longue). | |||
enfin, il va chercher les paquets nécessaires pour l'installeur et la création de l'iso (isolinux, xorriso, etc) et génère l'image ISO. | •.tous les paquets sont mis en cache dans un dossier qui se créé au moment de la construction directement à la racine des sources (/cache). | ||
•.une fois le chroot installé, live-build va reporter le contenu de /config/includes.chroot/ (votre personnalisation du système) dans le chroot. | |||
•.viennent ensuite les 'hooks', le(s) script(s) qui vont modifier le chroot juste avant de le démonter. | |||
•.puis live-build démonte le chroot et commence à le compresser en squashfs (la partie la plus gourmande et la plus longue). | |||
•.enfin, il va chercher les paquets nécessaires pour l'installeur et la création de l'iso (isolinux, xorriso, etc) et génère l'image ISO. | |||
... en très gros :D | ... en très gros :D | ||
Mise en place | Mise en place | ||
Installation des dépendances | Installation des dépendances | ||
HandyLinux se sert programme de construction par défaut chez Debian, live-build. | HandyLinux se sert programme de construction par défaut chez Debian, live-build. | ||
Pour ses sources, c'est le protocole git qui est utilisé : | Pour ses sources, c'est le protocole git qui est utilisé : | ||
sudo apt-get update && sudo apt-get install live-build live-manual live-tools git apt-cacher-ng | sudo apt-get update && sudo apt-get install live-build live-manual live-tools git apt-cacher-ng | ||
Clonage des sources | Clonage des sources | ||
Pour utiliser et modifier les sources localement, vous devez les cloner sur votre système. | |||
Pour utiliser et modifier les sources localement, vous devez les cloner sur votre système. | |||
git clone https://git.framasoft.org/handylinux/handylinux-2.git | git clone https://git.framasoft.org/handylinux/handylinux-2.git | ||
Vous obtenez alors un dossier handylinux-2 qui contient l'intégralité des sources HandyLinux. | |||
Contenu des sources du build | Contenu des sources du build | ||
liste des dossiers et fichiers des sources HandyLinux-2.x | liste des dossiers et fichiers des sources HandyLinux-2.x | ||
aka koya dedans... kesafula ?? | aka koya dedans... kesafula ?? | ||
/Makefile | |||
script de lancement de la construction. | |||
permet de construire les deux versions i386 et amd64 en précisant le type de construction en argument. lancer 'make' pour la liste des options disponibles. | •./Makefile | ||
/README.md | script de lancement de la construction. | ||
fichier de présentation générale HandyLinux. | permet de construire les deux versions i386 et amd64 en précisant le type de construction en argument. lancer 'make' pour la liste des options disponibles. | ||
ce fichier contient aussi l'intégralité du changelog par versions. | |||
/TODO.md | •./README.md | ||
les trucs à faire. | fichier de présentation générale HandyLinux. | ||
/VERSION.md | ce fichier contient aussi l'intégralité du changelog par versions. | ||
fichier indiquant la version courante des sources et la date de sortie. | |||
/doc | •./TODO.md | ||
documentation et tutoriel de construction. | les trucs à faire. | ||
•./VERSION.md | |||
fichier indiquant la version courante des sources et la date de sortie. | |||
•./doc | |||
documentation et tutoriel de construction. | |||
/addons/32/ : dossier contenant les ficiers spécifiques pour une HandyLinux i386. | /addons/32/ : dossier contenant les ficiers spécifiques pour une HandyLinux i386. | ||
ces données sont copiées par le Makefile lors du lancement du build. | ces données sont copiées par le Makefile lors du lancement du build. | ||
les données sont nettoyées du build lors du clean ! à faire obligatoirement entre deux builds d'architectures différentes ! | les données sont nettoyées du build lors du clean ! à faire obligatoirement entre deux builds d'architectures différentes ! | ||
586-kernel-cleaner | |||
script de nettoyage du kernel 586 en cas d'installation sur un système acceptant le 686-pae. | •.586-kernel-cleaner | ||
ce script est copié par le Makefile lors de la construction d'un i386. | script de nettoyage du kernel 586 en cas d'installation sur un système acceptant le 686-pae. | ||
ce script est appelé par le /etc/rc.local du système installé lors du premier boot, | ce script est copié par le Makefile lors de la construction d'un i386. | ||
permettant ainsi la suppression du noyau inutile sans l'intervention de l'utilisateur. | ce script est appelé par le /etc/rc.local du système installé lors du premier boot, | ||
handylinux_preseed | permettant ainsi la suppression du noyau inutile sans l'intervention de l'utilisateur. | ||
script de post-installation automatique. version fr. | |||
ce script est copié par le Makefile lors de la construction dans /config/includes.chroot/usr/local/bin/ . | •.handylinux_preseed | ||
ce script est appelé en fin d'installation et permet d'appliquer les dernières modifications | script de post-installation automatique. version fr. | ||
avant de démonter le système installé. il est effacé après exécution. | ce script est copié par le Makefile lors de la construction dans /config/includes.chroot/usr/local/bin/ . | ||
handylinux_preseed-en | ce script est appelé en fin d'installation et permet d'appliquer les dernières modifications | ||
script de post-installation automatique. version en. | avant de démonter le système installé. il est effacé après exécution. | ||
idem version fr, mais si la langue d'installation est autre que 'fr'. | |||
live32.cfg | •.handylinux_preseed-en | ||
fichier de configuration du menu isolinux live 32b version fr. | script de post-installation automatique. version en. | ||
ce fichier est copié par le Makefile lors de la construction dans /config/includes.binary/isolinux/live.cfg . | idem version fr, mais si la langue d'installation est autre que 'fr'. | ||
live32-en.cfg | |||
fichier de configuration du menu isolinux live 32b version en. | •.live32.cfg | ||
ce fichier est copié par le Makefile lors de la construction dans /config/includes.binary/isolinux/live-en.cfg . | fichier de configuration du menu isolinux live 32b version fr. | ||
rc.local.kc | ce fichier est copié par le Makefile lors de la construction dans /config/includes.binary/isolinux/live.cfg . | ||
rc.local."kernel-cleaner" qui lance le script de nettoyage 586-kernel-cleaner en cas d'installation sur une proc 686-pae. | |||
ce fichier est copié par le Makefile lors de la construction dans /config/includes.chroot/usr/share/handylinux/ . | •.live32-en.cfg | ||
rc.local.orig | fichier de configuration du menu isolinux live 32b version en. | ||
rc.local qui est copié après le premier boot et l'exécution du 586-kernel-cleaner pour rétablir la config Debian par défaut. | ce fichier est copié par le Makefile lors de la construction dans /config/includes.binary/isolinux/live-en.cfg . | ||
ce fichier est copié par le Makefile lors de la construction dans /config/includes.chroot/usr/share/handylinux/ . | |||
•.rc.local.kc | |||
rc.local."kernel-cleaner" qui lance le script de nettoyage 586-kernel-cleaner en cas d'installation sur une proc 686-pae. | |||
ce fichier est copié par le Makefile lors de la construction dans /config/includes.chroot/usr/share/handylinux/ . | |||
•.rc.local.orig | |||
rc.local qui est copié après le premier boot et l'exécution du 586-kernel-cleaner pour rétablir la config Debian par défaut. | |||
ce fichier est copié par le Makefile lors de la construction dans /config/includes.chroot/usr/share/handylinux/ . | |||
/addons/64 : idem '/addons/32' mais pour HandyLinux amd64. | /addons/64 : idem '/addons/32' mais pour HandyLinux amd64. | ||
moins de fichiers car il n'y a pas de nettoyage de noyau à faire. | moins de fichiers car il n'y a pas de nettoyage de noyau à faire. | ||
handylinux_preseed | |||
script de post-installation automatique. version fr. | •.handylinux_preseed | ||
handylinux_preseed-en | script de post-installation automatique. version fr. | ||
script de post-installation automatique. version en. | |||
live64.cfg | •.handylinux_preseed-en | ||
fichier de configuration du menu isolinux live 64b version fr. | script de post-installation automatique. version en. | ||
live64-en.cfg | |||
fichier de configuration du menu isolinux live 64b version en. | •.live64.cfg | ||
fichier de configuration du menu isolinux live 64b version fr. | |||
•.live64-en.cfg | |||
fichier de configuration du menu isolinux live 64b version en. | |||
/auto/ : contient les scripts de construction et de nettoyage pour les commandes 'lb config', 'lb build' et 'lb clean'. | /auto/ : contient les scripts de construction et de nettoyage pour les commandes 'lb config', 'lb build' et 'lb clean'. | ||
ces scripts permettent de passer en arguments de façon plus claire, les options pour live-build. | ces scripts permettent de passer en arguments de façon plus claire, les options pour live-build. | ||
build | |||
script de construction qui va lire le fichier 'config' et porter le retour du build dans un log. | •.build | ||
clean | script de construction qui va lire le fichier 'config' et porter le retour du build dans un log. | ||
script de nettoyage du dossier de construction. | |||
config32 | •.clean | ||
fichier de configuration pour live-build version 32b. sera copié en '/auto/config' par le Makefile. | script de nettoyage du dossier de construction. | ||
config64 | |||
fichier de configuration pour live-build version 64b. sera copié en '/auto/config' par le Makefile. | •.config32 | ||
fichier de configuration pour live-build version 32b. sera copié en '/auto/config' par le Makefile. | |||
•.config64 | |||
fichier de configuration pour live-build version 64b. sera copié en '/auto/config' par le Makefile. | |||
/config/archives : dossier contenant les adresses des dépôts externes à utiliser ainsi que leurs clés d'authentification. | /config/archives : dossier contenant les adresses des dépôts externes à utiliser ainsi que leurs clés d'authentification. | ||
ces données seront copiées automatiquement dans le dossier /etc/apt/sources.list.d/ du système installé et les clés ajoutées à apt. | ces données seront copiées automatiquement dans le dossier /etc/apt/sources.list.d/ du système installé et les clés ajoutées à apt. | ||
.key.binary | |||
clé d'authentification handylinux et mozilla pour le livecd. | •..key.binary | ||
.key.chroot | clé d'authentification handylinux et mozilla pour le livecd. | ||
clé d'authentification handylinuc et mozilla pour le chroot (qui sera le système installé). | |||
.list.binary | •..key.chroot | ||
sources.list additionnel utilisé pour le live. | clé d'authentification handylinuc et mozilla pour le chroot (qui sera le système installé). | ||
.list.chroot | |||
sources.list additionnel utilisé pour le chroot (qui sera le système installé). | •..list.binary | ||
sources.list additionnel utilisé pour le live. | |||
•..list.chroot | |||
sources.list additionnel utilisé pour le chroot (qui sera le système installé). | |||
/config/hooks : dossier contenant les scripts de modification en cours de build. | /config/hooks : dossier contenant les scripts de modification en cours de build. | ||
/config/includes.binary/install/ : fichiers intégrés dans le dossier 'install' du livecd. | •.handylinux.chroot | ||
hl-preseed-en.cfg | script de modification du build. ce script se lance en fin de construction, juste avant la compression du squashfs. | ||
fichier de configuration de l'installeur appelé par le menu isolinux version en. | il permet d'appliquer les dernières modifications et/ou de lancer les dernières commandes dans le chroot. | ||
hl-preseed.cfg | |||
fichier de configuration de l'installeur appelé par le menu isolinux version fr. | •.mise en place de la configuration speechd pour orca : lancé dans le hook pour remplacer la configuration du paquet installé lors du build. | ||
•.installation du paquet handylinux-desktop : lancé dans le hook pour éviter le bug du apt-get autoremove lié aux méta-paquets. | |||
•.mise en place du lien skype : skype est présent dans le handymenu par défaut mais non-installé. pour éviter d'avoir à modifier le lanceur du handymenu, | |||
on met un lien en place vers l'installeur (/usr/bin/skype-installer-launcher) qui a été installé lors du build. | |||
•.mise en place du serveur DNS local : on le fait dans le hook, une fois le paquet unbound installé. | |||
•.update-command-not-found : on le fait dans le hook car pour mettre à jour la liste des applications installées... bah il faut qu'elles soient installées ;) | |||
•.blah.chroot | |||
scripts mis en place par live-build. ce sont les "hooks" par défaut copié lors de la première procédure de build. | |||
c'est live-build direct qui s'en charge, on a pas à les modifier. | |||
/config/includes.binary/install/ : fichiers intégrés dans le dossier 'install' du livecd. | |||
•.hl-preseed-en.cfg | |||
fichier de configuration de l'installeur appelé par le menu isolinux version en. | |||
•.hl-preseed.cfg | |||
fichier de configuration de l'installeur appelé par le menu isolinux version fr. | |||
/config/includes.binary/isolinux/ : fichiers intégrés dans le dossier 'isolinux' du livecd. | /config/includes.binary/isolinux/ : fichiers intégrés dans le dossier 'isolinux' du livecd. | ||
les fichiers présents servent à la personnalisation du menu isolinux, le menu d'ouverture du liveDVD. | les fichiers présents servent à la personnalisation du menu isolinux, le menu d'ouverture du liveDVD. | ||
ils seront complétés lors du build par les fichiers tirés du dossier 'addons' et copiés par le Makefile. | ils seront complétés lors du build par les fichiers tirés du dossier 'addons' et copiés par le Makefile. | ||
/config/includes.installer/usr/share/ : personnalisation de la bannière d'installation et de la couleur du thème gtk | /config/includes.installer/usr/share/ : personnalisation de la bannière d'installation et de la couleur du thème gtk | ||
la bannière située dans ./graphics/logo_debian.png est automatiquement reconnue par live-build sous ce nom. | la bannière située dans ./graphics/logo_debian.png est automatiquement reconnue par live-build sous ce nom. | ||
le fichier de thème gtk situé dans ./themes/Clearlooks/gtk-2.0/gtkrc est modifié pour remplacer le 'rouge Debian' par du bleu ... ctout :P | le fichier de thème gtk situé dans ./themes/Clearlooks/gtk-2.0/gtkrc est modifié pour remplacer le 'rouge Debian' par du bleu ... ctout :P | ||
/config/package-lists/ : dossier contenant les listes des paquets à installer. | /config/package-lists/ : dossier contenant les listes des paquets à installer. | ||
si vous ajoutez une liste maliste.live, les paquets contenus seront présents dans la session live mais seront supprimés lors de l'installation. | si vous ajoutez une liste maliste.live, les paquets contenus seront présents dans la session live mais seront supprimés lors de l'installation. | ||
handylinux.list.chroot | |||
liste des paquets par défaut pour HandyLinux les lignes '#' ne sont pas prises en compte. | •.handylinux.list.chroot | ||
HandyLinux utilise l'option apt 'no-recommends' afin d'alléger le système : | liste des paquets par défaut pour HandyLinux les lignes '#' ne sont pas prises en compte. | ||
prenez soin de sélectionner les applications à intégrer en vérifiant les "paquets recommandés". | HandyLinux utilise l'option apt 'no-recommends' afin d'alléger le système : | ||
live.list.chroot | prenez soin de sélectionner les applications à intégrer en vérifiant les "paquets recommandés". | ||
liste crée automatiquement par live-build afin d'intégrer les paquets live-build dans le liveDVD. | |||
•.live.list.chroot | |||
liste crée automatiquement par live-build afin d'intégrer les paquets live-build dans le liveDVD. | |||
/config/includes.chroot : tout ce qui sera placé dans ce dossier sera intégré dans le squashfs | /config/includes.chroot : tout ce qui sera placé dans ce dossier sera intégré dans le squashfs | ||
en respectant l'architecture et les permissions du système GNU/Linux de base. | en respectant l'architecture et les permissions du système GNU/Linux de base. | ||
ex, un fichier placé dans /config/includes.chroot/etc/issue appartiendra à root dans le squashfs et sera situé dans /etc/issue | ex, un fichier placé dans /config/includes.chroot/etc/issue appartiendra à root dans le squashfs et sera situé dans /etc/issue | ||
certains paquets handylinux-xxxx modifient également le système (ex: handylinuxlook contient les thèmes gtk et les fonds d'écran) | certains paquets handylinux-xxxx modifient également le système (ex: handylinuxlook contient les thèmes gtk et les fonds d'écran) | ||
! attention ! rien de ce qui sera placé dans ce dossier en 'dur' ne pourra être mis à jour depuis le gestionnaire de paquets. | ! attention ! rien de ce qui sera placé dans ce dossier en 'dur' ne pourra être mis à jour depuis le gestionnaire de paquets. | ||
/config/includes.chroot/etc/dpkg/origins/ | /config/includes.chroot/etc/dpkg/origins/ | ||
fichier normés pour Debian pour indiquer la page d'accueil du projet et l'adresse des reports de bugs. | fichier normés pour Debian pour indiquer la page d'accueil du projet et l'adresse des reports de bugs. | ||
/config/includes.chroot/etc/skel/ | /config/includes.chroot/etc/skel/ | ||
dossier de configuration de l'utilisateur par défaut (skel=skeleton). ce dossier sera détaillé plus tard. | dossier de configuration de l'utilisateur par défaut (skel=skeleton). ce dossier sera détaillé plus tard. | ||
/config/includes.chroot/etc/sudoers.d/ | /config/includes.chroot/etc/sudoers.d/ | ||
fichiers de personnalisation du prompt 'sudo' : permet d'afficher des ** ** pour le mot de passe et de traduire le prompt sudo en fr. | fichiers de personnalisation du prompt 'sudo' : permet d'afficher des ** ** pour le mot de passe et de traduire le prompt sudo en fr. | ||
/config/includes.chroot/etc/unbound/unbound.conf.d/unbound.conf | /config/includes.chroot/etc/unbound/unbound.conf.d/unbound.conf | ||
fichier de configuration du serveur DNS local mis en place lors du hook /config/hooks/handylinux.chroot . | fichier de configuration du serveur DNS local mis en place lors du hook /config/hooks/handylinux.chroot . | ||
/config/includes.chroot/adduser.conf | /config/includes.chroot/adduser.conf | ||
fichier de configuration utilisé pour la création des nouveaux utilisateurs. | fichier de configuration utilisé pour la création des nouveaux utilisateurs. | ||
ce fichier est supplanté par le configuration preseed lors de l'installation pour le premier utilisateur. | ce fichier est supplanté par le configuration preseed lors de l'installation pour le premier utilisateur. | ||
les nouveaux utilisateurs créés ultérieurement ne font pas parti du groupe sudo et suivent ce fichier. | les nouveaux utilisateurs créés ultérieurement ne font pas parti du groupe sudo et suivent ce fichier. | ||
/config/includes.chroot/bash.bashrc | /config/includes.chroot/bash.bashrc | ||
fichier de configuration système de l'interpréteur bash ajusté pour tenir compte de command-not-found . | fichier de configuration système de l'interpréteur bash ajusté pour tenir compte de command-not-found . | ||
/config/includes.chroot/issue /issue.net | /config/includes.chroot/issue /issue.net | ||
login tty et ssh. | login tty et ssh. | ||
/config/includes.chroot.slim.conf | /config/includes.chroot.slim.conf | ||
fichier de configuration du gestionnaire de connexion SLIM. | fichier de configuration du gestionnaire de connexion SLIM. | ||
ce fichier est là pour fixer le thème par défaut sur handylinux. | ce fichier est là pour fixer le thème par défaut sur handylinux. | ||
le thème slim handylinux est intégré au paquet handylinuxlook. | le thème slim handylinux est intégré au paquet handylinuxlook. | ||
/config/includes.chroot/usr/local/bin/welcome /welcome-en dossiers pour le message d'accueil handylinux. | /config/includes.chroot/usr/local/bin/welcome /welcome-en dossiers pour le message d'accueil handylinux. | ||
ils continnent aussi le script de la première mise à jour après installation 'handyupdate.py' appelé par ./welcome.sh | ils continnent aussi le script de la première mise à jour après installation 'handyupdate.py' appelé par ./welcome.sh | ||
/config/includes.chroot/usr/local/bin/welcome.sh | /config/includes.chroot/usr/local/bin/welcome.sh | ||
script lancé lors de la première connexion de la première installation. | script lancé lors de la première connexion de la première installation. | ||
ce script met en place les dossiers utilisateurs définitifs (langue), les favoris, les actions personnalisées, lance le message d'acceuil, puis l'invite de mise à jour. | ce script met en place les dossiers utilisateurs définitifs (langue), les favoris, les actions personnalisées, lance le message d'acceuil, puis l'invite de mise à jour. | ||
/config/includes.chroot/usr/local/bin/welcome2.sh | /config/includes.chroot/usr/local/bin/welcome2.sh | ||
script lancé lors e la première connexion des nouveaux utilisateurs. | script lancé lors e la première connexion des nouveaux utilisateurs. | ||
ce script a les mêmes fonctions que le précédent mais ne lance pas l'invite de mise à jour car les nouveaux utilisateurs ne font pas partie du goupe 'sudo' par défaut. | ce script a les mêmes fonctions que le précédent mais ne lance pas l'invite de mise à jour car les nouveaux utilisateurs ne font pas partie du goupe 'sudo' par défaut. | ||
/config/includes.chroot/usr/local/bin/keyboard_selector | /config/includes.chroot/usr/local/bin/keyboard_selector | ||
script de choix du clavier lancé par ./welcome.sh en session live. | script de choix du clavier lancé par ./welcome.sh en session live. | ||
/config/includes.chroot/usr/local/bin/orca- | /config/includes.chroot/usr/local/bin/orca- | ||
scripts de lancement et de configuration ORCA ... vilain hack... | scripts de lancement et de configuration ORCA ... vilain hack... | ||
/config/includes.chroot/usr/local/bin/touchpad-tap.sh | /config/includes.chroot/usr/local/bin/touchpad-tap.sh | ||
script qui force la 'tap-to-click' sur les ordinateurs portables | script qui force la 'tap-to-click' sur les ordinateurs portables | ||
/config/includes.chroot/usr/share/applications/ | /config/includes.chroot/usr/share/applications/ | ||
Ligne 209 : | Ligne 313 : | ||
les lanceurs skype* et teamviewer* ne sont pas intégrés dans le paquet 'nonfree-installer' car ils doivent pouvoir être supprimés lors de l'installation de skype et/ou teamviewer. | les lanceurs skype* et teamviewer* ne sont pas intégrés dans le paquet 'nonfree-installer' car ils doivent pouvoir être supprimés lors de l'installation de skype et/ou teamviewer. | ||
si on intègre les .desktop dans le paquet, apt va gueuler lors de la suppression du fichier. | si on intègre les .desktop dans le paquet, apt va gueuler lors de la suppression du fichier. | ||
/config/includes.chroot/usr/share/handylinux/ | /config/includes.chroot/usr/share/handylinux/ | ||
dossier qui va accueillir l'initiation intégré (portée par handylinux-desktop). les autres fichiers seront déplacés lors de l'installation. | dossier qui va accueillir l'initiation intégré (portée par handylinux-desktop). les autres fichiers seront déplacés lors de l'installation. | ||
le 'orca-speech-config' sera copié lors de la post-installation dans /etc/speech-dispatcher/speechd.conf | |||
le sources.list sera copié dans /etc/apt/sources.list, juste pour avoir un fichier sans les entrées "cdrom" commentées | •.le 'orca-speech-config' sera copié lors de la post-installation dans /etc/speech-dispatcher/speechd.conf | ||
update-notifier.desktop sera copié dans le dossier $HOME/.config/autostart de l'utilisateur par le script /usr/local/bin/welcome.sh afin d'automatiser la notification des mises à jour pour le premier utilisateur seulement. | |||
•.le sources.list sera copié dans /etc/apt/sources.list, juste pour avoir un fichier sans les entrées "cdrom" commentées | |||
•.update-notifier.desktop sera copié dans le dossier $HOME/.config/autostart de l'utilisateur par le script /usr/local/bin/welcome.sh afin d'automatiser la notification des mises à jour pour le premier utilisateur seulement. | |||
/config/includes.chroot/usr/share/icons/ | /config/includes.chroot/usr/share/icons/ | ||
dossier contenant le thème d'icône principal d'HandyLinux + les thèmes de curseur | dossier contenant le thème d'icône principal d'HandyLinux + les thèmes de curseur | ||
! attention ! pour intégrer un nouveau thème d'icône, penser à le compresser avant de l'importer, puis le décompresser dans /usr/share/icons/ afin de préserver les liens symboliques. | ! attention ! pour intégrer un nouveau thème d'icône, penser à le compresser avant de l'importer, puis le décompresser dans /usr/share/icons/ afin de préserver les liens symboliques. | ||
/config/includes.chroot/usr/share/images/grub/handylinux.tga | /config/includes.chroot/usr/share/images/grub/handylinux.tga | ||
image utilisée pour le fond du menu GRUB affiché après installation. | image utilisée pour le fond du menu GRUB affiché après installation. | ||
la mise à jour du GRUB se fait lors de la post-installation | la mise à jour du GRUB se fait lors de la post-installation | ||
note : handylinux_pressed/handylinux_preseed-en copiés par le Makefile dans /config/includes.chroot/usr/local/bin/ et appelés par hl-preseed.cfg/hl-preseed-en.cfg) | note : handylinux_pressed/handylinux_preseed-en copiés par le Makefile dans /config/includes.chroot/usr/local/bin/ et appelés par hl-preseed.cfg/hl-preseed-en.cfg) | ||
/config/includes.chroot/etc/skel : la configuration de l'utilisateur par défaut. | /config/includes.chroot/etc/skel : la configuration de l'utilisateur par défaut. | ||
remarques générales : | |||
les dossiers utilisateurs sont en français par défaut. ils sont traduis à la volée par le script /usr/local/bin/welsome(2).sh lors du premier lancement. | remarques générales : | ||
le dossier /.mozilla contient la configuration de base du navigateur iceweasel. | |||
avant le dernier build (celui juste avant la sortie de la release), il faut le mettre à jour. | •.les dossiers utilisateurs sont en français par défaut. ils sont traduis à la volée par le script /usr/local/bin/welsome(2).sh lors du premier lancement. | ||
procédure : | |||
1 - construire une image ISO handylinux (32 ou 64) | •.le dossier /.mozilla contient la configuration de base du navigateur iceweasel. | ||
2 - monter l'ISO dans vbox ou qemu | avant le dernier build (celui juste avant la sortie de la release), il faut le mettre à jour. | ||
3 - mettre à jour les addons iceweasel et vérifier le bon fonctionnement du navigateur | procédure : | ||
4 - fermer le navigateur en prenant soin de vider l'historique/cache/cookies etc... | |||
5 - compresser le ~/.mozilla de la session live | •.1 - construire une image ISO handylinux (32 ou 64) | ||
6 - récupérer l'archive .mozilla.txz et la décompresser dans les sources du build, à la place du .mozilla actuel | |||
7 - reconstruire l'ISO pour la sortie :) | •.2 - monter l'ISO dans vbox ou qemu | ||
•.3 - mettre à jour les addons iceweasel et vérifier le bon fonctionnement du navigateur | |||
•.4 - fermer le navigateur en prenant soin de vider l'historique/cache/cookies etc... | |||
•.5 - compresser le ~/.mozilla de la session live | |||
•.6 - récupérer l'archive .mozilla.txz et la décompresser dans les sources du build, à la place du .mozilla actuel | |||
•.7 - reconstruire l'ISO pour la sortie :) | |||
contenu du dossier utilsateur par défaut : | contenu du dossier utilsateur par défaut : | ||
dossiers et fichiers cachés | |||
/.config/Thunar/accels.scm : raccourcis clavier pour Thunar /.config/autostart/ : lanceurs d'applications à démarrer automatiquement. les lanceurs présents ne sont pas actifs. le lanceur "welcome.desktop" sera supprimé lors de la première connexion. | •.dossiers et fichiers cachés | ||
/.config/Terminal/terminalrc : préférences du terminal pardéfaut xfce4-terminal. | /.config/Thunar/accels.scm : raccourcis clavier pour Thunar /.config/autostart/ : lanceurs d'applications à démarrer automatiquement. les lanceurs présents ne sont pas actifs. le lanceur "welcome.desktop" sera supprimé lors de la première connexion. | ||
/.config/Mousepad/ : préférences de l'aditeur de texte Mousepad. | /.config/Terminal/terminalrc : préférences du terminal pardéfaut xfce4-terminal. | ||
/.config/libreoffice/ : profil pour libreoffice4. | /.config/Mousepad/ : préférences de l'aditeur de texte Mousepad. | ||
/.config/gtk-3.0 /gtk-2.0 : préférences GTKpar défaut pour l'utilisateur. les thèmes définis sont installés par handylinuxlook. | /.config/libreoffice/ : profil pour libreoffice4. | ||
/.config/fontconfig : préférences d'affichage de la police. | /.config/gtk-3.0 /gtk-2.0 : préférences GTKpar défaut pour l'utilisateur. les thèmes définis sont installés par handylinuxlook. | ||
/.config/Clementine : configuration du lectuer de musique Clementine. | /.config/fontconfig : préférences d'affichage de la police. | ||
/.config/xfce4/panel/ : lanceurs intégrés dans la barre de tâches xfce et leurs options. | /.config/Clementine : configuration du lectuer de musique Clementine. | ||
/.config/xfce4/xfconf/xfce-perchannel-xml/ : configurations des applications du bureau XFCE (ristretto, le panel, le bureau, xfwm4 etc...). | /.config/xfce4/panel/ : lanceurs intégrés dans la barre de tâches xfce et leurs options. | ||
/.config/mimeapps.list : définition des applications par défaut selon le type de fichier. | /.config/xfce4/xfconf/xfce-perchannel-xml/ : configurations des applications du bureau XFCE (ristretto, le panel, le bureau, xfwm4 etc...). | ||
/.config/Trolltech.conf : fichiers de configuration de l'apparence des logiciels 'Qt' type VLC. | /.config/mimeapps.list : définition des applications par défaut selon le type de fichier. | ||
/.config/user-dirs.dirs user-dirs.dirs.en : définition des dossiers XDG par défaut. le fichier inutile sera supprimé lors de la première connexion. | /.config/Trolltech.conf : fichiers de configuration de l'apparence des logiciels 'Qt' type VLC. | ||
/.config/user-dirs.locale : définition de la langue des dossiers XDG. cefichier est modifié selon la langue à la première connexion. | /.config/user-dirs.dirs user-dirs.dirs.en : définition des dossiers XDG par défaut. le fichier inutile sera supprimé lors de la première connexion. | ||
/.gimp-2.8/ : profil pour l'interface simplifiée monofenêtre de Gimp. | /.config/user-dirs.locale : définition de la langue des dossiers XDG. cefichier est modifié selon la langue à la première connexion. | ||
/.local/share/ristretto/ : configuration supplémentaire pour ristretto, la visionneuse par défaut. | /.gimp-2.8/ : profil pour l'interface simplifiée monofenêtre de Gimp. | ||
/.local/share/radiotray/bookmarks.xml : liste des radios pour radiotray. | /.local/share/ristretto/ : configuration supplémentaire pour ristretto, la visionneuse par défaut. | ||
/.local/share/orca/ : pré-configuration d'ORCA. | /.local/share/radiotray/bookmarks.xml : liste des radios pour radiotray. | ||
/.mozilla/ : profil pour iceweasel (procédure de mise à jour décrite plus haut). | /.local/share/orca/ : pré-configuration d'ORCA. | ||
/.bashrc : configuration bash pour l'utilisateur, définition du prompt et des alias. | /.mozilla/ : profil pour iceweasel (procédure de mise à jour décrite plus haut). | ||
/.gtk-bookmarks : les favoris thunar, seront modifiés selon la langue si besoin lors dela première connexion. | /.bashrc : configuration bash pour l'utilisateur, définition du prompt et des alias. | ||
/.redshift_location : fichier de localisation pour redshift afin de définir un lieu par défaut. | /.gtk-bookmarks : les favoris thunar, seront modifiés selon la langue si besoin lors dela première connexion. | ||
/.xscreensaver : préférences de l'économiseur d'écran. | /.redshift_location : fichier de localisation pour redshift afin de définir un lieu par défaut. | ||
dossiers et fichiers visibles | /.xscreensaver : préférences de l'économiseur d'écran. | ||
/Bureau/ReadMe LisezMoi : fichier de bienvenue avec le lien vers la page d'accueil. | |||
/Documents/Documentation : lien vers /usr/share/handylinux/HandyLinux_Doc qui sera installé par handylinux-doc et handylinux-doc-en. | •.dossiers et fichiers visibles | ||
/Images/wallpapers : lien vers le dossier système des fonds d'écran. | /Bureau/ReadMe LisezMoi : fichier de bienvenue avec le lien vers la page d'accueil. | ||
/Modèles/ : différents modèles pour le menu contextuel de thunar "créer un document...". | /Documents/Documentation : lien vers /usr/share/handylinux/HandyLinux_Doc qui sera installé par handylinux-doc et handylinux-doc-en. | ||
/Musique/Jamendo.desktop : lanceur pour le site Jamendo. | /Images/wallpapers : lien vers le dossier système des fonds d'écran. | ||
/Public/ : dossier de partage par défaut contenant un mini tuto pour btshare. | /Modèles/ : différents modèles pour le menu contextuel de thunar "créer un document...". | ||
/Téléchargements/handytri.desktop : lanceur pour le handytri. | /Musique/Jamendo.desktop : lanceur pour le site Jamendo. | ||
/Vidéos/ : vidéo officielle handylinux. | /Public/ : dossier de partage par défaut contenant un mini tuto pour btshare. | ||
/guide.desktop : lanceur pour l'initiation intégrée. | /Téléchargements/handytri.desktop : lanceur pour le handytri. | ||
/Vidéos/ : vidéo officielle handylinux. | |||
/guide.desktop : lanceur pour l'initiation intégrée. | |||
modification des sources depuis les paquets handylinux' | modification des sources depuis les paquets handylinux' | ||
Ligne 274 : | Ligne 401 : | ||
afin d'intégrer des fichiers 'modifiables', il faut passer par des paquets debian : c'est un des rôles du dépôt handylinux. | afin d'intégrer des fichiers 'modifiables', il faut passer par des paquets debian : c'est un des rôles du dépôt handylinux. | ||
le dépôt contient aussi des applications au même titre que les dépôts Debian. leur contenu ne sera pas listé ici. | le dépôt contient aussi des applications au même titre que les dépôts Debian. leur contenu ne sera pas listé ici. | ||
liste des fichiers ajoutés au build via les paquets du dépôt handylinux : | |||
handy-update-notifier : en dehors des scripts de gestion des paquets, le handy-update-notifier intègre les préférences apt | liste des fichiers ajoutés au build via les paquets du dépôt handylinux : | ||
/etc/apt/apt.conf.d/99synaptic : défini l'option recommends=false pour le GUI de apt, synaptic. | |||
/etc/apt/apt.conf.d/00trustcdrom : défini l'option trustcdrom=true pour pouvoir accepter un cd de paquets Debian automatiquement. | •.handy-update-notifier : en dehors des scripts de gestion des paquets, le handy-update-notifier intègre les préférences apt | ||
/etc/apt/apt.conf.d/00recommends : défini recommends=false pour apt et aptitude. | |||
/etc/apt/apt.conf.d/02periodic : défini la mise à jour des dépôts automatique=true afin d'assurer au handy-update-notifier des infos récentes. | •./etc/apt/apt.conf.d/99synaptic : défini l'option recommends=false pour le GUI de apt, synaptic. | ||
handylinux-desktop : contient les scripts d'aide et d'infos pour handylinux | |||
il contient aussi 'handylinux_version' qui sera placé dans /etc/handylinux_version, aux côtés de '/etc/handylinux_installation' créé lors de l'installation par handylinux_preseed. | •./etc/apt/apt.conf.d/00trustcdrom : défini l'option trustcdrom=true pour pouvoir accepter un cd de paquets Debian automatiquement. | ||
handylinux-doc & handylinux-doc-en : contient la documentation pdf d'HandyLinux qui sera placée dans /usr/share/handylinux/HandyLinux_doc | |||
le paquet inutile (selon la langue d'installation) sera supprimé par le script de post-installation handylinux_pressed | •./etc/apt/apt.conf.d/00recommends : défini recommends=false pour apt et aptitude. | ||
handylinux-thunar-actions : contient les scripts nécessaires aux actions personnalisées mais aussi le fichier de config thunar qui sera placé dans /etc/skel/.config/Thunar/ | |||
la configuration utile (selon la langue) sera sélectionnée lors de la première connexion du nouvel utilisateur depuis le script /usr/local/bin/welcome2.sh | •./etc/apt/apt.conf.d/02periodic : défini la mise à jour des dépôts automatique=true afin d'assurer au handy-update-notifier des infos récentes. | ||
handylinuxlook : contient les thèmes et walls d'handylinux : | |||
2 thèmes pour Slim copiés dans /usr/share/slim/themes/ | •.handylinux-desktop : contient les scripts d'aide et d'infos pour handylinux | ||
plusieurs fonds d'écran copiés dans /usr/share/xfce4/backdrops/ | il contient aussi 'handylinux_version' qui sera placé dans /etc/handylinux_version, aux côtés de '/etc/handylinux_installation' créé lors de l'installation par handylinux_preseed. | ||
plusieurs thèmes GTK dont HandyLinuxClear/Dark copiés dans /usr/share/themes/ | |||
plusieurs icones copiées dans /usr/share/pixmaps pour les lanceurs intégrés dans le menu d'accessiblité ou le handymenu | •.handylinux-doc & handylinux-doc-en : contient la documentation pdf d'HandyLinux qui sera placée dans /usr/share/handylinux/HandyLinux_doc | ||
le handytheme, script qui permet le changement rapide d'interface copié dans /usr/bin/ | le paquet inutile (selon la langue d'installation) sera supprimé par le script de post-installation handylinux_pressed | ||
•.handylinux-thunar-actions : contient les scripts nécessaires aux actions personnalisées mais aussi le fichier de config thunar qui sera placé dans /etc/skel/.config/Thunar/ | |||
la configuration utile (selon la langue) sera sélectionnée lors de la première connexion du nouvel utilisateur depuis le script /usr/local/bin/welcome2.sh | |||
•.handylinuxlook : contient les thèmes et walls d'handylinux : | |||
•.2 thèmes pour Slim copiés dans /usr/share/slim/themes/ | |||
•.plusieurs fonds d'écran copiés dans /usr/share/xfce4/backdrops/ | |||
•.plusieurs thèmes GTK dont HandyLinuxClear/Dark copiés dans /usr/share/themes/ | |||
•.plusieurs icones copiées dans /usr/share/pixmaps pour les lanceurs intégrés dans le menu d'accessiblité ou le handymenu | |||
•.le handytheme, script qui permet le changement rapide d'interface copié dans /usr/bin/ | |||
la modification de ces fichiers n'est donc pas possible depuis le build (sauf gros hack dans les hooks, mais c'est pas propre). | la modification de ces fichiers n'est donc pas possible depuis le build (sauf gros hack dans les hooks, mais c'est pas propre). | ||
il faut passer par les dépôts pour modifier ces fichiers ou ne pas installer les paquets listés pour éviter les conflits avec de probables ajouts 'en dur'... mais ce ne serait plus une handylinux :) | il faut passer par les dépôts pour modifier ces fichiers ou ne pas installer les paquets listés pour éviter les conflits avec de probables ajouts 'en dur'... mais ce ne serait plus une handylinux :) | ||
Modification des sources | Modification des sources | ||
ref les pdf live-build inclus ;) | ref les pdf live-build inclus ;) | ||
note : les pdf ont été réalisés avant la fusion des sources i386/amd64. | note : les pdf ont été réalisés avant la fusion des sources i386/amd64. | ||
je vais les mettre à jour... mais la procédure et les conseils restent valables :) | je vais les mettre à jour... mais la procédure et les conseils restent valables :) | ||
Construction de L'ISO | Construction de L'ISO | ||
La construction se lance depuis le Makefile intégré. | |||
La construction se lance depuis le Makefile intégré. | |||
sudo make 32b : construction de l'ISO i386 avec les noyaux 586 et 686-pae. | sudo make 32b : construction de l'ISO i386 avec les noyaux 586 et 686-pae. | ||
cette commande doit être suivi du clean associé avant une autre construction. | cette commande doit être suivi du clean associé avant une autre construction. | ||
sudo make clean32b : nettoyage des sources de construction i386 | sudo make clean32b : nettoyage des sources de construction i386 | ||
à faire obligatoirement avant de construire une autre version. | à faire obligatoirement avant de construire une autre version. | ||
sudo make 64b : construction de l'ISO amd64. | sudo make 64b : construction de l'ISO amd64. | ||
cette commande doit être suivi du clean associé avant une autre construction. | cette commande doit être suivi du clean associé avant une autre construction. | ||
sudo make clean64b : nettoyage des sources de construction amd64 | sudo make clean64b : nettoyage des sources de construction amd64 | ||
à faire obligatoirement avant de construire une autre version. | à faire obligatoirement avant de construire une autre version. | ||
sudo make cleanfull : nettoyage complet du cache et des logs. | sudo make cleanfull : nettoyage complet du cache et des logs. | ||
on obtient un fichier du type binary.hybrid.iso | on obtient un fichier du type binary.hybrid.iso | ||
! attention ! il faut renommer ce fichier ISO en handylinux-2.3-amd64.iso (par ex) avant de lancer le 'clean' sinon vous perdrez votre travail ... :/ | ! attention ! il faut renommer ce fichier ISO en handylinux-2.3-amd64.iso (par ex) avant de lancer le 'clean' sinon vous perdrez votre travail ... :/ | ||
... et voilà :) | ... et voilà :) | ||
des questions ? | des questions ? | ||
@devs : posez vos questions ici ou en commentaires, ça étoffera le tuto :P | @devs : posez vos questions ici ou en commentaires, ça étoffera le tuto :P |
Version du 19 janvier 2016 à 23:22
Construire HandyLinux
cette page relate le processus complet de construction d'HandyLinux ces sources permettent de construire les deux versions i386 et amd64.
mode d'emploi : suivez le tuto jusqu'au clonage des sources, puis affichez les sources à coté du tuto pour visualiser rapidement la structure du build et le rôle de chaque fichier. amusez-vous bien :)
need help ? mailme
Introduction
HandyLinux est construite sur 3 ressources :
•.les paquets Debian présents dans les dépôts du sources.list,
•.les paquets du dépôt HandyLinux,
•.les sources du build que vous consultez actuellement, à utiliser avec le programme live-build.
les paquets sont appelés pas le fichier /config/package-lists/handylinux.list.chroot . les sources modifient 'en dur' la construction de l'image ISO, soit en intégrant des fichiers de configuration, soit en modifiant la construction grâce à certains scripts.
Principe du live-cd
HandyLinux est distribuée sous forme d'image ISO destinée à être gravée ou transférée sur une clé USB afin de créer un 'live-cd'. un live-cd est constitué d'une image système (toute l'architecture embarquée d'une installation) compressée dans une archive de type "squashfs" et d'un programe de boot permettant de lancer ce système compressé. ce programme de boot peut être accompagné d'un installeur, permettant ainsi de reporter le système compressé sur un disque dur. dans ce cas, c'est un live-cd-installable. sur HandyLinux, on utilise live-build, le programme de construction officiel des images disque Debian
Principe du live-build
live-build est constitué d'une série de scripts destinés à construire une image live et/ou installable d'un système Debian. ces scripts acceptent des arguments permettant de personnaliser l'image finale. les arguments peuvent être réunis dans des scripts qui sont placés dans le dossier 'auto' des sources. processus de construction
•.lorsqu'on lance la commande de construction, live-build lit les instructions que vous avez laissé.
•.live-build détecte l'architecture, le noyau à utiliser etc, puis il utilise debootsrap pour créer un chroot de base.
•.ensuite il complète l'installation dans le chroot avec les paquets listés dans le /config/package-lists/blah.list.chroot .
•.tous les paquets sont mis en cache dans un dossier qui se créé au moment de la construction directement à la racine des sources (/cache).
•.une fois le chroot installé, live-build va reporter le contenu de /config/includes.chroot/ (votre personnalisation du système) dans le chroot.
•.viennent ensuite les 'hooks', le(s) script(s) qui vont modifier le chroot juste avant de le démonter.
•.puis live-build démonte le chroot et commence à le compresser en squashfs (la partie la plus gourmande et la plus longue).
•.enfin, il va chercher les paquets nécessaires pour l'installeur et la création de l'iso (isolinux, xorriso, etc) et génère l'image ISO.
... en très gros :D
Mise en place
Installation des dépendances
HandyLinux se sert programme de construction par défaut chez Debian, live-build. Pour ses sources, c'est le protocole git qui est utilisé :
sudo apt-get update && sudo apt-get install live-build live-manual live-tools git apt-cacher-ng Clonage des sources
Pour utiliser et modifier les sources localement, vous devez les cloner sur votre système.
git clone https://git.framasoft.org/handylinux/handylinux-2.git
Vous obtenez alors un dossier handylinux-2 qui contient l'intégralité des sources HandyLinux.
Contenu des sources du build
liste des dossiers et fichiers des sources HandyLinux-2.x aka koya dedans... kesafula ??
•./Makefile script de lancement de la construction. permet de construire les deux versions i386 et amd64 en précisant le type de construction en argument. lancer 'make' pour la liste des options disponibles.
•./README.md fichier de présentation générale HandyLinux. ce fichier contient aussi l'intégralité du changelog par versions.
•./TODO.md les trucs à faire.
•./VERSION.md fichier indiquant la version courante des sources et la date de sortie.
•./doc documentation et tutoriel de construction.
/addons/32/ : dossier contenant les ficiers spécifiques pour une HandyLinux i386. ces données sont copiées par le Makefile lors du lancement du build. les données sont nettoyées du build lors du clean ! à faire obligatoirement entre deux builds d'architectures différentes !
•.586-kernel-cleaner script de nettoyage du kernel 586 en cas d'installation sur un système acceptant le 686-pae. ce script est copié par le Makefile lors de la construction d'un i386. ce script est appelé par le /etc/rc.local du système installé lors du premier boot, permettant ainsi la suppression du noyau inutile sans l'intervention de l'utilisateur.
•.handylinux_preseed script de post-installation automatique. version fr. ce script est copié par le Makefile lors de la construction dans /config/includes.chroot/usr/local/bin/ . ce script est appelé en fin d'installation et permet d'appliquer les dernières modifications avant de démonter le système installé. il est effacé après exécution.
•.handylinux_preseed-en script de post-installation automatique. version en. idem version fr, mais si la langue d'installation est autre que 'fr'.
•.live32.cfg fichier de configuration du menu isolinux live 32b version fr. ce fichier est copié par le Makefile lors de la construction dans /config/includes.binary/isolinux/live.cfg .
•.live32-en.cfg fichier de configuration du menu isolinux live 32b version en. ce fichier est copié par le Makefile lors de la construction dans /config/includes.binary/isolinux/live-en.cfg .
•.rc.local.kc rc.local."kernel-cleaner" qui lance le script de nettoyage 586-kernel-cleaner en cas d'installation sur une proc 686-pae. ce fichier est copié par le Makefile lors de la construction dans /config/includes.chroot/usr/share/handylinux/ .
•.rc.local.orig rc.local qui est copié après le premier boot et l'exécution du 586-kernel-cleaner pour rétablir la config Debian par défaut. ce fichier est copié par le Makefile lors de la construction dans /config/includes.chroot/usr/share/handylinux/ .
/addons/64 : idem '/addons/32' mais pour HandyLinux amd64. moins de fichiers car il n'y a pas de nettoyage de noyau à faire.
•.handylinux_preseed script de post-installation automatique. version fr.
•.handylinux_preseed-en script de post-installation automatique. version en.
•.live64.cfg fichier de configuration du menu isolinux live 64b version fr.
•.live64-en.cfg fichier de configuration du menu isolinux live 64b version en.
/auto/ : contient les scripts de construction et de nettoyage pour les commandes 'lb config', 'lb build' et 'lb clean'. ces scripts permettent de passer en arguments de façon plus claire, les options pour live-build.
•.build script de construction qui va lire le fichier 'config' et porter le retour du build dans un log.
•.clean script de nettoyage du dossier de construction.
•.config32 fichier de configuration pour live-build version 32b. sera copié en '/auto/config' par le Makefile.
•.config64 fichier de configuration pour live-build version 64b. sera copié en '/auto/config' par le Makefile.
/config/archives : dossier contenant les adresses des dépôts externes à utiliser ainsi que leurs clés d'authentification. ces données seront copiées automatiquement dans le dossier /etc/apt/sources.list.d/ du système installé et les clés ajoutées à apt.
•..key.binary clé d'authentification handylinux et mozilla pour le livecd.
•..key.chroot clé d'authentification handylinuc et mozilla pour le chroot (qui sera le système installé).
•..list.binary sources.list additionnel utilisé pour le live.
•..list.chroot sources.list additionnel utilisé pour le chroot (qui sera le système installé).
/config/hooks : dossier contenant les scripts de modification en cours de build.
•.handylinux.chroot script de modification du build. ce script se lance en fin de construction, juste avant la compression du squashfs. il permet d'appliquer les dernières modifications et/ou de lancer les dernières commandes dans le chroot.
•.mise en place de la configuration speechd pour orca : lancé dans le hook pour remplacer la configuration du paquet installé lors du build.
•.installation du paquet handylinux-desktop : lancé dans le hook pour éviter le bug du apt-get autoremove lié aux méta-paquets.
•.mise en place du lien skype : skype est présent dans le handymenu par défaut mais non-installé. pour éviter d'avoir à modifier le lanceur du handymenu, on met un lien en place vers l'installeur (/usr/bin/skype-installer-launcher) qui a été installé lors du build.
•.mise en place du serveur DNS local : on le fait dans le hook, une fois le paquet unbound installé.
•.update-command-not-found : on le fait dans le hook car pour mettre à jour la liste des applications installées... bah il faut qu'elles soient installées ;)
•.blah.chroot scripts mis en place par live-build. ce sont les "hooks" par défaut copié lors de la première procédure de build. c'est live-build direct qui s'en charge, on a pas à les modifier.
/config/includes.binary/install/ : fichiers intégrés dans le dossier 'install' du livecd.
•.hl-preseed-en.cfg fichier de configuration de l'installeur appelé par le menu isolinux version en.
•.hl-preseed.cfg fichier de configuration de l'installeur appelé par le menu isolinux version fr.
/config/includes.binary/isolinux/ : fichiers intégrés dans le dossier 'isolinux' du livecd. les fichiers présents servent à la personnalisation du menu isolinux, le menu d'ouverture du liveDVD. ils seront complétés lors du build par les fichiers tirés du dossier 'addons' et copiés par le Makefile.
/config/includes.installer/usr/share/ : personnalisation de la bannière d'installation et de la couleur du thème gtk la bannière située dans ./graphics/logo_debian.png est automatiquement reconnue par live-build sous ce nom. le fichier de thème gtk situé dans ./themes/Clearlooks/gtk-2.0/gtkrc est modifié pour remplacer le 'rouge Debian' par du bleu ... ctout :P
/config/package-lists/ : dossier contenant les listes des paquets à installer. si vous ajoutez une liste maliste.live, les paquets contenus seront présents dans la session live mais seront supprimés lors de l'installation.
•.handylinux.list.chroot liste des paquets par défaut pour HandyLinux les lignes '#' ne sont pas prises en compte. HandyLinux utilise l'option apt 'no-recommends' afin d'alléger le système : prenez soin de sélectionner les applications à intégrer en vérifiant les "paquets recommandés".
•.live.list.chroot liste crée automatiquement par live-build afin d'intégrer les paquets live-build dans le liveDVD.
/config/includes.chroot : tout ce qui sera placé dans ce dossier sera intégré dans le squashfs en respectant l'architecture et les permissions du système GNU/Linux de base. ex, un fichier placé dans /config/includes.chroot/etc/issue appartiendra à root dans le squashfs et sera situé dans /etc/issue
certains paquets handylinux-xxxx modifient également le système (ex: handylinuxlook contient les thèmes gtk et les fonds d'écran)
! attention ! rien de ce qui sera placé dans ce dossier en 'dur' ne pourra être mis à jour depuis le gestionnaire de paquets.
/config/includes.chroot/etc/dpkg/origins/ fichier normés pour Debian pour indiquer la page d'accueil du projet et l'adresse des reports de bugs.
/config/includes.chroot/etc/skel/ dossier de configuration de l'utilisateur par défaut (skel=skeleton). ce dossier sera détaillé plus tard.
/config/includes.chroot/etc/sudoers.d/ fichiers de personnalisation du prompt 'sudo' : permet d'afficher des ** ** pour le mot de passe et de traduire le prompt sudo en fr.
/config/includes.chroot/etc/unbound/unbound.conf.d/unbound.conf fichier de configuration du serveur DNS local mis en place lors du hook /config/hooks/handylinux.chroot .
/config/includes.chroot/adduser.conf fichier de configuration utilisé pour la création des nouveaux utilisateurs. ce fichier est supplanté par le configuration preseed lors de l'installation pour le premier utilisateur. les nouveaux utilisateurs créés ultérieurement ne font pas parti du groupe sudo et suivent ce fichier.
/config/includes.chroot/bash.bashrc fichier de configuration système de l'interpréteur bash ajusté pour tenir compte de command-not-found .
/config/includes.chroot/issue /issue.net login tty et ssh.
/config/includes.chroot.slim.conf fichier de configuration du gestionnaire de connexion SLIM. ce fichier est là pour fixer le thème par défaut sur handylinux. le thème slim handylinux est intégré au paquet handylinuxlook.
/config/includes.chroot/usr/local/bin/welcome /welcome-en dossiers pour le message d'accueil handylinux. ils continnent aussi le script de la première mise à jour après installation 'handyupdate.py' appelé par ./welcome.sh
/config/includes.chroot/usr/local/bin/welcome.sh script lancé lors de la première connexion de la première installation. ce script met en place les dossiers utilisateurs définitifs (langue), les favoris, les actions personnalisées, lance le message d'acceuil, puis l'invite de mise à jour.
/config/includes.chroot/usr/local/bin/welcome2.sh script lancé lors e la première connexion des nouveaux utilisateurs. ce script a les mêmes fonctions que le précédent mais ne lance pas l'invite de mise à jour car les nouveaux utilisateurs ne font pas partie du goupe 'sudo' par défaut.
/config/includes.chroot/usr/local/bin/keyboard_selector script de choix du clavier lancé par ./welcome.sh en session live.
/config/includes.chroot/usr/local/bin/orca- scripts de lancement et de configuration ORCA ... vilain hack...
/config/includes.chroot/usr/local/bin/touchpad-tap.sh script qui force la 'tap-to-click' sur les ordinateurs portables
/config/includes.chroot/usr/share/applications/ lanceurs .desktop pour les scripts de /usr/local/bin/ les lanceurs skype* et teamviewer* ne sont pas intégrés dans le paquet 'nonfree-installer' car ils doivent pouvoir être supprimés lors de l'installation de skype et/ou teamviewer. si on intègre les .desktop dans le paquet, apt va gueuler lors de la suppression du fichier.
/config/includes.chroot/usr/share/handylinux/ dossier qui va accueillir l'initiation intégré (portée par handylinux-desktop). les autres fichiers seront déplacés lors de l'installation.
•.le 'orca-speech-config' sera copié lors de la post-installation dans /etc/speech-dispatcher/speechd.conf
•.le sources.list sera copié dans /etc/apt/sources.list, juste pour avoir un fichier sans les entrées "cdrom" commentées
•.update-notifier.desktop sera copié dans le dossier $HOME/.config/autostart de l'utilisateur par le script /usr/local/bin/welcome.sh afin d'automatiser la notification des mises à jour pour le premier utilisateur seulement.
/config/includes.chroot/usr/share/icons/ dossier contenant le thème d'icône principal d'HandyLinux + les thèmes de curseur ! attention ! pour intégrer un nouveau thème d'icône, penser à le compresser avant de l'importer, puis le décompresser dans /usr/share/icons/ afin de préserver les liens symboliques.
/config/includes.chroot/usr/share/images/grub/handylinux.tga image utilisée pour le fond du menu GRUB affiché après installation. la mise à jour du GRUB se fait lors de la post-installation note : handylinux_pressed/handylinux_preseed-en copiés par le Makefile dans /config/includes.chroot/usr/local/bin/ et appelés par hl-preseed.cfg/hl-preseed-en.cfg)
/config/includes.chroot/etc/skel : la configuration de l'utilisateur par défaut.
remarques générales :
•.les dossiers utilisateurs sont en français par défaut. ils sont traduis à la volée par le script /usr/local/bin/welsome(2).sh lors du premier lancement.
•.le dossier /.mozilla contient la configuration de base du navigateur iceweasel. avant le dernier build (celui juste avant la sortie de la release), il faut le mettre à jour. procédure :
•.1 - construire une image ISO handylinux (32 ou 64)
•.2 - monter l'ISO dans vbox ou qemu
•.3 - mettre à jour les addons iceweasel et vérifier le bon fonctionnement du navigateur
•.4 - fermer le navigateur en prenant soin de vider l'historique/cache/cookies etc...
•.5 - compresser le ~/.mozilla de la session live
•.6 - récupérer l'archive .mozilla.txz et la décompresser dans les sources du build, à la place du .mozilla actuel
•.7 - reconstruire l'ISO pour la sortie :)
contenu du dossier utilsateur par défaut :
•.dossiers et fichiers cachés /.config/Thunar/accels.scm : raccourcis clavier pour Thunar /.config/autostart/ : lanceurs d'applications à démarrer automatiquement. les lanceurs présents ne sont pas actifs. le lanceur "welcome.desktop" sera supprimé lors de la première connexion. /.config/Terminal/terminalrc : préférences du terminal pardéfaut xfce4-terminal. /.config/Mousepad/ : préférences de l'aditeur de texte Mousepad. /.config/libreoffice/ : profil pour libreoffice4. /.config/gtk-3.0 /gtk-2.0 : préférences GTKpar défaut pour l'utilisateur. les thèmes définis sont installés par handylinuxlook. /.config/fontconfig : préférences d'affichage de la police. /.config/Clementine : configuration du lectuer de musique Clementine. /.config/xfce4/panel/ : lanceurs intégrés dans la barre de tâches xfce et leurs options. /.config/xfce4/xfconf/xfce-perchannel-xml/ : configurations des applications du bureau XFCE (ristretto, le panel, le bureau, xfwm4 etc...). /.config/mimeapps.list : définition des applications par défaut selon le type de fichier. /.config/Trolltech.conf : fichiers de configuration de l'apparence des logiciels 'Qt' type VLC. /.config/user-dirs.dirs user-dirs.dirs.en : définition des dossiers XDG par défaut. le fichier inutile sera supprimé lors de la première connexion. /.config/user-dirs.locale : définition de la langue des dossiers XDG. cefichier est modifié selon la langue à la première connexion. /.gimp-2.8/ : profil pour l'interface simplifiée monofenêtre de Gimp. /.local/share/ristretto/ : configuration supplémentaire pour ristretto, la visionneuse par défaut. /.local/share/radiotray/bookmarks.xml : liste des radios pour radiotray. /.local/share/orca/ : pré-configuration d'ORCA. /.mozilla/ : profil pour iceweasel (procédure de mise à jour décrite plus haut). /.bashrc : configuration bash pour l'utilisateur, définition du prompt et des alias. /.gtk-bookmarks : les favoris thunar, seront modifiés selon la langue si besoin lors dela première connexion. /.redshift_location : fichier de localisation pour redshift afin de définir un lieu par défaut. /.xscreensaver : préférences de l'économiseur d'écran.
•.dossiers et fichiers visibles /Bureau/ReadMe LisezMoi : fichier de bienvenue avec le lien vers la page d'accueil. /Documents/Documentation : lien vers /usr/share/handylinux/HandyLinux_Doc qui sera installé par handylinux-doc et handylinux-doc-en. /Images/wallpapers : lien vers le dossier système des fonds d'écran. /Modèles/ : différents modèles pour le menu contextuel de thunar "créer un document...". /Musique/Jamendo.desktop : lanceur pour le site Jamendo. /Public/ : dossier de partage par défaut contenant un mini tuto pour btshare. /Téléchargements/handytri.desktop : lanceur pour le handytri. /Vidéos/ : vidéo officielle handylinux. /guide.desktop : lanceur pour l'initiation intégrée.
modification des sources depuis les paquets handylinux' tous les fichiers intégrés par défaut dans le build et listés dans les chapitres précédents ne peuvent être mis à jour. afin d'intégrer des fichiers 'modifiables', il faut passer par des paquets debian : c'est un des rôles du dépôt handylinux. le dépôt contient aussi des applications au même titre que les dépôts Debian. leur contenu ne sera pas listé ici.
liste des fichiers ajoutés au build via les paquets du dépôt handylinux :
•.handy-update-notifier : en dehors des scripts de gestion des paquets, le handy-update-notifier intègre les préférences apt
•./etc/apt/apt.conf.d/99synaptic : défini l'option recommends=false pour le GUI de apt, synaptic.
•./etc/apt/apt.conf.d/00trustcdrom : défini l'option trustcdrom=true pour pouvoir accepter un cd de paquets Debian automatiquement.
•./etc/apt/apt.conf.d/00recommends : défini recommends=false pour apt et aptitude.
•./etc/apt/apt.conf.d/02periodic : défini la mise à jour des dépôts automatique=true afin d'assurer au handy-update-notifier des infos récentes.
•.handylinux-desktop : contient les scripts d'aide et d'infos pour handylinux il contient aussi 'handylinux_version' qui sera placé dans /etc/handylinux_version, aux côtés de '/etc/handylinux_installation' créé lors de l'installation par handylinux_preseed.
•.handylinux-doc & handylinux-doc-en : contient la documentation pdf d'HandyLinux qui sera placée dans /usr/share/handylinux/HandyLinux_doc le paquet inutile (selon la langue d'installation) sera supprimé par le script de post-installation handylinux_pressed
•.handylinux-thunar-actions : contient les scripts nécessaires aux actions personnalisées mais aussi le fichier de config thunar qui sera placé dans /etc/skel/.config/Thunar/ la configuration utile (selon la langue) sera sélectionnée lors de la première connexion du nouvel utilisateur depuis le script /usr/local/bin/welcome2.sh
•.handylinuxlook : contient les thèmes et walls d'handylinux :
•.2 thèmes pour Slim copiés dans /usr/share/slim/themes/
•.plusieurs fonds d'écran copiés dans /usr/share/xfce4/backdrops/
•.plusieurs thèmes GTK dont HandyLinuxClear/Dark copiés dans /usr/share/themes/
•.plusieurs icones copiées dans /usr/share/pixmaps pour les lanceurs intégrés dans le menu d'accessiblité ou le handymenu
•.le handytheme, script qui permet le changement rapide d'interface copié dans /usr/bin/
la modification de ces fichiers n'est donc pas possible depuis le build (sauf gros hack dans les hooks, mais c'est pas propre). il faut passer par les dépôts pour modifier ces fichiers ou ne pas installer les paquets listés pour éviter les conflits avec de probables ajouts 'en dur'... mais ce ne serait plus une handylinux :)
Modification des sources
ref les pdf live-build inclus ;) note : les pdf ont été réalisés avant la fusion des sources i386/amd64. je vais les mettre à jour... mais la procédure et les conseils restent valables :)
Construction de L'ISO
La construction se lance depuis le Makefile intégré.
sudo make 32b : construction de l'ISO i386 avec les noyaux 586 et 686-pae.
cette commande doit être suivi du clean associé avant une autre construction.
sudo make clean32b : nettoyage des sources de construction i386
à faire obligatoirement avant de construire une autre version.
sudo make 64b : construction de l'ISO amd64.
cette commande doit être suivi du clean associé avant une autre construction.
sudo make clean64b : nettoyage des sources de construction amd64
à faire obligatoirement avant de construire une autre version.
sudo make cleanfull : nettoyage complet du cache et des logs.
on obtient un fichier du type binary.hybrid.iso ! attention ! il faut renommer ce fichier ISO en handylinux-2.3-amd64.iso (par ex) avant de lancer le 'clean' sinon vous perdrez votre travail ... :/
... et voilà :)
des questions ?
@devs : posez vos questions ici ou en commentaires, ça étoffera le tuto :P