From 394ff87e10988891689ec9558a714af56992f2bf Mon Sep 17 00:00:00 2001 From: Matthias Fulz Date: Thu, 1 Jul 2021 00:16:48 +0200 Subject: [PATCH] Add 'README.MD' Added readme --- README.MD | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 README.MD diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..8ab23b4 --- /dev/null +++ b/README.MD @@ -0,0 +1,87 @@ +## SYNOPSIS + +__archbuilder__ is a wrapper for makepkg which uses [buildah] (https://buildah.io/) containers +to run the working makepkg. +This will lead to a clean host system and reproduceble builds for the packages. + +__archbuilder__ works great together with [aurutils] (https://github.com/AladW/aurutils) to have +a great [Arch User Repository] (https://wiki.archlinux.org/index.php/Arch_User_Repository) toolset. + +## INSTALLATION + +Install the following packages: + +* [`archbuilder`](https://aur.archlinux.org/packages/archbuilder) + +and optional aurutils: +* [`aurutils`](https://aur.archlinux.org/packages/aurutils) + +## CONFIGURATION + +The base configuration file is located under /etc/archbuilder/archbuilder.env and includes the following settings: + +* ARCHBUILDER_BASE_DIR="${HOME}/.archbuilder" +> This is the base dir, which will used by archbuilder to store working files +* ARCHBUILDER_IMAGE_NAME="archbuilder" +> The name of the buildah image to be used for building packages +* ARCHBUILDER_CACHE_REPO="${ARCHBUILDER_BASE_DIR}/crepo" +> The cache repository for the containers. This repository will be used +> by the containers to fetch the builded packages as dependencies. +> Every builded package by archbuilder will be added to this repository +* ARCHBUILDER_LOG_PATH="${ARCHBUILDER_BASE_DIR}/logs" +> Log directory. This is used to store logfiles when ARCH_BUILDER_LOG_TO_FILE is set. +* ARCHBUILDER_LOG_TO_FILE=1 +> If logs should be written to files +* LOG_LEVEL_STDOUT="INFO" +> The log level to be used for stdout. Possible values are "DEBUG", "INFO", "WARNING", "SUCCESS", "ERROR" +* LOG_LEVEL_LOG="INFO" +> The log level to be used for logging to file. Possible values are "DEBUG", "INFO", "WARNING", "SUCCESS", "ERROR" + +## USAGE + +Basic usage will be just to run archbuilder inside a folder with a PKGBUILD file. +It will replace makepkg for the build process by using buildah. + + archbuilder + +If you want to pass flags of makepkg to archbuilder just hand them over after two dashes: + + archbuilder -- --syncdeps + +For a list of possible arguments just use the help flag: + + archbuilder --help + +## SETUP WITH AURUTILS + +Create a user or grant your user the permissions to run buildah via subuid and subgid for a more detailed documentation check the [wiki] (https://wiki.archlinux.org/title/Buildah): + + /etc/subuid + youruser:100000:65536 + + /etc/subgid + youruser:100000:65536 + +Create a repository, that is owned by this user for using [aurutils] (https://github.com/AladW/aurutils): + + mkdir /var/cache/pacman/myrepo + chown -R youruser: /var/cache/pacman/myrepo + sudo -u youruser repo-add /var/cache/pacman/myrepo/myrepo.db.tar.gz + + /etc/pacman.d/myrepo: + [myrepo] + SigLevel = Optional TrustAll + Server = file:///var/cache/pacman/myrepo + + /etc/pacman.conf + Include = /etc/pacman.d/myrepo + + pacman -Sy + +To use now archbuilder as building backend inside aurutils, just add the following to your shell: + + export MAKEPKG="/usr/bin/archbuilderwrap" + +This script will wrap everything correct to archbuilder and run the makepkg inside the buildah container. + +You can add custom parameters to the wrapper script by setting the variable ARCHBUILDER_FLAGS. \ No newline at end of file