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 rpmbuilder
Build 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-node
git clone https://kaos.sh/rpmbuilder.git
cd rpmbuilder
sudo make install
We 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)essentialkaos/rpmbuilder:ol8
(OracleLinux 8)essentialkaos/rpmbuilder:ol9
(OracleLinux 9)
Build node images:
ghcr.io/essentialkaos/rpmbuilder:node-ol8
(OracleLinux 8 | Port:2038
)ghcr.io/essentialkaos/rpmbuilder:node-ol9
(OracleLinux 9 | Port:2039
)essentialkaos/rpmbuilder:node-ol8
(OracleLinux 8 | Port:2038
)essentialkaos/rpmbuilder:node-ol9
(OracleLinux 9 | Port:2039
)
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 8
docker pull ghcr.io/essentialkaos/rpmbuilder:ol8
export IMAGE=ghcr.io/essentialkaos/rpmbuilder:ol8
# 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-ol8
docker run -e PUB_KEY="$(cat ~/.ssh/buildnode.pub)" -p 2038:2038 -d ghcr.io/essentialkaos/rpmbuilder:node-ol8
cd my-package-dir
# Using local version of rpmbuilder (if you are use RHEL, Alma, Rocky, CentOS…)
rpmbuilder my-package.spec -r builder@localhost:2038 -k ~/.ssh/buildnode
# With docker helper script (any Linux distro or macOS)
rpmbuilder-docker my-package.spec -r builder@localhost:2038 -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.