spksrc is a cross compilation framework intended to compile and package software for Synology NAS devices. Packages are made available via the SynoCommunity repository.
Before opening issues or package requests, see CONTRIBUTING.
- Fork and clone spksrc:
git clone https://[email protected]/You/spksrc.git ~/spksrc
- Install Docker on your host OS: Docker installation. A wget-based alternative for linux: Install Docker with wget.
- Download the spksrc docker container:
docker pull synocommunity/spksrc
- Run the container with
docker run -it -v ~/spksrc:/spksrc synocommunity/spksrc /bin/bash
A virtual machine based on an 64-bit version of Debian stable OS is recommended. Non-x86 architectures are not supported.
Install the requirements:
sudo dpkg --add-architecture i386 && sudo apt-get update sudo aptitude install build-essential debootstrap python-pip automake libgmp3-dev libltdl-dev libunistring-dev libffi-dev libcppunit-dev ncurses-dev imagemagick libssl-dev pkg-config zlib1g-dev gettext git curl subversion check intltool gperf flex bison xmlto php5 expect libgc-dev mercurial cython lzip cmake swig libc6-i386 sudo pip install -U setuptools pip wheel httpie
You may need to install some packages from testing like autoconf. Read about Apt-Pinning to know how to do that.
Some older toolchains may require 32-bit development versions of packages, e.g. zlib1g-dev:i386
For further instructions, refer to Pull Requests section of CONTRIBUTING.
Lets start with an example:
git clone https://github.com/SynoCommunity/spksrc.git cd spksrc/ make setup cd spk/transmission make arch-88f6281
- You cloned the repository
- Went into the directory of the SPK for transmission
- Started building the SPK for the architecture 88f6281
- To list all available architectures use
ls toolchains
from within thespksrc
directory. Remove the prefix syno- to have the actual architecture. - An overview of which architecture is used per Synology model can be found on the wiki page `Architecture per Synology model`_
- To list all available architectures use
At the end of the process, the SPK will be available in spksrc/packages/
- First spksrc will read
spksrc/spk/transmission/Makefile
- Download the adequate toolchain for the chosen architecture
- Recursively:
- Process dependencies if any
- Download the source in
spksrc/distrib/
- Extract the source
configure
make
make install
- Package all the requirements into a SPK under
spksrc/packages/
: - Binaries
- Installer script
- Start/Stop/Status script
- Package icon
- Wizards (optional)
- Help files (optional)
To support SynoCommunity, you can make a donation to its founder
When not explicitly set, files are placed under a 3 clause BSD license