Comment Trisquel est construit

Trisquel est une distribution GNU/Linux entièrement libre. Depuis la version 2.x elle se base sur Ubuntu.

Depuis les versions 2.x, Trisquel est un dérivé entièrement libre de Ubuntu, le procédé de création du système commence donc en créant un miroir d'Ubuntu et en le nettoyant. Le miroir est mis à jour toutes les nuits avec reprepro et quelques scripts cron puis est nettoyé en utilisant une liste noire des paquets non-libres.

Le dépôt est ensuite utilisé comme source pour le miroir de développement de Trisquel, qui inclut également des substitues à certains paquets enlevés (comme le noyau, ou d'autres éléments qui demandent à être modifiés) et quelques paquets qui personnalisent la distribution, tels que des éléments graphiques, des configurations ou des méta-paquets.

Pour mettre le système à jour, nous devons simplement synchroniser le miroir devel avec celui d'Ubuntu. Nous nous assurons ensuite que les modifications sont fonctionnelles en mettant à jour nos propres ordinateurs et nous faisons un rsync du dépôt de développement avec le dépôt officiel.

workflow-compressed-fr.png

Nos paquets

Nous ajoutons des modifications à certains paquets : tout est expliqué dans la page package-helpers (en-EN) (section non encore traduite)

Créer une image ISO

Trisquel est créé avec debootstrap, en utilisant un script qui installe un méta-paquet et ses dépendances (pour créer chaque version de la distribution), compresse le tout dans une image squashfs et créé le .iso en utilisant isolinux. Le script applique également des modifications au dossier debootstrap, pour lui permettre d'exécuter un environnement « live ».

Le script makedistro créé également des DVDs content le code source.

Un noyau entièrement libre

Trisquel n'inclut pas le noyau Linux tel que l'on peut le trouver sur les serveurs du projet Linux, mais une version « nettoyée », à partir du noyau d'Ubuntu. Chacune des versions du projet Linux et d'Ubuntu contiennent du micro-code non-libre mais également des « blobs », cachés dans les fichiers .c et .h, sous forme d'énormes suites de nombres. Pour fournir à nos utilisateurs un noyau entièrement libre, nous utilisons une série de scripts basés sur ceux du projet Linux-libre, avec quelques modifications en plus.

Nous commençons avec un noyau des dépôts Ubuntu (plutôt que la dernière version du projet Linux, afin d'assurer une meilleure compatibilité avec l'ensemble du système), incluant les modifications apportées par Ubuntu, sous la forme de gigantesques patchs. Nous appliquons ensuite les scripts pour supprimer les composants non-libres pour la version correspondante et, dernière étape, nous appliquons le dernier script du projet Linux-libre modifié afin qu'il puisse s'exécuter avec des noyaux plus anciens. Cette étape permet une double vérification du code et ajoute également les dernières innovations de Linux-libre au paquet.

Au cours de cette procédure, nous ne faisons pas que simplement enlever les composants non-libres, nous nous assurons également qu'aucune partie du noyau ne nécessite de composant non-libres pour fonctionner. Nous utilisons également les derniers scripts de vérification de Linux-libre, pour assurer le nettoyage des ajouts émanant de Ubuntu. Cette étape nécessite des vérifications régulières pour déceler d'éventuels faux-positifs, comme des tables de données comportant d'interminables séries de nombres, mais aussi l'ajout d'autres procédures aux scripts supprimant les composants non-libres, si de vrais positifs sont repérés.





Révisions

02/10/2011 - 19:36
PaulK
02/25/2013 - 11:45
lembas
06/28/2016 - 18:51
HKR
01/16/2018 - 16:03
Mimmo_D.DN