Developer Guide¶
This guide covers everything you need to know to build and contribute packages to SynoCommunity.
Overview¶
spksrc is a cross-compilation framework that builds software for Synology NAS devices. It handles:
- Downloading and extracting source code
- Cross-compiling for multiple CPU architectures
- Packaging as SPK files installable via Package Center
- Managing dependencies between packages
Getting Started¶
1. Set Up Your Environment¶
Choose your development environment:
- Docker - Recommended for most users. Works on Linux and macOS.
- Virtual Machine - Full Debian environment. Good for heavy development.
- LXC Container - Lightweight alternative to VMs on Linux.
2. Learn the Basics¶
Once your environment is ready:
- Your First Package - Build an existing package
- Package Anatomy - Understand package structure
- Build Workflow - Learn how builds work
3. Create or Improve Packages¶
Deep-dive into package development:
- Packaging Guide - Makefiles, PLIST, services, and more
- Package Types - Python, Go, Rust, web applications
- Advanced Topics - Cross-compilation, debugging
4. Contribute¶
Share your work:
- Publishing - GitHub Actions, releases
- Contributing Guide - Pull request guidelines
Quick Reference¶
| Need to... | See... |
|---|---|
| Build an existing package | Build Workflow |
| Create a new package | Your First Package |
| Add a service/daemon | Service Scripts |
| Package a Python app | Python Packages |
| Debug build issues | Debugging |
| Look up a Makefile variable | Makefile Variables |
Community Resources¶
- Discord: Join our server for real-time help
- GitHub: SynoCommunity/spksrc
- Wiki: Legacy documentation (being migrated here)
External Resources¶
- Synology Package Developer Guide - Official documentation from Synology
- Synology Toolkit - Official build scripts
- Synology GPL Source - Toolchains and kernel source