The main purpose of APBS is providing a semi-automatic tool for
creating of high quality packages for more distributions.

APBS consists from two parts:

Abstract Package Build Description: This is an extensible XML based
description, which can be used to specify build description for more
distributions and version in a single file. Currently supported are RPM
and Deb files.

Abstract Package Build Tool: This is a tool, which helps users to
create packages. The tool uses Abstract Package Build Description as an
intermediate format.

APBT acts as a container engine for miscellaneous actions (packaging
steps or guesses - its "artificial intelligence") needed for creating
the package. APBT selects proper actions and calls them in the proper
order.

Depending on a source contents, these actions perform needed packaging
steps with optional user input. It tries to guess best solution for
particular package. For user it acts like a wizard-style application,
for the packaging it acts like a engine with sequential execution of
required steps. User can modify any packaging step by hand.

APBT is easily extensible. It allow you to add new rules for package
description and create new types of packages.

It is written in Ruby and in future the user interaction frontend can be
integrated with the OpenSuSE Build System.


Current implementation supports autoconf based packages and perl
packages.

The tree is now open for the future development. Feel free to join.
The tool is available at http://en.opensuse.org/Abstract_Package_Build_Description

TODOs:
- Currently it has only basic support for scriptlets. It should be
improved in future. (This part of packaging is strictly distribution
dependent.)
- Support guesses for BuildRequires. Some simple ideas exists (e. g.
analyze configure.in to check for some dependencies), but complex
solution is far above the Google SoC project.
- Support more types of packages and more rules.
- Automatic error handling ability
- Features to help ISVs who want to ship their windows package with wine(may be a plugin, making use of the extensibility that is available)
- Checkpoints
- Support tools for file list modification (e. g. %find_lang).

Thanks to my GSOC mentor Stanislav Brabec for guiding me at each step.

--
N. Rajagopal,
Visit me at http://www.rajagopal.tk