Install Seafile-cli client on Raspberry Pi


#1

Hello

I would like to install the CLI client on my Raspberry Pi but I doesn’t seem there is an ARM package:

W: Failed to fetch http://dl.bintray.com/seafile-org/deb/dists/jessie/Release Unable to find expected entry 'main/binary-armhf/Packages' in Release file (Wrong sources.list entry or malformed file)

I followed these instructions: https://github.com/haiwen/seafile-user-manual/blob/master/en/desktop/install-on-linux.md

Any clue ?


#2

I don’t think there is a CLI client package for ARM at the moment. Maybe @jobenvil will provide us a christmas present? :grin:

Actually I wanted to build an ARM package for the Seafile CLI client on my own but I wasn’t very successfull on building the Server package for ARM yet.


#3

Hi,

i compiled the seafile client for my banana pi (also ARM like Raspberry Pi) a few times on my own - like described here https://manual.seafile.com/build_seafile/linux.html with help from http://tobiasheide.de/blog/seafile-client-on-raspberry-pi/. Tobias also provides 5.0.1 packages on his website: http://tobiasheide.de/blog/update-seafile-client-4-x-to-5-x-on-raspberry-pi/
Unfortunately the source tars don’t seem to be online anymore (i haven’t read all topics about that in the forum - maybe someone found them) so i’m not able to build an 6.0.x client - but my self compiled 5.1.0 client still works with my 6.0.6 server :slight_smile:


#4

Thanks alot. I’ve just built the CLI client version 6.0.0 on my ARM system (Cubietruck running Debian8) and syncing a library works fine. I’ve just used the sources provided under https://manual.seafile.com/build_seafile/linux.html (just click some levels deeper in the provided link list).
Actually it was more complicated to sync the a folder on CLI than to build the whole stuff. :grimacing:

If you or @alex3137 are interested I can provide the DEB packages.

@daniel.pan / @Jonathan: any changes to provide the builds as community build like the one of @jobenvil? Has not to be mine but from time to time people asking for a way to sync data from an ARM based system.


#5

Nice that that worked for you and thanks for your help on finding the source-files!

i didn’t want to publish my self compiled deb-packages because i won’t be able to support everyone. And i’m also not sure how testing should look like. I only started compiling my own because the deb packages from Tobias (i think he compiled on a raspberry pi) didn’t work on my banana pi - so there would be many cases to check - and i dont want to be in charge when someone uses my packages and they don’t work and cause problems…


#6

I personally don’t feel forced to support everyone when providing something as a part of a community project and would never blame a community member if a provided package is not working properly.
In my opinion it would be even better if several people who successful compiled a build would work together so that users (who have no time or knowledge to compile packages) are not dependent on single community members.

Well, just confirm if it works on your system. Easy. :slight_smile:


#7

Today I thought I should start with what I would like to see:

(Sry, I’ve deleted my GitHub account because of https://blog.github.com/2018-06-04-github-microsoft/ so the repo is not available any more.)

This feels like a misuse of GitHub (there is no code, just Seafile CLI+GUI DEB files for ARM). If someone knows a better way let me know and feel free to correct me. :slight_smile:

Edit: (github link updated after github username change)


#8

@saljut7 Thanks. Do you like me to add it to our Linux client page (https://github.com/haiwen/seafile-user-manual/blob/master/en/desktop/install-on-linux.md)? That would help some users, but also increase your support efforts.


#9

If it is okay for you that I couldn’t test the GUI part yet (only have command line ARM systems) it would be an honour for me to be a more active supporting part of Seafile community. :nerd:

I’ve changed the GitHub repo name according to your existing Seafile server Raspberry Pi repo name to: (Sry, I’ve deleted my GitHub account because of https://blog.github.com/2018-06-04-github-microsoft/ so the repo is not available any more.)

So I’m ready if you are. :beers:


#10

Updated installation manual on (Sry, I’ve deleted my GitHub account because of https://blog.github.com/2018-06-04-github-microsoft/ so the repo is not available any more.) and packed all DEB files into one archive.


#11

Hi,

Thanks for the client. I tried this way by my own last year one day. So I messed it up :upside_down_face:

I could need a little bit help from you.

I only need the client and not the gui. So I tried to install just the client of your github instructions.

My problems are these:

> sudo dpkg -i seafile-client_6.0.0_rpi/ccnet-6.0.0_rpi.deb
> (Reading database ... 60885 files and directories currently installed.)
> Preparing to unpack .../ccnet-6.0.0_rpi.deb ...
> Unpacking ccnet-6.0.0 (6.0.0-1) ...
> dpkg: error processing archive seafile-client_6.0.0_rpi/ccnet-6.0.0_rpi.deb (--install):
>  trying to overwrite '/usr/include/ccnet.h', which is also in package ccnet 5.0.1-1
> dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
> Errors were encountered while processing:
>  seafile-client_6.0.0_rpi/ccnet-6.0.0_rpi.deb
> Pi~$ sudo dpkg -i seafile-client_6.0.0_rpi/seadfile-daemon-6.0.0_rpi.deb
> Selecting previously unselected package seafile-daemon-6.0.0.
> (Reading database ... 60885 files and directories currently installed.)
> Preparing to unpack .../seafile-daemon-6.0.0_rpi.deb ...
> Unpacking seafile-daemon-6.0.0 (6.0.0-1) ...
> dpkg: error processing archive seafile-client_6.0.0_rpi/seafile-daemon-6.0.0_rpi.deb (--install):
>  trying to overwrite '/usr/include/seafile/seafile-rpc.h', which is also in package seafile 5.0.1-1
> dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
> Errors were encountered while processing:
>  seafile-client_6.0.0_rpi/seafile-daemon-6.0.0_rpi.deb    

How can I get this done?

Thanks


  • Second Post

So, i figured out by “my self”. Amazing :wink:

First step was the broken pipe fixed which you can get here:
Broken_Pipe

After i got these done i had some trouble with my self certificate (ssl).
Traceback (most recent call last):
File “/usr/bin/seaf-cli”, line 832, in
main()
File “/usr/bin/seaf-cli”, line 828, in main
args.func(args)
File “/usr/bin/seaf-cli”, line 532, in seaf_sync
token = get_token(url, username, password, conf_dir)
File “/usr/bin/seaf-cli”, line 225, in get_token
token_json = urlopen("%s/api2/auth-token/" % url, data=data)
File “/usr/bin/seaf-cli”, line 198, in urlopen
resp = urllib2.urlopen(req)
File “/usr/lib/python2.7/urllib2.py”, line 154, in urlopen
return opener.open(url, data, timeout)
File “/usr/lib/python2.7/urllib2.py”, line 431, in open
response = self._open(req, data)
File “/usr/lib/python2.7/urllib2.py”, line 449, in _open
‘_open’, req)
File “/usr/lib/python2.7/urllib2.py”, line 409, in _call_chain
result = func(*args)
File “/usr/lib/python2.7/urllib2.py”, line 1240, in https_open
context=self._context)
File “/usr/lib/python2.7/urllib2.py”, line 1197, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)>

You have to copy your certificate to:
sudo cp mycertificat.crt /usr/share/ca-certificates/
my certificate is under /etc/ssl/nginx
then
sudo dpkg-reconfigure ca-certificates
i choosed ask and search for your certificate and hit space.

Then start your client
seaf-cli sync -l [ID Bibliothek] -s [URL and Port Seafile-Servers] -d [Locale folder for Synchronization] -u [username] -p [Password]
which is like
seaf-cli sync -l 478d3748-2343-1234-432487abe762 -s https://my-seafile-server -d /home/pi/seafile-sync -u pi@seafile.local -p secret

If you need a autostart for your client then go to:
cd /usr/local/bin/
and
sudo nano seafile-client-starter.sh
and fill it with
#!/bin/sh
set -e
/usr/bin/seaf-cli start
save it.

Tape
sudo chmod 755 seafile-client-starter.sh
and
crontab -e
and hit
1.
and put this on the bottom of the list
@reboot /usr/local/bin/seafile-client-starter.sh
and save it.

Reboot and enjoy!

That’s it and thanks to saljut7


  • Third Post

Hi,

i get some errors when i compile the client on my pi.

It’s just the client. I haven’t any problems with ccnet-6.0.6, libsearpc-3.1-latest and seafile-6.0.6.
Just with seafile-client-6.0.6.

Building CXX object CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o
/home/pi/SeaClient/seafile-client-6.0.6/src/rpc/rpc-client.cpp: In member function ‘bool SeafileRpcClient::getSyncErrors(std::vector<SyncError>*, int, int)’:
/home/pi/SeaClient/seafile-client-6.0.6/src/rpc/rpc-client.cpp:1046:9: error: ‘SEAFILE_TYPE_FILE_SYNC_ERROR’ was not declared in this scope
         SEAFILE_TYPE_FILE_SYNC_ERROR,
         ^
CMakeFiles/seafile-applet.dir/build.make:1578: recipe for target 'CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o' failed
make[2]: *** [CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/seafile-applet.dir/all' failed
make[1]: *** [CMakeFiles/seafile-applet.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Any idea what that means?

Cheers


#14

Hi @Daniel_Sun, sorry that I did not reply you. For some reason I didn’t get a notification. Thank you for your detailed solution. Do you still have problems compiling the client?

By the way: I don’t know if the CLI client follows the same development steps as the GUI client. I think a lot of upgrades of the client are only related to the GUI version.


#15

Hi,

no problem.

Yep, still have the problem. I’m not so good in this stuff. So, i tried some ideas what i found in the www but no chance.

Next Problem is, that the client just use the full matching of a ssl. If i use a self ssl it’s not a problem. But i got a ssl certificate from startssl which is made with my domain but i use the server only at home (https://192…).
The plan was to use my server, website etc online. But i’m to scared because of the security etc =)

I use an app which can be use only with proper ssl certificates even if the url is 192… when i use seafile webdav but then i can’t use the client. Shit =)

Anyway, if you could help me with compiling the client that i can keep this up2date that would be great :wink:


#16

Confirming same error with seafile-client-6.0.7:

$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .
Build type: Release
qmake: could not exec '/usr/lib/arm-linux-gnueabihf/qt4/bin/qmake': No such file or directory
qt5 version: 
-- Found internal library: utils
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
-- Configuring done
CMake Warning (dev) in CMakeLists.txt:
  Policy CMP0043 is not set: Ignore COMPILE_DEFINITIONS_<Config> properties.
  Run "cmake --help-policy CMP0043" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /mnt/extdata/lab/seafile/seafile-client-rpi/6.0.7/seafile-client-6.0.7
saljut7@armbian:/mnt/extdata/lab/seafile/seafile-client-rpi/6.0.7/seafile-client-6.0.7$ make
[  4%] Built target utils
[  4%] Building CXX object CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o
/mnt/BIGRED/lab/seafile/seafile-client-rpi/6.0.7/seafile-client-6.0.7/src/rpc/rpc-client.cpp: In member function ‘bool SeafileRpcClient::getSyncErrors(std::vector<SyncError>*, int, int)’:
/mnt/BIGRED/lab/seafile/seafile-client-rpi/6.0.7/seafile-client-6.0.7/src/rpc/rpc-client.cpp:1046:9: error: ‘SEAFILE_TYPE_FILE_SYNC_ERROR’ was not declared in this scope
         SEAFILE_TYPE_FILE_SYNC_ERROR,
         ^
CMakeFiles/seafile-applet.dir/build.make:1670: recipe for target 'CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o' failed
make[2]: *** [CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o] Error 1
CMakeFiles/Makefile2:804: recipe for target 'CMakeFiles/seafile-applet.dir/all' failed
make[1]: *** [CMakeFiles/seafile-applet.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2

Edit1:

Related to first error I juts want to confirm:

# apt install autoconf automake libtool libevent-dev libcurl4-openssl-dev libgtk2.0-dev uuid-dev intltool libsqlite3-dev valac libjansson-dev cmake qtchooser qtbase5-dev libqt5webkit5-dev qttools5-dev qttools5-dev-tools
Reading package lists... Done
Building dependency tree       
Reading state information... Done
autoconf is already the newest version.
automake is already the newest version.
cmake is already the newest version.
libcurl4-openssl-dev is already the newest version.
libgtk2.0-dev is already the newest version.
intltool is already the newest version.
libjansson-dev is already the newest version.
libevent-dev is already the newest version.
libtool is already the newest version.
qtbase5-dev is already the newest version.
qtchooser is already the newest version.
qttools5-dev is already the newest version.
qttools5-dev-tools is already the newest version.
libqt5webkit5-dev is already the newest version.
libsqlite3-dev is already the newest version.
uuid-dev is already the newest version.
valac is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

My /usr/lib/arm-linux-gnueabihf/qt4/bin contains only qdbus:

root@armbian:/usr/lib/arm-linux-gnueabihf/qt4/bin# ls -la
total 56
drwxr-xr-x 2 root root  4096 Feb 13 20:25 .
drwxr-xr-x 4 root root  4096 Feb 13 20:25 ..
-rwxr-xr-x 1 root root 47248 May  4  2015 qdbus

Edit2:

cmake warnings I could solve with:

apt install doxygen
ln -s /usr/bin/qmake /usr/lib/arm-linux-gnueabihf/qt4/bin/qmake

(while /usr/bin/qmake points on /usr/bin/qtchooser)

…retry still in progress, will report result asap.

Edit3:

Nah… cmake error was caused by missing package qt4-qmake.


#17

Unfortunately no progress even there is no error for cmake anymore:

My output is idling around at …

$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PREFIX .
Build type: Release

since several hours… :confused:


#18

Good to know.

I can’t help you about it. I only follow some description.

Would be great to get this solved, as well. Maybe i can use the startssl certificate with a internal link then.

But even to keep it updated to solve some problems.


#19

I don’t get it. What is your problem? :slight_smile:


#20

Nah… cmake error was caused by missing package qt4-qmake.

But now last make reports an error:

$ make
[  4%] Built target utils
[  4%] Building CXX object CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o
/mnt/ext-data/lab/seafile/seafile-client-rpi/6.0.7/seafile-client-6.0.7/src/rpc/rpc-client.cpp: In member function ‘bool SeafileRpcClient::getSyncErrors(std::vector<SyncError>*, int, int)’:
/mnt/ext-data/lab/seafile/seafile-client-rpi/6.0.7/seafile-client-6.0.7/src/rpc/rpc-client.cpp:1046:9: error: ‘SEAFILE_TYPE_FILE_SYNC_ERROR’ was not declared in this scope
         SEAFILE_TYPE_FILE_SYNC_ERROR,
         ^
CMakeFiles/seafile-applet.dir/build.make:1670: recipe for target 'CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o' failed
make[2]: *** [CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o] Error 1
CMakeFiles/Makefile2:835: recipe for target 'CMakeFiles/seafile-applet.dir/all' failed
make[1]: *** [CMakeFiles/seafile-applet.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2

Any ideas?


#21

Ah, doesn’t matter. Not so important :wink:

I have absolutely no idea what the problem is to compile the newest client.


#22

Well at least we are not the first ones with this error: