-
-
Notifications
You must be signed in to change notification settings - Fork 108
Expand file tree
/
Copy pathnfpm-wheels.yaml
More file actions
99 lines (98 loc) · 3.73 KB
/
Copy pathnfpm-wheels.yaml
File metadata and controls
99 lines (98 loc) · 3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# nfpm config for the stable channel `wheels` package (.deb / .rpm).
#
# nfpm is a Go binary that generates Linux packages from a single YAML config.
# It does NOT need a Debian/RHEL-specific build environment — runs anywhere a
# Go binary runs, including macOS dev machines and Ubuntu CI.
#
# Build with:
# nfpm pkg --packager deb --target dist/wheels_${VERSION}_amd64.deb
# nfpm pkg --packager rpm --target dist/wheels-${VERSION}.x86_64.rpm
#
# The version is interpolated from the WHEELS_VERSION env var at build time.
name: wheels
arch: amd64
platform: linux
version: ${WHEELS_VERSION}
section: devel
priority: optional
maintainer: Wheels Team <hello@wheels.dev>
description: |
Wheels — CFML MVC framework
Code generation, migrations, testing, and dev server management for Wheels apps.
Stable channel — updates only on GA releases.
vendor: Wheels
homepage: https://wheels.dev
license: Apache-2.0
contents:
# The LuCLI binary, renamed to `wheels` at stage time so basename(argv[0])
# is `wheels` when the wrapper execs it — LuCLI's module dispatcher routes
# via argv[0], so renaming is what makes `wheels start` reach the bundled
# module. See #2700.
- src: ./build/wheels
dst: /opt/wheels/wheels
file_info:
mode: 0755
# The CLI module — what LuCLI dispatches `wheels new`, `wheels migrate`, etc. into.
- src: ./build/module/
dst: /opt/wheels/module/
type: tree
# Framework source — staged into vendor/wheels/ in scaffolded apps.
# IMPORTANT: src points at ./build/framework/wheels/ (the inner directory),
# NOT ./build/framework/. wheels-core-VER.zip has a top-level wheels/ dir
# that `unzip` preserves, leaving the framework at ./build/framework/wheels/.
# nfpm's `type: tree` copies the *contents* of src into dst, so without the
# trailing /wheels/ on src, the framework double-nests as
# /opt/wheels/module/vendor/wheels/wheels/Injector.cfc and Lucee can't
# resolve `wheels.Injector` at app startup. See issue #2773. The brew
# formula handles this the equivalent way — see homebrew-wheels
# Formula/wheels.rb's `(share/"wheels/framework/wheels").install Dir["*"]`.
- src: ./build/framework/wheels/
dst: /opt/wheels/module/vendor/wheels/
type: tree
# SQLite JDBC — required at first run by the wrapper script (cliff fix from
# the fresh-VM onboarding journal).
- src: ./build/sqlite-jdbc.jar
dst: /opt/wheels/sqlite-jdbc.jar
file_info:
mode: 0644
# Version + channel stamps. The wrapper reads both to render `wheels --version`.
# Without them, `wheels --version` returns "unknown (stable)". See #2700.
- src: ./build/.version
dst: /opt/wheels/.version
file_info:
mode: 0644
- src: ./build/.channel
dst: /opt/wheels/.channel
file_info:
mode: 0644
# User-facing wrapper script. Sets JAVA_HOME, LUCLI_HOME, syncs the module
# to ~/.wheels/ on first run, then execs /opt/wheels/wheels.
- src: ./build/wrapper.sh
dst: /usr/bin/wheels
file_info:
mode: 0755
overrides:
deb:
depends:
- openjdk-21-jre-headless | openjdk-21-jre
- tar
recommends:
- sqlite3 # not strictly required (driver bundled), but useful for the user
rpm:
depends:
- java-21-openjdk-headless
# Rocky Linux 10 minimal cloud images do not ship tar, and any role that
# unpacks /opt/wheels/module/ (or other tarball payloads) fails without
# it. Declare it here so dnf pulls it in. See #2700.
- tar
recommends:
- sqlite
deb:
fields:
Bugs: https://github.com/wheels-dev/wheels/issues
rpm:
group: Development/Tools
signature:
# The signing key is configured in CI via NFPM_RPM_PASSPHRASE +
# NFPM_RPM_SIGN_KEY env vars. Local builds skip signing.
key_file: ${NFPM_RPM_SIGN_KEY:-}