Install
openclaw skills install rpm-packagerBuild installable RPM packages from source code on CentOS/RHEL by creating SPEC files and compiling for versions 7, 8, or 9 RPM-based systems.
openclaw skills install rpm-packagerTransform source code into installable RPM packages for CentOS/RHEL systems.
# Basic usage
./scripts/build-rpm.sh <source-dir> <package-name> <version> <release>
# Example
./scripts/build-rpm.sh ./myapp myapp 1.0.0 1
Ensure source code is ready:
Required tools on CentOS/RHEL (requires sudo privileges):
sudo yum install rpm-build mock gcc make
Note: Installing system packages requires
sudoprivileges. The build process itself runs as your user account.
cd ~/.openclaw/workspace/skills/rpm-packager
chmod +x scripts/build-rpm.sh
./scripts/build-rpm.sh /path/to/source package-name 1.0.0 1
Build produces:
~/rpmbuild/RPMS/x86_64/package-name-1.0.0-1.el8.x86_64.rpm~/rpmbuild/SRPMS/package-name-1.0.0-1.el8.src.rpm# Install the RPM
sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/package-name-1.0.0-1.el8.x86_64.rpm
# Or use yum/dnf for dependency resolution
sudo yum localinstall ~/rpmbuild/RPMS/x86_64/package-name-1.0.0-1.el8.x86_64.rpm
# Verify installation
rpm -q package-name
For complex packages, customize the SPEC file:
~/rpmbuild/SPECS/package-name.specrpmbuild -ba ~/rpmbuild/SPECS/package-name.specAdd dependencies:
BuildRequires: python3-devel openssl-devel
Requires: python3 openssl-libs
Custom install paths:
%install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_sysconfdir}/package-name
install -m 755 myapp %{buildroot}%{_bindir}/
install -m 644 config.conf %{buildroot}%{_sysconfdir}/package-name/
Include documentation:
%files
%doc README.md LICENSE CHANGELOG.md
%{_bindir}/myapp
Use mock for clean builds targeting specific versions:
# CentOS 7
mock -r centos-7-x86_64 package-name.spec
# CentOS 8
mock -r centos-8-x86_64 package-name.spec
# CentOS 9
mock -r centos-9-x86_64 package-name.spec
| Variable | Default | Description |
|---|---|---|
RPM_BUILDER_NAME | OpenClaw Builder | Builder name in changelog |
RPM_BUILD_DIR | ~/rpmbuild | Custom build directory |
BuildRequires for missing tools%files section includes correct paths%installRequires entries to SPEC fileyum localinstall instead of rpm -i for auto-dependency resolutionAfter successful build:
~/rpmbuild/RPMS/<arch>/~/rpmbuild/SRPMS/~/rpmbuild/BUILDLOGS/~/rpmbuild/SPECS/~/rpmbuild to avoid conflicts with system-wide buildsOpenClaw Builder)