Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Mar 2017 17:12:48 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-user@freebsd.org
Subject:   svn commit: r50104 - user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng
Message-ID:  <201703301712.v2UHCmIk076860@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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">&dollar;{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">&dollar;{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>&nbsp;</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>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703301712.v2UHCmIk076860>