215 lines
4.9 KiB
Plaintext
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
|
|
}
|
|
}
|
|
}
|