Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b3ba980f9f | |||
| 8d1aa34f0f | |||
| 288dfe211b | |||
| 0133114aac | |||
| 6813eb84ce | |||
| 2de946b150 | |||
| e07235ca98 |
@@ -10,15 +10,17 @@ jobs:
|
|||||||
runs-on: almalinux-8
|
runs-on: almalinux-8
|
||||||
container:
|
container:
|
||||||
image: git.unkin.net/unkin/almalinux8-actionsdind:latest
|
image: git.unkin.net/unkin/almalinux8-actionsdind:latest
|
||||||
options: --privileged
|
options: "--privileged --volume /etc/pki/tls/vault:/etc/pki/tls/vault:ro"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Build Packages
|
- name: Build Packages
|
||||||
|
env:
|
||||||
|
VAULT_ROLE_ID: ${{ secrets.RPMBUILDER_VAULT_ROLEID }}
|
||||||
run: |
|
run: |
|
||||||
make all
|
make all DISTRO=el/8
|
||||||
|
|
||||||
- name: Show RPMs
|
- name: Show RPMs
|
||||||
run: |
|
run: |
|
||||||
@@ -34,15 +36,17 @@ jobs:
|
|||||||
runs-on: almalinux-8
|
runs-on: almalinux-8
|
||||||
container:
|
container:
|
||||||
image: git.unkin.net/unkin/almalinux9-actionsdind:latest
|
image: git.unkin.net/unkin/almalinux9-actionsdind:latest
|
||||||
options: --privileged
|
options: "--privileged --volume /etc/pki/tls/vault:/etc/pki/tls/vault:ro"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Build Packages
|
- name: Build Packages
|
||||||
|
env:
|
||||||
|
VAULT_ROLE_ID: ${{ secrets.RPMBUILDER_VAULT_ROLEID }}
|
||||||
run: |
|
run: |
|
||||||
make all
|
make all DISTRO=el/9
|
||||||
|
|
||||||
- name: Show RPMs
|
- name: Show RPMs
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -1 +1,3 @@
|
|||||||
dist
|
dist
|
||||||
|
env
|
||||||
|
.claude
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
ARG BASE_IMAGE=git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
FROM ${BASE_IMAGE}
|
||||||
|
|
||||||
# Create output directory for RPMs
|
# Create output directory for RPMs
|
||||||
RUN mkdir -p /app/dist
|
RUN mkdir -p /app/dist
|
||||||
@@ -1,58 +1,85 @@
|
|||||||
# 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 ?= el/9 # Default to el/9 if not specified
|
||||||
|
|
||||||
# Automatically find all package/version directories
|
# Automatically find all packages with metadata.yaml
|
||||||
PACKAGES := $(shell find $(RPMS_DIR) -mindepth 2 -maxdepth 2 -type d | sed "s|$(RPMS_DIR)/||" | grep -Ev '(scripts|/resources)')
|
PACKAGES := $(shell find $(ROOT_DIR)/rpms -mindepth 1 -maxdepth 1 -type d -exec test -f {}/metadata.yaml \; -print | xargs -n1 basename | sort)
|
||||||
|
|
||||||
# Default target to build all packages and versions
|
# Default target to build all packages
|
||||||
.PHONY: all list cache build clean
|
.PHONY: all list build clean
|
||||||
all: cache $(PACKAGES)
|
all: build-all
|
||||||
|
|
||||||
|
# List all available packages
|
||||||
list:
|
list:
|
||||||
@echo "Builds:"
|
@echo "Available packages:"
|
||||||
@for package in $(PACKAGES); do \
|
@for package in $(PACKAGES); do \
|
||||||
echo " '$$package'"; \
|
echo " $$package"; \
|
||||||
done
|
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) --all --distro $(DISTRO)
|
||||||
|
|
||||||
# Build specific package/version
|
# 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) --package $@ --distro $(DISTRO)
|
||||||
echo "Starting build $$PACKAGE_NAME/$$PACKAGE_VERSION" && \
|
|
||||||
$(MAKE) build PACKAGE_NAME=$$PACKAGE_NAME PACKAGE_VERSION=$$PACKAGE_VERSION
|
|
||||||
|
|
||||||
# Build target
|
# Build specific package with version/release override
|
||||||
build:
|
build:
|
||||||
@mkdir -p $(ROOT_DIR)/dist/$(PACKAGE_NAME)/
|
@if [ -z "$(PACKAGE_NAME)" ]; then \
|
||||||
@cd $(RPMS_DIR)/$(PACKAGE_NAME) && \
|
echo "Error: PACKAGE_NAME not specified"; \
|
||||||
export PACKAGE_RELEASE=$$(cat $(PACKAGE_VERSION)/release) && \
|
echo "Usage: make build PACKAGE_NAME=package [PACKAGE_VERSION=version] [PACKAGE_RELEASE=release]"; \
|
||||||
export PACKAGE_FULL_NAME=$(PACKAGE_NAME)-$(PACKAGE_VERSION)-$$PACKAGE_RELEASE && \
|
exit 1; \
|
||||||
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
|
fi
|
||||||
|
@if [ -n "$(PACKAGE_VERSION)" ] && [ -n "$(PACKAGE_RELEASE)" ]; then \
|
||||||
|
echo "Building $(PACKAGE_NAME) with explicit version $(PACKAGE_VERSION)-$(PACKAGE_RELEASE) for distro $(DISTRO)"; \
|
||||||
|
$(BUILD_TOOL) --package $(PACKAGE_NAME) --version $(PACKAGE_VERSION) --release $(PACKAGE_RELEASE) --distro $(DISTRO); \
|
||||||
|
else \
|
||||||
|
echo "Building $(PACKAGE_NAME) using metadata.yaml for distro $(DISTRO)"; \
|
||||||
|
$(BUILD_TOOL) --package $(PACKAGE_NAME) --distro $(DISTRO); \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dry run - show what would be built without building
|
||||||
|
dry-run:
|
||||||
|
@echo "Dry run - showing what would be built for distro $(DISTRO):"
|
||||||
|
$(BUILD_TOOL) --all --distro $(DISTRO) --dry-run
|
||||||
|
|
||||||
# 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 $*
|
||||||
|
|
||||||
|
# Help target
|
||||||
|
help:
|
||||||
|
@echo "Available targets:"
|
||||||
|
@echo " all - Build all packages (default)"
|
||||||
|
@echo " list - List all available packages"
|
||||||
|
@echo " build-all - Build all packages using Python tooling"
|
||||||
|
@echo " <package> - Build specific package (e.g., 'make consul')"
|
||||||
|
@echo " build - Build with explicit PACKAGE_NAME, PACKAGE_VERSION, PACKAGE_RELEASE"
|
||||||
|
@echo " dry-run - Show what would be built without building"
|
||||||
|
@echo " clean - Remove build artifacts"
|
||||||
|
@echo " update - Check all packages for GitHub release updates"
|
||||||
|
@echo " update-<pkg> - Check specific package for GitHub release updates"
|
||||||
|
@echo " help - Show this help message"
|
||||||
|
@echo ""
|
||||||
|
@echo "Examples:"
|
||||||
|
@echo " make consul # Build consul using metadata.yaml"
|
||||||
|
@echo " make build PACKAGE_NAME=consul # Build consul using metadata.yaml"
|
||||||
|
@echo " make build PACKAGE_NAME=consul PACKAGE_VERSION=1.21.1 PACKAGE_RELEASE=1"
|
||||||
|
@echo " make update-consul # Check consul for GitHub updates"
|
||||||
|
@echo " make dry-run # Show what would be built"
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy nfpm.yaml from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
2
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy nfpm.yaml from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
3
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
# Start with the AlmaLinux 9 base image
|
|
||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
name: jsonnet-lint
|
||||||
|
release: 1
|
||||||
|
version: 0.21.0
|
||||||
|
build:
|
||||||
|
- distro: el/8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
- distro: el/9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
github: google/go-jsonnet
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
# Start with the AlmaLinux 9 base image
|
|
||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
name: jsonnet
|
||||||
|
release: 1
|
||||||
|
version: 0.21.0
|
||||||
|
build:
|
||||||
|
- distro: el/8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
- distro: el/9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
github: google/go-jsonnet
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
name: libfoundationdb
|
||||||
|
release: 1
|
||||||
|
version: 7.3.71
|
||||||
|
github: apple/foundationdb
|
||||||
|
build:
|
||||||
|
- distro: el/8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
- distro: el/9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# Download the required library
|
||||||
|
curl -L -o /app/libfdb_c.so https://github.com/apple/foundationdb/releases/download/${PACKAGE_VERSION}/libfdb_c.x86_64.so
|
||||||
|
|
||||||
|
# Make the library readable
|
||||||
|
chmod 755 /app/libfdb_c.so
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: libfoundationdb
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "FoundationDB client library - Shared library for FoundationDB applications"
|
||||||
|
|
||||||
|
maintainer: FoundationDB Community
|
||||||
|
homepage: https://github.com/apple/foundationdb
|
||||||
|
license: Apache-2.0
|
||||||
|
|
||||||
|
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
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy nfpm.yaml from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy nfpm.yaml from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
6
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
name: stalwart-cli
|
||||||
|
release: 1
|
||||||
|
version: 0.13.4
|
||||||
|
github: stalwartlabs/stalwart
|
||||||
|
build:
|
||||||
|
- distro: el/8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
- distro: el/9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# Download the required files
|
||||||
|
curl -L -o /app/stalwart-cli.tar.gz https://github.com/stalwartlabs/stalwart/releases/download/v${PACKAGE_VERSION}/stalwart-cli-x86_64-unknown-linux-gnu.tar.gz
|
||||||
|
|
||||||
|
# Extract the binary
|
||||||
|
tar -xzf /app/stalwart-cli.tar.gz -C /app
|
||||||
|
|
||||||
|
# Make the binary executable
|
||||||
|
chmod +x /app/stalwart-cli
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: stalwart-cli
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "Stalwart CLI - Command line interface for Stalwart Mail Server"
|
||||||
|
|
||||||
|
maintainer: Stalwart Labs
|
||||||
|
homepage: https://stalw.art
|
||||||
|
license: AGPL-3.0
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- stalwart-cli
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- stalwart-cli
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/stalwart-cli
|
||||||
|
dst: /usr/bin/stalwart-cli
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
name: stalwart-foundationdb
|
||||||
|
release: 1
|
||||||
|
version: 0.13.4
|
||||||
|
github: stalwartlabs/stalwart
|
||||||
|
build:
|
||||||
|
- distro: el/8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
- distro: el/9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# Download the required files
|
||||||
|
curl -L -o /app/stalwart-foundationdb.tar.gz https://github.com/stalwartlabs/stalwart/releases/download/v${PACKAGE_VERSION}/stalwart-foundationdb-x86_64-unknown-linux-gnu.tar.gz
|
||||||
|
|
||||||
|
# Extract the binary
|
||||||
|
tar -xzf /app/stalwart-foundationdb.tar.gz -C /app
|
||||||
|
|
||||||
|
# Make the binary executable
|
||||||
|
chmod +x /app/stalwart-foundationdb
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: stalwart-foundationdb
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "Stalwart Mail Server with FoundationDB support - A modern, secure JMAP, IMAP and SMTP mail server"
|
||||||
|
|
||||||
|
maintainer: Stalwart Labs
|
||||||
|
homepage: https://stalw.art
|
||||||
|
license: AGPL-3.0
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- stalwart-foundationdb
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- stalwart-foundationdb
|
||||||
|
|
||||||
|
conflicts:
|
||||||
|
- stalwart
|
||||||
|
|
||||||
|
depends:
|
||||||
|
- libfoundationdb
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/stalwart-foundationdb
|
||||||
|
dst: /opt/stalwart/bin/stalwart-foundationdb
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: stalwart
|
||||||
|
group: stalwart
|
||||||
|
- src: /app/resources/stalwart-foundationdb.service
|
||||||
|
dst: /usr/lib/systemd/system/stalwart-foundationdb.service
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal
|
||||||
|
scripts:
|
||||||
|
preinstall: /app/resources/scripts/preinstall.sh
|
||||||
|
postinstall: /app/resources/scripts/postinstall.sh
|
||||||
|
preremove: /app/resources/scripts/preremove.sh
|
||||||
|
postremove: /app/resources/scripts/postremove.sh
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Create default configuration if it doesn't exist
|
||||||
|
if [ ! -f /opt/stalwart/etc/config.toml ]; then
|
||||||
|
cat > /opt/stalwart/etc/config.toml << 'EOF'
|
||||||
|
# Stalwart Mail Server Configuration with FoundationDB
|
||||||
|
# This is a minimal configuration file. Please customize according to your needs.
|
||||||
|
# Full documentation: https://stalw.art/docs/
|
||||||
|
|
||||||
|
[server]
|
||||||
|
hostname = "localhost"
|
||||||
|
|
||||||
|
[server.listener.smtp]
|
||||||
|
bind = ["127.0.0.1:25"]
|
||||||
|
protocol = "smtp"
|
||||||
|
|
||||||
|
[server.listener.submission]
|
||||||
|
bind = ["127.0.0.1:587"]
|
||||||
|
protocol = "smtp"
|
||||||
|
|
||||||
|
[server.listener.imap]
|
||||||
|
bind = ["127.0.0.1:143"]
|
||||||
|
protocol = "imap"
|
||||||
|
|
||||||
|
[server.listener.http]
|
||||||
|
bind = ["[::]:8080"]
|
||||||
|
protocol = "http"
|
||||||
|
|
||||||
|
[storage]
|
||||||
|
data = "foundationdb"
|
||||||
|
fts = "foundationdb"
|
||||||
|
blob = "fs"
|
||||||
|
lookup = "foundationdb"
|
||||||
|
directory = "internal"
|
||||||
|
|
||||||
|
[store."foundationdb"]
|
||||||
|
type = "foundationdb"
|
||||||
|
cluster = "/etc/foundationdb/fdb.cluster"
|
||||||
|
|
||||||
|
[store."fs"]
|
||||||
|
type = "fs"
|
||||||
|
path = "/var/lib/stalwart/blobs"
|
||||||
|
|
||||||
|
[directory."internal"]
|
||||||
|
type = "internal"
|
||||||
|
store = "foundationdb"
|
||||||
|
|
||||||
|
[authentication.fallback-admin]
|
||||||
|
user = "admin"
|
||||||
|
secret = "$6$PAEtTGE/jbt9B/FQ$lYXn/whSh7rzegMdA6W8vuw2E/3IDFjpb0edXRqrl1d8i2KQF6Qm.ESmZ3j5jIHCTPSIH3JYBvIgvIbk9sH3p1"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chown stalwart:stalwart /opt/stalwart/etc/config.toml
|
||||||
|
chmod 600 /opt/stalwart/etc/config.toml
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Reload systemd
|
||||||
|
systemctl daemon-reload
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Reload systemd after service file removal
|
||||||
|
systemctl daemon-reload
|
||||||
|
|
||||||
|
# Note: We don't remove user data, logs, or configuration files
|
||||||
|
# to preserve user data in case of reinstallation
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Create stalwart user and group
|
||||||
|
if ! getent group stalwart >/dev/null; then
|
||||||
|
groupadd -r stalwart
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! getent passwd stalwart >/dev/null; then
|
||||||
|
useradd -r -g stalwart -d /opt/stalwart -s /sbin/nologin -c "Stalwart Mail Server" stalwart
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create required directories
|
||||||
|
mkdir -p /opt/stalwart/{bin,etc,data,logs}
|
||||||
|
mkdir -p /var/lib/stalwart
|
||||||
|
mkdir -p /var/log/stalwart
|
||||||
|
|
||||||
|
# Set ownership
|
||||||
|
chown -R stalwart:stalwart /opt/stalwart
|
||||||
|
chown -R stalwart:stalwart /var/lib/stalwart
|
||||||
|
chown -R stalwart:stalwart /var/log/stalwart
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Stop and disable the service if it's running
|
||||||
|
if systemctl is-enabled stalwart-foundationdb.service >/dev/null 2>&1; then
|
||||||
|
systemctl stop stalwart-foundationdb.service
|
||||||
|
systemctl disable stalwart-foundationdb.service
|
||||||
|
fi
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Stalwart Mail Server with FoundationDB
|
||||||
|
After=network.target foundationdb.service
|
||||||
|
Requires=foundationdb.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=stalwart
|
||||||
|
Group=stalwart
|
||||||
|
ExecStart=/opt/stalwart/bin/stalwart-foundationdb --config=/opt/stalwart/etc/config.toml
|
||||||
|
Restart=always
|
||||||
|
RestartSec=10
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
SyslogIdentifier=stalwart-foundationdb
|
||||||
|
|
||||||
|
# Security settings
|
||||||
|
NoNewPrivileges=true
|
||||||
|
PrivateTmp=true
|
||||||
|
PrivateDevices=true
|
||||||
|
ProtectHome=true
|
||||||
|
ProtectSystem=strict
|
||||||
|
ReadWritePaths=/var/lib/stalwart /var/log/stalwart /opt/stalwart/data
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
name: stalwart
|
||||||
|
release: 1
|
||||||
|
version: 0.13.4
|
||||||
|
github: stalwartlabs/stalwart
|
||||||
|
build:
|
||||||
|
- distro: el/8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
- distro: el/9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# Download the required files
|
||||||
|
curl -L -o /app/stalwart.tar.gz https://github.com/stalwartlabs/stalwart/releases/download/v${PACKAGE_VERSION}/stalwart-x86_64-unknown-linux-gnu.tar.gz
|
||||||
|
|
||||||
|
# Extract the binary
|
||||||
|
tar -xzf /app/stalwart.tar.gz -C /app
|
||||||
|
|
||||||
|
# Make the binary executable
|
||||||
|
chmod +x /app/stalwart
|
||||||
|
|
||||||
|
# Build the RPM
|
||||||
|
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: stalwart
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "Stalwart Mail Server - A modern, secure JMAP, IMAP and SMTP mail server"
|
||||||
|
|
||||||
|
maintainer: Stalwart Labs
|
||||||
|
homepage: https://stalw.art
|
||||||
|
license: AGPL-3.0
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- stalwart
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- stalwart
|
||||||
|
|
||||||
|
conflicts:
|
||||||
|
- stalwart-foundationdb
|
||||||
|
|
||||||
|
# Files to include in the package
|
||||||
|
contents:
|
||||||
|
- src: /app/stalwart
|
||||||
|
dst: /opt/stalwart/bin/stalwart
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: stalwart
|
||||||
|
group: stalwart
|
||||||
|
- src: /app/resources/stalwart.service
|
||||||
|
dst: /usr/lib/systemd/system/stalwart.service
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
# Scripts to run during installation/removal
|
||||||
|
scripts:
|
||||||
|
preinstall: /app/resources/scripts/preinstall.sh
|
||||||
|
postinstall: /app/resources/scripts/postinstall.sh
|
||||||
|
preremove: /app/resources/scripts/preremove.sh
|
||||||
|
postremove: /app/resources/scripts/postremove.sh
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Create default configuration if it doesn't exist
|
||||||
|
if [ ! -f /opt/stalwart/etc/config.toml ]; then
|
||||||
|
cat > /opt/stalwart/etc/config.toml << 'EOF'
|
||||||
|
# Stalwart Mail Server Configuration
|
||||||
|
# This is a minimal configuration file. Please customize according to your needs.
|
||||||
|
# Full documentation: https://stalw.art/docs/
|
||||||
|
|
||||||
|
[server]
|
||||||
|
hostname = "localhost"
|
||||||
|
|
||||||
|
[server.listener.smtp]
|
||||||
|
bind = ["127.0.0.1:25"]
|
||||||
|
protocol = "smtp"
|
||||||
|
|
||||||
|
[server.listener.submission]
|
||||||
|
bind = ["127.0.0.1:587"]
|
||||||
|
protocol = "smtp"
|
||||||
|
|
||||||
|
[server.listener.imap]
|
||||||
|
bind = ["127.0.0.1:143"]
|
||||||
|
protocol = "imap"
|
||||||
|
|
||||||
|
[server.listener.http]
|
||||||
|
bind = ["[::]:8080"]
|
||||||
|
protocol = "http"
|
||||||
|
|
||||||
|
[storage]
|
||||||
|
data = "sqlite"
|
||||||
|
fts = "sqlite"
|
||||||
|
blob = "fs"
|
||||||
|
lookup = "sqlite"
|
||||||
|
directory = "internal"
|
||||||
|
|
||||||
|
[store."sqlite"]
|
||||||
|
type = "sqlite"
|
||||||
|
path = "/var/lib/stalwart/stalwart.db"
|
||||||
|
|
||||||
|
[store."fs"]
|
||||||
|
type = "fs"
|
||||||
|
path = "/var/lib/stalwart/blobs"
|
||||||
|
|
||||||
|
[directory."internal"]
|
||||||
|
type = "internal"
|
||||||
|
store = "sqlite"
|
||||||
|
|
||||||
|
[authentication.fallback-admin]
|
||||||
|
user = "admin"
|
||||||
|
secret = "$6$PAEtTGE/jbt9B/FQ$lYXn/whSh7rzegMdA6W8vuw2E/3IDFjpb0edXRqrl1d8i2KQF6Qm.ESmZ3j5jIHCTPSIH3JYBvIgvIbk9sH3p1"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chown stalwart:stalwart /opt/stalwart/etc/config.toml
|
||||||
|
chmod 600 /opt/stalwart/etc/config.toml
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Reload systemd
|
||||||
|
systemctl daemon-reload
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Reload systemd after service file removal
|
||||||
|
systemctl daemon-reload
|
||||||
|
|
||||||
|
# Note: We don't remove user data, logs, or configuration files
|
||||||
|
# to preserve user data in case of reinstallation
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Create stalwart user and group
|
||||||
|
if ! getent group stalwart >/dev/null; then
|
||||||
|
groupadd -r stalwart
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! getent passwd stalwart >/dev/null; then
|
||||||
|
useradd -r -g stalwart -d /opt/stalwart -s /sbin/nologin -c "Stalwart Mail Server" stalwart
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create required directories
|
||||||
|
mkdir -p /opt/stalwart/{bin,etc,data,logs}
|
||||||
|
mkdir -p /var/lib/stalwart
|
||||||
|
mkdir -p /var/log/stalwart
|
||||||
|
|
||||||
|
# Set ownership
|
||||||
|
chown -R stalwart:stalwart /opt/stalwart
|
||||||
|
chown -R stalwart:stalwart /var/lib/stalwart
|
||||||
|
chown -R stalwart:stalwart /var/log/stalwart
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Stop and disable the service if it's running
|
||||||
|
if systemctl is-enabled stalwart.service >/dev/null 2>&1; then
|
||||||
|
systemctl stop stalwart.service
|
||||||
|
systemctl disable stalwart.service
|
||||||
|
fi
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Stalwart Mail Server
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=stalwart
|
||||||
|
Group=stalwart
|
||||||
|
ExecStart=/opt/stalwart/bin/stalwart --config=/opt/stalwart/etc/config.toml
|
||||||
|
Restart=always
|
||||||
|
RestartSec=10
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
SyslogIdentifier=stalwart
|
||||||
|
|
||||||
|
# Security settings
|
||||||
|
NoNewPrivileges=true
|
||||||
|
PrivateTmp=true
|
||||||
|
PrivateDevices=true
|
||||||
|
ProtectHome=true
|
||||||
|
ProtectSystem=strict
|
||||||
|
ReadWritePaths=/var/lib/stalwart /var/log/stalwart /opt/stalwart/data
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
|
|
||||||
# Create output directory for RPMs
|
|
||||||
RUN mkdir -p /app/dist
|
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ARG PACKAGE_RELEASE
|
|
||||||
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
|
|
||||||
ARG PACKAGE_VERSION
|
|
||||||
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
|
|
||||||
|
|
||||||
# Copy resources from the context into the container
|
|
||||||
COPY resources /app/resources
|
|
||||||
|
|
||||||
# Default command to build RPMs
|
|
||||||
CMD /app/resources/build.sh
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user