-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapger.conf
More file actions
122 lines (106 loc) · 4.04 KB
/
Copy pathapger.conf
File metadata and controls
122 lines (106 loc) · 4.04 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
# APGer Build Configuration
# TOML config for NurOS package builder
#
# Self-build flags (apgbuild, apger) are hardcoded in Meson.build:
# -march=native -O3 -flto=thin -fuse-ld=mold
#
# This file only configures [build.packages] — flags for distro packages.
[build.packages]
# Target: packages distributed to end users
# march/mtune/levels_hwcaps accept any casing or separator:
# "x86_64-v2", "X86-64-V2", "x86_64v2" are all equivalent.
march = "x86_64-v2"
mtune = "x86_64-v3"
opt_level = "O2"
lto = "thin"
# cc/cxx: "default" resolves to gcc/g++ for x86_64, clang/clang++ for cross targets.
cc = "default"
cxx = "default"
ld = "mold"
# Build shared libraries for each hwcaps level and place them in
# usr/lib/glibc-hwcaps/<level>/ so glibc picks the best variant at runtime.
library_glibc_hwcaps = true
levels_hwcaps = ["x86_64-v3", "x86_64-v2"]
# ── Cross-compilation profiles ────────────────────────────────────────────────
# Each [build.cross.<arch>] section defines a cross-compilation profile.
# Key must be a canonical arch name: "aarch64", "riscv64", or any custom triple.
#
# cc/cxx = "default" → clang/clang++ (best for cross-compilation)
# target = GNU target triple used for:
# - clang: --target=<triple> added to CFLAGS/CXXFLAGS/LDFLAGS
# - gcc: <triple>-gcc prefix (e.g. aarch64-linux-gnu-gcc)
#
# Per-recipe override example (in recipe .toml):
# [build.override]
# cc = "clang"
# opt_level = "O3"
[build.cross.aarch64]
# ARM 64-bit (Cortex-A series, Apple Silicon, Raspberry Pi 4+)
# march=armv8-a is the correct -march= flag for aarch64 targets
march = "armv8-a"
opt_level = "O2"
lto = "thin"
cc = "default" # → clang
cxx = "default" # → clang++
ld = "mold"
target = "aarch64-linux-gnu"
# AArch64 does not use x86_64 hwcaps levels — disable for cross builds
library_glibc_hwcaps = false
[build.cross.riscv64]
# RISC-V 64-bit (SiFive, StarFive, Milk-V)
# march=rv64gc: G=IMAFD (general), C=compressed instructions
march = "rv64gc"
opt_level = "O2"
lto = "thin"
cc = "default" # → clang
cxx = "default" # → clang++
ld = "mold"
target = "riscv64-linux-gnu"
library_glibc_hwcaps = false
[aria2]
# aria2c download settings for fetching package sources (tarballs).
# These flags are passed directly to aria2c subprocess.
# Number of parallel connections per server (--max-connection-per-server)
connections = 6
# Number of file segments to split download into (--split)
# Set equal to connections for maximum parallelism.
splits = 4
# Minimum size of each split segment (--min-split-size)
# Files smaller than this are not split. Format: "1M", "512K", etc.
min_split_size = "1M"
# Maximum retry attempts on error (--max-tries)
max_tries = 5
# Connection timeout in seconds (--connect-timeout)
timeout = 60
# Resume partial downloads (--continue)
# Useful when re-running after a failed build.
continue = true
# Override User-Agent header (leave empty for aria2c default)
# user_agent = "apger/1.0"
# HTTP/HTTPS proxy (leave empty to use system proxy or none)
# proxy = "http://proxy.example.com:3128"
[compression]
# Archive format for .apg packages (uses libarchive under the hood).
# type: zstd | xz | bz2 | gz | lz4 | lzma
# level: compression level (format-specific):
# zstd: 1-22 (default 19)
# xz: 0-9 (default 6)
# bz2: 1-9 (default 9)
# gz: 1-9 (default 6)
# lz4: 1-12 (default 9)
type = "zstd"
level = 19
[kubernetes.options.oomkill_limits]
# Hard resource limits for build pods.
# apger validates these against the host at startup — if they exceed real
# system resources the build is aborted before any pod is created.
# CPU format: "10" (cores) or "500m" (millicores)
# Memory format: "16Gi", "8G", "512Mi"
cpu = "10"
memory = "16Gi"
[logging]
# verbose = true reduces log filtering during builds.
# All lines are still syntax-highlighted (CC/CXX/LD/errors/warnings/...).
# false = kbuild-style: only meaningful lines shown (default)
# true = show more: configure checks, make internals, cmake status, notes
verbose = false