-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackages.yml
More file actions
267 lines (246 loc) · 8.14 KB
/
Copy pathpackages.yml
File metadata and controls
267 lines (246 loc) · 8.14 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
# AstralEmu - Package build definitions (non-emulator)
#
# Same format as emulators.yml — both are merged at build time.
# These are system/runtime packages recompiled with device-optimized flags.
#
# To add a new package:
# 1. Add an entry below with a unique id
# 2. Create packages/<id>/build.sh with the build logic
# 3. Commit and push — the CI will build it automatically
packages:
# setperf — bash script per device (no compilation). Single noarch build
# iterates devices.yml internally and emits one arch=all .pkg.tar per
# device (26 packages from one job instead of 26 jobs).
- id: setperf
version_source: hash-only
build_time: 1
power_arm: 1
power_amd: 1
true_arm: true
true_amd: true
noarch_single_build: true
# Repo configuration meta-package: drops apt/dnf/pacman config files
# pointing to the AstralEmu shared deps repo. arch=all, content depends
# only on SOURCE_DISTRO. Pulled in by kernel-astralemu-<device>. Single
# build, identical .pkg.tar published to every device repo.
- id: astralemu-deps-repo
version_source: hash-only
build_time: 1
power_arm: 1
power_amd: 1
true_arm: true
true_amd: true
noarch_single_build: true
# All performance-critical libraries in one job:
# LLVM → Mesa (GPU), libdrm, vulkan-loader, libva, intel-media-driver,
# jemalloc, SDL3, zlib-ng, FFmpeg, zstd
- id: perf-libs
version_source: hash-only
build_time: 200
power_arm: 1
power_amd: 3
true_arm: true
true_amd: true
# ============================================================================
# Kernels (multi-job split, see docs/kernel-integration-plan.md)
# ============================================================================
# Each target kernel is split into 5 sub-jobs orchestrated by the aggregator
# pattern (cf. libretro-package). Sub-jobs share the patched source tree via
# a kernel-prep tarball artifact. Splitting keeps every sub-job below 3h
# comfortably under the 6h GitHub Actions hard limit.
#
# <target>-prep clone + apply patches + savedefconfig
# <target>-image make bzImage / Image + dtbs
# <target>-modules-platform AMD/Intel platform/GPU/firmware modules (x86)
# OR per-SoC modules (arm64)
# <target>-modules-generic net/usb/hid/sound/fs/crypto/...
# <target> aggregator → final .pkg.tar + sub-packages
- id: kernel-amd64-prep
version_source: hash-only
build_time: 25
power_arm: 99 # arm-only filter via true_arm=false
power_amd: 1
true_arm: false
true_amd: true
artifact_type: kernel-prep
- id: kernel-amd64-image
version_source: hash-only
build_time: 40
power_arm: 99
power_amd: 1
true_arm: false
true_amd: true
artifact_type: kernel-image
depends_on: [kernel-amd64-prep]
- id: kernel-amd64-modules-platform
version_source: hash-only
build_time: 60
power_arm: 99
power_amd: 1
true_arm: false
true_amd: true
artifact_type: kernel-modules
depends_on: [kernel-amd64-prep]
- id: kernel-amd64-modules-generic
version_source: hash-only
build_time: 60
power_arm: 99
power_amd: 1
true_arm: false
true_amd: true
artifact_type: kernel-modules
depends_on: [kernel-amd64-prep]
- id: kernel-amd64
version_source: hash-only
build_time: 15
power_arm: 99
power_amd: 1
true_arm: false
true_amd: true
is_aggregator: true
depends_on:
- kernel-amd64-image
- kernel-amd64-modules-platform
- kernel-amd64-modules-generic
# --- kernel-arm64-modern ---------------------------------------------------
# target_filter restricts these entries to the arm64-modern build_target
# only — both arm64 targets share true_arm=true but their patches and
# SoCs differ. compute-chains.sh skips entries whose target_filter
# doesn't match the iterated build_target.
- id: kernel-arm64-modern-prep
version_source: hash-only
build_time: 30
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
target_filter: [arm64-modern]
artifact_type: kernel-prep
- id: kernel-arm64-modern-image
version_source: hash-only
build_time: 50
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
target_filter: [arm64-modern]
artifact_type: kernel-image
depends_on: [kernel-arm64-modern-prep]
- id: kernel-arm64-modern-modules-soc
version_source: hash-only
build_time: 90
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
target_filter: [arm64-modern]
artifact_type: kernel-modules
depends_on: [kernel-arm64-modern-prep]
- id: kernel-arm64-modern-modules-generic
version_source: hash-only
build_time: 80
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
target_filter: [arm64-modern]
artifact_type: kernel-modules
depends_on: [kernel-arm64-modern-prep]
- id: kernel-arm64-modern
version_source: hash-only
build_time: 15
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
target_filter: [arm64-modern]
is_aggregator: true
depends_on:
- kernel-arm64-modern-image
- kernel-arm64-modern-modules-soc
- kernel-arm64-modern-modules-generic
# --- kernel-arm64-legacy ---------------------------------------------------
# Targets armv8-a A53/A55/A57/A72/A73 handhelds (H700, RK3326, RK3399,
# RK3566, S922X). Same 5-step split as arm64-modern; SoC whitelist
# differs (Allwinner sunxi, Amlogic meson, Rockchip RK3xxx-classic).
- id: kernel-arm64-legacy-prep
version_source: hash-only
build_time: 30
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
target_filter: [arm64-legacy]
artifact_type: kernel-prep
- id: kernel-arm64-legacy-image
version_source: hash-only
build_time: 50
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
target_filter: [arm64-legacy]
artifact_type: kernel-image
depends_on: [kernel-arm64-legacy-prep]
- id: kernel-arm64-legacy-modules-soc
version_source: hash-only
build_time: 90
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
target_filter: [arm64-legacy]
artifact_type: kernel-modules
depends_on: [kernel-arm64-legacy-prep]
- id: kernel-arm64-legacy-modules-generic
version_source: hash-only
build_time: 80
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
target_filter: [arm64-legacy]
artifact_type: kernel-modules
depends_on: [kernel-arm64-legacy-prep]
- id: kernel-arm64-legacy
version_source: hash-only
build_time: 15
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
target_filter: [arm64-legacy]
is_aggregator: true
depends_on:
- kernel-arm64-legacy-image
- kernel-arm64-legacy-modules-soc
- kernel-arm64-legacy-modules-generic
# --- kernel-tegra-x1 -------------------------------------------------------
# Nintendo Switch (T210/T210B01) — sourced from NaGaa95/switch-l4t-kernel-4.9
# (the only actively maintained 4.9 fork). 4.9 cannot use BORE/CachyOS
# (different scheduler/mm internals), so this stays a mono-job: 4.9 + a
# small in-tree module set fits in ~1h on a native arm64 runner. Restricted
# to the Switch only via per_device + target_filter: [l4t] (l4t is the
# device id of the Nintendo Switch entry in devices.yml).
- id: kernel-tegra-x1
version_source: hash-only
build_time: 90
power_arm: 1
power_amd: 99
true_arm: true
true_amd: false
per_device: true
target_filter: [l4t]
# --- kernel-astralemu (meta) -----------------------------------------------
# Per-device meta-package: a single 'apt install kernel-astralemu-<device>'
# pulls in kernel + modules + dtbs + setperf + deps-repo for the target
# device. Empty root/, only meta/depends. arch=all. Single noarch build
# iterates devices.yml internally and emits one .pkg.tar per device.
- id: kernel-astralemu
version_source: hash-only
build_time: 2
power_arm: 1
power_amd: 1
true_arm: true
true_amd: true
noarch_single_build: true