Skip to content
A re-implementation of the original ABBS utilities.
Branch: staging
Clone or download
Latest commit 7893704 May 13, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea Update entries in TODO Jan 2, 2017
acbs bump version May 13, 2019
docs docs: more details on checksums Oct 8, 2018
LICENSE update readme May 1, 2019 add download only option Jan 31, 2017
requirements.txt drop pycrypto support May 1, 2019


ACBS is still under heavy development, but is currently deployed for packaging for AOSC OS.

ACBS (AutoBuild CI Build System) is a re-implementation of the original ABBS (AutoBuild Build Service) in Python. The re-implementation aims to improve the horrible reliability and agility of its predecessor, adding with:

  • Multi-tree support (a "forest", so to speak).
  • Checksum verification support.
  • Cache cleaning and management support.
  • Logging support.
  • Proper dependency calculation (automatic build sequences, useful for bootstrapped bases).

Extra blings are also included:

  • Build timing utilities.
  • More detailed error messages.



  • Python 3 (>= 3.3): Running the program itself.
  • GNU File (libmagic): File type detection.
  • Util-Linux: File checksum verification.
  • LibArchive (bsdtar): Archive handling.
  • GNU Wget or Aria2: Source downloading.
  • Autobuild3: Package building.


  • psutil: Build timing, disk space detection, device health (temperature).
  • libmagic: Python module to detect file type.
  • libarchive-c: Python module to handle archives.
  • ptyprocess, pexpect: Build logging.


ACBS could be deployed in any appropriate directories, and is invoked by calling (you may create a symlink for your convenience). You would need to create a configuration file before using ACBS.

ACBS uses an INI-like configuration controlling trees to be used, the configuration file should be stored in /etc/acbs/forest.conf.

A bare-minimal example is shown below:

location = /usr/lib/acbs/repo

If you are feeling smart, variable substitutions are also acceptable:

base = /mnt

location = ${vars:base}/aosc-os-abbs

By default, ACBS builds packages from the tree defined in the [default] block.


usage: [-h] [-v] [-d] [-t ACBS_TREE] [-c] [-s]
                     [packages [packages ...]]

ACBS - AOSC CI Build System
Version: (README)
A small alternative system to port abbs to CI environment to prevent from
irregular bash failures

positional arguments:
  packages              Packages to be built

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Show the version and exit
  -d, --debug           Increase verbosity to ease debugging process
  -t ACBS_TREE, --tree ACBS_TREE
                        Specify which abbs-tree to use
  -c, --clear           Clear build directory
  -s, --system-log      Pass logs to system log collector
You can’t perform that action at this time.