%TOPICTITLE%
---

%TOC%

---+ Introduction

This page gives a brief overview of how to make an LTIB binary BSP release.
The specific example shown (for clarity) is for the mpc7448taiga, you
should make substitutions for your own new platform as appropriate.

If instead you just want to mark a release in cvs, but not make an iso image, 
you should skip the sections:

   * *Run a release cycle*
   * *Test your iso image*

Instead, the following actions should be taken:

   * Tag cvs with some meaninful name, for instance:
   <verbatim>$ cvs tag -c rel-mpc7448taiga-5-3-1-rc1</verbatim>

If this is a release that will be sent to external parties, cvs should be
branced as described below in the section

   * *Make a maintenance branch in CVS for this release* 


---+ Summary of strategy

   * Remove any development config options and non-default packages
   * Force re-build the image
   * Make sure your boots and runs normally on the target
   * Save your work
   * Run a release cycle
   * Test your iso (if you have made an binary release)
   * Make a maintenance branch in CVS
  

---+ Planning

---++ Mandatory requirements

   * Make sure you don't release (or put anything in the GPP) that is
   legally restricted.  Remember to check things like web pages for
   copyrights etc.

   * No files in the GPP should be overwritten.  If you want to modify a
   file, you need to rename it and change the reference to it.

   * Always do a --dry-run first when rsyncing to the GPP in Austin (make
   sure only the files you recognise are going to get copied there).


---++ Guidelines

These don't have to be followed, but I think are helpful.

    * The release tag name could be rel-mpc7448taiga-5-3-1-rc1
    The logic for this is as follows:
       * rel (for release)
       * mpc7448taiga (board name)
       * 5-3-1 (2005, Q3, 1st release in this quarter)
       * rc1 (release candidate 1, you may need some iterations)

   * You should branch CVS after a new release, this will help with
   maintenance.  Only stabilisation of the release should be done on the
   branch.  In this example, the branch name would be: branch-mpc7448taiga-5-3-1


---+ Execution details

---++ Remove any development config options and non-default packages

   * Configure LTIB to the default state you want to adopt for the release.
   Make sure you turn of any  development configuration options (such as
   CONFIG_PKG_KERNEL_WANT_CF)

<verbatim>
./ltib -m config
</verbatim>


---++ Force re-build the image

   * Make sure you force re-build at least all packages that are
   turned on by the default configuration.

<verbatim>
./ltib -f
</verbatim>

---++ Make sure your image boots and runs normally on the target

Before you even contemplate making a BSP as a release, you should be
boot the image on board  and run without any problems.


---++ Save your work

---+++ Save your config files

You need to save any updated or new configuration files so that they
will get captured in CVS.  Here is an example:

<verbatim>
cp config/platform/mpc7448taiga/.config config/platform/mpc7448taiga/defconfig
cp config/platform/mpc7448taiga/linux_2.6.11_mpc7448_taiga_def.config.dev config/platform/mpc7448taiga/linux_2.6.11_mpc7448_taiga_def.config
</verbatim>


---+++ Check-in additions and changes to CVS

Assuming you have a read/write cvs account for ltib, in this example
we would do the following:

<verbatim>
cd ~/ltib
cvs add config/platform/mpc7448taiga
cvs add config/platform/mpc7448taiga/*
cvs add dist/lfs-5.1/u-boot/u-boot-fsl-mpc7448.spec
cvs add dist/lfs-5.1/kernel/kernel-2.6.11-mpc7448.spec
cvs commit
</verbatim>


---+++ Update the PPP

You now need to upload your sources/patches to the PPP.  To do this
point your browser at:
 http://auslxpb02.mtwk.freescale.net/ltib-cgi/ppp_upload.cgi

And upload each file not already in the PPP/GPP.

---++ Run a release cycle

LTIB supports making a binary iso release.  The default action of
running this is:

   * LTIB source is checked to make sure it is in sync with CVS
   * CVS is tagged with the release name (a default with timestamp is provided)
   * config files are checked to make sure they are saved
   * The LTIB sources are copied to a staging area
   * All referenced sources in the GPP are copied to the staging area
   * A RELEASE_INFO file is created and put in the staging area
   * An iso image of the staging area is made.
  
Here is an example:

<verbatim>
./ltib -m release
Please enter the cvs tag name for this release, or
if you just type enter, the timestamp rel-mpc7448taiga-1122556078 will be used

rel-mpc7448taiga-5-3-1-rc1
</verbatim>
  
The above command created the iso image "ltib-mpc7448taiga-20050728.iso"


---++ Test your iso image

You should copy your iso image to another machine and mount it and test it:

   * as root:
<verbatim>
mount ltib-mpc7448taiga-20050728.iso /mnt/cdrom -o loop
</verbatim>

   * as a normal user
<verbatim>
/mnt/cdrom/install
</verbatim>

By default, LTIB will get install in the dirctory 'ltib' in the current
working directory.

   * as a normal user, build and install
<verbatim>
cd ltib
./ltib
</verbatim>


---++ Make a maintenance branch in CVS for this release

If the test of the iso image was okay, you should now make a
branch in CVS.  All further minor releases should be
made on this branch.  The branch name should be the same as
the release tag name with 'rel' replaced with 'branch', the
'rc1' should also be dropped.  Here is a continuation of our example:

<verbatim>
cvs rtag -b -r rel-mpc7448taiga-5-3-1-rc1 branch-mpc7448taiga-5-3-1 ltib
</verbatim>

This say make a branch rooted at the tag 'rel-mpc7448taiga-5-3-1-rc1',
the name of the branch is 'branch-mpc7448taiga-5-3-1'.

---+++ Update your working copy of LTIB for this board to use the branch

If want to work further on maintenance updates to this release, you
need to use this branch.  To do this, updated your working copy
to use the head of this branch:

<verbatim>
cvs up -r branch-mpc7448taiga-5-3-1
</verbatim>


----

-- Main.StuartHughes - %SERVERTIME%
