docs/139681: [PATCH] new article on creating an internal FreeBSD Update Server
Jason Helfman
jhelfman at e-e.com
Tue Oct 27 18:00:12 UTC 2009
The following reply was made to PR docs/139681; it has been noted by GNATS.
From: Jason Helfman <jhelfman at e-e.com>
To: bug-followup at FreeBSD.org, jhelfman at e-e.com
Cc:
Subject: Re: docs/139681: [PATCH] new article on creating an internal FreeBSD
Update Server
Date: Tue, 27 Oct 2009 10:52:04 -0700
This is a multi-part message in MIME format.
--------------010304060904030105050400
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Spelling errrors.
--------------010304060904030105050400
Content-Type: text/plain;
name="patch3.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="patch3.txt"
*** article.sgml Tue Oct 27 10:41:08 2009
--- article.sgml.orig Tue Oct 27 10:43:28 2009
***************
*** 98,114 ****
<itemizedlist>
<listitem>
<para>FTP</para>
! <para>This is where the function <filename>fetchiso()</filename> found in <filename>scripts/build.subr</filename> will contact the configured source for downloading the &os; iso. This can be configured to be an http address, as well. For my purposes, I have put the ISO's on the same server as my internal http server where I will be serving updates from, and have configured the software to look in that location. With this setup, I have altered the function to fetch the iso. By copying the source < filename>build.subr</filename> to <filename>scripts/_RELEASE_/_ARCHITECHTURE_/build.subr</filename> this file will be sourced instead of the released source for <filename>build.subr</filename>.</para>
</listitem>
<listitem>
<para>BUILDHOSTNAME</para>
! <para>This is the name of the host you are building the software on, and coincidently, the name of the where the kernel will be built and displayed as a part of running:</para>
<screen>&prompt.user; <userinput>uname -v</userinput></screen>
</listitem>
<listitem>
--- 98,114 ----
<itemizedlist>
<listitem>
<para>FTP</para>
! <para>This is where the function <filename>fetchiso()</filename> found in <filename>scripts/build.subr</filename> will contact the configured source for downloading the &os; iso. This can be configured to be an http address, as well. For my purposes, I have put the ISO's on the same server as my internal http server where I will be serving updates from, and have configured the software to look in that location. With this setup, I have altered the function to fetch the iso. By copying the source < filename>build.subr</filename> to <filename>scripts/_RELEASE_/_ARCHITECTURE_/build.subr</filename> this file will be sourced instead of the released source for <filename>build.subr</filename>.</para>
</listitem>
<listitem>
<para>BUILDHOSTNAME</para>
! <para>This is the name of the host you are building the software on, and coincidentally, the name of the where the kernel will be built and displayed as a part of running:</para>
<screen>&prompt.user; <userinput>uname -v</userinput></screen>
</listitem>
<listitem>
***************
*** 195,205 ****
<para>At this point, we are ready to stage a build.</para>
<informalexample>
<screen>&prompt.user; <userinput>cd ~/freebsd-update-server;sudo sh scripts/init.sh <replaceable>amd64 RELEASE-7.2</replaceable></userinput></screen>
</informalexample>
! <para>For referrence, here are the results of the <ulink url="init.log"><filename>init.sh</filename></ulink> run.</para>
<para>At the end of the run, you will need to approve the build.</para>
<screen>
FreeBSD/amd64 7.2-RELEASE initialization build complete. Please
--- 195,205 ----
<para>At this point, we are ready to stage a build.</para>
<informalexample>
<screen>&prompt.user; <userinput>cd ~/freebsd-update-server;sudo sh scripts/init.sh <replaceable>amd64 RELEASE-7.2</replaceable></userinput></screen>
</informalexample>
! <para>For reference, here are the results of the <ulink url="init.log"><filename>init.sh</filename></ulink> run.</para>
<para>At the end of the run, you will need to approve the build.</para>
<screen>
FreeBSD/amd64 7.2-RELEASE initialization build complete. Please
***************
*** 267,277 ****
<para>At this point, we are ready to stage a <emphasis>diff</emphasis> build. You need to have run <filename>scripts/init.sh</filename> prior to running any diff.</para>
<informalexample>
<screen>&prompt.user; <userinput>cd ~/freebsd-update-server;sudo sh scripts/diff.sh <replaceable>amd64 RELEASE-7.1 7</replaceable></userinput></screen>
</informalexample>
! <para>For referrence, here are the results of the <ulink url="diff.log"><filename>diff.sh</filename></ulink> run.</para>
<para>Again, at the end of the run, you will need to approve the build.</para>
<screen>
[jhelfman at server ]$ sudo sh -e scripts/approve.sh amd64 7.1-RELEASE
--- 267,277 ----
<para>At this point, we are ready to stage a <emphasis>diff</emphasis> build. You need to have run <filename>scripts/init.sh</filename> prior to running any diff.</para>
<informalexample>
<screen>&prompt.user; <userinput>cd ~/freebsd-update-server;sudo sh scripts/diff.sh <replaceable>amd64 RELEASE-7.1 7</replaceable></userinput></screen>
</informalexample>
! <para>For reference, here are the results of the <ulink url="diff.log"><filename>diff.sh</filename></ulink> run.</para>
<para>Again, at the end of the run, you will need to approve the build.</para>
<screen>
[jhelfman at server ]$ sudo sh -e scripts/approve.sh amd64 7.1-RELEASE
***************
*** 297,307 ****
<sect1 id="tips">
<title>Tips</title>
<itemizedlist>
<listitem>
! <para>If you build your own release using the native <command>make release</command>, freebsd-update-server code will work on your release, as well as patches. As an example I have tried this, building a release without ports or documentation, and removed the functionality pretaining to documentation in <filename>scripts/build.subr</filename> and placing it under the release directory structure.</para>
</listitem>
<listitem>
<para>Add <command>make -j <replaceable>NUMBER</replaceable> </command> to <filename>scripts/build.subr</filename> to speed up your processing. I have found that adding flags to anything other than <command>make buildworld</command> and <command>make obj</command> can be unreliable.</para>
</listitem>
--- 297,307 ----
<sect1 id="tips">
<title>Tips</title>
<itemizedlist>
<listitem>
! <para>If you build your own release using the native <command>make release</command>, freebsd-update-server code will work on your release, as well as patches. As an example I have tried this, building a release without ports or documentation, and removed the functionality pertaining to documentation in <filename>scripts/build.subr</filename> and placing it under the release directory structure.</para>
</listitem>
<listitem>
<para>Add <command>make -j <replaceable>NUMBER</replaceable> </command> to <filename>scripts/build.subr</filename> to speed up your processing. I have found that adding flags to anything other than <command>make buildworld</command> and <command>make obj</command> can be unreliable.</para>
</listitem>
--------------010304060904030105050400--
More information about the freebsd-doc
mailing list