Dieser Beitrag beschreibt kurz wie man die aktuelle Version des Seafile Clients (5.1.2) für die Synology Diskstation DS214play kompiliert. Die Anleitung sollte für alle x86 bzw. amd64 CPU-Modelle der Diskstation funktionieren.
Zudem wird kurz erklärt wie der UID/GID Patch von Denis-B eingebunden werden kann. Durch diesen Patch kann für jede synchronisierte Library ein eigener Benutzer bzw. Gruppe als Eigentümer gesetzt werden.
Nachdem auf der Synology Diskstation ein Debian 8 Jessie Changeroot läuft, wurde der Seafile Client auch auf einem 32bit Debian 8 kompiliert.
Abhängigkeiten installieren:
sudo apt-get install build-essential autoconf automake libtool libevent-dev libcurl4-openssl-dev libgtk2.0-dev uuid-dev intltool libsqlite3-dev valac libjansson-dev libqt4-dev cmake libfuse-dev python-simplejson git re2c flex checkinstall openssl libssl-dev
Danach legt man einen neuen Ordner an, in dem alle Komponenten gespeichert und kompiliert werden. Anschließend werden alle benötigten Pakete heruntergeladen:
mkdir haiwen cd haiwen git clone https://github.com/haiwen/libsearpc.git mv libsearpc/ libsearpc-3.0.7 cd libsearpc-3.0.7/ git checkout -b 307 v3.0.7 cd .. git clone https://github.com/haiwen/ccnet.git mv ccnet/ ccnet-5.1.4 cd ccnet-5.1.4/ git checkout -b 512 v5.1.4 cd .. git clone https://github.com/haiwen/seafile.git mv seafile/ seafile-5.1.4 cd seafile-5.1.4/ git checkout -b 514 v5.1.4 git remote add uidgid https://github.com/h44z/seafile.git git fetch uidgid cd .. wget http://www.tildeslash.com/libzdb/dist/libzdb-2.12.tar.gz wget https://github.com/ellzey/libevhtp/archive/1.2.11.tar.gz tar -xzf 1.2.11.tar.gz tar -xzf libzdb-2.12.tar.gz rm *.tar.gz
Nun können die Libraries und CCNET kompiliert werden:
cd libzdb-2.12/ ./configure make checkinstall cd ../libevhtp-1.2.11/ cmake -DEVHTP_DISABLE_SSL=ON -DEVHTP_BUILD_SHARED=ON . make checkinstall cd ../libsearpc-3.0.7/ ./autogen.sh ./configure make checkinstall cd ../ccnet-5.1.4/ ./autogen.sh ./configure make checkinstall cd ..
Nun kann man noch den Patch von Denis-B mergen. Dies erfordert mittlerweile ein wenig Handarbeit. Falls man den Patch nicht benötigt kann man direkt mit dem Kompilieren fortfahren.
cd seafile-5.1.4/ git fetch uigid git merge uidgid/master
rm daemon/seaf-test.c vi daemon/repo-mgr.c
Nun alle auftretenden merge conflicts lösen:
<<<<<<< HEAD repo->auto_sync = 0; if (repo->sync_interval == 0) seaf_wt_monitor_unwatch_repo (seaf->wt_monitor, repo->id); ======= seaf_message ("On fixe pas d'autosync.\n"); repo->auto_sync = 0; seaf_wt_monitor_unwatch_repo (seaf->wt_monitor, repo->id); >>>>>>> denis/master
durch:
repo->auto_sync = 0; if (repo->sync_interval == 0) seaf_wt_monitor_unwatch_repo (seaf->wt_monitor, repo->id);
Danach kann man die Änderungen noch committen:
git commit -a -m "merged uid/gid changes"
Anschließend kann seafile kompiliert werden:
./autogen.sh ./configure --disable-gui make checkinstall
Fertig! Alle .deb Pakete können auf die Diskstation mit Debian Chroot kopiert und dort nach dieser Anleitung eingerichtet werden: http://blog.sprinternet.at/2015/11/seafile-client-synology-diskstation/
Du musst angemeldet sein, um einen Kommentar abzugeben.
JörgJuli 12, 2016
Moin,
was meinst du mit „Nachdem auf der Synology Diskstation ein Debian 8 Jessie Changeroot läuft, wurde der Seafile Client auch auf einem 32bit Debian 8 kompiliert“ …? Muss ich also zunächst ein Debian chroot installieren, oder kann ich irgendwie direkt auf meine Diskstation via SSH gehen und loslegen?
Jedenfalls kennt die Kommandozeile meiner Diskstation (DS216play) den command apt-get nicht ….
Gruß
Christoph HaasJuli 13, 2016
Hi,
nein es muss wirklich ein chroot mit Debian auf der DS laufen (DSM erfüllt leider nicht alle Abhängigkeiten für den Seafile Client).
Zur Installation des Chroots kann folgende Anleitung befolgt werden: https://blog.sprinternet.at/2015/11/seafile-client-synology-diskstation/
Läuft bei mir aktuell auch unter DSM 6
LG Christoph