Usage demo • Installation • Tips • Usage • Build Status • Contributing • License
rpmbuilder is RPM package build helper.
rpmbuilder.mp4
sudo dnf install -y https://pkgs.kaos.st/kaos-repo-latest.el$(grep 'CPE_NAME' /etc/os-release | tr -d '"' | cut -d':' -f5).noarch.rpm
sudo dnf install rpmbuilderBuild node:
sudo dnf install -y https://pkgs.kaos.st/kaos-repo-latest.el$(grep 'CPE_NAME' /etc/os-release | tr -d '"' | cut -d':' -f5).noarch.rpm
sudo dnf install rpmbuilder-nodegit clone https://kaos.sh/rpmbuilder.git
cd rpmbuilder
sudo make installWe provide a big variety of Docker images available on GitHub Container Registry and Docker Hub.
Official images
Basic images:
ghcr.io/essentialkaos/rpmbuilder:ol8(OracleLinux 8)ghcr.io/essentialkaos/rpmbuilder:ol9(OracleLinux 9)ghcr.io/essentialkaos/rpmbuilder:ol10(OracleLinux 10)essentialkaos/rpmbuilder:ol8(OracleLinux 8)essentialkaos/rpmbuilder:ol9(OracleLinux 9)essentialkaos/rpmbuilder:ol10(OracleLinux 10)
Build node images:
ghcr.io/essentialkaos/rpmbuilder:node-ol8(OracleLinux 8 | Port:2008)ghcr.io/essentialkaos/rpmbuilder:node-ol9(OracleLinux 9 | Port:2009)ghcr.io/essentialkaos/rpmbuilder:node-ol10(OracleLinux 9 | Port:2010)essentialkaos/rpmbuilder:node-ol8(OracleLinux 8 | Port:2008)essentialkaos/rpmbuilder:node-ol9(OracleLinux 9 | Port:2009)essentialkaos/rpmbuilder:node-ol10(OracleLinux 9 | Port:2010)
Package build using base image:
# Download and install rpmbuilder-docker script
curl -fL# -o rpmbuilder-docker https://kaos.sh/rpmbuilder/rpmbuilder-docker
chmod +x rpmbuilder-docker
sudo mv rpmbuilder-docker /usr/bin/
# Pull rpmbuilder image based on OracleLinux 9
docker pull ghcr.io/essentialkaos/rpmbuilder:ol9
export IMAGE=ghcr.io/essentialkaos/rpmbuilder:ol9
# Build package locally
cd my-package-dir
rpmbuilder-docker my-package.spec
# Build package using build nodes
rpmbuilder-docker my-package.spec -r buildnode-ol7.acme.corp:2022 -r buildnode-ol8.acme.corp:2022 -k $(base64 -w0 ~/.ssh/buildnode)Package build using build node image:
docker pull ghcr.io/essentialkaos/rpmbuilder:node-ol9
docker run -e PUB_KEY="$(cat ~/.ssh/buildnode.pub)" -p 2009:2009 -d ghcr.io/essentialkaos/rpmbuilder:node-ol9
cd my-package-dir
# Using local version of rpmbuilder (if you are use RHEL, Alma, Rocky, CentOS…)
rpmbuilder my-package.spec -r builder@localhost:2009 -k ~/.ssh/buildnode
# With docker helper script (any Linux distro or macOS)
rpmbuilder-docker my-package.spec -r builder@localhost:2009 -k $(base64 -w0 ~/.ssh/buildnode)You can bootstrap your own build farm using Docker and rpmbuilder-farm script:
curl -fL# -o rpmbuilder-farm https://kaos.sh/rpmbuilder/rpmbuilder-farm
chmod +x rpmbuilder-farm
sudo mv rpmbuilder-farm /usr/bin/
# Install farm script
sudo rpmbuilder-farm install
# Create user bob and add public key
sudo farm add-user bob
# Start all containers for user bob
sudo farm start bob- You could define rpmbuilder options inside your specs (example). It very helpful for determining information about external sources.
- If you have a big bunch of default options, you can define them in the preferences file. More info.
- Since version 2.5.0 rpmbuilder provides automatic checksum generation feature. More info.
| Branch | Status |
|---|---|
master |
|
develop |
Before contributing to this project please read our Contributing Guidelines.