Compare commits
177 Commits
2fb32eebc6
...
benvin/tea
| Author | SHA1 | Date | |
|---|---|---|---|
| 06b1797537 | |||
| 0fd817b13f | |||
| c7eddffbb3 | |||
| 17e0fadd44 | |||
| cfd1972d54 | |||
| 8cbd495004 | |||
| e04f19ed03 | |||
| ff054f42bb | |||
| 818a48fa78 | |||
| 111ea50d80 | |||
| 1b46845734 | |||
| 497b99c328 | |||
| 6b070d8c14 | |||
| dff743a00b | |||
| f408d3d705 | |||
| c4c018b1ee | |||
| b18e34c905 | |||
| cede57a565 | |||
| 07a75008a1 | |||
| 5e1533289f | |||
| cd1eb1f46c | |||
| b585cca9f0 | |||
| a117caae27 | |||
| a0b8d8b806 | |||
| c8bb19d6d6 | |||
| 4976f0e43b | |||
| 745ce03757 | |||
| 3742eabfde | |||
| 5c9fce3607 | |||
| 76f79a7371 | |||
| 8e8285546b | |||
| b15fc0612f | |||
| 1f1b1cfe32 | |||
| e09d0c4bc6 | |||
| 6d379d99b6 | |||
| 9e02175ead | |||
| a4a28c67d4 | |||
| be4df03f81 | |||
| 5cdbe3a6b5 | |||
| 1e7b06aa84 | |||
| 6c468c40d1 | |||
| 6d74a9dfab | |||
| 2954835dd0 | |||
| c6d8e33a54 | |||
| 3fa0d39d43 | |||
| 099b90fbc5 | |||
| 182641132a | |||
| b3ba980f9f | |||
| 8d1aa34f0f | |||
| 288dfe211b | |||
| 0133114aac | |||
| 6813eb84ce | |||
| 2de946b150 | |||
| e07235ca98 | |||
| fdf9a11a4c | |||
| 086d9365d4 | |||
| 9d68b886ec | |||
| 68b211624a | |||
| 46c5cf838a | |||
| 699187341b | |||
| 873abe18c8 | |||
| 961ceb0df3 | |||
| 5919cd377f | |||
| 2ecfeb860e | |||
| 7967342045 | |||
| f3b60b7137 | |||
| 54e1c740b1 | |||
| 989c8e9ea8 | |||
| f125d59935 | |||
| 46016bae5c | |||
| 325b830952 | |||
| 5e3688c988 | |||
| 97a180ef9f | |||
| 20952727ba | |||
| 85c4aa3264 | |||
| f503c400bd | |||
| c032354f71 | |||
| fd9bbdb514 | |||
| 484bf9af7d | |||
| 05a4604516 | |||
| 4316055237 | |||
| f63dfecffa | |||
| 7a48e70f6e | |||
| 9a4139daac | |||
| 9e807b713d | |||
| 48378ca4ed | |||
| 8e56419539 | |||
| b38856fb57 | |||
| b8b181e684 | |||
| 7c5d5619bf | |||
| 37e7e7c1b7 | |||
| 76c331e530 | |||
| cd47d9730b | |||
| 45857e5814 | |||
| c94e86a31c | |||
| afd4f7fd22 | |||
| 05e8f1ae8e | |||
| ad414ba4fa | |||
| 0645ebfd29 | |||
| 56de02eb94 | |||
| 1709c34a38 | |||
| e0026ddb05 | |||
| a14388a6e9 | |||
| 91154d46ad | |||
| 5b86d17218 | |||
| ab57a28b8f | |||
| 8742b71b60 | |||
| 9b755a05dc | |||
| dd71972af0 | |||
| 263fb689a8 | |||
| 81e2c783c9 | |||
| d5e8259a87 | |||
| af05004d4c | |||
| 12d2b75368 | |||
| 7fbde2e82f | |||
| 0de13397f3 | |||
| b5bce92f7f | |||
| 459f2891da | |||
| 715d859bb5 | |||
| a788bdd6cb | |||
| 1ca94ab1d9 | |||
| f2a5d29f35 | |||
| 5c6fadf1b2 | |||
| 18a5b33eb2 | |||
| c21e00497d | |||
| c22329641e | |||
| f508b1ea7f | |||
| 7348bdd69e | |||
| 9a4a3f40ad | |||
| 6075fa57b9 | |||
| 47aebcbd4f | |||
| 8ab11fd00f | |||
| 18da11d779 | |||
| 3767107729 | |||
| 7f18247e00 | |||
| c7b8fb9fb5 | |||
| 80d648ee95 | |||
| 0a0260c1fc | |||
| 56d966aba5 | |||
| e40e073e1f | |||
| f84bd17e1b | |||
| 3cbe7f9a83 | |||
| 4ae8be90d7 | |||
| 3e47e5b948 | |||
| 3ab833ebc4 | |||
| 63a01ac71c | |||
| adedeed725 | |||
| 64b5537171 | |||
| 416bfa521a | |||
| aa2c3bed38 | |||
| 73131f9324 | |||
| b193e4097b | |||
| 6c0ac37b83 | |||
| 7e5b6b100d | |||
| 6c0bbe0180 | |||
| d2c15dea58 | |||
| 9000eaa947 | |||
| c6ede08d51 | |||
| 7fc26c9ea0 | |||
| 9ba94f0aa9 | |||
| 0e4504cb85 | |||
| f7b4f19aec | |||
| 0b8940f62e | |||
| 81bd274ee1 | |||
| 75a9fea331 | |||
| 7dc3fda3b4 | |||
| 5791acdf38 | |||
| 8e052bbea6 | |||
| 9931216934 | |||
| e499d37b35 | |||
| bc529381c9 | |||
| 88b38900fd | |||
| 4198f5aafb | |||
| ca44f44720 | |||
| bae6e4a8e0 | |||
| dc84453e92 | |||
| 5c49c24930 |
@@ -1,30 +0,0 @@
|
|||||||
name: Build
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: almalinux-8
|
|
||||||
container:
|
|
||||||
image: git.query.consul/unkin/almalinux8:latest
|
|
||||||
options: --privileged
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Set up environment
|
|
||||||
run: |
|
|
||||||
dnf install -y yum-utils
|
|
||||||
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
|
||||||
dnf module enable -y nodejs:20
|
|
||||||
dnf install -y docker-ce-cli make bash git nodejs
|
|
||||||
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Build Packages
|
|
||||||
run: |
|
|
||||||
make all
|
|
||||||
|
|
||||||
- name: Show RPMs
|
|
||||||
run: |
|
|
||||||
find /workspace -type f -name "*.rpm"
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
name: Deploy
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: almalinux-8
|
|
||||||
container:
|
|
||||||
image: git.query.consul/unkin/almalinux8:latest
|
|
||||||
options: --privileged
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Set up environment
|
|
||||||
run: |
|
|
||||||
dnf install -y yum-utils
|
|
||||||
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
|
||||||
dnf module enable -y nodejs:20
|
|
||||||
dnf install -y docker-ce-cli make bash git nodejs
|
|
||||||
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Build Packages
|
|
||||||
run: |
|
|
||||||
make all
|
|
||||||
|
|
||||||
- name: Upload RPMs to Gitea
|
|
||||||
env:
|
|
||||||
DRONECI_PASSWORD: ${{ secrets.DRONECI_PASSWORD }}
|
|
||||||
run: |
|
|
||||||
for rpm in $(find /workspace -type f -name "*.rpm"); do
|
|
||||||
curl --user droneci:${{ secrets.DRONECI_PASSWORD }} --upload-file $rpm https://git.query.consul/api/packages/unkin/rpm/almalinux/el8/upload
|
|
||||||
done
|
|
||||||
@@ -1 +1,4 @@
|
|||||||
dist
|
dist
|
||||||
|
env
|
||||||
|
.claude
|
||||||
|
.ruff_cache
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v4.5.0
|
||||||
|
hooks:
|
||||||
|
- id: check-executables-have-shebangs
|
||||||
|
- id: check-json
|
||||||
|
- id: check-added-large-files
|
||||||
|
args: ['--maxkb=500']
|
||||||
|
- id: check-merge-conflict
|
||||||
|
- id: check-shebang-scripts-are-executable
|
||||||
|
- id: check-symlinks
|
||||||
|
- id: check-toml
|
||||||
|
- id: check-yaml
|
||||||
|
args: [--allow-multiple-documents]
|
||||||
|
- id: detect-aws-credentials
|
||||||
|
args: [--allow-missing-credentials]
|
||||||
|
- id: detect-private-key
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: forbid-new-submodules
|
||||||
|
- id: pretty-format-json
|
||||||
|
- id: trailing-whitespace
|
||||||
|
|
||||||
|
- repo: https://github.com/adrienverge/yamllint.git
|
||||||
|
rev: v1.37.1
|
||||||
|
hooks:
|
||||||
|
- id: yamllint
|
||||||
|
args:
|
||||||
|
[
|
||||||
|
"-d {extends: relaxed, rules: {line-length: disable}}",
|
||||||
|
"-s",
|
||||||
|
]
|
||||||
|
|
||||||
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
|
rev: v0.14.7
|
||||||
|
hooks:
|
||||||
|
# Run the linter.
|
||||||
|
- id: ruff-check
|
||||||
|
args: [--fix]
|
||||||
|
# Run the formatter.
|
||||||
|
- id: ruff-format
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
when:
|
||||||
|
- event: pull_request
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- mkdir -p /woodpecker/rpms
|
||||||
|
- ln -s /woodpecker/rpms /workspace
|
||||||
|
- dnf install buildah -y
|
||||||
|
- ./tools/build build-all --distro almalinux/el8 --buildah
|
||||||
|
privileged: true
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
|
||||||
|
- name: show rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux8-base:latest
|
||||||
|
commands:
|
||||||
|
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
when:
|
||||||
|
- event: pull_request
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- mkdir -p /woodpecker/rpms
|
||||||
|
- ln -s /woodpecker/rpms /workspace
|
||||||
|
- dnf install buildah -y
|
||||||
|
- ./tools/build build-all --distro almalinux/el9 --buildah
|
||||||
|
privileged: true
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
|
||||||
|
- name: show rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-base:latest
|
||||||
|
commands:
|
||||||
|
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
when:
|
||||||
|
- event: push
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build-rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- mkdir -p /woodpecker/rpms
|
||||||
|
- ln -s /woodpecker/rpms /workspace
|
||||||
|
- dnf install buildah -y
|
||||||
|
- ./tools/build build-all --distro almalinux/el8 --buildah
|
||||||
|
privileged: true
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
|
||||||
|
- name: show-rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-base:latest
|
||||||
|
commands:
|
||||||
|
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
|
||||||
|
depends_on: [build-rpms]
|
||||||
|
|
||||||
|
- name: deploy-rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
for rpm in $(find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"); do
|
||||||
|
curl --user droneci:$${DRONECI_PASSWORD} --upload-file $rpm https://git.unkin.net/api/packages/unkin/rpm/almalinux/el8/upload
|
||||||
|
done
|
||||||
|
environment:
|
||||||
|
DRONECI_PASSWORD:
|
||||||
|
from_secret: DRONECI_PASSWORD
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
depends_on: [build-rpms, show-rpms]
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
when:
|
||||||
|
- event: push
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build-rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- mkdir -p /woodpecker/rpms
|
||||||
|
- ln -s /woodpecker/rpms /workspace
|
||||||
|
- dnf install buildah -y
|
||||||
|
- ./tools/build build-all --distro almalinux/el9 --buildah
|
||||||
|
privileged: true
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
|
||||||
|
- name: show-rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-base:latest
|
||||||
|
commands:
|
||||||
|
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
|
||||||
|
depends_on: [build-rpms]
|
||||||
|
|
||||||
|
- name: deploy-rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
for rpm in $(find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"); do
|
||||||
|
curl --user droneci:$${DRONECI_PASSWORD} --upload-file $rpm https://git.unkin.net/api/packages/unkin/rpm/almalinux/el9/upload
|
||||||
|
done
|
||||||
|
environment:
|
||||||
|
DRONECI_PASSWORD:
|
||||||
|
from_secret: DRONECI_PASSWORD
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
depends_on: [build-rpms, show-rpms]
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
when:
|
||||||
|
- event: pull_request
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: pre-commit
|
||||||
|
image: git.unkin.net/unkin/almalinux9-base:latest
|
||||||
|
commands:
|
||||||
|
- dnf install uv make -y
|
||||||
|
- uvx pre-commit run --all-files
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
ARG BASE_IMAGE=git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
FROM ${BASE_IMAGE}
|
||||||
|
|
||||||
|
# Create output directory for RPMs
|
||||||
|
RUN mkdir -p /app/dist
|
||||||
|
|
||||||
|
# Set working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Accept all package metadata as build arguments and set as environment variables
|
||||||
|
ARG PACKAGE_NAME
|
||||||
|
ENV PACKAGE_NAME=${PACKAGE_NAME}
|
||||||
|
ARG PACKAGE_VERSION
|
||||||
|
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
||||||
|
ARG PACKAGE_RELEASE
|
||||||
|
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
||||||
|
ARG PACKAGE_DESCRIPTION
|
||||||
|
ENV PACKAGE_DESCRIPTION=${PACKAGE_DESCRIPTION}
|
||||||
|
ARG PACKAGE_MAINTAINER
|
||||||
|
ENV PACKAGE_MAINTAINER=${PACKAGE_MAINTAINER}
|
||||||
|
ARG PACKAGE_HOMEPAGE
|
||||||
|
ENV PACKAGE_HOMEPAGE=${PACKAGE_HOMEPAGE}
|
||||||
|
ARG PACKAGE_LICENSE
|
||||||
|
ENV PACKAGE_LICENSE=${PACKAGE_LICENSE}
|
||||||
|
ARG PACKAGE_ARCH
|
||||||
|
ENV PACKAGE_ARCH=${PACKAGE_ARCH}
|
||||||
|
ARG PACKAGE_PLATFORM
|
||||||
|
ENV PACKAGE_PLATFORM=${PACKAGE_PLATFORM}
|
||||||
|
|
||||||
|
# Copy resources from the context into the container
|
||||||
|
COPY resources /app/resources
|
||||||
|
|
||||||
|
# Default command to build RPMs
|
||||||
|
CMD /app/resources/build.sh
|
||||||
@@ -1,55 +1,63 @@
|
|||||||
# Variables
|
# Variables
|
||||||
ROOT_DIR := $(PWD)
|
ROOT_DIR := $(PWD)
|
||||||
RPMS_DIR := $(ROOT_DIR)/rpms
|
BUILD_TOOL := $(ROOT_DIR)/tools/build
|
||||||
REPO_OPTIONS := --disablerepo=* --enablerepo=unkin
|
DISTRO ?= almalinux/el9
|
||||||
|
|
||||||
# Automatically find all package/version directories
|
# Authentication variables (optional)
|
||||||
PACKAGES := $(shell find $(RPMS_DIR) -mindepth 2 -maxdepth 2 -type d | sed "s|$(RPMS_DIR)/||")
|
# VAULT_ROLE_ID - Use AppRole authentication if set
|
||||||
|
# VAULT_ROLE - Kubernetes role for service account authentication (default: rpmbuilder)
|
||||||
|
|
||||||
# Default target to build all packages and versions
|
# Automatically find all packages with metadata.yaml
|
||||||
.PHONY: all list cache build clean
|
PACKAGES := $(shell find $(ROOT_DIR)/rpms -mindepth 1 -maxdepth 1 -type d -exec test -f {}/metadata.yaml \; -print | xargs -n1 basename | sort)
|
||||||
all: cache $(PACKAGES)
|
|
||||||
|
|
||||||
|
# Default target to build all packages
|
||||||
|
.PHONY: all list build clean
|
||||||
|
all: build-all
|
||||||
|
|
||||||
|
# List all available packages
|
||||||
list:
|
list:
|
||||||
@echo "$(PACKAGES)"
|
@echo "Available packages:"
|
||||||
|
@for package in $(PACKAGES); do \
|
||||||
|
echo " $$package"; \
|
||||||
|
done
|
||||||
|
|
||||||
cache:
|
# Build all packages using Python tool
|
||||||
echo "Refreshing DNF cache..." && \
|
build-all:
|
||||||
dnf clean all && \
|
@echo "Building all packages using Python tooling for distro $(DISTRO)..."
|
||||||
dnf makecache
|
$(BUILD_TOOL) build-all --distro $(DISTRO)
|
||||||
|
|
||||||
# Build specific package/version
|
# Build all packages using native build (no Docker)
|
||||||
|
build-all-native:
|
||||||
|
@echo "Building all packages natively (no Docker) for distro $(DISTRO)..."
|
||||||
|
$(BUILD_TOOL) build-all --distro $(DISTRO) --native
|
||||||
|
|
||||||
|
# Build all packages using Buildah
|
||||||
|
build-all-buildah:
|
||||||
|
@echo "Building all packages using Buildah for distro $(DISTRO)..."
|
||||||
|
$(BUILD_TOOL) build-all --distro $(DISTRO) --buildah
|
||||||
|
|
||||||
|
# Build specific package using Python tool
|
||||||
.PHONY: $(PACKAGES)
|
.PHONY: $(PACKAGES)
|
||||||
$(PACKAGES):
|
$(PACKAGES):
|
||||||
@PACKAGE_NAME=$(shell echo $(@) | cut -d/ -f1) && \
|
@echo "Building package: $@ for distro $(DISTRO)"
|
||||||
PACKAGE_VERSION=$(shell echo $(@) | cut -d/ -f2) && \
|
$(BUILD_TOOL) build --distro $(DISTRO) $@
|
||||||
echo "Starting build $$PACKAGE_NAME/$$PACKAGE_VERSION" && \
|
|
||||||
$(MAKE) build PACKAGE_NAME=$$PACKAGE_NAME PACKAGE_VERSION=$$PACKAGE_VERSION
|
|
||||||
|
|
||||||
# Build target
|
# Dry run - show what would be built without building
|
||||||
build:
|
dry-run:
|
||||||
@mkdir -p $(ROOT_DIR)/dist/$(PACKAGE_NAME)/
|
@echo "Dry run - showing what would be built for distro $(DISTRO):"
|
||||||
@cd $(RPMS_DIR)/$(PACKAGE_NAME) && \
|
$(BUILD_TOOL) build-all --distro $(DISTRO) --dry-run
|
||||||
export PACKAGE_RELEASE=$$(cat $(PACKAGE_VERSION)/release) && \
|
|
||||||
export PACKAGE_FULL_NAME=$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$$PACKAGE_RELEASE && \
|
|
||||||
echo "Checking repos for $$PACKAGE_FULL_NAME" && \
|
|
||||||
if dnf info $$PACKAGE_FULL_NAME $(REPO_OPTIONS) > /dev/null 2>&1; then \
|
|
||||||
echo "Skipping build for $(PACKAGE_NAME) version $(PACKAGE_VERSION) (already exists in the repository)"; \
|
|
||||||
else \
|
|
||||||
echo "Building RPM for $(PACKAGE_NAME) version $(PACKAGE_VERSION)"; \
|
|
||||||
docker build \
|
|
||||||
--build-arg PACKAGE_VERSION=$(PACKAGE_VERSION) \
|
|
||||||
--build-arg PACKAGE_RELEASE=$${PACKAGE_RELEASE} \
|
|
||||||
-t $$(echo $(PACKAGE_NAME)-builder \
|
|
||||||
| tr '[:upper:]' '[:lower:]') . && \
|
|
||||||
docker create --name $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder \
|
|
||||||
$$(echo $(PACKAGE_NAME)-builder | tr '[:upper:]' '[:lower:]') && \
|
|
||||||
docker start -a $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder && \
|
|
||||||
docker cp $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder:/app/dist/. $(ROOT_DIR)/dist/$(PACKAGE_NAME)/ && \
|
|
||||||
docker rm $(PACKAGE_NAME)-$(PACKAGE_VERSION)-builder; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Clean target
|
# Clean target
|
||||||
clean:
|
clean:
|
||||||
@echo "Cleaning build artifacts..."
|
@echo "Cleaning build artifacts..."
|
||||||
rm -rf $(ROOT_DIR)/dist
|
rm -rf $(ROOT_DIR)/dist
|
||||||
|
|
||||||
|
# Update packages from GitHub releases
|
||||||
|
update:
|
||||||
|
@echo "Checking for package updates from GitHub releases..."
|
||||||
|
$(ROOT_DIR)/tools/update-gh --all
|
||||||
|
|
||||||
|
# Update specific package from GitHub
|
||||||
|
update-%:
|
||||||
|
@echo "Checking for updates for package: $*"
|
||||||
|
$(ROOT_DIR)/tools/update-gh --package $*
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
arch: amd64
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 0.2.12
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 0.2.12
|
||||||
|
description: A runner for Gitea based on act.
|
||||||
|
github: unknown/act_runner
|
||||||
|
homepage: https://gitea.com/gitea/act_runner
|
||||||
|
license: MIT
|
||||||
|
maintainer: Gitea
|
||||||
|
name: act_runner
|
||||||
|
platform: linux
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
curl -L --output act_runner-linux-amd64 https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/gitea-dl/act_runner/${PACKAGE_VERSION}/act_runner-${PACKAGE_VERSION}-linux-amd64
|
||||||
|
|
||||||
|
# Process the nfpm.yaml template with environment variables
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- act_runner
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- act_runner
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/act_runner-linux-amd64
|
||||||
|
dst: /usr/bin/act_runner
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
arch: amd64
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 0.8.0
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 0.8.0
|
||||||
|
description: Prometheus exporter for BIND
|
||||||
|
github: prometheus-community/bind_exporter
|
||||||
|
homepage: https://github.com/prometheus-community/bind_exporter
|
||||||
|
license: Apache-2.0 license
|
||||||
|
maintainer: Prometheus
|
||||||
|
name: bind_exporter
|
||||||
|
platform: linux
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download the required files
|
||||||
|
curl --output - -L https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/prometheus-community/bind_exporter/releases/download/v${PACKAGE_VERSION}/bind_exporter-${PACKAGE_VERSION}.linux-amd64.tar.gz | tar --strip-components=1 -xzf -
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- bind_exporter
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- bind_exporter
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/bind_exporter
|
||||||
|
dst: /usr/bin/bind_exporter
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
name: boilerplate
|
||||||
|
github: gruntwork-io/boilerplate
|
||||||
|
description: Boilerplate is a tool for generating files and folders (boilerplate)
|
||||||
|
from a set of templates.
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: Gruntwork
|
||||||
|
homepage: https://github.com/gruntwork-io/boilerplate
|
||||||
|
license: MIT
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 0.10.1
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 0.10.1
|
||||||
Executable
+11
@@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download the required files
|
||||||
|
wget -O /app/boilerplate https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/gruntwork-io/boilerplate/releases/download/v${PACKAGE_VERSION}/boilerplate_linux_amd64
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- boilerplate
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- boilerplate
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/boilerplate
|
||||||
|
dst: /usr/bin/boilerplate
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
arch: amd64
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 2.1.120
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 2.1.120
|
||||||
|
claude_ai: true
|
||||||
|
description: Claude Code - Anthropic's agentic AI coding tool
|
||||||
|
homepage: https://claude.ai/code
|
||||||
|
license: Proprietary
|
||||||
|
maintainer: Anthropic
|
||||||
|
name: claude-code
|
||||||
|
platform: linux
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download claude-code binary
|
||||||
|
wget -O /app/claude https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/claude-ai/claude-code-releases/${PACKAGE_VERSION}/linux-x64/claude
|
||||||
|
chmod +x /app/claude
|
||||||
|
|
||||||
|
# Process the nfpm.yaml template with environment variables
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- claude-code
|
||||||
|
- claude
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- claude-code
|
||||||
|
- claude
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/claude
|
||||||
|
dst: /usr/bin/claude
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
name: cni-plugins
|
||||||
|
github: containernetworking/plugins
|
||||||
|
description: Some reference and example networking plugins, maintained by the CNI
|
||||||
|
team.
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: ContainerNetworking
|
||||||
|
homepage: https://github.com/containernetworking/plugins
|
||||||
|
license: Apache-2.0
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 1.9.0
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 1.9.0
|
||||||
Executable
+12
@@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download and extract cni-plugins
|
||||||
|
wget -O /app/cni-plugins-linux-amd64.tgz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/containernetworking/plugins/releases/download/v${PACKAGE_VERSION}/cni-plugins-linux-amd64-v${PACKAGE_VERSION}.tgz
|
||||||
|
tar xf cni-plugins-linux-amd64.tgz
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- cni-plugins
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/bandwidth
|
||||||
|
dst: /opt/cni/bin/bandwidth
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/bridge
|
||||||
|
dst: /opt/cni/bin/bridge
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/dhcp
|
||||||
|
dst: /opt/cni/bin/dhcp
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/dummy
|
||||||
|
dst: /opt/cni/bin/dummy
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/firewall
|
||||||
|
dst: /opt/cni/bin/firewall
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/host-device
|
||||||
|
dst: /opt/cni/bin/host-device
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/host-local
|
||||||
|
dst: /opt/cni/bin/host-local
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/ipvlan
|
||||||
|
dst: /opt/cni/bin/ipvlan
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/loopback
|
||||||
|
dst: /opt/cni/bin/loopback
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/macvlan
|
||||||
|
dst: /opt/cni/bin/macvlan
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/portmap
|
||||||
|
dst: /opt/cni/bin/portmap
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/ptp
|
||||||
|
dst: /opt/cni/bin/ptp
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/sbr
|
||||||
|
dst: /opt/cni/bin/sbr
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/static
|
||||||
|
dst: /opt/cni/bin/static
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/tap
|
||||||
|
dst: /opt/cni/bin/tap
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/tuning
|
||||||
|
dst: /opt/cni/bin/tuning
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/vlan
|
||||||
|
dst: /opt/cni/bin/vlan
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/vrf
|
||||||
|
dst: /opt/cni/bin/vrf
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
scripts:
|
||||||
|
preinstall: /app/resources/scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
mkdir -p /opt/cni/bin
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
arch: amd64
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 1.7.1
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 1.7.1
|
||||||
|
description: Plugin for Consul on Kubernetes to allow configuring traffic redirection rules without escalated container privileges.
|
||||||
|
github: unknown/consul-cni
|
||||||
|
homepage: https://hashicorp.com
|
||||||
|
license: Mozilla Public License, version 2.0
|
||||||
|
maintainer: Hashicorp
|
||||||
|
name: consul-cni
|
||||||
|
platform: linux
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
dnf install -y unzip
|
||||||
|
|
||||||
|
# Download and extract consul-cni
|
||||||
|
curl -L -o /app/consul-cni.zip https://releases.hashicorp.com/consul-cni/${PACKAGE_VERSION}/consul-cni_${PACKAGE_VERSION}_linux_amd64.zip
|
||||||
|
unzip consul-cni.zip
|
||||||
|
|
||||||
|
# Process the nfpm.yaml template with environment variables
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- consul-cni
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/consul-cni
|
||||||
|
dst: /opt/cni/bin/consul-cni
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
scripts:
|
||||||
|
preinstall: /app/resources/scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
mkdir -p /opt/cni/bin
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
name: consul
|
||||||
|
github: hashicorp/consul
|
||||||
|
description: Consul is a distributed, highly available, and data center aware solution
|
||||||
|
to connect and configure applications across dynamic, distributed infrastructure.
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: HashiCorp
|
||||||
|
homepage: https://github.com/hashicorp/consul
|
||||||
|
license: BUSL-1.1
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 1.22.2
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 1.22.2
|
||||||
Executable
+16
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
dnf install -y unzip
|
||||||
|
|
||||||
|
# Download and extract consul
|
||||||
|
curl -L -o /app/consul.zip https://releases.hashicorp.com/consul/${PACKAGE_VERSION}/consul_${PACKAGE_VERSION}_linux_amd64.zip
|
||||||
|
unzip consul.zip
|
||||||
|
|
||||||
|
# Process the nfpm.yaml template with environment variables
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- consul
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- consul
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/consul
|
||||||
|
dst: /usr/bin/consul
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
name: etcd
|
||||||
|
github: etcd-io/etcd
|
||||||
|
description: A distributed, reliable key-value store for the most critical data of
|
||||||
|
a distributed system.
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: https://etcd.io/
|
||||||
|
homepage: https://etcd.io/
|
||||||
|
license: Apache-2.0
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 3.6.7
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 3.6.7
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download and extract etcd
|
||||||
|
wget -O /app/etcd-v${PACKAGE_VERSION}-linux-amd64.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/etcd-io/etcd/releases/download/v${PACKAGE_VERSION}/etcd-v${PACKAGE_VERSION}-linux-amd64.tar.gz
|
||||||
|
tar xf /app/etcd-v${PACKAGE_VERSION}-linux-amd64.tar.gz
|
||||||
|
mv /app/etcd-v${PACKAGE_VERSION}-linux-amd64/* /app/
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- etcd
|
||||||
|
- etcdctl
|
||||||
|
- etcdutl
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- etcd
|
||||||
|
- etcdctl
|
||||||
|
- etcdutl
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/etcd
|
||||||
|
dst: /usr/bin/etcd
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/etcdctl
|
||||||
|
dst: /usr/bin/etcdctl
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/etcdutl
|
||||||
|
dst: /usr/bin/etcdutl
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
name: exportarr
|
||||||
|
github: onedr0p/exportarr
|
||||||
|
description: AIO Prometheus Exporter for Sabnzbd, Bazarr, Prowlarr, Lidarr, Readarr,
|
||||||
|
Radarr, and Sonarr
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: onedr0p
|
||||||
|
homepage: https://github.com/onedr0p/exportarr
|
||||||
|
license: MIT license
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 2.3.0
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 2.3.0
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download the required files
|
||||||
|
curl --output - -L https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/onedr0p/exportarr/releases/download/v${PACKAGE_VERSION}/exportarr_${PACKAGE_VERSION}_linux_amd64.tar.gz | tar --strip-components=1 -xzf -
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- exportarr
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- exportarr
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/exportarr
|
||||||
|
dst: /usr/bin/exportarr
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
name: frr_exporter
|
||||||
|
github: tynany/frr_exporter
|
||||||
|
description: Prometheus exporter for Free Range Routing
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: Prometheus
|
||||||
|
homepage: https://github.com/tynany/frr_exporter
|
||||||
|
license: MIT
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 1.9.0
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 1.9.0
|
||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
curl --output - -L https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/tynany/frr_exporter/releases/download/v${PACKAGE_VERSION}/frr_exporter-${PACKAGE_VERSION}.linux-amd64.tar.gz | tar --strip-components=1 -xzf -
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- frr_exporter
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- frr_exporter
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/frr_exporter
|
||||||
|
dst: /usr/bin/frr_exporter
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
arch: amd64
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 0.9.10
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 0.9.10
|
||||||
|
description: An r10k fork written in Go, designed to work somwhat similar like puppetlabs/r10k.
|
||||||
|
github: xorpaul/g10k
|
||||||
|
homepage: https://github.com/xorpaul/g10k
|
||||||
|
license: Apache2.0
|
||||||
|
maintainer: xorpaul
|
||||||
|
name: g10k
|
||||||
|
platform: linux
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download and extract g10k
|
||||||
|
wget -O /app/g10k.zip https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/xorpaul/g10k/releases/download/v${PACKAGE_VERSION}/g10k-v${PACKAGE_VERSION}-linux-amd64.zip
|
||||||
|
pushd /app
|
||||||
|
unzip /app/g10k.zip
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- g10k
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- g10k
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/g10k
|
||||||
|
dst: /usr/bin/g10k
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
name: helm
|
||||||
|
github: helm/helm
|
||||||
|
description: The Kubernetes Package Manager
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: Helm Contributors
|
||||||
|
homepage: https://github.com/helm/helm
|
||||||
|
license: Apache-2.0 license
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 4.0.5
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 4.0.5
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download the required files
|
||||||
|
curl -L -o /app/helm.tar.gz https://get.helm.sh/helm-v${PACKAGE_VERSION}-linux-amd64.tar.gz
|
||||||
|
|
||||||
|
# Extract the binary
|
||||||
|
cd /app
|
||||||
|
tar -xzf helm.tar.gz
|
||||||
|
|
||||||
|
# Make the binary executable
|
||||||
|
chmod +x /app/linux-amd64/helm
|
||||||
|
|
||||||
|
# Process the nfpm.yaml template with environment variables
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- helm
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- helm
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/linux-amd64/helm
|
||||||
|
dst: /usr/bin/helm
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
name: helmfile
|
||||||
|
github: helmfile/helmfile
|
||||||
|
description: A declarative spec for deploying Helm charts. It lets you keep a directory
|
||||||
|
of chart value files and maintain changes in version control; apply CI/CD to configuration
|
||||||
|
changes; and periodically sync to avoid skew in environments.
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: Helmfile Contributors
|
||||||
|
homepage: https://github.com/helmfile/helmfile
|
||||||
|
license: MIT
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 1.2.3
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 1.2.3
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download the required files
|
||||||
|
curl -L -o /app/helmfile.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/helmfile/helmfile/releases/download/v${PACKAGE_VERSION}/helmfile_${PACKAGE_VERSION}_linux_amd64.tar.gz
|
||||||
|
|
||||||
|
# Extract the binary
|
||||||
|
cd /app
|
||||||
|
tar -xzf helmfile.tar.gz
|
||||||
|
|
||||||
|
# Make the binary executable
|
||||||
|
chmod +x /app/helmfile
|
||||||
|
|
||||||
|
# Process the nfpm.yaml template with environment variables
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- helmfile
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- helmfile
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/helmfile
|
||||||
|
dst: /usr/bin/helmfile
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
name: incus
|
||||||
|
github: lxc/incus
|
||||||
|
description: Powerful system container and virtual machine manager
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: unkin
|
||||||
|
homepage: https://linuxcontainers.org/incus/
|
||||||
|
license: Apache-2.0
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 6.20.0
|
||||||
Executable
+54
@@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Install build dependencies
|
||||||
|
dnf makecache && dnf install -y \
|
||||||
|
unzip \
|
||||||
|
libtool \
|
||||||
|
autoconf \
|
||||||
|
automake \
|
||||||
|
gcc \
|
||||||
|
make \
|
||||||
|
git \
|
||||||
|
go \
|
||||||
|
cowsql-devel \
|
||||||
|
libacl-devel \
|
||||||
|
libcap-devel \
|
||||||
|
libseccomp-devel \
|
||||||
|
libuv-devel \
|
||||||
|
raft-devel \
|
||||||
|
libudev-devel \
|
||||||
|
lxc-devel \
|
||||||
|
libsqlite3x-devel \
|
||||||
|
sqlite-devel \
|
||||||
|
systemd-rpm-macros \
|
||||||
|
bash-completion \
|
||||||
|
gettext \
|
||||||
|
help2man \
|
||||||
|
curl-minimal
|
||||||
|
|
||||||
|
# Download and extract incus source
|
||||||
|
curl -L -o /app/incus.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/lxc/incus/archive/refs/tags/v${PACKAGE_VERSION}.tar.gz
|
||||||
|
tar -C /app -xf incus.tar.gz
|
||||||
|
|
||||||
|
# Install specific Go version
|
||||||
|
curl -L -O https://go.dev/dl/go1.24.1.linux-amd64.tar.gz
|
||||||
|
rm -rf /usr/local/go
|
||||||
|
tar -C /usr/local -xzf go1.24.1.linux-amd64.tar.gz
|
||||||
|
|
||||||
|
# Set up Go environment and build incus
|
||||||
|
export PATH=/usr/local/go/bin:$PATH
|
||||||
|
pushd /app/incus-${PACKAGE_VERSION}
|
||||||
|
make deps
|
||||||
|
export CGO_CFLAGS="-I/root/go/deps/raft/include/ -I/root/go/deps/cowsql/include/"
|
||||||
|
export CGO_LDFLAGS="-L/root/go/deps/raft/.libs -L/root/go/deps/cowsql/.libs/"
|
||||||
|
export LD_LIBRARY_PATH="/root/go/deps/raft/.libs/:/root/go/deps/cowsql/.libs/"
|
||||||
|
export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
|
||||||
|
make build
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Build the RPMs
|
||||||
|
nfpm pkg --config /app/resources/nfpm_incus.yaml --target /app/dist --packager rpm
|
||||||
|
nfpm pkg --config /app/resources/nfpm_incus-client.yaml --target /app/dist --packager rpm
|
||||||
|
nfpm pkg --config /app/resources/nfpm_incus-tools.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Incus - Instance startup
|
||||||
|
After=incus.socket incus.service
|
||||||
|
Requires=incus.socket
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/libexec/incus/incusd activateifneeded
|
||||||
|
ExecStop=/usr/libexec/incus/shutdown
|
||||||
|
TimeoutStartSec=600s
|
||||||
|
TimeoutStopSec=600s
|
||||||
|
RemainAfterExit=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Incus - User daemon
|
||||||
|
After=incus-user.socket incus.service
|
||||||
|
Requires=incus-user.socket
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/libexec/incus/incus-user --group incus
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
Also=incus-user.socket
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Incus - Daemon (user unix socket)
|
||||||
|
|
||||||
|
[Socket]
|
||||||
|
ListenStream=/run/incus/unix.socket.user
|
||||||
|
SocketGroup=incus
|
||||||
|
SocketMode=0660
|
||||||
|
Service=incus-user.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sockets.target
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Incus - Daemon
|
||||||
|
After=network-online.target openvswitch-switch.service lxcfs.service incus.socket
|
||||||
|
Requires=network-online.target lxcfs.service incus.socket
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=INCUS_OVMF_PATH=/usr/share/edk2/ovmf
|
||||||
|
Environment=INCUS_SOCKET=/run/incus/unix.socket
|
||||||
|
ExecStart=/usr/libexec/incus/incusd --group incus-admin
|
||||||
|
ExecStartPost=/usr/libexec/incus/incusd waitready --timeout=600
|
||||||
|
KillMode=process
|
||||||
|
TimeoutStartSec=600s
|
||||||
|
TimeoutStopSec=30s
|
||||||
|
Restart=on-failure
|
||||||
|
Delegate=yes
|
||||||
|
LimitNOFILE=1048576
|
||||||
|
LimitNPROC=infinity
|
||||||
|
TasksMax=infinity
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
Also=incus-startup.service incus.socket
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Incus - Daemon (unix socket)
|
||||||
|
|
||||||
|
[Socket]
|
||||||
|
ListenStream=/run/incus/unix.socket
|
||||||
|
SocketGroup=incus-admin
|
||||||
|
SocketMode=0660
|
||||||
|
Service=incus.service
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sockets.target
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
# nfpm_incus-client.yaml
|
||||||
|
|
||||||
|
name: incus-client
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "Powerful system container and virtual machine manager."
|
||||||
|
|
||||||
|
maintainer: Incus
|
||||||
|
homepage: https://github.com/lxc/incus
|
||||||
|
license: Apache-2.0
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- incus-client
|
||||||
|
|
||||||
|
recommends:
|
||||||
|
- incus-tools
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /root/go/bin/incus
|
||||||
|
dst: /usr/bin/incus
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
# nfpm_incus-tools.yaml
|
||||||
|
|
||||||
|
name: incus-tools
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "Powerful system container and virtual machine manager."
|
||||||
|
|
||||||
|
maintainer: Incus
|
||||||
|
homepage: https://github.com/lxc/incus
|
||||||
|
license: Apache-2.0
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- incus-tools
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /root/go/bin/incus-benchmark
|
||||||
|
dst: /usr/bin/incus-benchmark
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /root/go/bin/incus-migrate
|
||||||
|
dst: /usr/bin/incus-migrate
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /root/go/bin/incus-agent
|
||||||
|
dst: /usr/bin/incus-agent
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /root/go/bin/lxc-to-incus
|
||||||
|
dst: /usr/bin/lxc-to-incus
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /root/go/bin/lxd-to-incus
|
||||||
|
dst: /usr/bin/lxd-to-incus
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
# nfpm_incus.yaml
|
||||||
|
|
||||||
|
name: incus
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "Powerful system container and virtual machine manager."
|
||||||
|
|
||||||
|
maintainer: Incus
|
||||||
|
homepage: https://github.com/lxc/incus
|
||||||
|
license: Apache-2.0
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- incus
|
||||||
|
|
||||||
|
depends:
|
||||||
|
- incus-client
|
||||||
|
- lxcfs
|
||||||
|
- cowsql
|
||||||
|
- raft
|
||||||
|
|
||||||
|
recommends:
|
||||||
|
- incus-tools
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /root/go/bin/incusd
|
||||||
|
dst: /usr/libexec/incus/incusd
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /root/go/bin/incus-user
|
||||||
|
dst: /usr/libexec/incus/incus-user
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/resources/shutdown
|
||||||
|
dst: /usr/libexec/incus/shutdown
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/resources/incus.service
|
||||||
|
dst: /usr/lib/systemd/system/incus.service
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/resources/incus.socket
|
||||||
|
dst: /usr/lib/systemd/system/incus.socket
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/resources/incus-user.service
|
||||||
|
dst: /usr/lib/systemd/system/incus-user.service
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/resources/incus-user.socket
|
||||||
|
dst: /usr/lib/systemd/system/incus-user.socket
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/resources/incus-startup.service
|
||||||
|
dst: /usr/lib/systemd/system/incus-startup.service
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/resources/sysusers.d.incus.conf
|
||||||
|
dst: /usr/lib/sysusers.d/incus.conf
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/resources/tmpfiles.d.incus.conf
|
||||||
|
dst: /usr/lib/tmpfiles.d/incus.conf
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
scripts:
|
||||||
|
postinstall: ./resources/scripts/postinstall.sh
|
||||||
|
preremove: ./resources/scripts/preremove.sh
|
||||||
|
postremove: ./resources/scripts/postremove.sh
|
||||||
|
preinstall: ./resources/scripts/preinstall.sh
|
||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
systemctl daemon-reload
|
||||||
Executable
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
systemctl daemon-reload
|
||||||
|
rm -rf /usr/libexec/incus
|
||||||
|
groupdel incus-admin
|
||||||
|
groupdel incus
|
||||||
Executable
+4
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
mkdir -p /usr/libexec/incus/
|
||||||
|
groupadd --system incus-admin
|
||||||
|
groupadd --system incus
|
||||||
Executable
+6
@@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
systemctl stop incus.service
|
||||||
|
systemctl stop incus.socket
|
||||||
|
systemctl stop incus-user.service
|
||||||
|
systemctl stop incus-user.socket
|
||||||
|
systemctl stop incus-startup.service
|
||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/sh
|
||||||
|
|
||||||
|
if ! systemctl -q is-active incus.service; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec /usr/lib/incus/incusd shutdown
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
g incus-admin -
|
||||||
|
g incus -
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
d /var/cache/incus 0700 root root - -
|
||||||
|
d /var/log/incus 0700 root root - -
|
||||||
|
d /var/lib/incus 0711 root root - -
|
||||||
|
d /run/incus 0711 root root - -
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
name: jellyfin-ffmpeg-bin
|
||||||
|
github: jellyfin/jellyfin-ffmpeg
|
||||||
|
description: FFmpeg binary package optimized for Jellyfin media server
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: unkin
|
||||||
|
homepage: https://github.com/jellyfin/jellyfin-ffmpeg
|
||||||
|
license: GPL-3.0
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1.1
|
||||||
|
version: 7.1.3
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1.1
|
||||||
|
version: 7.1.3
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# Setup rpmbuild directory structure
|
||||||
|
mkdir -p /root/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
|
||||||
|
|
||||||
|
# Process the spec file template with environment variables
|
||||||
|
envsubst < /app/resources/jellyfin-ffmpeg-bin.spec.template > /root/rpmbuild/SPECS/jellyfin-ffmpeg-bin.spec
|
||||||
|
|
||||||
|
# Download source files using spectool
|
||||||
|
spectool -g -R /root/rpmbuild/SPECS/jellyfin-ffmpeg-bin.spec
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
rpmbuild -ba /root/rpmbuild/SPECS/jellyfin-ffmpeg-bin.spec
|
||||||
|
|
||||||
|
# Copy the built RPMs to output directory
|
||||||
|
cp /root/rpmbuild/RPMS/x86_64/jellyfin-ffmpeg-bin-*.rpm /app/dist/
|
||||||
|
cp /root/rpmbuild/SRPMS/jellyfin-ffmpeg-bin-*.rpm /app/dist
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
%global debug_package %{nil}
|
||||||
|
%define _missing_build_ids_terminate_build 0
|
||||||
|
%global jellyfin_release 1
|
||||||
|
|
||||||
|
|
||||||
|
Name: ${PACKAGE_NAME}
|
||||||
|
Version: ${PACKAGE_VERSION}
|
||||||
|
Release: ${PACKAGE_RELEASE}
|
||||||
|
Summary: FFmpeg for Jellyfin with custom extensions and enhancements
|
||||||
|
|
||||||
|
|
||||||
|
License: GPL-3.0-only
|
||||||
|
URL: https://github.com/jellyfin/jellyfin-ffmpeg
|
||||||
|
Source0: https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${PACKAGE_VERSION}-1/jellyfin-ffmpeg_${PACKAGE_VERSION}-1_portable_linux64-gpl.tar.xz
|
||||||
|
Source1: https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${PACKAGE_VERSION}-1/jellyfin-ffmpeg_${PACKAGE_VERSION}-1_portable_linuxarm64-gpl.tar.xz
|
||||||
|
Source2: https://raw.githubusercontent.com/jellyfin/jellyfin-ffmpeg/v${PACKAGE_VERSION}-1/LICENSE.md
|
||||||
|
Source3: https://raw.githubusercontent.com/jellyfin/jellyfin-ffmpeg/v${PACKAGE_VERSION}-1/README.md
|
||||||
|
|
||||||
|
|
||||||
|
ExclusiveArch: x86_64 aarch64
|
||||||
|
|
||||||
|
|
||||||
|
Requires: glibc >= 2.23
|
||||||
|
|
||||||
|
|
||||||
|
Recommends: intel-media-driver
|
||||||
|
Recommends: intel-mediasdk
|
||||||
|
Recommends: oneVPL-intel-gpu
|
||||||
|
Recommends: intel-compute-runtime
|
||||||
|
Recommends: libva-intel-driver
|
||||||
|
Recommends: mesa-va-drivers
|
||||||
|
Recommends: rocm-opencl
|
||||||
|
Recommends: mesa-vulkan-drivers
|
||||||
|
|
||||||
|
|
||||||
|
Conflicts: jellyfin-ffmpeg
|
||||||
|
|
||||||
|
|
||||||
|
%description
|
||||||
|
%{summary}.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
|
||||||
|
%ifarch x86_64
|
||||||
|
%setup -c -b 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifarch aarch64
|
||||||
|
%setup -c -b 1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
cp %{SOURCE2} "%{_builddir}/%{name}-%{version}/"
|
||||||
|
cp %{SOURCE3} "%{_builddir}/%{name}-%{version}/"
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
install -D --mode=755 ffmpeg "%{buildroot}%{_exec_prefix}/lib/jellyfin-ffmpeg/ffmpeg"
|
||||||
|
install -D --mode=755 ffprobe "%{buildroot}%{_exec_prefix}/lib/jellyfin-ffmpeg/ffprobe"
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE.md
|
||||||
|
%doc README.md
|
||||||
|
%{_exec_prefix}/lib/jellyfin-ffmpeg/ffmpeg
|
||||||
|
%{_exec_prefix}/lib/jellyfin-ffmpeg/ffprobe
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 10.10.7
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 10.10.7
|
||||||
|
description: jellyfin-server package
|
||||||
|
github: unknown/jellyfin-server
|
||||||
|
name: jellyfin-server
|
||||||
Executable
+21
@@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# Setup rpmbuild directory structure
|
||||||
|
mkdir -p /root/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
|
||||||
|
|
||||||
|
# Install .NET SDK for building
|
||||||
|
dnf install dotnet-sdk-8.0 -y
|
||||||
|
|
||||||
|
# Download source files using spectool
|
||||||
|
spectool -g -R /app/resources/jellyfin-server_${PACKAGE_VERSION}.spec
|
||||||
|
|
||||||
|
# Copy additional files to SOURCES
|
||||||
|
cp /app/resources/fix-envfile-path.patch /root/rpmbuild/SOURCES/fix-envfile-path.patch
|
||||||
|
cp /app/resources/tmpfiles.conf /root/rpmbuild/SOURCES/tmpfiles.conf
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
rpmbuild -ba /app/resources/jellyfin-server_${PACKAGE_VERSION}.spec
|
||||||
|
|
||||||
|
# Copy the built RPMs to output directory
|
||||||
|
cp /root/rpmbuild/RPMS/x86_64/jellyfin-server-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.x86_64.rpm /app/dist/
|
||||||
|
cp /root/rpmbuild/SRPMS/jellyfin-server-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.src.rpm /app/dist/
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
--- a/debian/conf/jellyfin.service
|
||||||
|
+++ b/debian/conf/jellyfin.service
|
||||||
|
@@ -4,7 +4,7 @@ After = network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type = simple
|
||||||
|
-EnvironmentFile = /etc/default/jellyfin
|
||||||
|
+EnvironmentFile = /etc/jellyfin/jellyfin.env
|
||||||
|
User = jellyfin
|
||||||
|
Group = jellyfin
|
||||||
|
WorkingDirectory = /var/lib/jellyfin
|
||||||
@@ -0,0 +1,127 @@
|
|||||||
|
%global debug_package %{nil}
|
||||||
|
|
||||||
|
%global jellyfin_version 10.10.7
|
||||||
|
%global jellyfin_packaging_timestamp 202504051515
|
||||||
|
%global jellyfin_packaging_version %{jellyfin_version}-%{jellyfin_packaging_timestamp}
|
||||||
|
|
||||||
|
%global dotnet_runtime %( \
|
||||||
|
if [ "%{_arch}" = "x86_64" ]; then \
|
||||||
|
echo -n "linux-x64"; \
|
||||||
|
elif [ "%{_arch}" = "aarch64" ]; then \
|
||||||
|
echo -n "linux-arm64"; \
|
||||||
|
else \
|
||||||
|
echo "Unsupported architecture: %{_arch}"; \
|
||||||
|
exit 1; \
|
||||||
|
fi \
|
||||||
|
)
|
||||||
|
|
||||||
|
Name: jellyfin-server
|
||||||
|
Version: %{jellyfin_version}
|
||||||
|
Release: 1
|
||||||
|
Summary: The Free Software Media System - Server Backend & API
|
||||||
|
|
||||||
|
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
URL: https://github.com/jellyfin/jellyfin
|
||||||
|
Source0: https://github.com/jellyfin/jellyfin/archive/refs/tags/v%{version}.tar.gz
|
||||||
|
Source1: https://github.com/jellyfin/jellyfin-packaging/archive/refs/tags/v%{jellyfin_packaging_version}.tar.gz
|
||||||
|
Source2: tmpfiles.conf
|
||||||
|
Patch0: fix-envfile-path.patch
|
||||||
|
|
||||||
|
|
||||||
|
ExclusiveArch: x86_64 aarch64
|
||||||
|
|
||||||
|
|
||||||
|
BuildRequires: dotnet-sdk-8.0
|
||||||
|
BuildRequires: git
|
||||||
|
BuildRequires: systemd-rpm-macros
|
||||||
|
|
||||||
|
|
||||||
|
Requires: aspnetcore-runtime-8.0
|
||||||
|
Requires: bash
|
||||||
|
Requires: fontconfig
|
||||||
|
Requires: jellyfin-ffmpeg-bin
|
||||||
|
Requires: sqlite
|
||||||
|
|
||||||
|
|
||||||
|
Recommends: jellyfin-web
|
||||||
|
Recommends: google-noto-fonts-common
|
||||||
|
|
||||||
|
|
||||||
|
%description
|
||||||
|
%{summary}.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
tar --extract --file="%{SOURCE1}" --directory="%{_builddir}"
|
||||||
|
pushd %{_builddir}/jellyfin-packaging-%{jellyfin_packaging_version}
|
||||||
|
patch -p1 -i "%{PATCH0}"
|
||||||
|
popd
|
||||||
|
%setup -q -n jellyfin-%{version}
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
DOTNET_CLI_TELEMETRY_OPTOUT=1 \
|
||||||
|
DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 \
|
||||||
|
DOTNET_NOLOGO=1 \
|
||||||
|
dotnet \
|
||||||
|
publish \
|
||||||
|
Jellyfin.Server \
|
||||||
|
--configuration Release \
|
||||||
|
--output builddir \
|
||||||
|
--self-contained false \
|
||||||
|
--runtime %{dotnet_runtime} \
|
||||||
|
-p:DebugSymbols=false \
|
||||||
|
-p:DebugType=none
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
install --directory "%{buildroot}%{_libdir}"
|
||||||
|
cp --recursive builddir "%{buildroot}%{_libdir}/jellyfin"
|
||||||
|
|
||||||
|
install --directory "%{buildroot}%{_bindir}"
|
||||||
|
ln --symbolic --force "%{_libdir}/jellyfin/jellyfin" "%{buildroot}%{_bindir}/jellyfin"
|
||||||
|
|
||||||
|
pushd %{_builddir}/jellyfin-packaging-%{jellyfin_packaging_version}/debian/conf
|
||||||
|
install -D --mode=644 jellyfin.service "%{buildroot}%{_unitdir}/jellyfin.service"
|
||||||
|
install -D --mode=640 jellyfin "%{buildroot}%{_sysconfdir}/jellyfin/jellyfin.env"
|
||||||
|
popd
|
||||||
|
|
||||||
|
install -D --mode=0644 "%{SOURCE2}" "%{buildroot}%{_tmpfilesdir}/jellyfin.conf"
|
||||||
|
|
||||||
|
install --directory --mode=750 "%{buildroot}%{_localstatedir}/cache/jellyfin"
|
||||||
|
install --directory --mode=750 "%{buildroot}%{_sharedstatedir}/jellyfin"
|
||||||
|
find %{buildroot}
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%{_bindir}/jellyfin
|
||||||
|
%{_libdir}/jellyfin
|
||||||
|
%{_tmpfilesdir}/jellyfin.conf
|
||||||
|
%{_unitdir}/jellyfin.service
|
||||||
|
%defattr(640,jellyfin,jellyfin,750)
|
||||||
|
%dir %{_localstatedir}/cache/jellyfin
|
||||||
|
%dir %{_sharedstatedir}/jellyfin
|
||||||
|
%dir %{_sysconfdir}/jellyfin
|
||||||
|
%config(noreplace) %{_sysconfdir}/jellyfin/jellyfin.env
|
||||||
|
|
||||||
|
|
||||||
|
%pre
|
||||||
|
getent group jellyfin > /dev/null || groupadd --system jellyfin
|
||||||
|
getent passwd jellyfin > /dev/null || \
|
||||||
|
useradd --system --home-dir "%{_sharedstatedir}/jellyfin" --gid jellyfin \
|
||||||
|
-s /sbin/nologin -c "jellyfin daemon" jellyfin
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
|
||||||
|
%post
|
||||||
|
%systemd_post jellyfin.service
|
||||||
|
|
||||||
|
|
||||||
|
%preun
|
||||||
|
%systemd_preun jellyfin.service
|
||||||
|
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%systemd_postun jellyfin.service
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
d /var/log/jellyfin 0750 jellyfin jellyfin
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 10.10.7
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 10.10.7
|
||||||
|
description: jellyfin-web package
|
||||||
|
github: unknown/jellyfin-web
|
||||||
|
name: jellyfin-web
|
||||||
Executable
+18
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# Setup rpmbuild directory structure
|
||||||
|
mkdir -p /root/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
|
||||||
|
|
||||||
|
# Install Node.js for building
|
||||||
|
dnf module enable nodejs:20 -y
|
||||||
|
dnf install nodejs npm -y
|
||||||
|
|
||||||
|
# Download source files using spectool
|
||||||
|
spectool -g -R /app/resources/jellyfin-web_${PACKAGE_VERSION}.spec
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
rpmbuild -ba /app/resources/jellyfin-web_${PACKAGE_VERSION}.spec
|
||||||
|
|
||||||
|
# Copy the built RPMs to output directory
|
||||||
|
cp /root/rpmbuild/RPMS/noarch/jellyfin-web-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.noarch.rpm /app/dist/
|
||||||
|
cp /root/rpmbuild/SRPMS/jellyfin-web-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.src.rpm /app/dist/
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
%global jellyfin_version 10.10.7
|
||||||
|
|
||||||
|
|
||||||
|
Name: jellyfin-web
|
||||||
|
Version: %{jellyfin_version}
|
||||||
|
Release: 1
|
||||||
|
Summary: The Free Software Media System - Official Web Client
|
||||||
|
|
||||||
|
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
URL: https://github.com/jellyfin/jellyfin-web
|
||||||
|
Source0: https://github.com/jellyfin/jellyfin-web/archive/refs/tags/v%{version}.tar.gz
|
||||||
|
|
||||||
|
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
|
||||||
|
BuildRequires: git
|
||||||
|
BuildRequires: nodejs
|
||||||
|
BuildRequires: npm
|
||||||
|
|
||||||
|
|
||||||
|
%description
|
||||||
|
%{summary}.
|
||||||
|
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n jellyfin-web-%{version}
|
||||||
|
|
||||||
|
|
||||||
|
%build
|
||||||
|
SKIP_PREPARE=1 npm ci --no-audit --no-fund --no-update-notifier
|
||||||
|
npm run build:production
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
install --directory "%{buildroot}%{_datadir}/jellyfin/web"
|
||||||
|
cp --recursive dist/* "%{buildroot}%{_datadir}/jellyfin/web"
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%{_datadir}/jellyfin/web
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
arch: amd64
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 0.16.0
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 0.16.0
|
||||||
|
description: Jsonnet Language Server Protocol implementation for the Jsonnet templating language.
|
||||||
|
github: grafana/jsonnet-language-server
|
||||||
|
homepage: https://github.com/grafana/jsonnet-language-server
|
||||||
|
license: Apache-2.0
|
||||||
|
maintainer: Grafana Labs
|
||||||
|
name: jsonnet-language-server
|
||||||
|
platform: linux
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download the required files
|
||||||
|
curl -L -o /app/jsonnet-language-server https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/grafana/jsonnet-language-server/releases/download/v${PACKAGE_VERSION}/jsonnet-language-server_${PACKAGE_VERSION}_linux_amd64
|
||||||
|
|
||||||
|
# Make the binary executable
|
||||||
|
chmod +x /app/jsonnet-language-server
|
||||||
|
|
||||||
|
# Process the nfpm.yaml template with environment variables
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- jsonnet-language-server
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- jsonnet-language-server
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/jsonnet-language-server
|
||||||
|
dst: /usr/bin/jsonnet-language-server
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
arch: amd64
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 0.21.0
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 0.21.0
|
||||||
|
description: Linter for Jsonnet
|
||||||
|
github: google/go-jsonnet
|
||||||
|
homepage: https://github.com/google/go-jsonnet
|
||||||
|
license: Apache-2.0
|
||||||
|
maintainer: Google
|
||||||
|
name: jsonnet-lint
|
||||||
|
platform: linux
|
||||||
Executable
+23
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Install dependencies and Go 1.24
|
||||||
|
dnf install -y wget git make
|
||||||
|
|
||||||
|
# Download and install Go 1.24.7
|
||||||
|
wget https://go.dev/dl/go1.24.7.linux-amd64.tar.gz
|
||||||
|
rm -rf /usr/local/go
|
||||||
|
tar -C /usr/local -xzf go1.24.7.linux-amd64.tar.gz
|
||||||
|
export PATH=/usr/local/go/bin:$PATH
|
||||||
|
|
||||||
|
# Verify Go installation
|
||||||
|
go version
|
||||||
|
|
||||||
|
# Build jsonnet-lint binary
|
||||||
|
GOBIN=/app go install github.com/google/go-jsonnet/cmd/jsonnet-lint@v${PACKAGE_VERSION}
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
# Build RPM package
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- jsonnet-lint
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- jsonnet-lint
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/jsonnet-lint
|
||||||
|
dst: /usr/bin/jsonnet-lint
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
arch: amd64
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 0.21.0
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 0.21.0
|
||||||
|
description: A data templating language
|
||||||
|
github: google/go-jsonnet
|
||||||
|
homepage: https://github.com/google/go-jsonnet
|
||||||
|
license: Apache-2.0
|
||||||
|
maintainer: Google
|
||||||
|
name: jsonnet
|
||||||
|
platform: linux
|
||||||
Executable
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Install dependencies and Go 1.24
|
||||||
|
dnf install -y wget git make
|
||||||
|
|
||||||
|
# Download and install Go 1.24.7
|
||||||
|
wget https://go.dev/dl/go1.24.7.linux-amd64.tar.gz
|
||||||
|
rm -rf /usr/local/go
|
||||||
|
tar -C /usr/local -xzf go1.24.7.linux-amd64.tar.gz
|
||||||
|
export PATH=/usr/local/go/bin:$PATH
|
||||||
|
|
||||||
|
# Verify Go installation
|
||||||
|
go version
|
||||||
|
|
||||||
|
# Build jsonnet binaries
|
||||||
|
GOBIN=/app go install github.com/google/go-jsonnet/cmd/jsonnet@v${PACKAGE_VERSION}
|
||||||
|
GOBIN=/app go install github.com/google/go-jsonnet/cmd/jsonnetfmt@v${PACKAGE_VERSION}
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
# Build RPM package
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- jsonnet
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- jsonnet
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/jsonnet
|
||||||
|
dst: /usr/bin/jsonnet
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
- src: /app/jsonnetfmt
|
||||||
|
dst: /usr/bin/jsonnetfmt
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
name: kubeconform
|
||||||
|
github: yannh/kubeconform
|
||||||
|
description: A FAST Kubernetes manifests validator, with support for Custom Resources!
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: Yann Hamon
|
||||||
|
homepage: https://github.com/yannh/kubeconform
|
||||||
|
license: Apache-2.0
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 0.7.0
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 0.7.0
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download kubeconform binary
|
||||||
|
wget -O /app/kubeconform-linux-amd64.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/yannh/kubeconform/releases/download/v${PACKAGE_VERSION}/kubeconform-linux-amd64.tar.gz
|
||||||
|
|
||||||
|
# Extract the binary
|
||||||
|
tar -xzf /app/kubeconform-linux-amd64.tar.gz -C /app/
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- kubeconform
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- kubeconform
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/kubeconform
|
||||||
|
dst: /usr/bin/kubeconform
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
name: kustomize
|
||||||
|
github: kubernetes-sigs/kustomize
|
||||||
|
description: Kubernetes native configuration management
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: kubernetes-sigs
|
||||||
|
homepage: https://github.com/kubernetes-sigs/kustomize
|
||||||
|
license: Apache-2.0
|
||||||
|
github_release_pattern: ^kustomize/v.*
|
||||||
|
builds:
|
||||||
|
- repository: [almalinux/el8]
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
version: 5.8.1
|
||||||
|
- repository: [almalinux/el9]
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
version: 5.8.1
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download kustomize binary
|
||||||
|
wget -O /app/kustomize_v${PACKAGE_VERSION}_linux_amd64.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${PACKAGE_VERSION}/kustomize_v${PACKAGE_VERSION}_linux_amd64.tar.gz
|
||||||
|
|
||||||
|
# Extract the binary
|
||||||
|
tar -xzf /app/kustomize_v${PACKAGE_VERSION}_linux_amd64.tar.gz -C /app/
|
||||||
|
|
||||||
|
# Process nfpm.yaml with envsubst
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- kustomize
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- kustomize
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/kustomize
|
||||||
|
dst: /usr/bin/kustomize
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal (optional)
|
||||||
|
# scripts:
|
||||||
|
# preinstall: ./scripts/preinstall.sh
|
||||||
|
# postinstall: ./scripts/postinstall.sh
|
||||||
|
# preremove: ./scripts/preremove.sh
|
||||||
|
# postremove: ./scripts/postremove.sh
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
arch: amd64
|
||||||
|
builds:
|
||||||
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el8]
|
||||||
|
version: 7.3.71
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository: [almalinux/el9]
|
||||||
|
version: 7.3.71
|
||||||
|
description: FoundationDB client library - Shared library for FoundationDB applications
|
||||||
|
github: apple/foundationdb
|
||||||
|
homepage: https://github.com/apple/foundationdb
|
||||||
|
license: Apache-2.0
|
||||||
|
maintainer: FoundationDB Community
|
||||||
|
name: libfoundationdb
|
||||||
|
platform: linux
|
||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Download the required library
|
||||||
|
curl -L -o /app/libfdb_c.so https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/apple/foundationdb/releases/download/${PACKAGE_VERSION}/libfdb_c.x86_64.so
|
||||||
|
|
||||||
|
# Make the library readable
|
||||||
|
chmod 755 /app/libfdb_c.so
|
||||||
|
|
||||||
|
# Process the nfpm.yaml template with environment variables
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- libfoundationdb
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- libfoundationdb
|
||||||
|
- libfdb_c.so()(64bit)
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/libfdb_c.so
|
||||||
|
dst: /usr/lib64/libfdb_c.so
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal
|
||||||
|
scripts:
|
||||||
|
postinstall: /app/resources/scripts/postinstall.sh
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Update the dynamic linker cache to include the new library
|
||||||
|
ldconfig
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
name: nfpm
|
||||||
|
github: goreleaser/nfpm
|
||||||
|
description: A zero dependencies, simple deb, rpm, apk, ipk, and arch linux packager
|
||||||
|
written in Go.
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: GoReleaser
|
||||||
|
homepage: https://nfpm.goreleaser.com/
|
||||||
|
license: MIT
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 2.44.1
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 2.44.1
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user