Skip to content

eth-pkg/pkg-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

404 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pkg-builder

Tests

A tool to create reproducible builds for Debian-based systems (Ubuntu Jammy, Noble, and Debian 12) using a TOML configuration file.

Overview

pkg-builder uses debcrafter to generate Debian packages from a TOML config, simplifying reproducible packaging for developers.

Key Features

  • TOML-based configuration
  • Package types: default (tarballs), Git-based, virtual
  • Build support: C/C++, Rust, Go, Python, TypeScript/JavaScript, Java, .NET, Nim
  • Testing: piuparts (install/remove), autopkgtest (functionality), lintian (quality)
  • Package verification with hashes
  • Flexible build environments
  • Reproducible builds for Ubuntu Jammy, Noble, and Debian 12

Quick Start

Prerequisites (Debian/Ubuntu)

sudo apt install libssl-dev pkg-config quilt debhelper tar wget autopkgtest vmdb2 qemu-system-x86 git-lfs uidmap
sudo sbuild-adduser `whoami`

See installation docs for sbuild setup.

Basic Usage

# Install pkg-builder
cargo install --path .

# Create environment and build package
pkg-builder env create path/to/pkg-builder.toml
pkg-builder package path/to/pkg-builder.toml

If no config file path is provided, pkg-builder.toml in the current directory is used.

Commands

pkg-builder package path/to/pkg-builder.toml  # Build package
pkg-builder env create path/to/pkg-builder.toml  # Create build environment
pkg-builder env clean path/to/pkg-builder.toml  # Clean build environment
pkg-builder piuparts path/to/pkg-builder.toml  # Run piuparts tests
pkg-builder autopkgtests path/to/pkg-builder.toml  # Run autopkgtests
pkg-builder lintian path/to/pkg-builder.toml  # Run lintian checks
pkg-builder verify path/to/pkg-builder.toml  # Verify package hashes
pkg-builder version  # Show version

If no config file path is provided, pkg-builder.toml in the current directory is used.

Testing

pkg-builder piuparts path/to/pkg-builder.toml  # Run piuparts tests
pkg-builder autopkgtests path/to/pkg-builder.toml  # Run autopkgtests
pkg-builder lintian path/to/pkg-builder.toml  # Run lintian checks
pkg-builder verify path/to/pkg-builder.toml  # Verify package hashes

If no config file path is provided, pkg-builder.toml in the current directory is used.

Examples

See examples documentation for sample configs:

  • Virtual packages, Rust, TypeScript/JavaScript, Nim, .NET, Java, Python, Go

Documentation

License

Apache License, Version 2.0. See LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published