512 lines
14 KiB
Plaintext
512 lines
14 KiB
Plaintext
// NIP Configuration with USE Flags and Build Settings
|
|
// This is an example configuration showing the USE flag system
|
|
|
|
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
|
|
// ============================================
|
|
// These apply to all packages unless overridden
|
|
|
|
use-flags {
|
|
// Init System (mutually exclusive)
|
|
// Choose ONE: systemd, dinit, openrc, runit
|
|
init {
|
|
-systemd // Disable systemd support
|
|
+dinit // Enable dinit support
|
|
-openrc // Disable OpenRC support
|
|
-runit // Disable runit support
|
|
}
|
|
|
|
// GUI Toolkit Preferences
|
|
gui {
|
|
-X // Disable X11 support
|
|
+wayland // Enable Wayland support
|
|
+gtk // Enable GTK support
|
|
-qt // Disable Qt support
|
|
}
|
|
|
|
// Audio System
|
|
audio {
|
|
-pulseaudio // Disable PulseAudio
|
|
+pipewire // Enable PipeWire
|
|
+alsa // Enable ALSA
|
|
}
|
|
|
|
// Optimization Flags
|
|
optimization {
|
|
+lto // Enable Link-Time Optimization
|
|
+pgo // Enable Profile-Guided Optimization
|
|
-debug // Disable debug symbols
|
|
+strip // Strip binaries
|
|
}
|
|
|
|
// Security Hardening
|
|
security {
|
|
+hardened // Enable hardening
|
|
+pie // Position Independent Executables
|
|
+relro // RELRO (Relocation Read-Only)
|
|
+stack-protector // Stack protection
|
|
}
|
|
|
|
// Common Features
|
|
features {
|
|
+ipv6 // Enable IPv6 support
|
|
+ssl // Enable SSL/TLS
|
|
+zstd // Enable Zstandard compression
|
|
+lz4 // Enable LZ4 compression
|
|
-doc // Disable documentation
|
|
-examples // Disable examples
|
|
+dbus // Enable D-Bus support
|
|
}
|
|
|
|
// Language Bindings
|
|
bindings {
|
|
+python // Enable Python bindings
|
|
-ruby // Disable Ruby bindings
|
|
-perl // Disable Perl bindings
|
|
+lua // Enable Lua bindings
|
|
}
|
|
|
|
// ============================================
|
|
// Nexus-Specific Categories
|
|
// ============================================
|
|
|
|
// Nexus Fleet Command
|
|
nexus-fleet {
|
|
+fleet-agent // Enable fleet agent
|
|
+fleet-discovery // Enable service discovery
|
|
+fleet-mesh // Enable mesh networking
|
|
-fleet-controller // Disable controller (not needed on nodes)
|
|
}
|
|
|
|
// System Bootstrapping
|
|
nexus-bootstrap {
|
|
-bootstrap // Not building from scratch
|
|
+cross-compile // Enable cross-compilation support
|
|
-stage1 // Not stage1 bootstrap
|
|
}
|
|
|
|
// Container Technologies
|
|
container {
|
|
+nipcells // Enable NipCells (Nexus containers)
|
|
-docker // Disable Docker
|
|
+containerd // Enable containerd
|
|
+crun // Enable crun runtime
|
|
}
|
|
|
|
// Virtualization
|
|
virtualization {
|
|
+kvm // Enable KVM support
|
|
+qemu // Enable QEMU
|
|
+libvirt // Enable libvirt
|
|
-xen // Disable Xen
|
|
}
|
|
|
|
// Mesh Networking
|
|
mesh {
|
|
+mesh-network // Enable mesh networking
|
|
+wireguard // Enable WireGuard
|
|
+libp2p // Enable libp2p
|
|
-ipfs // Disable IPFS
|
|
}
|
|
|
|
// Gaming
|
|
gaming {
|
|
+vulkan // Enable Vulkan
|
|
+mesa // Enable Mesa
|
|
+amd // AMD GPU support
|
|
-nvidia // No NVIDIA
|
|
-steam // No Steam
|
|
}
|
|
|
|
// AI/ML and NPU
|
|
ai-ml {
|
|
+rocm // Enable ROCm (AMD)
|
|
+opencl // Enable OpenCL
|
|
-cuda // No CUDA (NVIDIA)
|
|
+onnx // Enable ONNX runtime
|
|
}
|
|
|
|
// Developer Tools
|
|
developer {
|
|
+debugger // Enable debugging support
|
|
+lsp // Enable LSP support
|
|
+profiler // Enable profiling
|
|
-sanitizer // Disable sanitizers (performance)
|
|
}
|
|
|
|
// Nexus Integration
|
|
nexus-integration {
|
|
+nexus-api // Enable Nexus API
|
|
+nexus-sync // Enable sync service
|
|
+nexus-monitor // Enable monitoring
|
|
+nexus-security // Enable security features
|
|
}
|
|
}
|
|
|
|
// ============================================
|
|
// Compiler and Linker Flags
|
|
// ============================================
|
|
|
|
compiler {
|
|
// C Compiler Flags
|
|
CFLAGS "-O3 -march=native -pipe -fomit-frame-pointer"
|
|
|
|
// C++ Compiler Flags
|
|
CXXFLAGS "-O3 -march=native -pipe -fomit-frame-pointer"
|
|
|
|
// Linker Flags
|
|
LDFLAGS "-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
|
|
|
|
// Make Flags (parallel jobs)
|
|
MAKEFLAGS "-j8"
|
|
|
|
// Additional flags
|
|
RUSTFLAGS "-C opt-level=3 -C target-cpu=native"
|
|
GOFLAGS "-buildmode=pie"
|
|
}
|
|
|
|
// ============================================
|
|
// Build Profiles
|
|
// ============================================
|
|
// Named collections of USE flags and compiler settings
|
|
|
|
profiles {
|
|
// Currently active profile
|
|
active "performance"
|
|
|
|
// Minimal Profile - Small footprint
|
|
profile "minimal" {
|
|
description "Minimal features for embedded or containers"
|
|
base "default"
|
|
|
|
use-flags {
|
|
// Disable almost everything
|
|
-systemd -dinit -openrc
|
|
-X -wayland -gtk -qt
|
|
-pulseaudio -pipewire
|
|
-doc -examples -dbus
|
|
// Keep essentials
|
|
+ssl +ipv6
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-Os -pipe"
|
|
CXXFLAGS "-Os -pipe"
|
|
LDFLAGS "-Wl,-O1 -Wl,--as-needed -Wl,--strip-all"
|
|
MAKEFLAGS "-j4"
|
|
}
|
|
}
|
|
|
|
// Desktop Profile - Full GUI support
|
|
profile "desktop" {
|
|
description "Full desktop environment with GUI"
|
|
base "default"
|
|
|
|
use-flags {
|
|
+dinit
|
|
+wayland +gtk +qt
|
|
+pipewire +alsa
|
|
+dbus +ipv6 +ssl
|
|
+python +lua
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O2 -pipe"
|
|
CXXFLAGS "-O2 -pipe"
|
|
LDFLAGS "-Wl,-O1"
|
|
MAKEFLAGS "-j8"
|
|
}
|
|
}
|
|
|
|
// Performance Profile - Maximum optimization
|
|
profile "performance" {
|
|
description "Maximum performance with aggressive optimizations"
|
|
base "default"
|
|
|
|
use-flags {
|
|
+lto +pgo
|
|
-debug +strip
|
|
+hardened +pie
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -march=native -flto -fomit-frame-pointer -pipe"
|
|
CXXFLAGS "-O3 -march=native -flto -fomit-frame-pointer -pipe"
|
|
LDFLAGS "-Wl,-O1 -Wl,--as-needed -flto"
|
|
MAKEFLAGS "-j16"
|
|
RUSTFLAGS "-C opt-level=3 -C target-cpu=native -C lto=fat"
|
|
}
|
|
}
|
|
|
|
// Server Profile - Headless server
|
|
profile "server" {
|
|
description "Server configuration without GUI"
|
|
base "default"
|
|
|
|
use-flags {
|
|
+systemd
|
|
-X -wayland -gtk -qt
|
|
-pulseaudio -pipewire
|
|
+ssl +ipv6 +zstd
|
|
+hardened +pie +relro
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O2 -pipe -fstack-protector-strong"
|
|
CXXFLAGS "-O2 -pipe -fstack-protector-strong"
|
|
LDFLAGS "-Wl,-O1 -Wl,-z,relro -Wl,-z,now"
|
|
MAKEFLAGS "-j8"
|
|
}
|
|
}
|
|
|
|
// Development Profile - Debug symbols
|
|
profile "development" {
|
|
description "Development with debug symbols"
|
|
base "default"
|
|
|
|
use-flags {
|
|
+debug
|
|
-strip -lto
|
|
+doc +examples
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O0 -g -pipe"
|
|
CXXFLAGS "-O0 -g -pipe"
|
|
LDFLAGS "-Wl,-O1"
|
|
MAKEFLAGS "-j8"
|
|
}
|
|
}
|
|
}
|
|
|
|
// ============================================
|
|
// Per-Package Configuration
|
|
// ============================================
|
|
// Override USE flags and compiler settings for specific packages
|
|
|
|
package "firefox" {
|
|
description "Firefox web browser"
|
|
|
|
use-flags {
|
|
+wayland -X // Wayland-only build
|
|
+alsa -pulseaudio // ALSA instead of PulseAudio
|
|
+lto // Enable LTO for Firefox
|
|
-debug +strip // Release build
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -march=native -flto"
|
|
CXXFLAGS "-O3 -march=native -flto"
|
|
LDFLAGS "-Wl,-O1 -flto"
|
|
MAKEFLAGS "-j8"
|
|
}
|
|
}
|
|
|
|
package "vim" {
|
|
description "Vim text editor"
|
|
|
|
use-flags {
|
|
+python +lua // Enable scripting
|
|
-ruby -perl // Disable other languages
|
|
+gtk // GUI support
|
|
-X // No X11
|
|
}
|
|
}
|
|
|
|
package "nginx" {
|
|
description "Nginx web server"
|
|
|
|
use-flags {
|
|
+ssl +http2 +http3 // Modern protocols
|
|
+zstd +lz4 // Compression
|
|
-debug // Production build
|
|
+hardened // Security hardening
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -flto -fstack-protector-strong"
|
|
LDFLAGS "-Wl,-O1 -Wl,-z,relro -Wl,-z,now -flto"
|
|
}
|
|
}
|
|
|
|
package "ffmpeg" {
|
|
description "FFmpeg multimedia framework"
|
|
|
|
use-flags {
|
|
+lto +pgo // Maximum performance
|
|
+vaapi +vdpau // Hardware acceleration
|
|
+x264 +x265 +av1 // Video codecs
|
|
+opus +aac // Audio codecs
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -march=native -flto -fomit-frame-pointer"
|
|
MAKEFLAGS "-j16"
|
|
}
|
|
}
|
|
|
|
package "python" {
|
|
description "Python interpreter"
|
|
|
|
use-flags {
|
|
+lto +pgo // Optimize Python itself
|
|
+ssl +ipv6 // Network support
|
|
-debug // Release build
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -march=native -flto"
|
|
LDFLAGS "-Wl,-O1 -flto"
|
|
}
|
|
}
|
|
|
|
// ============================================
|
|
// Nexus-Specific Packages
|
|
// ============================================
|
|
|
|
package "nexus-fleet" {
|
|
description "Nexus fleet orchestration system"
|
|
|
|
use-flags {
|
|
+fleet-agent +fleet-controller +fleet-mesh
|
|
+wireguard +libp2p
|
|
+nexus-api +nexus-sync
|
|
+lto -debug
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -march=native -flto"
|
|
LDFLAGS "-Wl,-O1 -flto"
|
|
}
|
|
}
|
|
|
|
package "nipcells" {
|
|
description "NipCells container runtime"
|
|
|
|
use-flags {
|
|
+nipcells +crun +containerd
|
|
+nexus-security +nexus-monitor
|
|
+lto +hardened
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -flto -fstack-protector-strong"
|
|
LDFLAGS "-Wl,-O1 -Wl,-z,relro -Wl,-z,now -flto"
|
|
}
|
|
}
|
|
|
|
package "nexus-compiler" {
|
|
description "Nexus system compiler with bootstrap support"
|
|
|
|
use-flags {
|
|
+bootstrap +cross-compile
|
|
+stage1 +stage2 +stage3
|
|
+lto +pgo
|
|
+developer +debugger
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -march=native"
|
|
LDFLAGS "-Wl,-O1"
|
|
}
|
|
}
|
|
|
|
package "blender" {
|
|
description "3D creation suite with GPU acceleration"
|
|
|
|
use-flags {
|
|
+vulkan +opencl +rocm
|
|
+python +lua
|
|
+wayland -X
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -march=native"
|
|
MAKEFLAGS "-j16"
|
|
}
|
|
}
|
|
|
|
package "pytorch" {
|
|
description "Machine learning framework with NPU support"
|
|
|
|
use-flags {
|
|
+rocm +opencl +onnx
|
|
+python
|
|
+lto
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -march=native"
|
|
MAKEFLAGS "-j16"
|
|
}
|
|
}
|
|
|
|
package "qemu" {
|
|
description "Virtualization with KVM support"
|
|
|
|
use-flags {
|
|
+kvm +libvirt
|
|
+virgl +vulkan
|
|
+gtk +wayland
|
|
}
|
|
|
|
compiler {
|
|
CFLAGS "-O3 -march=native"
|
|
}
|
|
}
|
|
|
|
// ============================================
|
|
// Adapter Configuration
|
|
// ============================================
|
|
|
|
adapters {
|
|
nix {
|
|
enabled true
|
|
priority 10
|
|
}
|
|
|
|
pkgsrc {
|
|
enabled true
|
|
priority 20
|
|
// PKGSRC-specific: enable source building
|
|
build-from-source true
|
|
}
|
|
|
|
pacman {
|
|
enabled true
|
|
priority 30
|
|
}
|
|
}
|
|
}
|
|
|
|
// ============================================
|
|
// Common USE Flag Combinations
|
|
// ============================================
|
|
|
|
// Wayland Desktop:
|
|
// +wayland -X +gtk +pipewire +dinit
|
|
|
|
// X11 Desktop:
|
|
// +X -wayland +gtk +pulseaudio +systemd
|
|
|
|
// Minimal Server:
|
|
// -X -wayland -gtk -qt -pulseaudio +ssl +ipv6
|
|
|
|
// Performance Workstation:
|
|
// +lto +pgo +march-native +wayland +pipewire
|
|
|
|
// Development Machine:
|
|
// +debug -strip +doc +examples +python +lua
|