https://github.com/redborder/repoinit
https://github.com/redborder/repoinit
redborder-ng
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/redborder/repoinit
- Owner: redBorder
- Created: 2016-06-09T09:59:47.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2026-03-12T14:18:21.000Z (4 months ago)
- Last Synced: 2026-03-12T20:33:22.824Z (4 months ago)
- Topics: redborder-ng
- Language: Shell
- Size: 595 KB
- Stars: 1
- Watchers: 5
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Repoinit
`repoinit` provides tooling and configuration for packaging software into either **RPMs** or **bootable ISOs**, with built-in support for uploading generated artifacts to a `https://repo.redborder.com`.
It is intended for developers who need a repeatable and configurable way to build and distribute system images or packages.
## β οΈ Important considerations
- `repo.redborder.com` is on deprecation. We normally use `packages.redborder.com`.
- Developers can access to `rbrepo.redbordersc.lan`.
- `rbrepo` and `rbrepo-devel` are on deprecation. We can use `https://github.com/redBorder/redborder-repo`, which points to `packages.redborder.com`.
## Features
- Build **RPM packages** or full **ISO images**.
- Architecture-aware configuration (x86, ARM, etc.).
- Modular structure for extending and customizing builds.
- Ready-to-use Kickstart and repo configs.
- Automated upload to the web server after build.
## π Repository Structure
- **`*.sh` scripts** β Main entry points for building packages and ISOs.
- `build_common.sh` β shared helpers used across other scripts.
- `build_minimal_structure.sh` β sets up the minimal directory structure for builds.
- `build_module.sh` β builds individual modules/packages.
- `make_isofile.sh` β generates a bootable ISO image.
- **Config files**:
- `sdk7.cfg` β Config file for running mock for a Centos 7
- `sdk9.cfg` β Config file for running mock for a Rocky 9
- `.repoinit_project`, `.sdk7_project` β SDK and repo definitions per architecture.
- `ks-base.cfg`, `isolinux-base.cfg` β Kickstart and bootloader configurations for ISOs.
- `rbrepo.cfg`, `rbrepo.repo` β repository definitions.
- **`modules/`** β source modules available for packaging.
- **`projects/IPS/`** β example project layout.
- **`Jenkinsfile`** β CI/CD integration.
- **`splash.png`** β boot splash for generated ISOs.
## Requirements
- A **Red Hatβbased operating system** (CentOS, RHEL, Rocky Linux, AlmaLinux, etc.) is expected as the build environment.
- Basic development and packaging tools must be installed:
```bash
yum install -y epel-release mock
```
## Usage
### 1. Clone the repository
```bash
git clone https://github.com/redBorder/repoinit.git
cd repoinit
```
### 2. Select the script for your task
To build a minimal build structure:
```bash
./build_minimal_structure.sh
To build a module/package:
```
To build just one of the directories:
```bash
./build_module.sh
```
To create an ISO image:
```bash
./make_isofile.sh
```
To build a full release (RPMs + ISO), run the appropriate script for your architecture and configuration.
### 3. Upload
By default, generated packages/ISOs are uploaded to the configured `repo.redborder.com`.
## π©βπ» Intended Audience
This project is meant for:
- Developers working on packaging modules and systems.
- Release supervisors responsible for generating and publishing official RPM/ISO releases.
- External contributors
## π Please, review these links:
http://www.smorgasbork.com/2014/07/16/building-a-custom-centos-7-kickstart-disc-part-1/
http://kfei.logdown.com/posts/143152-build-your-own-customized-install-disc-from-centos-64
https://fedoraproject.org/wiki/QA:Testcase_Kickstart_File_Path_Ks_Cfg
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/chap-anaconda-boot-options.html#list-boot-options-sources
## π€ Contributing
- Fork the repo
- Create a feature branch (git checkout -b feature/your-feature)
- Commit your changes
- Open a Pull Request