Autobuilder Development and Packaging


(Difference between revisions)
Jump to: navigation, search
m (Remove old bit of text)

Revision as of 18:11, 3 December 2009

Most information on autobuilder development is listed on the GCCSDK Development page. A few autobuilder specifics are detailed here.


Anatomy of an autobuilder package

To start, download a copy of the Autobuilder from SVN and look in the directory cli/tar. The heart of an autobuilder package is a file called 'setvars'. tar's has:

ab_package() {
  cp $S/src/tar$AB_EXEEXT $S/COPYING $D

Normally the autobuilder will make a best guess at how to build a package, so all that's needed are to specify in those areas it gets it wrong. The main work is done by the fetch* and build* collections of scripts in the top level of the autobuilder tree. As well as setting various key variables and providing some functions, the setvars script is run just before any configuration script so you can use it to fix up anything that the automatic steps missed.

setvars variables

If no URL is given the autobuilder will try to fetch the package of the same name from Debian's 'unstable' repository. Here we don't want that, so we explicitly give a URL in AB_URL of where the sources can be found. This can be a .tar.gz, a .tar.bz2 or a .zip file. Alternatively you can specify a CVS or SVN repository. For example, browser/firefox2/setvars has:

while audio/tremor/setvars has:


AB_CATEGORY is the category the package will be placed in on the website.

setvars functions

When producing a Zip package, the ab_package shell function is called to choose which files are to be placed in the zipfile. It should copy files from $S, the build directory, to $D, a destination directory ready for zipping.

Other files

Files ending .p are patches which the autobuilder will apply to the downloaded source tree. For this to work the file naming in the first two lines of the patch file must be correct - ensure you just have a relative path starting at the top level of the unpacked source tree.

Packages may depend on other packages. Normally this uses the Debian dependency information, but you may specify packages manually using a 'depends' file. This just has a list of package names - for an example see browser/firefox2/depends

More information

For further information about the autobuilder, see the Autobuilder.html and Packaging.html files within the autobuilder source tree. See Autobuilder.html and Packaging.html in source form with HTML codes.

Personal tools