Getting Started

Build Dependencies

Debian/Ubuntu

.deb tools:

apt install make debhelper reprepro cowbuilder wget

.rpm tools (requires configuration):

# Configure repository
. /etc/os-release
ARCH=$(dpkg --print-architecture)
# GPG Key
wget -qO - https://kakwa.github.io/debian-rpm-build-tools/GPG-KEY.pub | \
  gpg --dearmor | tee /etc/apt/trusted.gpg.d/debian-rpm-build-tools.gpg >/dev/null
# Repository
echo "deb [arch=${ARCH}] \
https://kakwa.github.io/debian-rpm-build-tools/deb.${VERSION_CODENAME}.${ARCH}/ \
${VERSION_CODENAME} main" | \
  tee /etc/apt/sources.list.d/debian-rpm-build-tools.list
# Update
apt update
# Install packages
apt install mock createrepo-c rpm dnf gnupg2

RHEL/Rocky/Fedora

.rpm tools:

dnf install make rpm-sign expect rpm-build createrepo mock wget

.deb tools:

dnf install pbuilder apt dpkg debian-keyring ubu-keyring reprepro

Cross-Architecture Builds

Debian/Ubuntu:

# Adapt with the CPU architectures you are targetting
apt install binfmt-support qemu-utils qemu-user-static \
    qemu-system-arm qemu-system-misc qemu-system-ppc qemu-system-s390x

RHEL/Rocky/Fedora:

# customize with your archs
dnf install qemu-user-binfmt qemu-system-riscv qemu-system-aarch64

Repository Initialization

Create git repository (most likely on Github) and checkout it:

# Clone and cd in your repository
export REPO_URL=<your git url>
git clone ${REPO_URL}
cd $(basename ${REPO_URL} | sed 's/\.git$//')

Recover Pakste:

# Download Pakste
wget -qO- https://github.com/kakwa/pakste/archive/refs/heads/main.tar.gz | \
    tar --strip-components=1 -xz

Optionally, create README.md:

# Set with your org/user and repo name
export GH_ORG=<your gh org/user>
export GH_REPO=<your gh repo name>

# Copy configuration example
cp common/README.md.ex README.md

# Customize for your repo
sed -i "s/@ORG@/${GH_ORG}/g" README.md
sed -i "s/@REPO@/${GH_REPO}/g" README.md

# Tweak it if necessary
vim README.md

Commit:

# Commit
git add ./
git commit -a -m 'init'
git push origin main

Warning

Don’t customize the following files & directory:

  • common/

  • .github/workflows/build-test.yml

  • .github/workflows/repos.yml

  • .github/workflows/vulncheck.yml

  • .github/workflows/docs.yml

  • Makefile

  • README.rst

These resources are overwritten during Pakste updates.