Build transmission for DSM by myself

  • 1,736 views
  • Read

Transmission released new version 2.93 already, while I still could not find the upgraded version in the SynoCommunity repository.

The current 2.92 version has one issue on my system that it causes memory leak and will be killed finally by the kernel, so I have to create a job to check the memory usage and restart it automatically.

I want to upgrade to this new version as 2.92 was released several years ago, and also hope to get better performance, so I decided to build the package by myself.

I spent almost one night to finish this task, so I think such experience maybe could be helpful in the future or for other people, so I reinstalled the development environment just now and will redo all the steps.

Below three web pages gave me much help:
       Building-Transmission
       Developers HOW TO
       Setup Development Environment

First, I selected the last stable Debian as the primary development system, and just installed the base packages and the SSH server.

Then, run below commands to install all the needed packages:

dpkg --add-architecture i386
apt-get install ca-certificates libcurl4-openssl-dev libssl-dev pkg-config build-essential checkinstall lib32z1 lib32ncurses5 curl imagemagick libpoco-dev git

Clone the SynoCommunity repository and modify the needed files:

root@debian:~# git clone https://github.com/SynoCommunity/spksrc.git
Cloning into 'spksrc'...
remote: Counting objects: 27294, done.
remote: Total 27294 (delta 0), reused 0 (delta 0), pack-reused 27293
Receiving objects: 100% (27294/27294), 11.19 MiB | 4.62 MiB/s, done.
Resolving deltas: 100% (14423/14423), done.
root@debian:~# cd spksrc/
root@debian:~/spksrc# make setup
Creating local configuration "local.mk"...
Setting default toolchain version to DSM-5.2
root@debian:~/spksrc# vi cross/
Display all 259 possibilities? (y or n)
root@debian:~/spksrc# vi cross/transmission/Makefile    -->Update the PKG_VERS to 2.93
root@debian:~/spksrc# vi spk/transmission/Makefile    -->Update the SPK_VERS to 2.93, SPK_REV to 13 and the CHANGELOG to 'Update Transmission to 2.93'
root@debian:~/spksrc# wget https://github.com/transmission/transmission-releases/raw/master/transmission-2.93.tar.xz
root@debian:~/spksrc# sha1sum transmission-2.93.tar.xz
0445b6649110ceffe0126b28ebba0b051a1b8d71  transmission-2.93.tar.xz
root@debian:~/spksrc# sha256sum transmission-2.93.tar.xz
8815920e0a4499bcdadbbe89a4115092dab42ce5199f71ff9a926cfd12b9b90b  transmission-2.93.tar.xz
root@debian:~/spksrc# md5sum transmission-2.93.tar.xz
a1b8113ebc3402787312ecb443d9d3c1  transmission-2.93.tar.xz
root@debian:~/spksrc# vi cross/transmission/digests
root@debian:~/spksrc# cat cross/transmission/digests
transmission-2.93.tar.xz SHA1 0445b6649110ceffe0126b28ebba0b051a1b8d71
transmission-2.93.tar.xz SHA256 8815920e0a4499bcdadbbe89a4115092dab42ce5199f71ff9a926cfd12b9b90b
transmission-2.93.tar.xz MD5 a1b8113ebc3402787312ecb443d9d3c1

Now check your system architecture on this page:

Architecture per Synology model

And you can find all supported architectures and versions from below command:

root@debian:~/spksrc# ls toolchains
syno-88f6281-4.3     syno-armada370-4.3    syno-armada38x-6.0.2  syno-avoton-6.1       syno-bromolow-6.0.2   syno-comcerto2k-6.0.2  syno-grantley-6.1  syno-ppc853x-5.2  syno-x64-5.2
syno-88f6281-5.0     syno-armada370-5.0    syno-armada38x-6.1    syno-braswell-5.2     syno-bromolow-6.1     syno-comcerto2k-6.1    syno-hi3535-6.1    syno-ppc854x-4.0  syno-x64-6.0.2
syno-88f6281-5.1     syno-armada370-5.1    syno-armadaxp-4.3     syno-braswell-6.0.2   syno-cedarview-4.3    syno-denverton-6.1     syno-kvmx64-6.1    syno-qoriq-4.3    syno-x64-6.1
syno-88f6281-5.2     syno-armada370-5.2    syno-armadaxp-5.0     syno-braswell-6.1     syno-cedarview-5.0    syno-dockerx64-6.1     syno-monaco-5.2    syno-qoriq-5.0    syno-x86-4.3
syno-88f6281-6.0.2   syno-armada370-6.0.2  syno-armadaxp-5.1     syno-broadwell-6.0.2  syno-cedarview-5.1    syno-evansport-4.3     syno-monaco-6.0.2  syno-qoriq-5.1    syno-x86-5.0
syno-88f6281-6.1     syno-armada370-6.1    syno-armadaxp-5.2     syno-broadwell-6.1    syno-cedarview-5.2    syno-evansport-5.0     syno-monaco-6.1    syno-qoriq-5.2    syno-x86-5.1
syno-alpine-5.1      syno-armada375-5.1    syno-armadaxp-6.0.2   syno-broadwellnk-6.2  syno-cedarview-6.0.2  syno-evansport-5.1     syno-powerpc-4.0   syno-qoriq-6.0.2  syno-x86-5.2
syno-alpine-5.2      syno-armada375-5.2    syno-armadaxp-6.1     syno-bromolow-4.3     syno-cedarview-6.1    syno-evansport-5.2     syno-ppc824x-4.2   syno-qoriq-6.1    syno-x86-6.0.2
syno-alpine-6.0.2    syno-armada375-6.0.2  syno-avoton-5.1       syno-bromolow-5.0     syno-comcerto2k-5.0   syno-evansport-6.0.2   syno-ppc853x-4.3   syno-rtd1296-6.1  syno-x86-6.1
syno-alpine-6.1      syno-armada375-6.1    syno-avoton-5.2       syno-bromolow-5.1     syno-comcerto2k-5.1   syno-evansport-6.1     syno-ppc853x-5.0   syno-x64-5.0
syno-apollolake-6.1  syno-armada38x-5.2    syno-avoton-6.0.2     syno-bromolow-5.2     syno-comcerto2k-5.2   syno-grantley-6.0.2    syno-ppc853x-5.1   syno-x64-5.1

For DSM 5.2 and DS3615xs(bromolow), just need to run below commands:

cd spk/transmission
make arch-bromolow-5.2

And then will find the compiled package in the folder:

root@debian:~/spksrc/spk/transmission# ls ../../packages/
transmission_bromolow-5.2_2.93-13.spk

To get the package for DS3617xs(broadwell) on DSM 6.1, run below commands:

root@debian:~/spksrc/spk/transmission# make clean
rm -fr work work-*
root@debian:~/spksrc/spk/transmission# make arch-broadwell-6.1
.......................
root@debian:~/spksrc/spk/transmission# ls ../../packages/
transmission_broadwell-6.1_2.93-13.spk  transmission_bromolow-5.2_2.93-13.spk

Then change the 'Trust Level' and you can install the package manually.

Build transmission for DSM by myself

  • by Published on 19/02/2018 22:54:50
  • Repost please keep this link: https://www.dbcloudsvc.com/blogs/life/build-transmission-for-dsm-by-myself/
匿名

Comment

Anonymous Write

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

Decide