Skip to content
/ pakste Public

Pakste: deb/rpm packaging & repo publishing toolkit leveraging Github Actions & Github Pages

Notifications You must be signed in to change notification settings

kakwa/pakste

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pakste

Documentation Tests

Logo

.deb/.rpm packaging & repository publishing toolkit leveraging Github Actions & Github Pages.


Documentation Pakste Manual
Repository Pakste on GitHub
Author kakwalab © 2025
License MIT

Presentation

Pakste is a toolkit for developers packaging software for Debian and Red Hat-based distributions. It provides reasonably consistent and reproducible package builds across different distribution & version, without the hassle of setting up and maintaining build servers.

Key features:

  • Wrapper & integration between .rpm and .deb build & repo management tools, providing easier to remember commands like make rpm_repo or make deb_repo.
  • Helpers to easily package upstream repositories with a good level reproducibility.
  • Multi-Distribution & CPU Architecture targeting thanks to mock/pbuilder & binfmt respectively.
  • Build dependencies consistency, again, thanks to mock/pbuilder and their disposable build containers.
  • Github Action Workflow for automated builds and publication via Github Pages (easily customizable for other destinations).

Example projects:

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

Building Packages

Initialize and configure a new package:

./common/init_pkg.sh -n foo
cd foo/

Setup source recovery & metadata:

vim Makefile
make manifest

Package setup:

# .deb packaging
vim debian/rules debian/control

# .rpm packaging
vim rpm/component.spec

Build packages in clean, isolated chroot environments:

# deb
make deb_chroot DIST=trixie # ARCH=arm64

# rpm
make rpm_chroot DIST=el9 # ARCH=aarch64

About

Pakste: deb/rpm packaging & repo publishing toolkit leveraging Github Actions & Github Pages

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published