svn commit: r50104 - user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng
Glen Barber
gjb at FreeBSD.org
Thu Mar 30 17:12:49 UTC 2017
Author: gjb
Date: Thu Mar 30 17:12:48 2017
New Revision: 50104
URL: https://svnweb.freebsd.org/changeset/doc/50104
Log:
- Document how thermite.sh creates the /R/ftp-stage hierarchy.
- Document how the builds are staged to be polled by ftp-master.
- Document how the builds are published after being staged.
Sponsored by: The FreeBSD Foundation
Modified:
user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-mirrors.xml
Modified: user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-mirrors.xml
==============================================================================
--- user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-mirrors.xml Thu Mar 30 17:10:14 2017 (r50103)
+++ user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-mirrors.xml Thu Mar 30 17:12:48 2017 (r50104)
@@ -20,6 +20,27 @@
<listitem>
<para>Creating the directory structure to match the hierarchy
on <systemitem>ftp-master</systemitem></para>
+
+ <para>If <literal>EVERYTHINGISFINE</literal> is defined in the
+ build configuration files, <filename>main.conf</filename> in
+ the case of the build scripts referenced above, this happens
+ automatically in the &man.chroot.8; after the build is
+ complete, creating the directory structure in <filename
+ class="directory">${DESTDIR}/R/ftp-stage</filename>
+ with a path structure matching what is expected on
+ <systemitem>ftp-master</systemitem>. This is equivalent to
+ running the following in the &man.chroot.8; directly:</para>
+
+ <screen>&prompt.root; <userinput>make -C /usr/src/release -f Makefile.mirrors EVERYTHINGISFINE=1 ftp-stage</userinput></screen>
+
+ <para>After each architecture is built,
+ <filename>thermite.sh</filename> will
+ <application>rsync</application> the <filename
+ class="directory">${DESTDIR}/R/ftp-stage</filename>
+ from the build &man.chroot.8; to <filename
+ class="directory">/snap/ftp/snapshots</filename> or
+ <filename class="directory">/snap/ftp/releases</filename> on
+ the build host, respectively.</para>
</listitem>
<listitem>
@@ -27,6 +48,23 @@
<systemitem>ftp-master</systemitem> before moving the files
into <filename class="directory">pub/</filename> to begin
propagation to the Project mirrors</para>
+
+ <para>Once all builds have finished, <filename
+ class="directory">/snap/ftp/snapshots</filename>, or
+ <filename class="directory">/snap/ftp/releases</filename>
+ for a release, is polled by
+ <systemitem>ftp-master</systemitem> using
+ <application>rsync</application> to <filename
+ class="directory">/archive/tmp/snapshots</filename> or
+ <filename class="directory">/snap/ftp/releases</filename>,
+ respectively.</para>
+
+ <note>
+ <para>On <systemitem>ftp-master</systemitem> in the &os;
+ Project infrastructure, this step requires
+ <literal>root</literal> level access, as this step must
+ be executed as the <literal>archive</literal> user.</para>
+ </note>
</listitem>
</itemizedlist>
</sect2>
@@ -34,6 +72,42 @@
<sect2 xml:id="releng-mirrors-publishing">
<title>Publishing &os; Installation Media</title>
- <para> </para>
+ <para>Once the images are staged in <filename
+ class="directory">/archive/tmp/</filename>, they are ready to
+ be made public by putting them in <filename
+ class="directory">/archive/pub/FreeBSD</filename>. In order
+ to reduce propagation time, &man.pax.1; is used to create hard
+ links from <filename class="directory">/archive/tmp</filename>
+ to <filename
+ class="directory">/archive/pub/FreeBSD</filename>.</para>
+
+ <note>
+ <para>In order for this to be effective, both <filename
+ class="directory">/archive/tmp</filename> and <filename
+ class="directory">/archive/pub</filename> must reside on the
+ same logical filesystem.</para>
+ </note>
+
+ <para>There is a caveat, however, where
+ <application>rsync</application> must be used after &man.pax.1;
+ in order to correct the symbolic links in <filename
+ class="directory">pub/FreeBSD/<replaceable>snapshots</replaceable>ISO-IMAGES</filename>
+ which &man.pax.1; will replace with a hard link, increasing the
+ propagation time.</para>
+
+ <note>
+ <para>As with the staging steps, this requires
+ <literal>root</literal> level access, as this step must be
+ executed as the <literal>archive</literal> user.</para>
+ </note>
+
+ <para>As the <literal>archive</literal> user:</para>
+
+ <screen>&prompt.user; <userinput>cd /archive/tmp/<replaceable>snapshots</replaceable></userinput>
+&prompt.user; <userinput>pax -r -w -l . /archive/pub/FreeBSD/<replaceable>snapshots</replaceable></userinput>
+&prompt.user; <userinput>/usr/local/bin/rsync -avH /archive/tmp/<replaceable>snapshots</replaceable>/* /archive/pub/FreeBSD/<replaceable>snapshots</replaceable>/</userinput></screen>
+
+ <para>Replace <replaceable>snapshots</replaceable> with
+ <replaceable>releases</replaceable> as appropriate.</para>
</sect2>
</sect1>
More information about the svn-doc-user
mailing list