nip/examples/nip-config-kdl-valid.kdl

215 lines
4.9 KiB
Plaintext

// NIP Configuration with USE Flags - Valid KDL Format
// This demonstrates proper KDL syntax for NIP configuration
nip {
// Basic Directory Configuration
programs-dir "/Programs"
links-dir "/System/Links"
cache-dir "/var/nip/cache"
db-file "/var/nip/db/packages.json"
// Global Options
auto-symlink true
check-conflicts true
verbose false
// Global USE Flags
// In valid KDL, flags are represented as nodes with properties
use-flags {
// Init System
init {
systemd enabled=false
dinit enabled=true
openrc enabled=false
runit enabled=false
}
// GUI Toolkit
gui {
X enabled=false
wayland enabled=true
gtk enabled=true
qt enabled=false
}
// Audio System
audio {
pulseaudio enabled=false
pipewire enabled=true
alsa enabled=true
}
// Optimization
optimization {
lto enabled=true
pgo enabled=true
debug enabled=false
strip enabled=true
}
// Security
security {
hardened enabled=true
pie enabled=true
relro enabled=true
stack-protector enabled=true
}
// Common Features
features {
ipv6 enabled=true
ssl enabled=true
zstd enabled=true
lz4 enabled=true
doc enabled=false
examples enabled=false
dbus enabled=true
}
}
// Compiler Flags
compiler {
CFLAGS "-O3 -march=native -pipe"
CXXFLAGS "-O3 -march=native -pipe"
LDFLAGS "-Wl,-O1 -Wl,--as-needed"
MAKEFLAGS "-j8"
RUSTFLAGS "-C opt-level=3 -C target-cpu=native"
}
// Build Profiles
profiles {
active "performance"
profile "minimal" {
description "Minimal features for embedded systems"
base "default"
use-flags {
systemd enabled=false
X enabled=false
wayland enabled=false
doc enabled=false
ssl enabled=true
ipv6 enabled=true
}
compiler {
CFLAGS "-Os -pipe"
CXXFLAGS "-Os -pipe"
LDFLAGS "-Wl,-O1 -Wl,--as-needed"
MAKEFLAGS "-j4"
}
}
profile "performance" {
description "Maximum performance optimizations"
base "default"
use-flags {
lto enabled=true
pgo enabled=true
debug enabled=false
strip enabled=true
}
compiler {
CFLAGS "-O3 -march=native -flto -pipe"
CXXFLAGS "-O3 -march=native -flto -pipe"
LDFLAGS "-Wl,-O1 -flto"
MAKEFLAGS "-j16"
}
}
profile "desktop" {
description "Full desktop environment"
base "default"
use-flags {
dinit enabled=true
wayland enabled=true
gtk enabled=true
pipewire enabled=true
dbus enabled=true
}
compiler {
CFLAGS "-O2 -pipe"
CXXFLAGS "-O2 -pipe"
LDFLAGS "-Wl,-O1"
MAKEFLAGS "-j8"
}
}
}
// Per-Package Configuration
package "firefox" {
description "Firefox web browser"
use-flags {
wayland enabled=true
X enabled=false
alsa enabled=true
pulseaudio enabled=false
lto enabled=true
}
compiler {
CFLAGS "-O3 -march=native -flto"
CXXFLAGS "-O3 -march=native -flto"
MAKEFLAGS "-j8"
}
}
package "nginx" {
description "Nginx web server"
use-flags {
ssl enabled=true
http2 enabled=true
http3 enabled=true
zstd enabled=true
hardened enabled=true
}
compiler {
CFLAGS "-O3 -flto -fstack-protector-strong"
LDFLAGS "-Wl,-O1 -Wl,-z,relro -Wl,-z,now"
}
}
package "python" {
description "Python interpreter"
use-flags {
lto enabled=true
pgo enabled=true
ssl enabled=true
ipv6 enabled=true
}
compiler {
CFLAGS "-O3 -march=native -flto"
LDFLAGS "-Wl,-O1 -flto"
}
}
// Adapter Configuration
adapters {
nix {
enabled true
priority 10
}
pkgsrc {
enabled true
priority 20
build-from-source true
}
pacman {
enabled true
priority 30
}
}
}