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">${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>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703301712.v2UHCmIk076860>