{"id":343,"date":"2011-02-02T15:22:11","date_gmt":"2011-02-02T13:22:11","guid":{"rendered":"http:\/\/blog.mageia.org\/fr\/?p=343"},"modified":"2011-03-21T19:24:26","modified_gmt":"2011-03-21T17:24:26","slug":"bootstrap-quel-bootstrap-je-veux-une-iso-de-mageia","status":"publish","type":"post","link":"https:\/\/blog.mageia.org\/fr\/2011\/02\/02\/bootstrap-quel-bootstrap-je-veux-une-iso-de-mageia\/","title":{"rendered":"Bootstrap ? Quel bootstrap ? Je veux une ISO de Mageia !"},"content":{"rendered":"<p style=\"text-align: justify;\">Nous avions annonc\u00e9 que notre premi\u00e8re image ISO alpha serait disponible fin janvier\u2026 et toujours pas d&rsquo;ISO disponible. Bon sang ! Que se passe-t-il ? Je vais vous l&rsquo;expliquer.<\/p>\n<h2 style=\"text-align: justify;\">Il \u00e9tait une fois un <em>bootstrap<\/em>\u2026<\/h2>\n<p style=\"text-align: justify;\">Comme nous l&rsquo;avons rapport\u00e9 dans les articles pr\u00e9c\u00e9dents, notre <em>build-system<\/em> a \u00e9t\u00e9 en intense activit\u00e9 pendant les derni\u00e8res semaines et <a href=\"http:\/\/pkgsubmit.mageia.org\/\">plus de 4000 paquets ont d\u00e9j\u00e0 \u00e9t\u00e9 construits<\/a>. Cet ensemble de paquets constitue ce que nous appelons un <em>bootstrap<\/em>.<\/p>\n<p style=\"text-align: justify;\">Si vous regardez sur <a href=\"http:\/\/fr.wikipedia.org\/wiki\/Bootstrap\">Wikip\u00e9dia<\/a>, vous verrez qu&rsquo;un <em>bootstrap<\/em> est un petit programme d&rsquo;amor\u00e7age qui permet d&rsquo;en lancer un plus gros. Dans le cas de Mageia, ce concept d\u00e9signe l&rsquo;\u00e9tape actuelle dans laquelle le syst\u00e8me de base et les d\u00e9pendances principales sont construits pour que toutes les applications puissent ensuite l&rsquo;\u00eatre \u00e0 partir des propres outils et paquets de Mageia. Toutes les distributions Linux utilisent leurs propres paquets pour construire tous les paquets disponibles dans leurs d\u00e9p\u00f4ts.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.mageia.org\/en\/wp-content\/uploads\/2011\/02\/White_chicken_egg_square.jpg\" rel=\"lightbox[343]\"><img decoding=\"async\" class=\"aligncenter\" title=\"L'\u0153uf ou la poule ?\" src=\"http:\/\/blog.mageia.org\/en\/wp-content\/uploads\/2011\/02\/White_chicken_egg_square-300x300.jpg\" alt=\"\" \/><\/a>C&rsquo;est maintenant qu&rsquo;arrive la partie la plus complexe de l&rsquo;histoire, un peu comme le dilemme de l&rsquo;\u0153uf et de la poule. Certains paquets de bas niveau, souvent appel\u00e9s outils de d\u00e9veloppement, <em>ont besoin d&rsquo;eux-m\u00eames pour \u00eatre compil\u00e9s<\/em> : gcc, glibc&#8230; Ces paquets existent d\u00e9j\u00e0 dans beaucoup de distributions, c&rsquo;est pourquoi le <em>bootstrapping<\/em> commence en se basant sur l&rsquo;une de ces distributions.<\/p>\n<p style=\"text-align: justify;\">Dans le cas de Mageia, nous avons choisi d&rsquo;utiliser les paquets de Mandriva puisque la premi\u00e8re release est bas\u00e9e sur Cooker. Pour pouvoir les utiliser, nous avons d\u00fb les nettoyer :<\/p>\n<ul style=\"text-align: justify;\">\n<li>en retirant les \u00e9l\u00e9ments sp\u00e9cifiques \u00e0 Mandriva (macros RPM, objets sous copyright comme des images ou des ic\u00f4nes, \u00e9l\u00e9ments d\u00e9pr\u00e9ci\u00e9s) ;<\/li>\n<li>en retirant les conditions non n\u00e9cessaires dans la d\u00e9finition des besoins pour la construction ;<\/li>\n<li>en envoyant des patchs en amont, de sorte que nous n&rsquo;ayons pas besoin de les maintenir alors qu&rsquo;ils peuvent profiter \u00e0 tous si les auteurs les acceptent ;<\/li>\n<li>en d\u00e9sactivant temporairement certaines d\u00e9pendances de haut niveau car elles ne sont pas encore construites et disponibles pour Mageia (Java, Mono).<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Une fois ce travail effectu\u00e9, chaque paquet est pr\u00eat \u00e0 \u00eatre reconstruit sur le <em>build-system <\/em>de Mageia. D\u00e8s qu&rsquo;un paquet est reconstruit en tant que paquet de Mageia, le packager doit v\u00e9rifier et, si n\u00e9cessaire, r\u00e9-ajouter les d\u00e9pendances additionnelles lorsqu&rsquo;elles sont disponibles.<\/p>\n<h3 style=\"text-align: justify;\">Prenons un exemple<\/h3>\n<p style=\"text-align: justify;\">GCC est un compilateur de C, et est une partie importante du syst\u00e8me de base car de nombreuses applications en ont besoin pour \u00eatre construites \u00e0 partir de leurs sources.<\/p>\n<p style=\"text-align: justify;\">Mageia a besoin d&rsquo;avoir son propre paquet de GCC pour g\u00e9n\u00e9rer toutes les applications utilisant le langage C (aussi appel\u00e9 <em>dogfooding<\/em> en anglais, ce qui d\u00e9signe une entreprise utilisant ses propres produits). C&rsquo;est une op\u00e9ration cruciale pour Mageia car, en la r\u00e9alisant proprement, on s&rsquo;assure que tout fonctionne et on peut en m\u00eame temps lister et corriger les probl\u00e8mes potentiels. Le GCC de Mageia est alors g\u00e9n\u00e9r\u00e9.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.mageia.org\/fr\/wp-content\/uploads\/2011\/02\/bootstrap_bs-fr.png\" rel=\"lightbox[343]\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-367\" title=\"Bootstrap\" src=\"http:\/\/blog.mageia.org\/fr\/wp-content\/uploads\/2011\/02\/bootstrap_bs-fr.png\" alt=\"\" width=\"1011\" height=\"492\" srcset=\"https:\/\/blog.mageia.org\/fr\/wp-content\/uploads\/2011\/02\/bootstrap_bs-fr.png 1011w, https:\/\/blog.mageia.org\/fr\/wp-content\/uploads\/2011\/02\/bootstrap_bs-fr-300x145.png 300w\" sizes=\"auto, (max-width: 1011px) 100vw, 1011px\" \/><\/a>Une fois la construction de l&rsquo;outil de d\u00e9veloppement termin\u00e9e, nous pouvons reconstruire le noyau de Mageia, les pilotes X, le serveur X, etc. et les applications de plus haut niveau. Dans l&rsquo;\u00e9tat de <em>bootstrap<\/em>, un syst\u00e8me n&rsquo;offre aux packagers que quelques biblioth\u00e8ques et un compilateur. Il a alors besoin d&rsquo;\u00eatre compl\u00e9t\u00e9 par des paquets syst\u00e8me importants avant que l&rsquo;\u00e9quipe des packagers soit capable de d\u00e9buter son travail pour de bon. De nombreux paquets requi\u00e8rent des d\u00e9pendances qui elles aussi n\u00e9cessitent d&rsquo;autres d\u00e9pendances pour \u00eatre construites.<\/p>\n<p style=\"text-align: justify;\">Au final, des milliers de paquets sont n\u00e9cessaires pour construire les composants majeurs qui seront utilis\u00e9s par les applications de haut niveau.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.mageia.org\/fr\/wp-content\/uploads\/2011\/02\/deps_bootstrap-fr.png\" rel=\"lightbox[343]\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-368 alignnone\" title=\"D\u00e9pendances\" src=\"http:\/\/blog.mageia.org\/fr\/wp-content\/uploads\/2011\/02\/deps_bootstrap-fr.png\" alt=\"\" width=\"642\" height=\"266\" srcset=\"https:\/\/blog.mageia.org\/fr\/wp-content\/uploads\/2011\/02\/deps_bootstrap-fr.png 642w, https:\/\/blog.mageia.org\/fr\/wp-content\/uploads\/2011\/02\/deps_bootstrap-fr-300x124.png 300w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><\/a>Bien \u00e9videmment, c&rsquo;est une version simplifi\u00e9e de l&rsquo;histoire, sans toutes les choses amusantes qui peuvent se produire pendant le processus de reconstruction. Mais c&rsquo;est l&rsquo;id\u00e9e g\u00e9n\u00e9rale.<\/p>\n<h2 style=\"text-align: justify;\">Pourquoi le <em>bootstrap<\/em> est-il si important ?<\/h2>\n<p style=\"text-align: justify;\">Nous avons d\u00e9j\u00e0 dit que le <em>bootstrap<\/em> est une \u00e9tape durant laquelle des packagers et des sp\u00e9cialistes du syst\u00e8me de base peuvent passer du temps \u00e0 v\u00e9rifier la coh\u00e9rence des \u00e9l\u00e9ments de tr\u00e8s bas niveau de la distribution, \u00e0 nettoyer les paquets et \u00e0 s&rsquo;assurer de leur compatibilit\u00e9 avec la politique de Mageia. Le <em>bootstrap<\/em> n&rsquo;est donc pas uniquement d\u00e9di\u00e9 aux personnes int\u00e9ress\u00e9es par les <em>forks<\/em> :).<\/p>\n<p style=\"text-align: justify;\">\u00c0 propos, l&rsquo;am\u00e9lioration et l&rsquo;\u00e9criture d&rsquo;une documentation correcte sur le <em>bootstrap<\/em> sera d&rsquo;une grande aide lors de l&rsquo;ajout du support de nouvelles architectures. Il faudra un outil de d\u00e9veloppement convenable, un syst\u00e8me de base\u2026 C&rsquo;est la m\u00eame histoire.<\/p>\n<h2 style=\"text-align: justify;\">Des ISO !<\/h2>\n<p style=\"text-align: justify;\">Revenons \u00e0 notre question initiale : pour quand peut-on esp\u00e9rer la premi\u00e8re ISO de test ? L&rsquo;\u00e9tape de <em>bootstrap<\/em> a commenc\u00e9 il y a un mois et devrait se terminer demain. Il aura fallu environ <strong>1500 heures<\/strong> pour construire les paquets disponibles, en comptant les constructions r\u00e9ussies mais aussi les \u00e9checs, les reconstructions, la prise de d\u00e9cisions techniques, les probl\u00e8mes inattendus, les discussions\u2026<\/p>\n<p style=\"text-align: justify;\">Et maintenant, nous voil\u00e0 :). Le d\u00e9p\u00f4t est pr\u00eat pour les premiers essais de construction, notre machine de <em>build<\/em> pour les ISO est compl\u00e8tement configur\u00e9e et la version Alpha1 est attendue pour le 15 f\u00e9vrier. Vous aurez bient\u00f4t plus de nouvelles sur la future feuille de route, alors restez connect\u00e9s !<\/p>\n<p style=\"text-align: justify;\"><em>Publi\u00e9 en anglais par ennael, traduction fran\u00e7aise par R\u00e9mi, relecture par Jehane<br \/>\n<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nous avions annonc\u00e9 que notre premi\u00e8re image ISO alpha serait disponible fin janvier\u2026 et toujours pas d&rsquo;ISO disponible. Bon sang ! Que se passe-t-il ? Je vais vous l&rsquo;expliquer. Il \u00e9tait une fois un bootstrap\u2026 Comme nous l&rsquo;avons rapport\u00e9 dans &hellip; <a href=\"https:\/\/blog.mageia.org\/fr\/2011\/02\/02\/bootstrap-quel-bootstrap-je-veux-une-iso-de-mageia\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[52,63,64],"class_list":["post-343","post","type-post","status-publish","format-standard","hentry","category-non-classe","tag-alpha","tag-bootstrap","tag-iso"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p15lfN-5x","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.mageia.org\/fr\/wp-json\/wp\/v2\/posts\/343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mageia.org\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mageia.org\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/fr\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/fr\/wp-json\/wp\/v2\/comments?post=343"}],"version-history":[{"count":17,"href":"https:\/\/blog.mageia.org\/fr\/wp-json\/wp\/v2\/posts\/343\/revisions"}],"predecessor-version":[{"id":361,"href":"https:\/\/blog.mageia.org\/fr\/wp-json\/wp\/v2\/posts\/343\/revisions\/361"}],"wp:attachment":[{"href":"https:\/\/blog.mageia.org\/fr\/wp-json\/wp\/v2\/media?parent=343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mageia.org\/fr\/wp-json\/wp\/v2\/categories?post=343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mageia.org\/fr\/wp-json\/wp\/v2\/tags?post=343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}