Chapter 2. Creating a package

Table of Contents

Choosing a root name
The specfile format
A quick example
Meta
Description
BuildPrepare
BuildUnprepare
Imports
Prepare
Uninstall
Scripting Variables
Common Variables
Build Variables
Install Variables
Using the makeinstaller program
Sealed packages

Constructing an autopackage is fairly straightforward, and uses a system similar to RPM, namely the use of a specfile. This file contains most of the information needed for building the package file. The other pieces of information are pulled from skeleton files as needed.

Note

Use makeinstaller --mkspec >whatever.apspec.in as a fast way to generate a template specfile that can be customized for your own packages.

Choosing a root name

Typically, choosing a root name will be one of the first things done while building a package. The path chosen should be controlled by the maintainer of the software , even if they aren't involved in the construction of the package (though really they should be). The path doesn't even have to exist in real life, autopackage will not attempt to resolve the path given in the root name, it's there purely for namespacing reasons.

A root name should consist of an @ symbol, then a valid URI path (without the protocol) part controlled by the maintainer of the software: they should have write access to whatever server it points to, for instance. It should not be related to whoever is packaging it - always notify the maintainer of what root name was selected.

A root name must have at least one path element. The root name can not just be a DNS address on its own, for instance "@myproject.org/myproject" is valid, but "@myproject.org" is not.

Examples are: "@purity.sourceforge.net/purity", "@webspace.myisp.com/~myname/random/software/xfoo", and so on.