项目作者: essentialkaos

项目描述 :
RPM package build helper
高级语言: Shell
项目地址: git://github.com/essentialkaos/rpmbuilder.git
创建时间: 2016-01-23T12:40:27Z
项目社区:https://github.com/essentialkaos/rpmbuilder

开源协议:Apache License 2.0

下载



GitHub Actions CI Status

Usage demoInstallationTipsUsageBuild StatusContributingLicense


rpmbuilder is RPM package build helper.

Usage demo

https://github.com/essentialkaos/rpmbuilder/assets/182020/d0ae6d9c-663e-46cf-a3f3-2c0fa25c97a3

Installation

From ESSENTIAL KAOS Public Repository

  1. 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
  2. sudo dnf install rpmbuilder

Build node:

  1. 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
  2. sudo dnf install rpmbuilder-node

Using Makefile and Git

  1. git clone https://kaos.sh/rpmbuilder.git
  2. cd rpmbuilder
  3. sudo make install

Using Docker

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:

  1. # Download and install rpmbuilder-docker script
  2. curl -fL# -o rpmbuilder-docker https://kaos.sh/rpmbuilder/rpmbuilder-docker
  3. chmod +x rpmbuilder-docker
  4. sudo mv rpmbuilder-docker /usr/bin/
  5. # Pull rpmbuilder image based on OracleLinux 8
  6. docker pull ghcr.io/essentialkaos/rpmbuilder:ol8
  7. export IMAGE=ghcr.io/essentialkaos/rpmbuilder:ol8
  8. # Build package locally
  9. cd my-package-dir
  10. rpmbuilder-docker my-package.spec
  11. # Build package using build nodes
  12. 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:

  1. docker pull ghcr.io/essentialkaos/rpmbuilder:node-ol8
  2. docker run -e PUB_KEY="$(cat ~/.ssh/buildnode.pub)" -p 2038:2038 -d ghcr.io/essentialkaos/rpmbuilder:node-ol8
  3. cd my-package-dir
  4. # Using local version of rpmbuilder (if you are use RHEL, Alma, Rocky, CentOS…)
  5. rpmbuilder my-package.spec -r builder@localhost:2038 -k ~/.ssh/buildnode
  6. # With docker helper script (any Linux distro or macOS)
  7. 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:

  1. curl -fL# -o rpmbuilder-farm https://kaos.sh/rpmbuilder/rpmbuilder-farm
  2. chmod +x rpmbuilder-farm
  3. sudo mv rpmbuilder-farm /usr/bin/
  4. # Install farm script
  5. sudo rpmbuilder-farm install
  6. # Create user bob and add public key
  7. sudo farm add-user bob
  8. # Start all containers for user bob
  9. sudo farm start bob

rpmbuilder-farm preview

Tips

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

Usage

rpmbuilder

rpmbuilder-farm

Build Status

Branch Status
master CI
develop CI

Contributing

Before contributing to this project please read our Contributing Guidelines.

License

Apache License, Version 2.0