Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/AOSC-Dev/acbs

A Package Tree Management Utility
https://github.com/AOSC-Dev/acbs

autobuild

Last synced: 11 days ago
JSON representation

A Package Tree Management Utility

Awesome Lists containing this project

README

        

ACBS
====

**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.

Dependencies
------------

Mandatory:
- Python 3 (>= 3.6): 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.
- [Autobuild4](https://github.com/AOSC-Dev/autobuild4): Package building.

Optional:
- libmagic: Python module to detect file type.
- libapt-pkg: Query package information.
- libarchive-c: Python module to handle archives.
- pycrypto: Python module to verify file checksums.
- ptyprocess, pexpect: Build logging.

Deployment
----------

ACBS could be deployed in any appropriate directories, and is invoked by calling
`acbs-build.py` (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:

```
[default]
location = /usr/lib/acbs/repo
```

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

```
[vars]
base = /mnt

[default]
location = ${vars:base}/aosc-os-abbs
```

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

Usage
-----

```
usage: acbs-build [-h] [-v] [-d] [-t ACBS_TREE] [-q ACBS_QUERY] [-w] [-c] [-k] [-g] [-r STATE_FILE] [packages [packages ...]]

ACBS - AOSC CI Build System
Version: 20210227
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
-q ACBS_QUERY, --query ACBS_QUERY
Do a simple ACBS query
-w, --write Write spec changes back (Need to be specified with -g)
-c, --clear Clear build directory
-k, --skip-deps Skip dependency resolution
-g, --get Only download source packages without building
-r STATE_FILE, --resume STATE_FILE
Resume a previous build attempt
```