Skip to content

majewsky/art

Repository files navigation

ART - the Arch Repository building Tool

This is ART. Please do not throw it away. :)

ART builds a package repository for Arch Linux. It ties together the standard tools (makepkg, repo-add and repo-remove) into a workflow that is quicker and more robust than when you just glue these tools together with Makefiles or shell scripts.

Installation

$ make && make install

Usage

Invoke as art, without any arguments. ART expects a configuration file ./art.toml in the current working directory, like this one:

[[source]]
path = "/path/to/source/directory"

[[source]]
path = "/path/to/another/directory"

[target]
path = "/path/to/output"
name = "my-packages"

For each source in this configuration file, the following globs will be expanded to find packages to build:

  • $SOURCE_PATH/*/PKGBUILD will be built with makepkg(8).
  • $SOURCE_PATH/*.PKGBUILD will be built with makepkg(8) -p.
  • $SOURCE_PATH/*.pkg.toml will be built with holo-build(8).

Note that directories will not be traversed any deeper than that. For example, any PKGBUILD file must be in a direct subdirectory of the source path specified in the configuration file.

The packages thus produced will be stored in the target.path. The target.name defines the file name of the repository metadata archive. In the example above, it will be at /path/to/output/my-packages.db.tar.xz, so Pacman would find it with the following configuration snippet:

[my-packages]
Server = file:///path/to/output

ART keeps a cache file (.art-cache) in its current working directory to speed up incremental rebuilds.