Subversion Repositories svn LFS-FR

Compare Revisions

Ignore whitespace Rev 959 → Rev 960

/trunk/hlfs/chapter05/introduction.xml
81,12 → 81,13
 
<important>
<para>Après l'installation de chaque paquet, supprimez son répertoire
source et son répertoire de construction, sauf si nous vous le
demandons spécifiquement. Supprimer les sources empêche une mauvaise
configuration lorsque le même paquet est réinstallé un peu plus
tard.</para>
</important>
source et son répertoire de construction, sauf si nous vous le
demandons spécifiquement. Supprimer les sources empêche une mauvaise
configuration lorsque le même paquet est réinstallé un peu plus
tard.</para>
 
</important>
 
<para>Vérifiez une dernière fois que la variable d'environnement
<envar>HLFS</envar> est configurée correctement&nbsp;:</para>
 
/trunk/hlfs/chapter05/adjusting.xml
57,7 → 57,7
mv -v /tools/bin/{ld-new,ld}
ln -sv /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld</userinput></screen>
 
<para>A partir de ce moment, tout ne sera lié qu''aux bibliothèques installées dans
<para>A partir de ce moment, tout ne sera lié qu'aux bibliothèques installées dans
<filename class="directory">/tools/lib</filename>.</para>
 
<para>La tâche suivante consiste à faire pointer GCC vers le nouvel éditeur
92,12 → 92,12
(<command>fixincludes</command>) qui analyse le système pour trouver des
fichiers d'en-tête qui auraient besoin d'être corrigés (ils pourraient
contenir par exemple des erreurs de syntaxe) et installe les versions
corrigées dans un répertoire include à part. Il se peut que, suite à ce ce
corrigées dans un répertoire include à part. Il se peut que, suite à ce
processus, certains fichiers d'en-tête du système hôte prennent place dans
le répertoire include propre à GCC. Comme le reste de ce chapitre n'exige
que les en-têtes de GCC et de libc, qui ont été installée à ce stade, toute
en-tête <quote>corrigée</quote> peut être supprimée en sécurité. Ceci permet
d'éviter que les en-têtes du hôte ne polluent l'environnement de construction.
d'éviter que les en-têtes de l'hôte ne polluent l'environnement de construction.
Lancez les commandes suivantes pour supprimer les fichiers d'en-tête dans le
répertoire include propre à GCC (vous pourriez trouver plus simple de
copier-coller ces commandes plutôt que de les taper à la main vu leur
132,14 → 132,14
apparaît comme préfixe de l'éditeur de liens dynamique.</para>
 
<para>Si l'affichage diffère ou s'il n'y a aucun affichage, alors
quelque chose ne se passe pas bien. Enquêtez et répétez ces étapepes pour
quelque chose ne se passe pas bien. Enquêtez et répétez ces étapes pour
trouver où se cache le problème et comment le corriger. Ce problème doit
être corrigé avant de continuer. Tout d'abord, relancez la vérification
de propreté en utilisant <command>gcc</command> au lieu de
d'intégrité en utilisant <command>gcc</command> au lieu de
<command>cc</command>. Si cela fonctionne, le lien symbolique
<filename class="symlink">/tools/bin/cc</filename> est manquant.
Lisez de nouveau <xref linkend="ch-tools-embryo-toolchain" role=","/> et
installez le lien symbolique. Ensuite, assurez-vous que le
créez le lien symbolique. Ensuite, assurez-vous que le
<envar>PATH</envar> est correct. Ceci se vérifie en lançant
<command>echo $PATH</command> et en vérifiant que
<filename class="directory">/tools/bin</filename> est en tête de la liste.
155,9 → 155,9
 
<screen><userinput>rm -v dummy.c a.out</userinput></screen>
 
<para>Construire Tcl dans la prochaine section servira comme vérification
supplémentaire de la bonne mise en place de l'outil de construction. Si TCL
échoue à la construction, c'est une indication d'un problème avec
<para>Construire Tcl dans la prochaine section servira de vérification
supplémentaire à la bonne mise en place des outils de construction. Si la
construction de TCL échoue, c'est l'indication d'un problème avec
l'installation de Binutils, GCC ou Glibc, mais pas avec Tcl lui-même.</para>
</caution>
 
/trunk/hlfs/chapter05/grep.xml
22,7 → 22,7
href="../chapter06/grep.xml"
xpointer="xpointer(/sect1/sect2[1]/para[1])"/>
 
<para>Notes utilisateur&nbsp;: <ulink url="&hlfs-wiki;/gettext"/></para>
<para>Notes utilisateur&nbsp;: <ulink url="&hlfs-wiki;/grep"/></para>
 
</sect2>
 
/trunk/hlfs/chapter05/cocoon-toolchain.xml
59,7 → 59,7
 
<screen><userinput>patch -Np1 -i ../&binutils-lazy-patch;</userinput></screen>
 
<para role="pax">Corrigez Binutils pour PT_PAX_FLAGS:</para>
<para role="pax">Corrigez Binutils pour PT_PAX_FLAGS&nbsp;:</para>
 
<screen role="pax"><userinput>cd binutils-&binutils-version;/
patch -Np1 -i ../../&binutils-pt_pax-patch;
94,7 → 94,7
 
<para>Le correctif suivant ajoute le contrôle du débordement de mémoire au
moment de la compilation, soit <function>__strncat_chk</function>, à
GCC-&gcc-version;, et est issu du CVS de GCC&nbsp;:
GCC-&gcc-version;. Il est issu du CVS de GCC&nbsp;:
<ulink url="http://gcc.gnu.org/ml/gcc-patches/2006-09/msg00722.html"/>.
Ce contrôle est effectué avec le commutateur GCC
<parameter>-D_FORTIFY_SOURCE</parameter> et le même contrôle sera à nouveau
125,7 → 125,7
<parameter>-fstack-protector-all</parameter>
et <parameter>-Wstack-protector</parameter> au comportement par défaut de
GCC pour C, C++, ObjC, et ObjC++. Ce correctif réduit aussi la taille
minimale des tableaux à projeter de 8 à 4 bytes, si
minimale des tableaux à protéger de 8 à 4 bytes, si
<parameter>-fstack-protector</parameter> est utilisé. En outre, ce
correctif corrige <filename>gcc/configure</filename> pour détecter le
support libc dans la bibliothèque C quelque soit l'endroit où il est
239,7 → 239,7
 
<para>La commande suivante supprime
<filename class="directory">/usr/include</filename> du chemin de recherche
d'include de GCC. Ceci garantit que seules nos en-têtes qu'on vient
d'include de GCC. Ceci garantit que seules les en-têtes que l'on vient
d'installer dans <filename class="directory">/tools/include</filename>
seront utilisées&nbsp;:</para>
 
277,8 → 277,8
<term><parameter>--enable-clocale=gnu</parameter></term>
<listitem>
<para>Cette option nous assure que le bon modèle de locale est
sélectionné pour les bibliothèques C++ sous toutes les circonstances.
script configure trouve la locale <emphasis>de_DE</emphasis> installée
sélectionné pour les bibliothèques C++ dans toutes les circonstances.
Si le script configure trouve la locale <emphasis>de_DE</emphasis> installée
sélectionnera le bon modèle de locale gnu. Néanmoins, si la locale
<emphasis>de_DE</emphasis> n'est pas installée, il existe un risque de
construire des bibliothèques C++ incompatibles avec ABI (Application
409,11 → 409,11
<!-- Note: check how Glibc avoids this linker warning. -->
 
<important>
<para>Confirmez que le nouveau compilateur fonctionne comme prévu. Ce
<para>Confirmez que le nouveau compilateur fonctionne comme prévu.
Ce programme est l'exemple parfait d'une mauvaise chose. Il autorise
l'entrée utilisateur à aller directement à la fonction
<function>strcat</function> sans vérifier la taille du tampon source ou de
destination. Ce programme de régression est issu du projet BSD. Testez tout
destination. Ce programme de régression est issu du projet NetBSD. Testez tout
d'abord SSP&nbsp;::</para>
 
<screen><userinput>cat &gt; strcat-overflow.c &lt;&lt; "EOF"
473,7 → 473,7
l'installation.</para>
</important>
 
<para>Ensuite, préparez la phase de <quote>Ré-ajustement</quote> de
<para>Ensuite, préparez la phase de <quote>ré-ajustement</quote> de
l'éditeur de liens dans le chapitre suivant&nbsp;:</para>
 
<screen><userinput>make -C ld clean
/trunk/hlfs/chapter05/linux-headers.xml
9,7 → 9,7
<?dbhtml filename="linux-headers.html"?>
 
<title><package vendor="2.4">Linux-&linux24-version;</package>
<package vendor="2.6">Linux-&linux26-version;</package>En-têtes API</title>
<package vendor="2.6">Linux-&linux26-version;</package>API Headers</title>
 
<indexterm zone="ch-tools-linux-headers">
<primary sortas="a-Linux">Linux</primary>
/trunk/hlfs/chapter05/glibc.xml
87,10 → 87,10
<screen><userinput>patch -Np1 -i ../&glibc-iconvconfig_trampoline-patch;
patch -Np1 -i ../&glibc-localedef_trampoline-patch;</userinput></screen>
 
<para role="pax">Le correctif suivant ajoute le support pour <quote>PT_PAX_FLAGS</quote> à
<para role="pax">Le correctif suivant ajoute le support de <quote>PT_PAX_FLAGS</quote> à
Glibc. Une en-tête de programme est ajoutée
aux programmes et aux bibliothèques par le correctif Binutils
<quote>PT_PAX_FLAGS</quote> et contient des attributs utilisés par le
<quote>PT_PAX_FLAGS</quote>. Il contient des attributs utilisés par le
noyau PaX et le programme <command>paxctl</command> pour contrôler le
comportement autorisé des programmes et des bibliothèques. Appliquez ce
correctif avec la commande suivante&nbsp;:</para>
/trunk/hlfs/chapter05/expect.xml
27,8 → 27,8
<sect2 role="installation">
<title>Installation de Expect</title>
 
<para>Tout d'abord, corrigez un bogue aboutissant en de nombreux faux
échecs lors de l'exécution de la suite de tests de GCC&nbsp;:</para>
<para>Tout d'abord, corrigez un bogue aboutissant à de nombreux faux
positifs lors de l'exécution de la suite de tests de GCC&nbsp;:</para>
 
<screen><userinput>patch -Np1 -i ../&expect-spawn-patch;</userinput></screen>
 
/trunk/hlfs/chapter05/embryo-toolchain.xml
128,7 → 128,7
<para>Ce paramètre vise à supprimer
<filename class="directory">/usr/local/include</filename> du chemin de
recherche des fichiers include de <command>gcc</command>. Ce n'est
pas absolument essentiel, néanmoins cela aide pour
pas absolument essentiel, néanmoins cela aide à
minimiser l'influence du système hôte.</para>
</listitem>
</varlistentry>
/trunk/hlfs/chapter05/dejagnu.xml
17,8 → 17,8
<sect2 role="package">
<title/>
 
<para>Le paquet DejaGNU contient un ensemble de travail pour tester d'autres
programmes.</para>
<para>Le paquet DejaGNU contient un <foreignphrase>framework</foreignphrase>
pour tester d'autres programmes.</para>
 
<para>Notes utilisateur&nbsp;: <ulink url="&hlfs-wiki;/dejagnu"/></para>
 
/trunk/hlfs/chapter06/linux-headers.xml
67,7 → 67,7
 
</variablelist>
 
<para>Installez les fichiers d'en-tête&nbsp;::</para>
<para>Installez les fichiers d'en-tête&nbsp;:</para>
 
<screen vendor="2.6"><userinput>make mrproper
make headers_check
/trunk/hlfs/chapter06/creatingdirs.xml
36,7 → 36,7
 
<para>Le premier changement de droit nous assure que n'importe qui ne
pourra pas entrer dans le répertoire
<filename class="directory">/root</filename>&mdash;de façon identique à ce que
<filename class="directory">/root</filename>&nbsp;&mdash; de façon identique à ce que
ferait un utilisateur pour son répertoire principal. Le deuxième changement
assure que tout utilisateur peut écrire dans les répertoires
<filename class="directory">/tmp</filename> et
53,7 → 53,7
des liens symboliques pour la compatibilité avec les répertoires
<filename class="directory">man</filename>,
<filename class="directory">doc</filename> et
<filename class="directory">info</filename> vu que beaucoup de paquetages
<filename class="directory">info</filename> vu que beaucoup de paquets
essaient encore d'installer leur documentation dans
<filename class="directory">/usr/&lt;répertoire&gt;</filename> ou
<filename class="directory">/usr/local/&lt;répertoire&gt;</filename>
/trunk/hlfs/chapter06/pwdgroup.xml
80,8 → 80,8
nobody:x:99:</literal>
EOF</userinput></screen>
 
<para>Les groupes créés ne font pas partie d'un standard&mdash;ils ont été
choisis suite à certains pré-requis de la configuration d'Udev dans la
<para>Les groupes créés ne font pas partie d'un standard&nbsp;: ils ont été
choisis suite à certains pré-requis de la configuration d'Udev effectuée dans la
prochaine section. Pour des informations sur l'ajout de plus de groupe, reportez-vous
à la Linux Standard Base (LSB, disponible sur
<ulink url="http://www.linuxbase.org"/>)</para>
96,7 → 96,7
<screen role="nodump"><userinput>exec /tools/bin/bash --login +h</userinput></screen>
 
<para>Notez l'utilisation de la directive <parameter>+h</parameter>. Ceci
ndique à <command>bash</command> de ne pas utiliser son hachage interne des
indique à <command>bash</command> de ne pas utiliser son hachage interne des
chemins. Sans cette directive, <command>bash</command> se rappelerait le
chemin vers les binaires qu'il a exécuté. Pour utiliser les binaires dès leur
installation, l'option <parameter>+h</parameter> sera utilisée pour toute la
114,8 → 114,8
 
<para>Les programmes <command>login</command>, <command>agetty</command> et
<command>init</command> (ainsi que d'autres) utilisent un certain nombre de
journaux pour enregistrer les informations comme la personne connectée au
système et sa date d'entrée. Néanmoins, ces programmes n'écrivent pas les
journaux pour enregistrer les informations comme les personnes connectées au
système et leur date d'entrée. Néanmoins, ces programmes n'écrivent pas les
journaux de trace s'ils n'existent pas déjà. Initialisez les journaux et
donnez-leur les bons droits&nbsp;:</para>
 
/trunk/hlfs/chapter06/introduction.xml
12,8 → 12,7
 
<para>Dans ce chapitre, nous entrons dans le site de construction et
lançons pour de bon la construction du système HLFS. Autrement dit, nous
entrons 'avec chroot dans le mini
système Linux temporaire, faisons quelques préparations finales et lançons
entrons avec chroot dans le mini système Linux temporaire, faisons quelques préparations finales et lançons
l'installation de tous les paquets un par un.</para>
 
<para>L'installation du logiciel est simple. Bien que, dans beaucoup
23,7 → 22,7
d'erreurs. La clé pour apprendre ce qui fait fonctionner un système
Linux est de savoir à quoi sert chaque paquet et pourquoi
l'utilisateur (ou le système) en a besoin. Pour chaque paquet
installé, un résumé de son contenu est donné, suivant par des
installé, un résumé de son contenu est donné, suivi par des
descriptions concises de chaque programme et de chaque bibliothèque
que le paquet a installé.</para>
 
65,9 → 64,9
installe.</para>
 
<para>Pour garder une trace des fichiers installés par chaque paquet, un
gestionnaire de paquetages peut être utilisé. Pour une présentatiod
gestionnaire de paquetages peut être utilisé. Pour une présentation
générale de différents styles de gestionnaires de paquetages, merci de vous
!eporter <ulink url="&blfs-root;view/svn/introduction/important.html"/>. Pour
reporter à <ulink url="&blfs-root;view/svn/introduction/important.html"/>. Pour
une méthode de gestion spécifique orientée vers HLFS, nous recommandons
<ulink url="&hints-root;more_control_and_pkg_man.txt"/>.</para>
 
/trunk/hlfs/chapter06/bzip2.xml
18,7 → 18,7
<title/>
 
<para>Le paquet Bzip2 contient des programmes de compression et
décompression de fichiers. Compresser des fichiers texte avec
de décompression de fichiers. Compresser des fichiers texte avec
<command>bzip2</command> permet d'atteindre un taux de
compression bien meilleur qu'avec l'outil
<command>gzip</command>.</para>
/trunk/hlfs/chapter06/changingowner.xml
14,7 → 14,7
<filename class="directory">/tools</filename> et
<filename class="directory">/sources</filename> appartiennent à l'utilisateur
<emphasis>hlfs</emphasis>, utilisateur qui n'existe que sur le système hôte.
Bien que ces répertoires peuvent être supprimés à l'issue de construction du
Bien que ces répertoires puissent être supprimés à l'issue de la construction du
système HLFS, ils peuvent être gardés pour construire d'autres systèmes
HLFS. Si les répertoires sont laissés en l'état, les fichiers appartiennent à
un indentifiant d'utilisateur sans compte correspondant. Ceci est dangereux car par la suite
/trunk/hlfs/chapter06/glibc.xml
32,7 → 32,7
<para>Ce paquet est connu pour avoir des problèmes quand ses drapeaux
d'optimisation par défaut (y compris les options
<parameter>-march</parameter> et <parameter>-mtune</parameter>) sont
modifiés. Si vous avez défini une variable d'environnement qui écrase
modifiés. Si vous avez défini des variables d'environnement qui écrasent
les optimisations par défaut, telles que <envar>CFLAGS</envar> et
<envar>CXXFLAGS</envar>, désinitialisez-les lorsque vous compilez Glibc.</para>
 
67,8 → 67,8
<screen><userinput>patch -Np1 -i ../&glibc-ssp_hp-timing-patch;</userinput></screen>
 
<para>Le correctif suivant est issu du CVS de Glibc&nbsp;:
<ulink url="http://sourceware.org/ml/glibc-cvs/2006-q4/msg00118.html"/>, et
ajoute <function>__attribute_warn_unused_result__</function> aux
<ulink url="http://sourceware.org/ml/glibc-cvs/2006-q4/msg00118.html"/>.
Il ajoute <function>__attribute_warn_unused_result__</function> aux
fonctions supplémentaires, pour plus d'avertissements _FORTIFY_SOURCE du
compilateur&nbsp;:</para>
 
195,7 → 195,7
projet Glibc a refusé d'ajouter ces fonctions et ces échanges de mails
commencent ici&nbsp;:
<ulink url="http://sources.redhat.com/ml/libc-alpha/2000-08/msg00052.html"/>.
Linus Torvalds a ajouté une fonction similaire au noyau Linux, et cet
Linus Torvalds a ajouté une fonction similaire au noyau Linux et cet
échange de mails est ici&nbsp;:
<ulink url="http://lwn.net/Articles/33814/"/>. Les fonctions
<function>strlcpy</function> et <function>strlcat</function> sont des
203,7 → 203,7
<function>strncat</function>. La controverse sur ces fonctions réside dans
le fait que <function>strlcpy</function> et <function>strlcat</function>
copient les données sources au tampon de destination jusqu'à ce que la
destination soit pleine, et rejette le reste des données s'il y en a. Cela
destination soit pleine et rejette le reste des données s'il y en a. Cela
signifie que ces fonctions ne seront jamais en débordement de mémoire.
Le refus de l'équipe Glibc d'ajouter ces fonctions se fonde sur le fait
qu'elles dissimulent des erreurs de programmation et elles ont des pics
222,10 → 222,10
<para role="misc">Les fonctions asprintf(3) et vasprintf(3) sont des
extensions GNU non définie par les standards C ou Posix. Dans Glibc,
ces fonctions laissent (char **strp) non définies (il peut être ou non
défini) après une une erreur. Ce correctif réinitialise (char **strp) à
NULL après une erreur par souci de propreté. Ce correctif, et le comportement
qu'il met en place, a été revu et discuté sur la liste de diffusion Glibc,
et paraît avoir été accepté, et il semble qu'il ait ensuite été oublié. Ce
défini) après une erreur. Ce correctif réinitialise (char **strp) à
NULL après une erreur par souci de propreté. Ce correctif et le comportement
qu'il met en place a été revu et discuté sur la liste de diffusion Glibc.
Il paraît avoir été accepté et il semble qu'il ait ensuite été oublié. Ce
correctif est facultatif et rien ne dépendra de lui, mais il corrige un
bogue auquel est sujet le comportement des fonctions de cette bibliothèque.
Appliquez ce correctif avec la commande suivante&nbsp;:</para>
260,7 → 260,7
<filename class="libraryfile">libc.so</filename>, ce qui fait que
les symboles SSP sont absents et le programme de test conftest échoue. Cela
ne sera pas un problème après que configure ait été lancé. Corrigez
configure pour que ses tests passent correctement&nbsp;:</para>
configure pour que ses tests réussissent correctement&nbsp;:</para>
 
<screen role="ssp"><userinput>sed 's/-nostdlib/&amp; -fno-stack-protector/g' -i.orig configure</userinput></screen>
 
317,7 → 317,7
<para>Cette option dit à arc4random et SSP quel périphérique
pseudo-aléatoire utiliser.
<filename class="devicefile">/dev/erandom</filename> est idéal
mais cela dépend du correctif Frandom du noyau.. Vous pouvez aussi
mais cela dépend du correctif Frandom du noyau. Vous pouvez aussi
utiliser <filename class="devicefile">/dev/urandom</filename> mais
c'est déconseillé à moins que vous n'exécutiez un démon
générateur de nombre aléatoire, au quel cas l'entropie réelle est
351,7 → 351,7
 
<para role="aslr">Glibc se lie aux fichiers de démarrage explicitement. Ce
qui suit va modifier la commande de lien utilisée, afin que les programmes
soient liés aux fichiers de démarrage partageables, et qu'ils utilisent
soient liés aux fichiers de démarrage partageables et qu'ils utilisent
explicitement <parameter>-fPIE</parameter>. <command>sln</command> est un
autre programme lié statiquement, donc des options sont ajoutées afin
qu'il ne soit pas compilé en tant que PIC&nbsp;:</para>
403,7 → 403,7
<quote>posix/annexc.out (ignoré)</quote>, devraient réussir. Le test
<quote>elf/check-localplt</quote> échoue souvent car il y a des symboles
ajoutés dans <filename class="libraryfile">libc.so</filename> qui n'étaient
pas attendus. Ceci est dû aux options de GCC que nous avons utilisées,
pas attendus. Ceci est dû aux options de GCC que nous avons utilisées
et aux correctifs de Glibc.</para>
 
<para>Vous pouvez aussi lancer <command>make check-abi</command> si vous
414,7 → 414,7
même sur des systèmes parfaits et idéaux.</para>
 
<para>Bien que ce ne soit qu'un simple message, l'étape d'installation de
Glibc se plaindra de l'absence d <filename>/etc/ld.so.conf</filename>.
Glibc se plaindra de l'absence de <filename>/etc/ld.so.conf</filename>.
Supprimez ce message d'avertissement avec&nbsp;:</para>
 
<screen><userinput>touch /etc/ld.so.conf</userinput></screen>
442,7 → 442,7
mv -v /usr/lib/{librpcsvc,librt,libutil}.a /usr/lib/static/</userinput></screen>
 
<para>La bibliothèque <filename class="libraryfile">libc_nonshared.a</filename>
n'est nécessaire que pour compiler tout le nécessaire. La bibliothèque The
n'est nécessaire que pour compiler tout le nécessaire. La bibliothèque
<filename class="libraryfile">libpthread_nonshared.a</filename> est
nécessaire à chaque fois que quelque chose se lie à
<filename class="libraryfile">libpthread.so</filename>.
/trunk/hlfs/chapter06/ncurses.xml
18,7 → 18,7
<title/>
 
<para>Le paquet Ncurses contient les bibliothèques de gestion des
écrans type caractère, indépendant des terminaux.</para>
écrans type caractère indépendant du terminal.</para>
 
<para>Notes utilisateur&nbsp;: <ulink url="&hlfs-wiki;/ncurses"/></para>
 
/trunk/hlfs/chapter06/butterfly-toolchain.xml
541,7 → 541,7
<para>Cela devrait afficher trois lignes de nombre complètement
différents. FIXME: Testez d'où vient l'entropie. Peut-être y'a-t-il un
programme qui va lancer <function>arc4random()</function> encore et
encore jusqu'à ce que des nombres ne se répètent puis signaler les
encore jusqu'à ce que des nombres se répètent puis signaler les
moyennes.</para>
 
<para condition="glibc">Le correctif arc4_prng modifie aussi