Our Blog

Stuff about the modern world…

Seafile CLI Client für Synology DS kompilieren

Posted by Christoph Haas on 02 04 2016. 2 Kommentare zu Seafile CLI Client für Synology DS kompilieren

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.

Vorbereitungen

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

Kompilieren

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/

 

Comments ( 2 )

Schreibe einen Kommentar

  • Jörg

    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ß Juli 12, 2016 at 11:12 pm

    • Christoph Haas

      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 Juli 13, 2016 at 7:09 pm