Standardize all RPM packages to use a consistent build pattern: - Simple Dockerfiles that copy resources/ and call build.sh - Move all build logic to resources/build.sh scripts - Consolidate nfpm.yaml and scripts into resources/ directory - Update base image to almalinux9-rpmbuilder for consistency Changes: - Refactored 37 packages total (simple + complex) - HashiCorp tools: consul, vault, terraform, terragrunt, packer, nomad, nomad-autoscaler - Development tools: g10k, etcd, nfpm, ruff, uv, unrar, nzbget, boilerplate - VictoriaMetrics: vlutils, vmutils, victoria-logs - Network tools: cni-plugins, consul-cni, unkin-ca-certificates - Jellyfin suite: jellyfin-web, jellyfin-server, jellyfin-ffmpeg-bin - System packages: puppet-initial, incus This standardization improves maintainability and consistency across the entire RPM build system while preserving all existing functionality.
21 lines
806 B
Bash
Executable File
21 lines
806 B
Bash
Executable File
#!/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/ |