Update Build article

Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
Tom Eastep 2015-06-29 12:43:04 -07:00
parent 7153146759
commit 6bd1141a8c

View File

@ -53,8 +53,10 @@
required to produce a directory that is suitable for the required to produce a directory that is suitable for the
<command>install.sh</command> script to run in.</para> <command>install.sh</command> script to run in.</para>
<para>My local git repositories are:</para>
<section> <section>
<title>trunk</title> <title>trunk (clone of Code)</title>
<para>The development branch of each product is kept here.</para> <para>The development branch of each product is kept here.</para>
@ -97,14 +99,14 @@
</section> </section>
<section> <section>
<title>tools</title> <title>tools (Clone of Tools)</title>
<para>This is where the release and build tools are kept. There are two <para>This is where the release and build tools are kept. There are two
subordinate directories:</para> subordinate directories:</para>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term>trunk/tools/build</term> <term>tools/build</term>
<listitem> <listitem>
<para>Tools for building and uploading new releases.</para> <para>Tools for building and uploading new releases.</para>
@ -112,7 +114,7 @@
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>trunk/tools/web</term> <term>tools/web</term>
<listitem> <listitem>
<para>Tools for publishing web content</para> <para>Tools for publishing web content</para>
@ -122,14 +124,14 @@
</section> </section>
<section> <section>
<title>web</title> <title>web (Clone of Web)</title>
<para>The files from the web site that are maintained in HTML format. <para>The files from the web site that are maintained in HTML format.
are kept in this directory.</para> are kept in this directory.</para>
</section> </section>
<section> <section>
<title>release</title> <title>release (Clone of Release)</title>
<para>Added in Shorewall 4.4.22, this directory contains the files that <para>Added in Shorewall 4.4.22, this directory contains the files that
contain release-dependent information (change.txt, releasenotes.txt, contain release-dependent information (change.txt, releasenotes.txt,
@ -142,7 +144,7 @@
<title>Build Tools</title> <title>Build Tools</title>
<para>As described above, the build tools are kept in <filename <para>As described above, the build tools are kept in <filename
class="directory">trunk/tools/build.</filename> They are described in the class="directory">tools/build.</filename> They are described in the
following sections.</para> following sections.</para>
<section> <section>
@ -161,247 +163,6 @@
version or a patch version.</para> version or a patch version.</para>
</section> </section>
<section>
<title>build</title>
<para>This is the script that builds Shorewall 4.6 packages from
Git.</para>
<para>The script copies content from Git using the <command>git
archive</command> command. It then uses that content to build the
packages. In addition to the usual Gnu utilities, the following software
is required:</para>
<variablelist>
<varlistentry>
<term>rpmbuild</term>
<listitem>
<para>Required to build the RPM packages.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>xsltproc (libxslt)</term>
<listitem>
<para>Required to convert the XML documents to other
formats.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Docbook XSL Stylesheets</term>
<listitem>
<para>Required to convert the XML documents to other
formats.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Perl</term>
<listitem>
<para>Required to massage some of the config files.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>xmlto</term>
<listitem>
<para>Required to convert the XML manpages to manpages. Be sure
that you have a recent version; I use 0.0.23.</para>
</listitem>
</varlistentry>
</variablelist>
<para>You should ensure that you have the latest scripts. The scripts
change periodically as we move through the release cycles.</para>
<para>The build46 script may need to be modified to fit your particular
environment. There are a number of variables that are set near the top
of the file:</para>
<variablelist>
<varlistentry>
<term>STYLESHEET</term>
<listitem>
<para>Must point to the XHTML docbook.xsl stylesheet from your
Docbook XSL Stylesheets installation.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>LOGDIR</term>
<listitem>
<para>Directory where you want the build log placed. Defaults to
the current working directory.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>RPMDIR</term>
<listitem>
<para>Points to your RPM directory .</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DIR</term>
<listitem>
<para>Directory where you want the release to be built. Defaults
to the current working directory.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>GIT</term>
<listitem>
<para>Shorewall GIT repository.</para>
</listitem>
</varlistentry>
</variablelist>
<para>The scripts assume that there will be a separate <firstterm>build
directory</firstterm> per major release.</para>
<para>To build a release, you cd to the appropriate directory and run
the build46 script.</para>
<para>The general form of the build46 command is:</para>
<blockquote>
<para><command>build</command> [ -<replaceable>options</replaceable> ]
<replaceable>release</replaceable> [ <replaceable>prior
release</replaceable> ]</para>
</blockquote>
<para>where</para>
<variablelist>
<varlistentry>
<term>opt<emphasis>i</emphasis>ons</term>
<listitem>
<para>are one or more of the following. If no options are given
then all options are assumed</para>
<variablelist>
<varlistentry>
<term>t</term>
<listitem>
<para>build tar files</para>
</listitem>
</varlistentry>
<varlistentry>
<term>r</term>
<listitem>
<para>build RPMs</para>
</listitem>
</varlistentry>
<varlistentry>
<term>c</term>
<listitem>
<para>Build the shorewall package.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>i</term>
<listitem>
<para>Build the shorewall-init package.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>l</term>
<listitem>
<para>Build the shorewall-lite package.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>6</term>
<listitem>
<para>Build the shorewall6 package.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>L</term>
<listitem>
<para>Build the shorewall6-lite package.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>h</term>
<listitem>
<para>Build the html document package.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>x</term>
<listitem>
<para>Build the xml document package.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>release</emphasis></term>
<listitem>
<para>The release version to build. Must match the version in the
associated Git path.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>prior release</emphasis></term>
<listitem>
<para>The release to be used to generate patch files.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Example 1 - Build Shorewall 4.4.7 and generate patches against
4.4.6:</para>
<blockquote>
<para><command>build 4.4.7 4.4.6</command></para>
</blockquote>
<para>Example 2 - Build Shorewall 4.2.7.1 Shorewall and generate patches
against 4.4.7:</para>
<blockquote>
<para><command>build -trc 4.4.7.1 4.4.7</command></para>
</blockquote>
</section>
<section> <section>
<title>build45 and build46</title> <title>build45 and build46</title>
@ -655,7 +416,7 @@
<section> <section>
<title>upload</title> <title>upload</title>
<para>This script is used to upload a release to www1.shorewall.net. The <para>This script is used to upload a release to www.shorewall.org. The
command is run in the build directory for the minor release of the command is run in the build directory for the minor release of the
product.</para> product.</para>
@ -742,7 +503,7 @@
<para><command>upload 4.3.7</command></para> <para><command>upload 4.3.7</command></para>
</blockquote> </blockquote>
<para>Example 2 - Upload shorewall-4.3.7.3:</para> <para>Example 2 - Upload shorewall-core-4.3.7.3:</para>
<blockquote> <blockquote>
<para><command>upload -c 4.3.7.3</command></para> <para><command>upload -c 4.3.7.3</command></para>