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)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.