[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RFR2] po4a://manpages-fr/pivot_root/po/fr.po 16f 44u



Bonjour,

Le 14/01/2021 à 06:31, Jean-Philippe MENGUAL a écrit :
> oops, une relecture m'avait échappé, désolé et merci à Jean-Paul
> 
> Amicalement,
> 
> 
> 
> Jean-Philippe MENGUAL
> Debian Developer non uploading
> Community team member
> Accessibility team member
> debian-l10n-french team member
> President of Debian France non-profit organization
> Le 14/01/2021 à 06:16, Jean-Philippe MENGUAL a écrit :
>> Merci beaucoup, voici ce que ça dnnne
>>
>> Amicalement,
>>
>>
>>
>> Jean-Philippe MENGUAL
>> Debian Developer non uploading
>> Community team member
>> Accessibility team member
>> debian-l10n-french team member
>> President of Debian France non-profit organization
>> Le 12/01/2021 à 09:53, bubu a écrit :
>>> bonjour,
>>>
>>> suggestions,
>>>
>>> amicalement,
>>>
>>> bubu
>>>
>>> Le 09/01/2021 à 22:06, Jean-Philippe MENGUAL a écrit :
>>>> Bonjour,
>>>>
>>>> Voici une mise à jour de page de man (on est sur la section 2 ici).
>>>>
>>>> Merci pour vos relectures.
>>>>
>>>> Amicalement,
Suggestions. J'ai changé la POT-Creation-date et une chaîne décrivant
les version/distributions d'attribution (ligne  1076) pour être en
accord avec les dernières modifications amont.
Amicalement,
jipege
--- /home/jpg1/manpages-l10n/po/fr/man2/pivot_root.2.po	2021-01-10 17:27:36.112476489 +0100
+++ /home/jpg1/Documents/traductions/l10n/m_q/manpage-fr_man2/pivot_root.2/pivot_root.2_jpg.po	2021-01-22 13:36:33.526700428 +0100
@@ -15,12 +15,13 @@
 # Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, 2006, 2013-2014.
 # Denis Barbier <barbier@debian.org>, 2006, 2010.
 # David Prévot <david@tilapin.org>, 2010-2014.
+# Jean-Philippe MENGUAL <jpmengual@debian.org>, 2021.
 msgid ""
 msgstr ""
 "Project-Id-Version: perkamon\n"
 "POT-Creation-Date: 2021-01-09 22:12+01:00\n"
-"PO-Revision-Date: 2018-09-10 20:55+0000\n"
-"Last-Translator: Weblate Admin <jean-baptiste@holcroft.fr>\n"
+"PO-Revision-Date: 2021-01-22 12:45+0100\n"
+"Last-Translator: Jean-Philippe MENGUAL <jpmengual@debian.org>\n"
 "Language-Team: French <https://translate.holcroft.fr/projects/man-pages-fr/";
 "man2/fr/>\n"
 "Language: fr\n"
@@ -67,10 +68,8 @@
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
-#| msgid "pivot_root - change the root filesystem"
 msgid "pivot_root - change the root mount"
-msgstr "pivot_root - Modifier la racine du système de fichiers"
+msgstr "pivot_root - Modifier le montage racine"
 
 #. type: SH
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -112,6 +111,12 @@
 "must have the B<CAP_SYS_ADMIN> capability in the user namespace that owns "
 "the caller's mount namespace."
 msgstr ""
+"B<pivot_root>() modifie le montage racine dans l'espace de noms de montage "
+"du processus appelant. Plus précisément, il déplace le montage racine dans "
+"le répertoire I<put_old> et il fait de I<new_root> le nouveau montage "
+"racine. Le processus appelant doit avoir la capacité B<CAP_SYS_ADMIN> dans "
+"l'espace de noms de l'utilisateur à qui appartient l'espace de noms de "
+"montage de l'appelant."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -124,15 +129,18 @@
 "working directory (unless it is on the old root directory), and thus it "
 "should be followed by a B<chdir(\"/\")> call."
 msgstr ""
+"B<pivot_root>() change le répertoire racine et le répertoire de travail de "
+"chaque processus ou de chaque thread du même espace de noms de montage en "
+"I<new_root> s'ils pointent vers l'ancien répertoire de montage (voir aussi "
+"les NOTES). D'un autre côté, B<pivot_root>() ne modifie pas le répertoire de "
+"travail de l'appelant (sauf s'il est sur l'ancien répertoire racine), ainsi, "
+"il doit être suivi d'un appel B<chdir(\"/\")>."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
-#| msgid "The following restrictions apply to I<new_root> and I<put_old>:"
 msgid "The following restrictions apply:"
-msgstr ""
-"Les restrictions suivantes s'appliquent à I<new_root> et I<put_old>\\ :"
+msgstr "Les restrictions suivantes s'appliquent\\ :"
 
 #. type: IP
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -144,53 +152,41 @@
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
-#| msgid "I<new_root> or I<put_old> is not a directory."
 msgid "I<new_root> and I<put_old> must be directories."
-msgstr "I<new_root> ou I<put_old> n'est pas un répertoire."
+msgstr "I<new_root> et I<put_old> doivent être des répertoires."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
-#| msgid ""
-#| "I<new_root> and I<put_old> must not be on the same filesystem as the "
-#| "current root."
 msgid ""
 "I<new_root> and I<put_old> must not be on the same mount as the current root."
 msgstr ""
-"I<new_root> et I<put_old> ne doivent pas être sur le même système de "
-"fichiers que la racine actuelle."
+"I<new_root> et I<put_old> ne doivent pas être sur le même montage que la "
+"racine actuelle."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
-#| msgid ""
-#| "I<put_old> must be underneath I<new_root>, that is, adding a nonzero "
-#| "number of I</..> to the string pointed to by I<put_old> must yield the "
-#| "same directory as I<new_root>."
 msgid ""
 "I<put_old> must be at or underneath I<new_root>; that is, adding some "
 "nonnegative number of \"I</..>\" prefixes to the pathname pointed to by "
 "I<put_old> must yield the same directory as I<new_root>."
 msgstr ""
-"I<put_old> doit être un descendant de I<new_root>\\ : ajouter un nombre non-"
-"nul de I</..> à la chaîne I<put_old> doit ramener au même répertoire que "
-"I<new_root>."
+"I<put_old> doit être sur I<new_root> ou un descendant de I<new_root>\\ : à "
+"savoir qu'ajouter un nombre positif de préfixes « I</..> » au chemin vers "
+"lequel pointe I<put_old> doit ramener au même répertoire que I<new_root>."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
 msgid ""
 "I<new_root> must be a path to a mount point, but can't be I<\"/\">.  A path "
 "that is not already a mount point can be converted into one by bind mounting "
 "the path onto itself."
 msgstr ""
-"I<new_root> n'a pas besoin d'être un point de montage. Dans ce cas, I</proc/"
-"mounts> montrera le point de montage concernant I<new_root> comme racine (I</"
-">)."
+"I<new_root> doit être un chemin vers un point de montage ; mais il ne peut "
+"pas être « / ». Un chemin qui n'est pas un point de montage peut le devenir "
+"en montant en miroir le point sur lui-même."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -202,12 +198,17 @@
 "B<MS_SHARED>.  These restrictions ensure that B<pivot_root>()  never "
 "propagates any changes to another mount namespace."
 msgstr ""
+"Le type de propagation du montage parent de I<new_root> et le montage parent "
+"du répertoire racine actuel ne doivent pas être B<MS_SHARED> ; de même, si "
+"I<put_old> est un point de montage existant, son type de propagation ne doit "
+"pas être B<MS_SHARED>. Ces restrictions garantissent que B<pivot_root>() ne "
+"propage jamais de changement sur un autre espace de noms de montage."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 msgid "The current root directory must be a mount point."
-msgstr ""
+msgstr "Le répertoire racine actuel doit être un point de montage."
 
 #. type: SH
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -236,16 +237,12 @@
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
-#| msgid ""
-#| "B<pivot_root>()  may return (in I<errno>) any of the errors returned by "
-#| "B<stat>(2).  Additionally, it may return:"
 msgid ""
 "B<pivot_root>()  may fail with any of the same errors as B<stat>(2).  "
 "Additionally, it may fail with the following errors:"
 msgstr ""
-"B<pivot_root>() peut renvoyer (dans I<errno>) toute erreur renvoyée par "
-"B<stat>(2). De plus, il peut renvoyer\\ :"
+"B<pivot_root>() peut échouer avec une des erreurs de B<stat>(2). Il peut "
+"aussi échouer avec les erreurs suivantes\\ :"
 
 #. type: TP
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -271,16 +268,12 @@
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
-#| msgid ""
-#| "I<new_root> or I<put_old> are on the current root filesystem, or a "
-#| "filesystem is already mounted on I<put_old>."
 msgid ""
 "I<new_root> or I<put_old> is on the current root mount.  (This error covers "
 "the pathological case where I<new_root> is I<\"/\">.)"
 msgstr ""
-"I<new_root> ou I<put_old> sont sur le système de fichiers principal actuel, "
-"ou un système de fichiers est déjà monté sur I<put_old>."
+"I<new_root> ou I<put_old> est sur le montage racine actuel (cette erreur "
+"vaut pour le cas pathologique où I<new_root> est « / »."
 
 #. type: TP
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -292,17 +285,14 @@
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
 msgid "I<new_root> is not a mount point."
-msgstr "I<new_root> ou I<put_old> n'est pas un répertoire."
+msgstr "I<new_root> n'est pas un point de montage."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
-#| msgid "I<put_old> is not underneath I<new_root>."
 msgid "I<put_old> is not at or underneath I<new_root>."
-msgstr "I<put_old> n'est pas un descendant de I<new_root>."
+msgstr "I<put_old> n'est pas sur I<new_root> ou un descendant."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -311,12 +301,16 @@
 "The current root directory is not a mount point (because of an earlier "
 "B<chroot>(2))."
 msgstr ""
+"Le répertoire racine actuel n'est pas un point de montage (du fait d'un "
+"précédent B<chroot>(2))."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 msgid "The current root is on the rootfs (initial ramfs) mount; see NOTES."
 msgstr ""
+"La racine actuelle est sur le montage rootfs (ramfs initial) ; voir les "
+"NOTES."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -325,12 +319,16 @@
 "Either the mount point at I<new_root>, or the parent mount of that mount "
 "point, has propagation type B<MS_SHARED>."
 msgstr ""
+"Soit le point de montage sur I<new_root>, soit le montage parent de ce point "
+"de montage, a un type de propagation B<MS_SHARED>."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 msgid "I<put_old> is a mount point and has the propagation type B<MS_SHARED>."
 msgstr ""
+"I<put_old> est un point de montage et il a le type de propagation "
+"B<MS_SHARED>."
 
 #. type: TP
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -369,7 +367,7 @@
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 msgid "B<pivot_root>()  was introduced in Linux 2.3.41."
-msgstr "B<pivot_root>() a été introduit dans Linux 2.3.41."
+msgstr "B<pivot_root>() a été introduit dans Linux 2.3.41."
 
 #. type: SH
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -408,6 +406,8 @@
 "A command-line interface for this system call is provided by "
 "B<pivot_root>(8)."
 msgstr ""
+"Une interface en ligne de commande pour cet appel système est fournie par "
+"B<pivot_root>(8)."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -420,16 +420,16 @@
 "root directory to the new root frees the old root directory of users, "
 "allowing the old root mount to be unmounted more easily.)"
 msgstr ""
+"B<pivot_root>() permet à un appelant de passer à un nouveau système de "
+"fichiers racine tout en mettant l'ancien montage racine dans I<new_root>, "
+"d'où il peut être démonté (le fait de déplacer tous les processus ayant un "
+"répertoire racine ou actuel dans le répertoire racine vers une nouvelle "
+"racine libère l'ancienne racine des utilisateurs, permettant de démonter "
+"plus facilement l'ancien montage racine)."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
-#| msgid ""
-#| "The typical use of B<pivot_root>()  is during system startup, when the "
-#| "system mounts a temporary root filesystem (e.g., an B<initrd>), then "
-#| "mounts the real root filesystem, and eventually turns the latter into the "
-#| "current root of all relevant processes or threads."
 msgid ""
 "One use of B<pivot_root>()  is during system startup, when the system mounts "
 "a temporary root filesystem (e.g., an B<initrd>(4)), then mounts the real "
@@ -437,10 +437,12 @@
 "all relevant processes and threads.  A modern use is to set up a root "
 "filesystem during the creation of a container."
 msgstr ""
-"L'utilisation typique de B<pivot_root>() est durant le boot, lorsque le "
-"système monte un système de fichiers temporaire (par exemple un B<initrd>) "
-"puis monte le véritable système de fichiers, et le transforme en racine pour "
-"tous les processus et threads concernés."
+"L'utilisation typique de B<pivot_root>() est durant le démarrage du système, "
+"lorsque le système monte un système de fichiers temporaire (par exemple un "
+"B<initrd>(4)) puis monte le véritable système de fichiers et le transforme "
+"éventuellement en racine pour tous les processus et threads concernés. Une "
+"utilisation moderne consiste à définir un système de fichiers racine pendant "
+"la création d'un conteneur."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -452,6 +454,11 @@
 "and current working directories, even if they never access the filesystem in "
 "any way."
 msgstr ""
+"Le fait que B<pivot_root>() modifie les répertoires racine et de travail du "
+"processus comme indiqué dans la DESCRIPTION est nécessaire afin d'empêcher "
+"les threads du noyau d'occuper l'ancien montage racine avec leurs "
+"répertoires racine et de travail, même s'ils n'accèdent jamais au système de "
+"fichiers en aucune manière."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -463,13 +470,19 @@
 "I<stderr> to the new I</dev/console>, and exec the new B<init>(1).  Helper "
 "programs for this process exist; see B<switch_root>(8)."
 msgstr ""
+"Le rootfs (initial ramfs) ne peut pas être B<pivot_root>()é. La méthode "
+"recommandée pour modifier le système de fichiers racine dans ce cas consiste "
+"à tout effacer sur le rootfs, monter par-dessus la nouvelle racine, "
+"rattacher I<stdin>/I<stdout>/I<stderr> au nouveau I</dev/console> et "
+"exécuter le nouvel B<init>(1). Il existe des programmes d'aide pour ce "
+"processus ; voir B<switch_root>(8)."
 
 #. type: SS
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 #, no-wrap
 msgid "pivot_root(\".\", \".\")"
-msgstr ""
+msgstr "pivot_root(\".\", \".\")"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -479,6 +492,9 @@
 "following sequence allows a pivot-root operation without needing to create "
 "and remove a temporary directory:"
 msgstr ""
+"I<new_root> et I<put_old> peuvent être le même répertoire. En particulier, "
+"la séquence suivante permet une opération pivot-root sans devoir créer et "
+"supprimer un répertoire temporaire :"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -489,6 +505,9 @@
 "pivot_root(\".\", \".\");\n"
 "umount2(\".\", MNT_DETACH);\n"
 msgstr ""
+"chdir(new_root);\n"
+"pivot_root(\".\", \".\");\n"
+"umount2(\".\", MNT_DETACH);\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -502,19 +521,28 @@
 "list of mounts stacked at I</>, with the result that old root mount point is "
 "unmounted."
 msgstr ""
+"Cette séquence réussit parce que l'appel B<pivot_root>() place le point de "
+"montage racine au sommet du nouveau point de montage racine sur I</>. Alors, "
+"le répertoire racine et celui de travail du processus appelant se "
+"rapportent au nouveau point de montage racine (I<new_root>). Lors de l'appel "
+"B<umount>() suivant, la résolution de I<\".\"> commence par I<new_root> puis "
+"monte la liste des points de montage empilés dans I</>, d'où il résulte que "
+"l'ancien point de montage est démonté."
 
 #. type: SS
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 #, no-wrap
 msgid "Historical notes"
-msgstr ""
+msgstr "Remarques historiques"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 msgid "For many years, this manual page carried the following text:"
 msgstr ""
+"Pendant de nombreuses années, cette page de manuel comportait le texte "
+"suivant :"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -544,6 +572,12 @@
 "stated in DESCRIPTION has remained consistent since this system call was "
 "first implemented and will not change now."
 msgstr ""
+"Ce texte, écrit avant même la finalisation de l'implémentation de l'appel "
+"système dans le noyau, visait sans doute à avertir les utilisateurs à ce "
+"moment là que l'implémentation pourrait changer avant la publication "
+"définitive. Toutefois, le comportement indiqué dans DESCRIPTION est resté "
+"valable depuis la première implémentation de cet appel système et il ne "
+"changera pas maintenant."
 
 #. type: SH
 #: archlinux debian-unstable fedora-rawhide mageia-cauldron opensuse-tumbleweed
@@ -587,6 +621,11 @@
 "created by B<clone>(2)  then executes the program named in the remaining "
 "command-line arguments."
 msgstr ""
+"Le programme ci-dessous montre l'utilisation de B<pivot_root>() dans un "
+"espace de noms de montage créé en utilisant B<clone>(2). Après avoir changé "
+"le répertoire racine appelé dans le premier paramètre de la ligne de "
+"commande du programme, l'enfant créé par B<clone>(2) exécute alors le "
+"programme nommé dans les autres paramètres de la ligne de commande."
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -596,6 +635,9 @@
 "new root filesystem and placing a copy of the (statically linked)  "
 "B<busybox>(1)  executable in that directory."
 msgstr ""
+"Nous montrons le programme en créant un répertoire qui servira de nouveau "
+"système de fichiers racine et en mettant une copie de l'exécutable "
+"B<busybox>(1) (liée statiquement) dans ce répertoire."
 
 #. type: Plain text
 #: archlinux debian-unstable fedora-rawhide mageia-cauldron opensuse-tumbleweed
@@ -617,6 +659,21 @@
 "bbsh$ B<echo \\(aqhello world\\(aq>\n"
 "hello world\n"
 msgstr ""
+"$ B<mkdir /tmp/rootfs>\n"
+"$ B<ls -id /tmp/rootfs>    # Numéro d’inœud dans le nouveau répertoire racine\n"
+"319459 /tmp/rootfs\n"
+"$ B<cp $(which busybox) /tmp/rootfs>\n"
+"$ B<PS1=\\(aqbbsh$ \\(aq sudo ./pivot_root_demo /tmp/rootfs /busybox sh>\n"
+"bbsh$ B<PATH=/>\n"
+"bbsh$ B<busybox ln busybox ln>\n"
+"bbsh$ B<ln busybox echo>\n"
+"bbsh$ B<ln busybox ls>\n"
+"bbsh$ B<ls>\n"
+"busybox  echo     ln       ls\n"
+"bbsh$ B<ls -id />          # Comparaison avec le numéro d’inœud au-dessus\n"
+"319459 /\n"
+"bbsh$ B<echo \\(aqhello world\\(aq>\n"
+"hello world\n"
 
 #. type: SS
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -630,20 +687,12 @@
 #: opensuse-tumbleweed
 #, no-wrap
 msgid "/* pivot_root_demo.c */\n"
-msgstr ""
+msgstr "/* pivot_root_demo.c */\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy, no-wrap
-#| msgid ""
-#| "#define _GNU_SOURCE\n"
-#| "#include E<lt>ctype.hE<gt>\n"
-#| "#include E<lt>netdb.hE<gt>\n"
-#| "#include E<lt>stdlib.hE<gt>\n"
-#| "#include E<lt>stdio.hE<gt>\n"
-#| "#include E<lt>errno.hE<gt>\n"
-#| "#include E<lt>string.hE<gt>\n"
+#, no-wrap
 msgid ""
 "#define _GNU_SOURCE\n"
 "#include E<lt>sched.hE<gt>\n"
@@ -658,12 +707,16 @@
 "#include E<lt>sys/mman.hE<gt>\n"
 msgstr ""
 "#define _GNU_SOURCE\n"
-"#include E<lt>ctype.hE<gt>\n"
-"#include E<lt>netdb.hE<gt>\n"
-"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sched.hE<gt>\n"
 "#include E<lt>stdio.hE<gt>\n"
-"#include E<lt>errno.hE<gt>\n"
-"#include E<lt>string.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>sys/wait.hE<gt>\n"
+"#include E<lt>sys/syscall.hE<gt>\n"
+"#include E<lt>sys/mount.hE<gt>\n"
+"#include E<lt>sys/stat.hE<gt>\n"
+"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>sys/mman.hE<gt>\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -687,14 +740,18 @@
 "    return syscall(SYS_pivot_root, new_root, put_old);\n"
 "}\n"
 msgstr ""
+"static int\n"
+"pivot_root(const char *new_root, const char *put_old)\n"
+"{\n"
+"    return syscall(SYS_pivot_root, new_root, put_old);\n"
+"}\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy, no-wrap
-#| msgid "#define BUF_SIZE 1024\n"
+#, no-wrap
 msgid "#define STACK_SIZE (1024 * 1024)\n"
-msgstr "#define BUF_SIZE 1024\n"
+msgstr "#define STACK_SIZE (1024 * 1024)\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -709,6 +766,13 @@
 "    const char *put_old = \"/oldrootfs\";\n"
 "    char path[PATH_MAX];\n"
 msgstr ""
+"static int              /* Fonction de démarrage pour l’enfant cloné */\n"
+"child(void *arg)\n"
+"{\n"
+"    char **args = arg;\n"
+"    char *new_root = args[0];\n"
+"    const char *put_old = \"/oldrootfs\";\n"
+"    char path[PATH_MAX];\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -720,6 +784,10 @@
 "       return an error), and prevent propagation of mount\n"
 "       events to the initial mount namespace */\n"
 msgstr ""
+"    /* S'assurer que \\(aqnew_root\\(aq et son point de montage parent\n"
+"       n’aient pas une propagation partagée (ce qui ferait renvoyer une\n"
+"       erreur à pivot_root()) et empêcher la propagation des événements\n"
+"       de montage dans l'espace de noms de montage initial */\n"
 
 #. type: Plain text
 #: archlinux debian-unstable fedora-rawhide mageia-cauldron opensuse-tumbleweed
@@ -728,13 +796,15 @@
 "    if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == -1)\n"
 "        errExit(\"mount-MS_PRIVATE\");\n"
 msgstr ""
+"    if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == -1)\n"
+"        errExit(\"mount-MS_PRIVATE\");\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 #, no-wrap
 msgid "    /* Ensure that \\(aqnew_root\\(aq is a mount point */\n"
-msgstr ""
+msgstr "    /* S'assurer que \\(aqnew_root\\(aq soit un point de montage */\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -744,13 +814,15 @@
 "    if (mount(new_root, new_root, NULL, MS_BIND, NULL) == -1)\n"
 "        errExit(\"mount-MS_BIND\");\n"
 msgstr ""
+"    if (mount(new_root, new_root, NULL, MS_BIND, NULL) == -1)\n"
+"        errExit(\"mount-MS_BIND\");\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 #, no-wrap
 msgid "    /* Create directory to which old root will be pivoted */\n"
-msgstr ""
+msgstr "    /* Créer le répertoire où l'ancienne racine sera envoyée */\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -761,14 +833,16 @@
 "    if (mkdir(path, 0777) == -1)\n"
 "        errExit(\"mkdir\");\n"
 msgstr ""
+"    snprintf(path, sizeof(path), \"%s/%s\", new_root, put_old);\n"
+"    if (mkdir(path, 0777) == -1)\n"
+"        errExit(\"mkdir\");\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy, no-wrap
-#| msgid "pivot_root - change the root filesystem"
+#, no-wrap
 msgid "    /* And pivot the root filesystem */\n"
-msgstr "pivot_root - Modifier la racine du système de fichiers"
+msgstr "    /* Et changer de système de fichiers racine */\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -778,13 +852,15 @@
 "    if (pivot_root(new_root, path) == -1)\n"
 "        errExit(\"pivot_root\");\n"
 msgstr ""
+"    if (pivot_root(new_root, path) == -1)\n"
+"        errExit(\"pivot_root\");\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 #, no-wrap
 msgid "    /* Switch the current working directory to \"/\" */\n"
-msgstr ""
+msgstr "    /* Déplacer le répertoire de travail dans \"/\" */\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -794,6 +870,8 @@
 "    if (chdir(\"/\") == -1)\n"
 "        errExit(\"chdir\");\n"
 msgstr ""
+"    if (chdir(\"/\") == -1)\n"
+"        errExit(\"chdir\");\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -801,6 +879,7 @@
 #, no-wrap
 msgid "    /* Unmount old root and remove mount point */\n"
 msgstr ""
+"    /* Démonter l'ancienne racine et supprimer le point de montage */\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -812,13 +891,17 @@
 "    if (rmdir(put_old) == -1)\n"
 "        perror(\"rmdir\");\n"
 msgstr ""
+"    if (umount2(put_old, MNT_DETACH) == -1)\n"
+"        perror(\"umount2\");\n"
+"    if (rmdir(put_old) == -1)\n"
+"        perror(\"rmdir\");\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 #, no-wrap
 msgid "    /* Execute the command specified in argv[1]... */\n"
-msgstr ""
+msgstr "    /* Exécuter la commande indiquée dans argv[1]... */\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -829,16 +912,14 @@
 "    errExit(\"execv\");\n"
 "}\n"
 msgstr ""
+"    execv(args[1], &args[1]);\n"
+"    errExit(\"execv\");\n"
+"}\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy, no-wrap
-#| msgid ""
-#| "int\n"
-#| "main(int argc, char *argv[])\n"
-#| "{\n"
-#| "    key_serial_t key;\n"
+#, no-wrap
 msgid ""
 "int\n"
 "main(int argc, char *argv[])\n"
@@ -848,7 +929,7 @@
 "int\n"
 "main(int argc, char *argv[])\n"
 "{\n"
-"    key_serial_t key;\n"
+"    /* Créer un processus enfant dans un nouvel espace de noms de montage */\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -860,6 +941,10 @@
 "    if (stack == MAP_FAILED)\n"
 "        errExit(\"mmap\");\n"
 msgstr ""
+"    char *stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE,\n"
+"                       MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);\n"
+"    if (stack == MAP_FAILED)\n"
+"        errExit(\"mmap\");\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -870,13 +955,16 @@
 "                CLONE_NEWNS | SIGCHLD, &argv[1]) == -1)\n"
 "        errExit(\"clone\");\n"
 msgstr ""
+"    if (clone(child, stack + STACK_SIZE,\n"
+"                CLONE_NEWNS | SIGCHLD, &argv[1]) == -1)\n"
+"        errExit(\"clone\");\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
 #, no-wrap
 msgid "    /* Parent falls through to here; wait for child */\n"
-msgstr ""
+msgstr "    /* Le parent arrive ici ; attendre l'enfant */\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -886,6 +974,8 @@
 "    if (wait(NULL) == -1)\n"
 "        errExit(\"wait\");\n"
 msgstr ""
+"    if (wait(NULL) == -1)\n"
+"        errExit(\"wait\");\n"
 
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -908,11 +998,12 @@
 #. type: Plain text
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
 #: opensuse-tumbleweed
-#, fuzzy
 msgid ""
 "B<chdir>(2), B<chroot>(2), B<mount>(2), B<stat>(2), B<initrd>(4), "
 "B<mount_namespaces>(7), B<pivot_root>(8), B<switch_root>(8)"
-msgstr "B<chdir>(2), B<chroot>(2), B<stat>(2), B<initrd>(4), B<pivot_root>(8)"
+msgstr ""
+"B<chdir>(2), B<chroot>(2), B<mount>(2), B<stat>(2), B<initrd>(4), "
+"B<mount_namespaces>(7), B<pivot_root>(8), B<switch_root>(8)"
 
 #. type: SH
 #: archlinux debian-buster debian-unstable fedora-rawhide mageia-cauldron
@@ -965,6 +1056,21 @@
 "bbsh$ B<echo \\(aqhello world\\(aq>\n"
 "hello world\n"
 msgstr ""
+"$ B<mkdir /tmp/rootfs>\n"
+"$ B<ls -id /tmp/rootfs>    # Numéro d’inœud dans le nouveau répertoire racine\n"
+"319459 /tmp/rootfs\n"
+"$ B<cp $(which busybox) /tmp/rootfs>\n"
+"$ B<PS1='bbsh$ ' sudo ./pivot_root_demo /tmp/rootfs /busybox sh>\n"
+"bbsh$ B<PATH=/>\n"
+"bbsh$ B<busybox ln busybox ln>\n"
+"bbsh$ B<ln busybox echo>\n"
+"bbsh$ B<ln busybox ls>\n"
+"bbsh$ B<ls>\n"
+"busybox  echo     ln       ls\n"
+"bbsh$ B<ls -id />          # Comparaison avec le numéro d’inœud au-dessus\n"
+"319459 /\n"
+"bbsh$ B<echo \\(aqhello world\\(aq>\n"
+"hello world\n"
 
 #. type: Plain text
 #: debian-buster
@@ -973,6 +1079,8 @@
 "    if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == 1)\n"
 "        errExit(\"mount-MS_PRIVATE\");\n"
 msgstr ""
+"    if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == 1)\n"
+"        errExit(\"mount-MS_PRIVATE\");\n"
 
 #. type: Plain text
 #: debian-buster

Reply to: