130 Commits

Author SHA1 Message Date
unkinben b3ba980f9f refactor: modernise RPM builder with Python tooling
Build / build-8 (pull_request) Failing after 7s
Build / build-9 (pull_request) Failing after 8s
- Replace Makefile version/release file system with metadata.yaml only
- Add Python build automation (./tools/build) with Gitea API integration
- Add GitHub release updater (./tools/update-gh) for version management
- Centralize Dockerfiles into single parameterized Dockerfile
- Remove 54+ individual package Dockerfiles and version directories
- Update Makefile to use new Python tooling
- Add GITEA_API_TOKEN validation to prevent duplicate builds
- Support both explicit version/release args and metadata.yaml reading
2025-11-30 03:39:58 +11:00
unkinben 8d1aa34f0f Merge pull request 'feat: add tflint 0.59.1' (#69) from benvin/tflint into master
Deploy / deploy-8 (push) Successful in 4s
Deploy / deploy-9 (push) Successful in 5s
Reviewed-on: #69
2025-11-16 13:36:54 +11:00
unkinben 288dfe211b feat: add tflint 0.59.1
Build / build-8 (pull_request) Successful in 50s
Build / build-9 (pull_request) Successful in 2m0s
- builds the tflint package
2025-11-16 13:24:50 +11:00
unkinben 0133114aac Merge pull request 'feat: add default settings to stalwart' (#68) from benvin/stalwart_default_settings into master
Deploy / deploy-8 (push) Successful in 5s
Deploy / deploy-9 (push) Successful in 7s
Reviewed-on: #68
2025-10-19 20:54:15 +11:00
unkinben 6813eb84ce feat: add default settings to stalwart
Build / build-8 (pull_request) Successful in 1m51s
Build / build-9 (pull_request) Successful in 1m59s
- bump release
- add default admin user/pass
- change http service to listen on all interfaces
2025-10-19 20:44:04 +11:00
unkinben 2de946b150 Merge pull request 'feat: add Stalwart Mail Server and FoundationDB library packages' (#67) from benvin/stalwart into master
Deploy / deploy-8 (push) Successful in 9s
Deploy / deploy-9 (push) Successful in 10s
Reviewed-on: #67
2025-10-19 18:35:03 +11:00
unkinben e07235ca98 feat: add Stalwart Mail Server and FoundationDB library packages
Build / build-8 (pull_request) Successful in 58s
Build / build-9 (pull_request) Successful in 2m17s
- add stalwart: main mail server with systemd integration and user management
- add stalwart-cli: command line interface tool for server administration
- add stalwart-foundationdb: FoundationDB-enabled version with proper dependencies
- add libfoundationdb: FoundationDB client library (libfdb_c.so) package

All packages include proper conflict resolution, systemd services, and follow
repository packaging conventions. stalwart and stalwart-foundationdb are
mutually exclusive to prevent installation conflicts.
2025-10-19 18:08:33 +11:00
unkinben fdf9a11a4c Merge pull request 'feat: add OpenBao plugin RPMs for consul and nomad secrets engines' (#66) from benvin/openbao-plugins into master
Deploy / deploy-9 (push) Failing after 3s
Deploy / deploy-8 (push) Successful in 6s
Reviewed-on: #66
2025-10-17 15:09:24 +11:00
unkinben 086d9365d4 feat: add OpenBao plugin RPMs for consul and nomad secrets engines
Build / build-9 (pull_request) Successful in 42s
Build / build-8 (pull_request) Successful in 2m2s
- Add openbao-plugin-secret-consul v0.1.0 RPM configuration
- Add openbao-plugin-secret-nomad v0.1.4 RPM configuration
- Add openbao-plugins v1.0.0 meta package that installs both plugins
- Plugins install to /opt/openbao-plugins directory
- Include pre-install scripts to create plugin directory
- Support for EL8 and EL9 distributions
2025-10-17 14:59:40 +11:00
unkinben 9d68b886ec Merge pull request 'feat: upgrade terragrunt to version 0.90.0' (#65) from feat/upgrade-terragrunt-0.90.0 into master
Deploy / deploy-8 (push) Successful in 5s
Deploy / deploy-9 (push) Successful in 5s
Reviewed-on: #65
2025-10-12 18:08:04 +11:00
unkinben 68b211624a feat: upgrade terragrunt to version 0.90.0
Build / build-9 (pull_request) Successful in 1m45s
Build / build-8 (pull_request) Successful in 1m53s
Updates terragrunt from version 0.81.0 to 0.90.0 with verified build success.
2025-10-12 18:00:27 +11:00
unkinben 46c5cf838a Merge pull request 'feat: add vals package configuration' (#64) from feat/add-vals-package into master
Deploy / deploy-9 (push) Successful in 5s
Deploy / deploy-8 (push) Successful in 6s
Reviewed-on: #64
2025-10-04 14:35:56 +10:00
unkinben 699187341b feat: add vals package configuration
Build / build-9 (pull_request) Successful in 38s
Build / build-8 (pull_request) Successful in 48s
Add RPM package configuration for vals, a configuration management tool that validates and manages configuration values from various backends.
2025-10-04 14:26:56 +10:00
unkinben 873abe18c8 Merge pull request 'feat: add helmfile package configuration' (#63) from feat/add-helmfile-package into master
Deploy / deploy-9 (push) Successful in 5s
Deploy / deploy-8 (push) Successful in 8s
Reviewed-on: #63
2025-10-04 12:54:05 +10:00
unkinben 961ceb0df3 feat: add helmfile package configuration
Build / build-9 (pull_request) Successful in 41s
Build / build-8 (pull_request) Successful in 50s
Add RPM package configuration for helmfile v1.1.7, a declarative tool for deploying Kubernetes Helm charts.
2025-10-04 12:51:56 +10:00
unkinben 5919cd377f Merge pull request 'feat: add jsonnet-language-server package configuration' (#62) from benvin/jsonnet-language-server into master
Deploy / deploy-8 (push) Successful in 3s
Deploy / deploy-9 (push) Successful in 3s
Reviewed-on: #62
2025-09-30 22:00:41 +10:00
unkinben 2ecfeb860e feat: add jsonnet-language-server package configuration
Build / build-9 (pull_request) Successful in 31s
Build / build-8 (pull_request) Successful in 1m46s
Add complete RPM package configuration for jsonnet-language-server v0.16.0 including Dockerfile, build scripts, and nfpm configuration for cross-distro builds.
2025-09-30 21:57:49 +10:00
unkinben 7967342045 Merge pull request 'fix: update path for scripts' (#61) from refactor/standardize-dockerfile-build-structure into master
Deploy / deploy-8 (push) Failing after 3s
Deploy / deploy-9 (push) Failing after 4s
Reviewed-on: #61
2025-09-30 21:07:12 +10:00
unkinben f3b60b7137 fix: update path for scripts
Build / build-9 (pull_request) Successful in 29s
Build / build-8 (pull_request) Successful in 38s
2025-09-30 21:04:29 +10:00
unkinben 54e1c740b1 Merge pull request 'refactor/standardize-dockerfile-build-structure' (#60) from refactor/standardize-dockerfile-build-structure into master
Deploy / deploy-8 (push) Successful in 4s
Deploy / deploy-9 (push) Successful in 4s
Reviewed-on: #60
2025-09-30 21:03:14 +10:00
unkinben 989c8e9ea8 feat: add metadata.yaml files for all packages
Build / build-9 (pull_request) Successful in 42s
Build / build-8 (pull_request) Successful in 1m43s
Add simplified metadata structure for all 41 packages containing:
- Package name, version, and release number
- GitHub repository for packages with GitHub releases
- Build configuration for el/8 and el/9 distributions

This metadata enables future automation for version checking and package building across different distributions.
2025-09-29 22:11:03 +10:00
unkinben f125d59935 refactor: replace all wget commands with curl
Standardize download commands across all build scripts:
- HashiCorp packages: wget -O → curl -o
- VictoriaMetrics packages: wget -O → curl -o
- Other packages: wget -O → curl -o, wget → curl -O
- Update dependency lists to use curl instead of wget

This change provides consistency across all packages and uses a single download tool.
2025-09-29 21:59:01 +10:00
unkinben 46016bae5c refactor: move download logic from Dockerfiles to build.sh scripts
Move complex download commands from Dockerfiles to build.sh scripts for consistency:
- pgbouncer_exporter, bind_exporter, exportarr, node_exporter, postgres_exporter: GitHub downloads
- vmagent, vmalert: VictoriaMetrics vmutils downloads
- vminsert, vmselect, vmstorage: VictoriaMetrics cluster downloads

All Dockerfiles now follow the simple template pattern with download logic properly contained in build scripts.
2025-09-29 21:53:08 +10:00
unkinben 325b830952 refactor: standardize Dockerfile and build script structure
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.
2025-09-28 22:17:46 +10:00
unkinben 5e3688c988 Merge pull request 'feat: add jsonnet and jsonnet-lint packages' (#59) from benvin/jsonnet into master
Deploy / deploy-8 (push) Successful in 5s
Deploy / deploy-9 (push) Successful in 4s
Reviewed-on: #59
2025-09-28 21:03:12 +10:00
unkinben 97a180ef9f feat: add jsonnet and jsonnet-lint packages
Build / build-9 (pull_request) Successful in 2m55s
Build / build-8 (pull_request) Successful in 2m56s
Add RPM packages for jsonnet v0.21.0 built from go-jsonnet:
- jsonnet: main interpreter and jsonnetfmt formatter
- jsonnet-lint: linter for Jsonnet files

Both packages use Go 1.24.7 as required by go-jsonnet v0.21.0.
2025-09-28 20:55:28 +10:00
unkinben 20952727ba Merge pull request 'feat: add act_runner' (#58) from benvin/act_runner into master
Deploy / deploy-9 (push) Failing after 3s
Deploy / deploy-8 (push) Failing after 3s
Reviewed-on: #58
2025-08-03 15:16:09 +10:00
unkinben 85c4aa3264 Merge pull request 'feat: add puppetdb_exporter' (#57) from benvin/puppetdb_exporter into master
Deploy / deploy-8 (push) Failing after 2s
Deploy / deploy-9 (push) Failing after 3s
Reviewed-on: #57
2025-08-03 15:12:49 +10:00
unkinben f503c400bd feat: add act_runner
Build / build-8 (pull_request) Successful in 36s
Build / build-9 (pull_request) Successful in 1m31s
- used by gitea runners
2025-08-03 15:12:20 +10:00
unkinben c032354f71 feat: add puppetdb_exporter
Build / build-9 (pull_request) Successful in 26s
Build / build-8 (pull_request) Successful in 1m47s
2025-08-03 15:09:08 +10:00
unkinben fd9bbdb514 Merge pull request 'feat: add frr exporter' (#56) from benvin/frr_exporter into master
Deploy / deploy-8 (push) Successful in 3s
Deploy / deploy-9 (push) Successful in 4s
Reviewed-on: #56
2025-08-03 15:03:17 +10:00
unkinben 484bf9af7d feat: add frr exporter
Build / build-8 (pull_request) Successful in 38s
Build / build-9 (pull_request) Successful in 1m30s
2025-08-03 14:45:15 +10:00
unkinben 05a4604516 Merge pull request 'feat: adding nzbget_exporter' (#55) from benvin/nzbget_exporter into master
Deploy / deploy-8 (push) Successful in 4s
Deploy / deploy-9 (push) Successful in 3s
Reviewed-on: #55
2025-08-03 13:44:14 +10:00
unkinben 4316055237 feat: adding nzbget_exporter
Build / build-9 (pull_request) Successful in 50s
Build / build-8 (pull_request) Successful in 57s
2025-08-03 13:25:56 +10:00
unkinben f63dfecffa Merge pull request 'feat: add victorialogs' (#54) from benvin/victorialogs into master
Deploy / deploy-8 (push) Successful in 5s
Deploy / deploy-9 (push) Successful in 4s
Reviewed-on: #54
2025-07-27 20:35:44 +10:00
unkinben 7a48e70f6e feat: add victorialogs
Build / build-9 (pull_request) Successful in 1m34s
Build / build-8 (pull_request) Successful in 1m46s
- add vlutils and victoria-logs packages
2025-07-27 20:30:32 +10:00
unkinben 9a4139daac Merge pull request 'feat: add exportarr package' (#53) from benvin/exportarr into master
Deploy / deploy-8 (push) Successful in 4s
Deploy / deploy-9 (push) Successful in 3s
Reviewed-on: #53
2025-07-27 13:14:12 +10:00
unkinben 9e807b713d feat: add exportarr package
Build / build-9 (pull_request) Successful in 1m44s
Build / build-8 (pull_request) Successful in 2m22s
- used for sonarr, radarr, etc
2025-07-27 12:15:04 +10:00
unkinben 48378ca4ed Merge pull request 'feat: adding additional exporters' (#52) from benvin/exporters into master
Deploy / deploy-9 (push) Successful in 5s
Deploy / deploy-8 (push) Successful in 5s
Reviewed-on: #52
2025-07-27 12:00:14 +10:00
unkinben 8e56419539 feat: adding additional exporters
Build / build-9 (pull_request) Successful in 1m36s
Build / build-8 (pull_request) Successful in 1m50s
- postgres_exporter
- pgbouncer_exporter
- bind_exporter
2025-07-27 11:42:13 +10:00
unkinben b38856fb57 Merge pull request 'fix: resolve dependency errors' (#51) from benvin/unkin-ca-certificates-dependency into master
Deploy / deploy-9 (push) Successful in 6s
Deploy / deploy-8 (push) Successful in 21s
Reviewed-on: #51
2025-07-13 21:10:51 +10:00
unkinben b8b181e684 fix: resolve dependency errors
Build / build-9 (pull_request) Successful in 22s
Build / build-8 (pull_request) Successful in 1m49s
- unkin-ca-certificates fails during kickstart as its required packages are missing
- puppet-initial doesnt need to include unkin-ca-certificates
2025-07-13 21:04:14 +10:00
unkinben 7c5d5619bf Merge pull request 'benvin/vmagent' (#50) from benvin/vmagent into master
Deploy / deploy-8 (push) Successful in 4s
Deploy / deploy-9 (push) Successful in 4s
Reviewed-on: #50
2025-07-13 17:05:42 +10:00
unkinben 37e7e7c1b7 feat: move vmalert to own package
Build / build-9 (pull_request) Successful in 2m45s
Build / build-8 (pull_request) Successful in 2m58s
- move vmalert from vmutils to its own package
2025-07-13 16:53:05 +10:00
unkinben 76c331e530 feat: split vmagent out of vmutils
- move vmagent to be its own package
2025-07-13 16:48:22 +10:00
unkinben cd47d9730b Merge pull request 'feat: add dhcp to ipxe' (#49) from benvin/ipxe_add_dhcp into master
Deploy / deploy-8 (push) Successful in 2s
Deploy / deploy-9 (push) Successful in 2s
Reviewed-on: #49
2025-07-12 19:56:51 +10:00
unkinben 45857e5814 feat: add dhcp to ipxe
Build / build-9 (pull_request) Successful in 3m15s
Build / build-8 (pull_request) Successful in 4m39s
- add dhcp command to ipxe script
2025-07-12 19:40:19 +10:00
unkinben c94e86a31c Merge pull request 'fix: fix versioing info again' (#48) from benvin/fix_unkin_undi into master
Deploy / deploy-8 (push) Successful in 2s
Deploy / deploy-9 (push) Successful in 3s
Reviewed-on: #48
2025-07-12 19:25:47 +10:00
unkinben afd4f7fd22 Merge pull request 'chore: fix build of unrar' (#47) from benvin/fix_unrar into master
Deploy / deploy-8 (push) Successful in 2s
Deploy / deploy-9 (push) Successful in 3s
Reviewed-on: #47
2025-07-12 19:20:42 +10:00
unkinben 05e8f1ae8e fix: fix versioing info again
Build / build-9 (pull_request) Successful in 3m18s
Build / build-8 (pull_request) Successful in 4m30s
- unkin-undionly-kpxe to yyyy.mm.dd
2025-07-12 19:16:19 +10:00
unkinben ad414ba4fa chore: fix build of unrar
Build / build-9 (pull_request) Successful in 4m26s
Build / build-8 (pull_request) Successful in 5m28s
- automatically building with a version of 7.11.0
- when build job searches dnf cache, it doesnt find the package
2025-07-12 19:13:40 +10:00
unkinben 0645ebfd29 Merge pull request 'chore: fixed naming of vm* packages' (#46) from benvin/fix_vicmet into master
Deploy / deploy-9 (push) Successful in 2s
Deploy / deploy-8 (push) Successful in 2s
Reviewed-on: #46
2025-07-12 19:11:05 +10:00
unkinben 56de02eb94 Merge pull request 'feat: add custom ipxe bootloader' (#45) from benvin/unkin_undionly into master
Deploy / deploy-8 (push) Successful in 5s
Deploy / deploy-9 (push) Successful in 5s
Reviewed-on: #45
2025-07-12 19:05:20 +10:00
unkinben 1709c34a38 chore: fixed naming of vm* packages
Build / build-8 (pull_request) Successful in 30s
Build / build-9 (pull_request) Successful in 2m29s
- the build job searches for the package in dnf cache, but because it
  was three packages in victoriametrics, it would never find the package
  and therfore would rebuild the package every run
2025-07-12 19:03:14 +10:00
unkinben e0026ddb05 feat: add custom ipxe bootloader
Build / build-9 (pull_request) Successful in 3m22s
Build / build-8 (pull_request) Successful in 5m7s
- add rpm to manage tftpboot ipxe images for cobbler
2025-07-12 18:38:47 +10:00
unkinben a14388a6e9 Merge pull request 'feat: update urls' (#44) from benvin/update_docker_images into master
Deploy / deploy-9 (push) Successful in 4s
Deploy / deploy-8 (push) Successful in 4s
Reviewed-on: #44
2025-07-06 20:16:30 +10:00
unkinben 91154d46ad feat: update urls
Build / build-8 (pull_request) Successful in 31s
Build / build-9 (pull_request) Successful in 1m59s
- update docker images to use git.unkin.net
- update path to save rpms to git.unkin.net
2025-07-06 17:20:48 +10:00
unkinben 5b86d17218 Merge pull request 'feat: add node_exporter' (#43) from benvin/exporters into master
Deploy / deploy-8 (push) Successful in 6s
Deploy / deploy-9 (push) Successful in 7s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/43
2025-06-27 20:27:08 +10:00
unkinben ab57a28b8f feat: add node_exporter
Build / build-9 (pull_request) Successful in 26s
Build / build-8 (pull_request) Successful in 3m41s
2025-06-22 19:08:12 +10:00
unkinben 8742b71b60 Merge pull request 'feat: add victoria metrics' (#42) from benvin/victoriametrics into master
Deploy / deploy-8 (push) Successful in 13s
Deploy / deploy-9 (push) Successful in 14s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/42
2025-06-21 17:46:45 +10:00
unkinben 9b755a05dc feat: add victoria metrics
Build / build-8 (pull_request) Successful in 57s
Build / build-9 (pull_request) Successful in 1m20s
- vminsert, vmselect and vmstorage
- vmutils
2025-06-21 17:41:39 +10:00
unkinben dd71972af0 Merge pull request 'feat: add consul-cni and nomad-autoscaler' (#41) from benvin/consul-cni into master
Deploy / deploy-8 (push) Successful in 9s
Deploy / deploy-9 (push) Successful in 22s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/41
2025-06-13 23:13:48 +10:00
unkinben 263fb689a8 feat: add consul-cni and nomad-autoscaler
Build / build-9 (pull_request) Successful in 1m0s
Build / build-8 (pull_request) Successful in 1m28s
2025-06-13 23:11:37 +10:00
unkinben 81e2c783c9 Merge pull request 'chore: update packages' (#36) from benvin/updates into master
Deploy / deploy-8 (push) Successful in 36s
Deploy / deploy-9 (push) Successful in 38s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/36
2025-06-10 19:45:59 +10:00
unkinben d5e8259a87 chore: update packages
Build / build-8 (pull_request) Successful in 3m16s
Build / build-9 (pull_request) Successful in 3m57s
- gruntwork packages
- cni-plugins
- hashicorp packages
2025-06-09 12:33:32 +10:00
unkinben af05004d4c Merge pull request 'feat: add g10k rpm' (#35) from benvin/g10k into master
Deploy / deploy-8 (push) Successful in 3s
Deploy / deploy-9 (push) Successful in 3s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/35
2025-05-31 13:31:46 +10:00
unkinben 12d2b75368 feat: add g10k rpm
Build / build-8 (pull_request) Successful in 26s
Build / build-9 (pull_request) Successful in 27s
2025-05-31 13:30:36 +10:00
unkinben 7fbde2e82f Merge pull request 'feat: add boilerplate rpm' (#34) from benvin/boilerplate into master
Deploy / deploy-8 (push) Successful in 4s
Deploy / deploy-9 (push) Successful in 5s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/34
2025-05-30 20:19:51 +10:00
unkinben 0de13397f3 feat: add boilerplate rpm
Build / build-9 (pull_request) Successful in 31s
Build / build-8 (pull_request) Successful in 33s
2025-05-30 20:13:33 +10:00
unkinben b5bce92f7f Merge pull request 'feat: add jellyfin packages' (#33) from benvin/jellyfin into master
Deploy / deploy-8 (push) Successful in 17s
Deploy / deploy-9 (push) Successful in 17s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/33
2025-05-25 20:18:23 +10:00
unkinben 459f2891da feat: add jellyfin packages
Build / build-8 (pull_request) Successful in 4m55s
Build / build-9 (pull_request) Successful in 5m57s
- building using spec files
- add jellyfin-server 10.10.7
- add jellyfin-web 10.10.7
- add jellyfin-ffmpeg 7.1.1
2025-05-25 19:59:58 +10:00
unkinben 715d859bb5 Merge pull request 'feat: unrar 7.11' (#32) from benvin/unrar into master
Deploy / deploy-8 (push) Successful in 3s
Deploy / deploy-9 (push) Successful in 3s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/32
2025-05-25 13:37:28 +10:00
unkinben a788bdd6cb feat: unrar 7.11
Build / build-9 (pull_request) Successful in 26s
Build / build-8 (pull_request) Successful in 39s
- add freeware-only unrar package
2025-05-25 13:34:02 +10:00
unkinben 1ca94ab1d9 Merge pull request 'feat: add nzbget 25.0' (#31) from benvin/nzbget into master
Deploy / deploy-8 (push) Successful in 4s
Deploy / deploy-9 (push) Successful in 4s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/31
2025-05-25 11:17:53 +10:00
unkinben f2a5d29f35 feat: add nzbget 25.0
Build / build-8 (pull_request) Successful in 57s
Build / build-9 (pull_request) Successful in 1m19s
- nzbget pre-package into rpm, this dockerfile just copies it
2025-05-25 10:17:21 +10:00
unkinben 5c6fadf1b2 Merge pull request 'feat: added hostname setting to puppet-initial' (#30) from neoloc/puppet-initial-hostname into master
Deploy / deploy-8 (push) Successful in 5s
Deploy / deploy-9 (push) Successful in 5s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/30
2025-04-24 21:39:28 +10:00
unkinben 18a5b33eb2 feat: added hostname setting to puppet-initial
Build / build-9 (pull_request) Successful in 47s
Build / build-8 (pull_request) Successful in 1m17s
- bumped release
- set hostname to be set in /etc/sysconfig/network and with hostnamectl
2025-04-24 21:36:47 +10:00
unkinben c21e00497d Merge pull request 'feat: add puppet-initial package' (#29) from neoloc/puppet-initial into master
Deploy / deploy-8 (push) Successful in 18s
Deploy / deploy-9 (push) Successful in 45s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/29
2025-04-23 20:54:42 +10:00
unkinben c22329641e feat: add puppet-initial package
Build / build-9 (pull_request) Successful in 47s
Build / build-8 (pull_request) Successful in 25m22s
- deploy the puppet-initial service
- deploy the puppet-initial script
- prepare puppet service for puppet-initial
- ensure cert installed
2025-04-23 20:25:13 +10:00
unkinben f508b1ea7f Merge pull request 'feat: add incus' (#28) from neoloc/incus into master
Deploy / deploy-8 (push) Successful in 19s
Deploy / deploy-9 (push) Successful in 19s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/28
2025-03-29 18:49:42 +11:00
unkinben 7348bdd69e feat: add incus
Build / build-9 (pull_request) Successful in 18m54s
Build / build-8 (pull_request) Successful in 19m0s
- manage the build of incus, incus-tools and incus-client
2025-03-29 18:24:21 +11:00
unkinben 9a4a3f40ad Merge pull request 'feat: add unkin-ca-certificates rpm' (#27) from neoloc/internal-ca-certificates into master
Deploy / deploy-8 (push) Successful in 27s
Deploy / deploy-9 (push) Successful in 38s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/27
2025-03-22 02:33:35 +11:00
unkinben 6075fa57b9 feat: add unkin-ca-certificates rpm
Build / build-8 (pull_request) Successful in 1m49s
Build / build-9 (pull_request) Successful in 1m55s
2025-03-22 02:20:04 +11:00
unkinben 47aebcbd4f Merge pull request 'chore: deploy uv 0.6.5' (#26) from neoloc/bump_uv into master
Deploy / deploy-9 (push) Successful in 6s
Deploy / deploy-8 (push) Successful in 11s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/26
2025-03-09 17:18:10 +11:00
unkinben 8ab11fd00f chore: deploy uv 0.6.5
Build / build-9 (pull_request) Successful in 44s
Build / build-8 (pull_request) Successful in 45s
2025-03-09 17:16:35 +11:00
unkinben 18da11d779 Merge pull request 'feat: etcd remove service/user' (#25) from neoloc/etcd_binary_only into master
Deploy / deploy-9 (push) Successful in 7s
Deploy / deploy-8 (push) Successful in 24s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/25
2025-01-26 16:42:17 +11:00
unkinben 3767107729 feat: etcd remove service/user
Build / build-9 (pull_request) Successful in 39s
Build / build-8 (pull_request) Successful in 41s
- change etcd to bin only, bump revision
2025-01-26 16:25:18 +11:00
unkinben 7f18247e00 Merge pull request 'neoloc/etcd' (#24) from neoloc/etcd into master
Deploy / deploy-8 (push) Successful in 6s
Deploy / deploy-9 (push) Successful in 6s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/24
2025-01-26 14:52:49 +11:00
unkinben c7b8fb9fb5 feat: add etcd build
Build / build-9 (pull_request) Successful in 1m18s
Build / build-8 (pull_request) Successful in 1m33s
- create rpm for etcd, etcdctl and etcdutl
- manage systemd service for etcd
2025-01-26 14:50:12 +11:00
unkinben 80d648ee95 feat: update docker containers
- change to rpmbuilder and actionsdind managed by packer
- update makefile to ignore `resources` folder
2025-01-26 14:49:48 +11:00
unkinben 0a0260c1fc Merge pull request 'feat: add packer/1.11.2' (#23) from neoloc/packer into master
Deploy / deploy-8 (push) Successful in 5s
Deploy / deploy-9 (push) Successful in 6s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/23
2025-01-04 14:28:03 +11:00
unkinben 56d966aba5 feat: add packer/1.11.2
Build / build-8 (pull_request) Successful in 57s
Build / build-9 (pull_request) Successful in 1m0s
- add first packer rpm
2025-01-04 14:24:20 +11:00
unkinben e40e073e1f Merge pull request 'feat: add cni-plugins' (#22) from neoloc/cniplugins into master
Deploy / deploy-9 (push) Successful in 10s
Deploy / deploy-8 (push) Successful in 10s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/22
2024-12-27 23:01:11 +11:00
unkinben f84bd17e1b feat: add cni-plugins
Build / build-8 (pull_request) Successful in 31s
Build / build-9 (pull_request) Successful in 34s
- add 1.6.1 cni-plugins
- ignore the scripts folder in make list
2024-12-27 22:55:38 +11:00
unkinben 3cbe7f9a83 Merge pull request 'feat: add terragrunt 0.70.4' (#21) from neoloc/terragrunt_0_70_4 into master
Deploy / deploy-8 (push) Successful in 7s
Deploy / deploy-9 (push) Successful in 7s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/21
2024-12-21 00:38:18 +11:00
unkinben 4ae8be90d7 feat: add terragrunt 0.70.4
Build / build-8 (pull_request) Successful in 46s
Build / build-9 (pull_request) Successful in 47s
2024-12-21 00:33:12 +11:00
unkinben 3e47e5b948 Merge pull request 'feat: add uv 0.5.11' (#20) from neoloc/uv_5-11 into master
Deploy / deploy-9 (push) Successful in 5s
Deploy / deploy-8 (push) Successful in 17s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/20
2024-12-21 00:28:41 +11:00
unkinben 3ab833ebc4 feat: add uv 0.5.11
Build / build-9 (pull_request) Successful in 38s
Build / build-8 (pull_request) Successful in 1m9s
2024-12-21 00:17:56 +11:00
unkinben 63a01ac71c Merge pull request 'feat: add multi-release build jobs' (#19) from neoloc/multirelease into master
Deploy / deploy-8 (push) Successful in 16s
Deploy / deploy-9 (push) Successful in 34s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/19
2024-12-21 00:15:56 +11:00
unkinben adedeed725 feat: add multi-release build jobs
Build / build-8 (pull_request) Successful in 1m1s
Build / build-9 (pull_request) Successful in 2m4s
- update build/deploy to be multiple jobs
- update to use multiple artifacts
2024-12-21 00:09:43 +11:00
unkinben 64b5537171 Merge pull request 'feat: add vault/1.18.2' (#18) from neoloc/vault into master
Deploy / deploy (push) Successful in 16s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/18
2024-12-08 23:52:43 +11:00
unkinben 416bfa521a Merge pull request 'feat: add consul/1.20.1' (#17) from neoloc/consul into master
Deploy / deploy (push) Successful in 9s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/17
2024-12-08 23:50:37 +11:00
unkinben aa2c3bed38 Merge pull request 'feat: add nomad/1.9.3' (#16) from neoloc/nomad into master
Deploy / deploy (push) Successful in 8s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/16
2024-12-08 23:48:33 +11:00
unkinben 73131f9324 feat: add vault/1.18.2
Build / build (pull_request) Successful in 1m24s
- add vault rpm to be installed
- this is different from the HCP provided rpm which includes a service/config
2024-12-08 23:46:06 +11:00
unkinben b193e4097b feat: add consul/1.20.1
Build / build (pull_request) Successful in 1m7s
- build first consul rpm
2024-12-08 23:31:43 +11:00
unkinben 6c0ac37b83 feat: add nomad/1.9.3
Build / build (pull_request) Successful in 1m19s
- add nomad deployment
2024-12-08 23:25:28 +11:00
unkinben 7e5b6b100d Merge pull request 'feat: add nfpm/2.41.1' (#15) from neoloc/nfpm into master
Deploy / deploy (push) Successful in 5s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/15
2024-12-01 22:39:53 +11:00
unkinben 6c0bbe0180 feat: add nfpm/2.41.1
Build / build (pull_request) Successful in 2m11s
- add the nfpm package by compiling the project from source
2024-12-01 22:34:17 +11:00
unkinben d2c15dea58 Merge pull request 'feat: testing previous run id' (#14) from neoloc/artifacting_5 into master
Deploy / deploy (push) Successful in 15s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/14
2024-12-01 22:20:55 +11:00
unkinben 9000eaa947 feat: custom download artifacts
Build / build (pull_request) Successful in 33s
- download the previous runs artifacts, unzip and deploy
2024-12-01 22:19:18 +11:00
unkinben c6ede08d51 Merge pull request 'feat: test 5' (#13) from neoloc/artifacting_4 into master
Deploy / deploy (push) Failing after 13s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/13
2024-12-01 21:49:50 +11:00
unkinben 7fc26c9ea0 feat: test 5
Build / build (pull_request) Successful in 34s
2024-12-01 21:48:32 +11:00
unkinben 9ba94f0aa9 Merge pull request 'feat: change artifact download method' (#12) from neoloc/artifacting_3 into master
Deploy / deploy (push) Failing after 19s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/12
2024-12-01 21:42:46 +11:00
unkinben 0e4504cb85 feat: change artifact download method
Build / build (pull_request) Successful in 35s
2024-12-01 21:41:30 +11:00
unkinben f7b4f19aec Merge pull request 'feat: update build name' (#11) from neoloc/artifacting_2 into master
Deploy / build (push) Successful in 32s
Deploy / deploy (push) Successful in 39s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/11
2024-12-01 21:31:53 +11:00
unkinben 0b8940f62e feat: update build name
Build / build (pull_request) Successful in 34s
2024-12-01 21:30:42 +11:00
unkinben 81bd274ee1 Merge pull request 'feat: artifact changes' (#10) from neoloc/artifacting into master
Deploy / build (push) Failing after 0s
Deploy / deploy (push) Failing after 1m44s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/10
2024-12-01 21:21:31 +11:00
unkinben 75a9fea331 feat: artifact changes
Build / build (pull_request) Successful in 35s
- update build/deploy workflow
2024-12-01 21:17:05 +11:00
unkinben 7dc3fda3b4 Merge pull request 'feat: add artifact management' (#9) from neoloc/artifacts into master
Deploy / build (push) Successful in 34s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/9
2024-12-01 17:43:15 +11:00
unkinben 5791acdf38 feat: remove artifact management
Build / build (pull_request) Successful in 29s
- remove artifact management
2024-12-01 17:39:32 +11:00
unkinben 8e052bbea6 Merge pull request 'feat: add artifact management' (#8) from neoloc/artifacts into master
Deploy / build (push) Failing after 1m17s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/8
2024-12-01 16:47:06 +11:00
unkinben 9931216934 feat: add artifact management
Build / build (pull_request) Successful in 48s
- upload/download artifacts instead of building build and deploy jobs
- updated uv package with version in url
- add ruff/0.8.1 package
2024-12-01 16:43:39 +11:00
unkinben e499d37b35 Merge pull request 'feat: add uv' (#6) from neoloc/uv into master
Deploy / build (push) Successful in 27s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/6
2024-12-01 13:33:23 +11:00
unkinben bc529381c9 feat: add uv
Build / build (pull_request) Successful in 35s
- add uv/0.5.5
2024-12-01 13:31:57 +11:00
unkinben 88b38900fd Merge pull request 'feat: update terragrunt' (#7) from neoloc/usr-bin into master
Deploy / build (push) Successful in 39s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/7
2024-12-01 13:31:23 +11:00
unkinben 4198f5aafb feat: update terragrunt
Build / build (pull_request) Successful in 54s
- fix maintainer
- add 'provides'
- move to /usr/bin
2024-12-01 13:29:48 +11:00
unkinben ca44f44720 Merge pull request 'feat: change to runnerdnd' (#5) from neoloc/runnerdnd into master
Deploy / build (push) Successful in 39s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/5
2024-12-01 13:17:05 +11:00
unkinben bae6e4a8e0 feat: change to runnerdnd
Build / build (pull_request) Successful in 26s
- remove some steps and improve the workflow
2024-12-01 13:07:53 +11:00
unkinben dc84453e92 Merge pull request 'feat: add terraform' (#4) from neoloc/terraform into master
Deploy / build (push) Successful in 2m1s
Reviewed-on: https://git.query.consul/unkin/rpmbuilder/pulls/4
2024-12-01 12:58:27 +11:00
unkinben 5c49c24930 feat: add terraform
Build / build (pull_request) Successful in 1m35s
- add terraform/1.10.0 and terraform/1.5.0
2024-12-01 12:28:22 +11:00
216 changed files with 5365 additions and 116 deletions
+40 -11
View File
@@ -2,29 +2,58 @@ name: Build
on:
pull_request:
workflow_call:
workflow_dispatch:
jobs:
build:
build-8:
runs-on: almalinux-8
container:
image: git.query.consul/unkin/almalinux8:latest
options: --privileged
image: git.unkin.net/unkin/almalinux8-actionsdind:latest
options: "--privileged --volume /etc/pki/tls/vault:/etc/pki/tls/vault:ro"
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
env:
VAULT_ROLE_ID: ${{ secrets.RPMBUILDER_VAULT_ROLEID }}
run: |
make all
make all DISTRO=el/8
- name: Show RPMs
run: |
find /workspace -type f -name "*.rpm"
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: rpms-8
path: /workspace/unkin/rpmbuilder/dist/*/*.rpm
build-9:
runs-on: almalinux-8
container:
image: git.unkin.net/unkin/almalinux9-actionsdind:latest
options: "--privileged --volume /etc/pki/tls/vault:/etc/pki/tls/vault:ro"
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Build Packages
env:
VAULT_ROLE_ID: ${{ secrets.RPMBUILDER_VAULT_ROLEID }}
run: |
make all DISTRO=el/9
- name: Show RPMs
run: |
find /workspace -type f -name "*.rpm"
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: rpms-9
path: /workspace/unkin/rpmbuilder/dist/*/*.rpm
+43 -13
View File
@@ -4,33 +4,63 @@ on:
push:
branches:
- master
workflow_dispatch:
jobs:
build:
deploy-8:
runs-on: almalinux-8
container:
image: git.query.consul/unkin/almalinux8:latest
image: git.unkin.net/unkin/almalinux8-actionsdind: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
- name: Download Artifacts
run: |
make all
mkdir -p /workspace/unkin/rpmbuilder/dist/8
export PREVIOUS_RUN_ID=$((GITHUB_RUN_NUMBER - 1))
curl -L -o /workspace/rpms.zip "https://git.unkin.net/${GITHUB_REPOSITORY}/actions/runs/${PREVIOUS_RUN_ID}/artifacts/rpms-8"
unzip /workspace/rpms.zip -d /workspace/unkin/rpmbuilder/dist/8
- name: Show RPMs
run: |
find /workspace -type f -name "*.rpm"
- 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
for rpm in $(find /workspace/unkin/rpmbuilder/dist/8 -type f -name "*.rpm"); do
curl --user droneci:${{ secrets.DRONECI_PASSWORD }} --upload-file $rpm https://git.unkin.net/api/packages/unkin/rpm/almalinux/el8/upload
done
deploy-9:
runs-on: almalinux-8
container:
image: git.unkin.net/unkin/almalinux9-actionsdind:latest
options: --privileged
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Download Artifacts
run: |
mkdir -p /workspace/unkin/rpmbuilder/dist/9
export PREVIOUS_RUN_ID=$((GITHUB_RUN_NUMBER - 1))
curl -L -o /workspace/rpms.zip "https://git.unkin.net/${GITHUB_REPOSITORY}/actions/runs/${PREVIOUS_RUN_ID}/artifacts/rpms-9"
unzip /workspace/rpms.zip -d /workspace/unkin/rpmbuilder/dist/9
- name: Show RPMs
run: |
find /workspace -type f -name "*.rpm"
- name: Upload RPMs to Gitea
env:
DRONECI_PASSWORD: ${{ secrets.DRONECI_PASSWORD }}
run: |
for rpm in $(find /workspace/unkin/rpmbuilder/dist/9 -type f -name "*.rpm"); do
curl --user droneci:${{ secrets.DRONECI_PASSWORD }} --upload-file $rpm https://git.unkin.net/api/packages/unkin/rpm/almalinux/el9/upload
done
+2
View File
@@ -1 +1,3 @@
dist
env
.claude
+19
View File
@@ -0,0 +1,19 @@
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
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
+68 -38
View File
@@ -1,55 +1,85 @@
# Variables
ROOT_DIR := $(PWD)
RPMS_DIR := $(ROOT_DIR)/rpms
REPO_OPTIONS := --disablerepo=* --enablerepo=unkin
BUILD_TOOL := $(ROOT_DIR)/tools/build
DISTRO ?= el/9 # Default to el/9 if not specified
# Automatically find all package/version directories
PACKAGES := $(shell find $(RPMS_DIR) -mindepth 2 -maxdepth 2 -type d | sed "s|$(RPMS_DIR)/||")
# Automatically find all packages with metadata.yaml
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
.PHONY: all list cache build clean
all: cache $(PACKAGES)
# Default target to build all packages
.PHONY: all list build clean
all: build-all
# List all available packages
list:
@echo "$(PACKAGES)"
@echo "Available packages:"
@for package in $(PACKAGES); do \
echo " $$package"; \
done
cache:
echo "Refreshing DNF cache..." && \
dnf clean all && \
dnf makecache
# Build all packages using Python tool
build-all:
@echo "Building all packages using Python tooling for distro $(DISTRO)..."
$(BUILD_TOOL) --all --distro $(DISTRO)
# Build specific package/version
# Build specific package using Python tool
.PHONY: $(PACKAGES)
$(PACKAGES):
@PACKAGE_NAME=$(shell echo $(@) | cut -d/ -f1) && \
PACKAGE_VERSION=$(shell echo $(@) | cut -d/ -f2) && \
echo "Starting build $$PACKAGE_NAME/$$PACKAGE_VERSION" && \
$(MAKE) build PACKAGE_NAME=$$PACKAGE_NAME PACKAGE_VERSION=$$PACKAGE_VERSION
@echo "Building package: $@ for distro $(DISTRO)"
$(BUILD_TOOL) --package $@ --distro $(DISTRO)
# Build target
# Build specific package with version/release override
build:
@mkdir -p $(ROOT_DIR)/dist/$(PACKAGE_NAME)/
@cd $(RPMS_DIR)/$(PACKAGE_NAME) && \
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
@if [ -z "$(PACKAGE_NAME)" ]; then \
echo "Error: PACKAGE_NAME not specified"; \
echo "Usage: make build PACKAGE_NAME=package [PACKAGE_VERSION=version] [PACKAGE_RELEASE=release]"; \
exit 1; \
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:
@echo "Cleaning build artifacts..."
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"
+8
View File
@@ -0,0 +1,8 @@
name: act_runner
release: 1
version: 0.2.12
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+3
View File
@@ -0,0 +1,3 @@
#!/usr/bin/bash
curl --output act_runner-linux-amd64 https://dl.gitea.com/act_runner/${PACKAGE_VERSION}/act_runner-${PACKAGE_VERSION}-linux-amd64
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+37
View File
@@ -0,0 +1,37 @@
# nfpm.yaml
name: act_runner
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "A runner for Gitea based on act."
maintainer: Gitea
homepage: https://gitea.com/gitea/act_runner
license: MIT
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
+8
View File
@@ -0,0 +1,8 @@
name: bind_exporter
release: 1
version: 0.8.0
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/bash
# Download the required files
curl --output - -L https://github.com/prometheus-community/bind_exporter/releases/download/v${PACKAGE_VERSION}/bind_exporter-${PACKAGE_VERSION}.linux-amd64.tar.gz | tar --strip-components=1 -xzf -
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+37
View File
@@ -0,0 +1,37 @@
# nfpm.yaml
name: bind_exporter
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "Prometheus exporter for BIND"
maintainer: Prometheus
homepage: https://github.com/prometheus-community/bind_exporter
license: Apache-2.0 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
+9
View File
@@ -0,0 +1,9 @@
name: boilerplate
release: 1
version: 0.6.1
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
github: gruntwork-io/boilerplate
+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/bash
# Download the required files
wget -O /app/boilerplate https://github.com/gruntwork-io/boilerplate/releases/download/v${PACKAGE_VERSION}/boilerplate_linux_amd64
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+38
View File
@@ -0,0 +1,38 @@
# nfpm.yaml
name: boilerplate
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "Boilerplate is a tool for generating files and folders (boilerplate) from a set of templates."
maintainer: Gruntwork
homepage: https://github.com/gruntwork-io/boilerplate
license: MIT
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
+9
View File
@@ -0,0 +1,9 @@
name: cni-plugins
release: 1
version: 1.7.1
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
github: containernetworking/plugins
+8
View File
@@ -0,0 +1,8 @@
#!/usr/bin/bash
# Download and extract cni-plugins
wget -O /app/cni-plugins-linux-amd64.tgz https://github.com/containernetworking/plugins/releases/download/v${PACKAGE_VERSION}/cni-plugins-linux-amd64-v${PACKAGE_VERSION}.tgz
tar xf cni-plugins-linux-amd64.tgz
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+137
View File
@@ -0,0 +1,137 @@
# nfpm.yaml
name: cni-plugins
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "Some reference and example networking plugins, maintained by the CNI team."
maintainer: ContainerNetworking
homepage: https://github.com/containernetworking/plugins
license: Apache-2.0
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
View File
@@ -0,0 +1,2 @@
#!/usr/bin/env bash
mkdir -p /opt/cni/bin
+8
View File
@@ -0,0 +1,8 @@
name: consul-cni
release: 1
version: 1.7.1
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/bash
# Install dependencies
dnf install -y unzip
# Download and extract consul-cni
curl -o /app/consul-cni.zip https://releases.hashicorp.com/consul-cni/${PACKAGE_VERSION}/consul-cni_${PACKAGE_VERSION}_linux_amd64.zip
unzip consul-cni.zip
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+34
View File
@@ -0,0 +1,34 @@
# nfpm.yaml
name: consul-cni
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "Plugin for Consul on Kubernetes to allow configuring traffic redirection rules without escalated container privileges."
maintainer: Hashicorp
homepage: https://hashicorp.com
license: Mozilla Public License, version 2.0
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
View File
@@ -0,0 +1,2 @@
#!/usr/bin/env bash
mkdir -p /opt/cni/bin
+8
View File
@@ -0,0 +1,8 @@
name: consul
release: 1
version: 1.21.1
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/bash
# Install dependencies
dnf install -y unzip
# Download and extract consul
curl -o /app/consul.zip https://releases.hashicorp.com/consul/${PACKAGE_VERSION}/consul_${PACKAGE_VERSION}_linux_amd64.zip
unzip consul.zip
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+38
View File
@@ -0,0 +1,38 @@
# nfpm.yaml
name: consul
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure."
maintainer: HashiCorp
homepage: https://github.com/hashicorp/consul
license: BUSL-1.1
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
+9
View File
@@ -0,0 +1,9 @@
name: etcd
release: 2
version: 3.5.18
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
github: etcd-io/etcd
+9
View File
@@ -0,0 +1,9 @@
#!/usr/bin/bash
# Download and extract etcd
wget -O /app/etcd-v${PACKAGE_VERSION}-linux-amd64.tar.gz https://github.com/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/
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+47
View File
@@ -0,0 +1,47 @@
# nfpm.yaml
name: etcd
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "A distributed, reliable key-value store for the most critical data of a distributed system."
maintainer: https://etcd.io/
homepage: https://etcd.io/
license: Apache-2.0
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
+8
View File
@@ -0,0 +1,8 @@
name: exportarr
release: 1
version: 2.2.0
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/bash
# Download the required files
curl --output - -L https://github.com/onedr0p/exportarr/releases/download/v${PACKAGE_VERSION}/exportarr_${PACKAGE_VERSION}_linux_amd64.tar.gz | tar --strip-components=1 -xzf -
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+37
View File
@@ -0,0 +1,37 @@
# nfpm.yaml
name: exportarr
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "AIO Prometheus Exporter for Sabnzbd, Bazarr, Prowlarr, Lidarr, Readarr, Radarr, and Sonarr"
maintainer: onedr0p
homepage: https://github.com/onedr0p/exportarr
license: MIT 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
+9
View File
@@ -0,0 +1,9 @@
name: frr_exporter
release: 1
version: 1.8.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: tynany/frr_exporter
+3
View File
@@ -0,0 +1,3 @@
#!/usr/bin/bash
curl --output - -L https://github.com/tynany/frr_exporter/releases/download/v${PACKAGE_VERSION}/frr_exporter-${PACKAGE_VERSION}.linux-amd64.tar.gz | tar --strip-components=1 -xzf -
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+37
View File
@@ -0,0 +1,37 @@
# nfpm.yaml
name: frr_exporter
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "Prometheus exporter for Free Range Routing"
maintainer: Prometheus
homepage: https://github.com/tynany/frr_exporter
license: MIT
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
+9
View File
@@ -0,0 +1,9 @@
name: g10k
release: 1
version: 0.9.10
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
github: xorpaul/g10k
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/bash
# Download and extract g10k
wget -O /app/g10k.zip https://github.com/xorpaul/g10k/releases/download/v${PACKAGE_VERSION}/g10k-v${PACKAGE_VERSION}-linux-amd64.zip
pushd /app
unzip /app/g10k.zip
popd
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+38
View File
@@ -0,0 +1,38 @@
# nfpm.yaml
name: g10k
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "An r10k fork written in Go, designed to work somwhat similar like puppetlabs/r10k."
maintainer: xorpaul
homepage: https://github.com/xorpaul/g10k
license: Apache2.0
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
+9
View File
@@ -0,0 +1,9 @@
name: helmfile
release: 1
version: 1.1.7
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
github: helmfile/helmfile
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/bash
# Download the required files
curl -L -o /app/helmfile.tar.gz https://github.com/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
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+38
View File
@@ -0,0 +1,38 @@
# nfpm.yaml
name: helmfile
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
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."
maintainer: Helmfile Contributors
homepage: https://github.com/helmfile/helmfile
license: MIT
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
+9
View File
@@ -0,0 +1,9 @@
name: incus
release: 1
version: 6.10.1
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
github: lxc/incus
+52
View File
@@ -0,0 +1,52 @@
#!/usr/bin/bash
# Install build dependencies
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
# Download and extract incus source
curl -o /app/incus.tar.gz https://github.com/lxc/incus/archive/refs/tags/v${PACKAGE_VERSION}.tar.gz
tar -C /app -xf incus.tar.gz
# Install specific Go version
curl -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
+11
View File
@@ -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
+11
View File
@@ -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
+21
View File
@@ -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
+11
View File
@@ -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
+98
View File
@@ -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: ./scripts/postinstall.sh
preremove: ./scripts/preremove.sh
postremove: ./scripts/postremove.sh
preinstall: ./scripts/preinstall.sh
+2
View File
@@ -0,0 +1,2 @@
#!/usr/bin/env bash
systemctl daemon-reload
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/env bash
systemctl daemon-reload
rm -rf /usr/libexec/incus
groupdel incus-admin
groupdel incus
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
mkdir -p /usr/libexec/incus/
groupadd --system incus-admin
groupadd --system incus
+6
View File
@@ -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
+7
View File
@@ -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 - -
+8
View File
@@ -0,0 +1,8 @@
name: jellyfin-ffmpeg-bin
release: 3
version: 7.1.1
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/bash
# Setup rpmbuild directory structure
mkdir -p /root/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
# Download source files using spectool
spectool -g -R /app/resources/jellyfin-ffmpeg-bin_${PACKAGE_VERSION}.spec
# Build the RPM
rpmbuild -ba /app/resources/jellyfin-ffmpeg-bin_${PACKAGE_VERSION}.spec
# Copy the built RPMs to output directory
cp /root/rpmbuild/RPMS/x86_64/jellyfin-ffmpeg-bin-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.*.rpm /app/dist/
cp /root/rpmbuild/SRPMS/jellyfin-ffmpeg-bin-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.*.rpm /app/dist
@@ -0,0 +1,65 @@
%global debug_package %{nil}
%define _missing_build_ids_terminate_build 0
%global jellyfin_release 3
Name: jellyfin-ffmpeg-bin
Version: 7.1.1
Release: %{jellyfin_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%{version}-%{jellyfin_release}/jellyfin-ffmpeg_%{version}-%{jellyfin_release}_portable_linux64-gpl.tar.xz
Source1: https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v%{version}-%{jellyfin_release}/jellyfin-ffmpeg_%{version}-%{jellyfin_release}_portable_linuxarm64-gpl.tar.xz
Source2: https://raw.githubusercontent.com/jellyfin/jellyfin-ffmpeg/v%{version}-%{jellyfin_release}/LICENSE.md
Source3: https://raw.githubusercontent.com/jellyfin/jellyfin-ffmpeg/v%{version}-%{jellyfin_release}/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
+8
View File
@@ -0,0 +1,8 @@
name: jellyfin-server
release: 1
version: 10.10.7
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+21
View File
@@ -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
+8
View File
@@ -0,0 +1,8 @@
name: jellyfin-web
release: 1
version: 10.10.7
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+18
View File
@@ -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,9 @@
name: jsonnet-language-server
release: 1
version: 0.16.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: grafana/jsonnet-language-server
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/bash
# Download the required files
curl -L -o /app/jsonnet-language-server https://github.com/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
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
@@ -0,0 +1,38 @@
# nfpm.yaml
name: jsonnet-language-server
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "Jsonnet Language Server Protocol implementation for the Jsonnet templating language."
maintainer: Grafana Labs
homepage: https://github.com/grafana/jsonnet-language-server
license: Apache-2.0
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
+9
View File
@@ -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
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/bash
# 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}
# Build RPM package
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+30
View File
@@ -0,0 +1,30 @@
# nfpm.yaml
name: jsonnet-lint
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "Linter for Jsonnet"
maintainer: Google
homepage: https://github.com/google/go-jsonnet
license: Apache-2.0
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
+9
View File
@@ -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
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/bash
# 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}
# Build RPM package
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+36
View File
@@ -0,0 +1,36 @@
# nfpm.yaml
name: jsonnet
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "A data templating language"
maintainer: Google
homepage: https://github.com/google/go-jsonnet
license: Apache-2.0
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
+9
View File
@@ -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
+10
View File
@@ -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
+36
View File
@@ -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
+9
View File
@@ -0,0 +1,9 @@
name: nfpm
release: 1
version: 2.41.1
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
github: goreleaser/nfpm
+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/bash
# Compile nfpm binary using Go
GOBIN=/app go install github.com/goreleaser/nfpm/v2/cmd/nfpm@v${PACKAGE_VERSION}
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+38
View File
@@ -0,0 +1,38 @@
# nfpm.yaml
name: nfpm
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "A zero dependencies, simple deb, rpm, apk, ipk, and arch linux packager written in Go."
maintainer: GoReleaser
homepage: https://nfpm.goreleaser.com/
license: MIT
disable_globbing: false
replaces:
- nfpm
provides:
- nfpm
# Files to include in the package
contents:
- src: /app/nfpm
dst: /usr/bin/nfpm
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
+8
View File
@@ -0,0 +1,8 @@
name: node_exporter
release: 1
version: 1.9.1
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/bash
# Download the required files
curl --output - -L https://github.com/prometheus/node_exporter/releases/download/v${PACKAGE_VERSION}/node_exporter-${PACKAGE_VERSION}.linux-amd64.tar.gz | tar --strip-components=1 -xzf -
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+37
View File
@@ -0,0 +1,37 @@
# nfpm.yaml
name: node_exporter
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "exporter for machine metrics"
maintainer: Prometheus
homepage: https://github.com/prometheus/node_exporter
license: Apache-2.0 license
disable_globbing: false
replaces:
- node_exporter
provides:
- node_exporter
# Files to include in the package
contents:
- src: /app/node_exporter
dst: /usr/bin/node_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
+8
View File
@@ -0,0 +1,8 @@
name: nomad-autoscaler
release: 1
version: 0.4.6
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/bash
# Install dependencies
dnf install -y unzip
# Download and extract nomad-autoscaler
curl -o /app/nomad-autoscaler.zip https://releases.hashicorp.com/nomad-autoscaler/${PACKAGE_VERSION}/nomad-autoscaler_${PACKAGE_VERSION}_linux_amd64.zip
unzip nomad-autoscaler.zip
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+35
View File
@@ -0,0 +1,35 @@
# nfpm.yaml
name: nomad-autoscaler
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "The Nomad Autoscaler is an autoscaling daemon for Nomad, architectured around plug-ins to allow for easy extensibility in terms of supported metrics sources, scaling targets and scaling algorithms."
maintainer: Hashicorp
homepage: https://github.com/hashicorp/nomad-autoscaler
license: Mozilla Public License, version 2.0
disable_globbing: false
replaces:
- nomad-autoscaler
# Files to include in the package
contents:
- src: /app/nomad-autoscaler
dst: /usr/bin/nomad-autoscaler
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
+8
View File
@@ -0,0 +1,8 @@
name: nomad
release: 1
version: 1.10.1
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/bash
# Install dependencies
dnf install -y unzip
# Download and extract nomad
curl -o /app/nomad.zip https://releases.hashicorp.com/nomad/${PACKAGE_VERSION}/nomad_${PACKAGE_VERSION}_linux_amd64.zip
unzip nomad.zip
# Build the RPM
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+38
View File
@@ -0,0 +1,38 @@
# nfpm.yaml
name: nomad
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "A simple and flexible scheduler and orchestrator to deploy and manage containers and non-containerized applications across on-premises and clouds at scale."
maintainer: HashiCorp
homepage: https://www.nomadproject.io/
license: BUSL-1.1
disable_globbing: false
replaces:
- nomad
provides:
- nomad
# Files to include in the package
contents:
- src: /app/nomad
dst: /usr/bin/nomad
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
+9
View File
@@ -0,0 +1,9 @@
name: nzbget
release: 1
version: '25.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: nzbgetcom/nzbget
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/bash
# Download the pre-built RPM from GitHub releases
curl -o /app/dist/nzbget-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.x86_64.rpm \
https://github.com/nzbgetcom/nzbget/releases/download/v$PACKAGE_VERSION/nzbget-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.x86_64.rpm
+38
View File
@@ -0,0 +1,38 @@
# nfpm.yaml
name: nzbget
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "NZBGet is a binary downloader, which downloads files from Usenet based-on information given in nzb files."
maintainer: nzbgetcom
homepage: https://github.com/nzbgetcom/nzbget
license: GPL-2.0
disable_globbing: false
replaces:
- nzbget
provides:
- nzbget
# Files to include in the package
contents:
- src: /app/nzbget
dst: /usr/bin/nzbget
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
+9
View File
@@ -0,0 +1,9 @@
name: nzbget_exporter
release: 1
version: 2025.08.03
github: frebib/nzbget-exporter
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/bash
cd /app
git clone https://github.com/frebib/nzbget-exporter.git
go install github.com/frebib/enumerx@latest
cp /root/go/bin/enumerx /usr/local/bin/
pushd /app/nzbget-exporter
go generate
go build -o ../nzbget_exporter
popd
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm
+37
View File
@@ -0,0 +1,37 @@
# nfpm.yaml
name: nzbget_exporter
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "Prometheus exporter for NZBGet"
maintainer: Prometheus
homepage: https://github.com/frebib/nzbget-exporter
license: MIT
disable_globbing: false
replaces:
- nzbget_exporter
provides:
- nzbget_exporter
# Files to include in the package
contents:
- src: /app/nzbget_exporter
dst: /usr/bin/nzbget_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,9 @@
name: openbao-plugin-secret-consul
release: 1
version: 0.1.0
github: openbao/openbao-plugins
build:
- distro: el/8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
- distro: el/9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest

Some files were not shown because too many files have changed in this diff Show More