Compiler un paquet pour Synology (utile quand le repo SynoCommunity est down)

compilation 8 févr. 2016

SynoCommunity est l’un des dépôts les plus actifs pour Synology :

 – Site Web

 – GitHub

 – Installer le repo sur son NAS

Vous trouverez notamment, en activant les BETA, ruTorrent, SickBear/Rage, CouchPotato, Jackett… Liste complète ici.

Malheureusement leur site Web, qui sert de source pour installer des packages depuis le NAS, est souvent hors ligne. Et rend donc son utilisation caduque. Fort heureusement ils déposent leur sources sur GitHub. Sauf qu’elles sont brutes, non compilées. Sans entrer dans les détails, notre NAS ne peut qu’installer des paquets via des dépôts ou manuellement via des .spk. Le .spk résultant de la compilation d’une source afin de la rendre compatible avec notre modèle de Synology.

La compatibilité dépendant de l’architecture processeur du NAS. Car un NAS est comme un PC, le processeur varie selon les modèles. Voici une liste partielle de correspondances.

Bref, quand leur site Web est HS on ne peut rien installer qui vient de chez eux directement depuis le NAS. Plutôt enquiquinant. Du coup la solution est de compiler soit-même la source de l’application qu’on souhaite installer manuellement via un .spk.

Même pour une personne ne connaissant pas Linux ce n’est pas compliqué. C’est en revanche long, voire très long, selon le processeur de la machine qui compile.

Je vais prendre ici l’exemple de Jackett, compilé pour mon NAS DS1813+, qui est un NAS muni d’un processeur 64bits, de type cedarview (pour rappel : la liste). Vous devez avoir votre DSM à jour, l’outil compilant pour la dernière version (Stable). Pour le coup c’est la version 5.2.x.

 

Environnement de compilation

Ça se passe sous Linux bien entendu. Donc soit sur votre PC perso, soit un VPS (mais ça va ramer), soit un serveur dédié, soit une VM. Dans ce dernier cas ça veut dire que vous pouvez le faire depuis Windows en créant une Machine Virtuelle (MV ou “VM” en anglais) avec VirtualBox.

Le plus simple est de passer par une distribution Debian stable (Jessie, la 8.x en ce moment). Version 32bits si votre NAS est 32bits et 64bits si… Dans mon cas ce sera donc Debian Jessie 64bits. Je le fais sur un (tout) petit serveur de test Online, donc ça a pris une heure au global… Mais au moins j’ai mon paquet :)

Il faut installer les dépendances nécessaires :

sudo aptitude install build-essential debootstrap python-pip automake libgmp3-dev libltdl-dev libunistring-dev libffi-dev ncurses-dev imagemagick libssl-dev pkg-config zlib1g-dev gettext git curl subversion check bjam intltool gperf flex bison xmlto php5 expect libgc-dev mercurial cython lzip cmake swig
sudo pip install -U setuptools pip wheel httpie

Puis téléchargez le Git

git clone https://github.com/SynoCommunity/spksrc.git

Et rendez-vous dans son dossier

cd spksrc/

Et lancez-le

make setup

 

Préparation On me souffle que c’est corrigé depuis, donc passez cette étape

Leur compilateur n’est pas tout à fait à jour et fait appel à OpenSSL en version 1.0.2e. Alors que cette version n’est plus publiée. Du coup nous allons devoir modifier 2 fichiers afin d’utiliser la version 1.0.2f.

Dans /spksrc/cross/openssl

sudo nano Makefile

En haut remplacez la version d’OpenSSL par celle-ci

PKG_NAME = openssl
PKG_VERS = 1.0.2f

Ensuite allez modifier le fichier de vérification d’OpenSSL (intégrité du .tar.gz)

sudo nano digests

Et mettez les infos de la 1.0.2f (et retirez celles de la e)

openssl-1.0.2f.tar.gz SHA1 2047c592a6e5a42bd37970bdb4a931428110a927
openssl-1.0.2f.tar.gz SHA256 932b4ee4def2b434f85435d9e3e19ca8ba99ce9a065a61524b429a9d5e9b2e9c
openssl-1.0.2f.tar.gz MD5 b3bf73f507172be9292ea2a8c28b659d

 

 Compilation

Rendez-vous à la racine du dossier, dans /spksrc. Puis rendez-vous ensuite dans le dossier de l’application que vous souhaitez compiler pour votre NAS. Dans mon cas : Jackett

cd /spk/jackett

Puis lancez la compilation avec l’architecture correspondant à votre NAS

make arch-ARCHITECTURE

 Ce qui donne ceci dans mon cas, avec NAS DS1813+ avec une architecture “cedarview”

make arch-cedarview

 Puis patientez… un bon moment.

Et à la fin vous aurez votre paquet dans

/spksrc/packages
root@snawak:/home/test/spksrc/packages# ls
jackett_cedarview-5.2_0.7.33-1.spk

 

Installation

Pensez à activer le Niveau de confiance pour tous les éditeurs dans les paramètres du Centre de paquets Synology.

Sélection_071

 Puis, toujours dans le Centre de paquets, passez par l’installation manuelle pour aller chercher votre .spk et installez-le.

Sélection_072

 

Sélection_073 

 

 

 

 

 

 

 

Mots clés