Problems building Seafile CE for Raspberry Pi

Hey together,

wanted to build 6.0.4 on my own but stucking at the manual point “Fetch git tags and prepare source tarballs”, sub point “ccnet”.

./configure ends with:

configure: error: Package requirements (libsearpc >= 1.0) were not met:
No package ‘libsearpc’ found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables SEARPC_CFLAGS
and SEARPC_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

So there has to be an error one step before at sub point building libsearpc. The output of make dist was:

make  dist-gzip am__post_remove_distdir='@:'
make[1]: Entering directory '/home/myuser/srclab/seafile_server-rpi/libsearpc'
if test -d "libsearpc-1.2.2"; then find "libsearpc-1.2.2" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "libsearpc-1.2.2" || { sleep 5 && rm -rf "libsearpc-1.2.2"; }; else :; fi
test -d "libsearpc-1.2.2" || mkdir "libsearpc-1.2.2"
 (cd lib && make  top_distdir=../libsearpc-1.2.2 distdir=../libsearpc-1.2.2/lib \
     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)
make[2]: Entering directory '/home/myuser/srclab/seafile_server-rpi/libsearpc/lib'
make[2]: Leaving directory '/home/myuser/srclab/seafile_server-rpi/libsearpc/lib'
 (cd pysearpc && make  top_distdir=../libsearpc-1.2.2 distdir=../libsearpc-1.2.2/pysearpc \
     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)
make[2]: Entering directory '/home/myuser/srclab/seafile_server-rpi/libsearpc/pysearpc'
make[2]: Leaving directory '/home/myuser/srclab/seafile_server-rpi/libsearpc/pysearpc'
 (cd demo && make  top_distdir=../libsearpc-1.2.2 distdir=../libsearpc-1.2.2/demo \
     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)
make[2]: Entering directory '/home/myuser/srclab/seafile_server-rpi/libsearpc/demo'
make[2]: Leaving directory '/home/myuser/srclab/seafile_server-rpi/libsearpc/demo'
 (cd tests && make  top_distdir=../libsearpc-1.2.2 distdir=../libsearpc-1.2.2/tests \
     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)
make[2]: Entering directory '/home/myuser/srclab/seafile_server-rpi/libsearpc/tests'
make[2]: Leaving directory '/home/myuser/srclab/seafile_server-rpi/libsearpc/tests'
make  \
  top_distdir="libsearpc-1.2.2" distdir="libsearpc-1.2.2" \
  dist-hook
make[2]: Entering directory '/home/myuser/srclab/seafile_server-rpi/libsearpc'
git log -1 > libsearpc-1.2.2/latest_commit
make[2]: Leaving directory '/home/myuser/srclab/seafile_server-rpi/libsearpc'
test -n "" \
|| find "libsearpc-1.2.2" -type d ! -perm -755 \
        -exec chmod u+rwx,go+rx {} \; -o \
  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
  ! -type d ! -perm -444 -exec /bin/bash /home/myuser/srclab/seafile_server-rpi/libsearpc/install-sh -c -m a+r {} {} \; \
|| chmod -R a+r "libsearpc-1.2.2"
tardir=libsearpc-1.2.2 && ${TAR-tar} chof - "$tardir" | GZIP=--best gzip -c >libsearpc-1.2.2.tar.gz
make[1]: Leaving directory '/home/myuser/srclab/seafile_server-rpi/libsearpc'
if test -d "libsearpc-1.2.2"; then find "libsearpc-1.2.2" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "libsearpc-1.2.2" || { sleep 5 && rm -rf "libsearpc-1.2.2"; }; else :; fi

This doesn’t look sufficient, does it?

Thanks for posting here @saljut7

I think what you miss is this:

export PKG_CONFIG_PATH=/home/desigual/env_seafile/dev/seafile/lib:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/home/desigual/env_seafile/dev/libsearpc:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/home/desigual/env_seafile/dev/ccnet:$PKG_CONFIG_PATH
1 Like

Actually I did this before. Only one difference: I’ve used ~/ instead of /home/user/. Path variables are not allowed in this case?

you mean “relative” path variables? probably not, because the error:

> configure: error: Package requirements (libsearpc >= 1.0) were not met:
> No package 'libsearpc' found
> Consider adjusting the PKG_CONFIG_PATH environment variable if you
> installed software in a non-standard prefix.
> Alternatively, you may set the environment variables SEARPC_CFLAGS
> and SEARPC_LIBS to avoid the need to call pkg-config.
> See the pkg-config man page for more details.

points this out. The libsearpc >=1.0 was not found on PKG_CONFIG_PATH. Try with absolute paths.

Print in your terminal

echo $PKG_CONFIG_PATH

to check the output.

Everytime you run the scripts you have to export these values (or you can make it permanent in your shell environment).

I will recommend you to build the latest libserpc if not done before:

cd libsearpc
git reset --hard v3.0-latest

because your log-scripts speaks about libsearpc-1.2.2 -but this could be generall issue when not found the path-

1 Like

[quote=“jobenvil, post:4, topic:728, full:true”]
you mean “relative” path variables? probably not, because the error:

> configure: error: Package requirements (libsearpc >= 1.0) were not met:
> No package 'libsearpc' found
> Consider adjusting the PKG_CONFIG_PATH environment variable if you
> installed software in a non-standard prefix.
> Alternatively, you may set the environment variables SEARPC_CFLAGS
> and SEARPC_LIBS to avoid the need to call pkg-config.
> See the pkg-config man page for more details.

points this out. The libsearpc >=1.0 was not found on PKG_CONFIG_PATH. Try with absolute paths.[/quote]

…tried and it worked.

Output:

$ echo $PKG_CONFIG_PATH
/home/MYUSER/srclab/seafile_server-rpi/ccnet-server:/home/MYUSER/srclab/seafile_server-rpi/libsearpc:/home/MYUSER/srclab/seafile_server-rpi/seafile-server/lib:

I did this following the official manuel step by step. I think the relative path variables were the problem.

Unfortunately I have another problem now:

$ ./tools/gen-tarball.py --version=6.0.4 --branch=HEAD
[ERROR] django-admin scripts not found in PATH

My building directory has the following setup:

$ ls -la
total 32
drwxr-xr-x  8 MYUSER MYUSER 4096 Sep 30 01:29 .
drwxr-xr-x  4 MYUSER MYUSER 4096 Sep 30 10:56 ..
drwxr-xr-x 10 MYUSER MYUSER 4096 Sep 30 01:20 ccnet-server
drwxr-xr-x 12 MYUSER MYUSER 4096 Sep 24 22:05 libevhtp
drwxr-xr-x  9 MYUSER MYUSER 4096 Sep 30 00:39 libsearpc
drwxr-xr-x 18 MYUSER MYUSER 4096 Sep 30 01:26 seafile-server
drwxr-xr-x 13 MYUSER MYUSER 4096 Sep 30 01:32 seahub
drwxr-xr-x 14 MYUSER MYUSER 4096 Sep 24 22:30 seahub_thirdpart

And seahub_thirdpart/:

$ ls -la
total 1160
drwxr-xr-x 14 MYUSER MYUSER   4096 Sep 24 22:30 .
drwxr-xr-x  8 MYUSER MYUSER   4096 Sep 30 01:29 ..
-rw-r--r--  1 MYUSER MYUSER 397369 Sep 24 22:29 chardet-2.3.0-py2.7.egg
-rwxr-xr-x  1 MYUSER MYUSER    307 Sep 24 22:29 chardetect
drwxr-xr-x  4 MYUSER MYUSER   4096 Sep 24 22:27 Django-1.8.10-py2.7.egg
-rwxr-xr-x  1 MYUSER MYUSER    311 Sep 24 22:28 django-admin
-rwxr-xr-x  1 MYUSER MYUSER    184 Sep 24 22:28 django-admin.py
-rw-r--r--  1 MYUSER MYUSER   8245 Sep 24 22:28 django_appconf-1.0.2-py2.7.egg
drwxr-xr-x  4 MYUSER MYUSER   4096 Sep 24 22:29 django_compressor-1.4-py2.7.egg
drwxr-xr-x  4 MYUSER MYUSER   4096 Sep 24 22:29 django_constance-1.0.1-py2.7.egg
-rw-r--r--  1 MYUSER MYUSER  16474 Sep 24 22:29 django_picklefield-0.3.2-py2.7.egg
drwxr-xr-x  4 MYUSER MYUSER   4096 Sep 24 22:29 django_post_office-2.0.6-py2.7.egg
drwxr-xr-x  4 MYUSER MYUSER   4096 Sep 24 22:29 djangorestframework-3.3.2-py2.7.egg
drwxr-xr-x  4 MYUSER MYUSER   4096 Sep 24 22:28 django_statici18n-1.1.3-py2.7.egg
-rw-r--r--  1 MYUSER MYUSER    722 Sep 24 22:30 easy-install.pth
drwxr-xr-x  4 MYUSER MYUSER   4096 Sep 24 22:30 et_xmlfile-1.0.1-py2.7.egg
-rw-r--r--  1 MYUSER MYUSER 145283 Sep 24 22:29 flup-1.0.2-py2.7.egg
-rwxr-xr-x  1 MYUSER MYUSER    309 Sep 24 22:29 gunicorn
drwxr-xr-x  4 MYUSER MYUSER   4096 Sep 24 22:29 gunicorn-19.4.5-py2.7.egg
-rwxr-xr-x  1 MYUSER MYUSER    323 Sep 24 22:29 gunicorn_django
-rwxr-xr-x  1 MYUSER MYUSER    323 Sep 24 22:29 gunicorn_paster
-rw-r--r--  1 MYUSER MYUSER  10351 Sep 24 22:29 jdcal-1.2-py2.7.egg
-rw-r--r--  1 MYUSER MYUSER  19516 Sep 24 22:29 jsonfield-1.0.3-py2.7.egg
drwxr-xr-x  4 MYUSER MYUSER   4096 Sep 24 22:30 openpyxl-2.3.0-py2.7.egg
drwxr-xr-x  4 MYUSER MYUSER   4096 Sep 24 22:29 python_dateutil-1.5-py2.7.egg
-rw-r--r--  1 MYUSER MYUSER 477540 Sep 24 22:26 pytz-2016.1-py2.7.egg
-rw-r--r--  1 MYUSER MYUSER   2389 Sep 24 22:18 site.py
-rw-r--r--  1 MYUSER MYUSER   1763 Sep 24 22:18 site.pyc
drwxr-xr-x  3 MYUSER MYUSER   4096 Sep 24 22:29 six-1.9.0-py2.7.egg
drwxr-xr-x  2 MYUSER MYUSER   4096 Sep 24 22:23 tmp

Should django-admin scripts be found here?

again, this should do the trick ;-):

export PATH=/home/desigual/env_seafile/dev/seahub_thirdpart:$PATH

1 Like

Naah… that’s not written in the manual. :tired_face: First manual chapter should be called: “Why this manual is not for script kiddies…” :thinking:

./tools/gen-tarball.py --version=6.0.4 --branch=HEAD is running now… thanks again @jobenvil!

keep the issues up and we should change the manual

Another reason for asking in the board. :slight_smile:

EDIT:

Sorry, this was not related to ./tools/gen-tarball.py --version=6.0.4 --branch=HEAD anymore but to the next step seafob. I was in the wrong directory. Have to figure out what went wrong. Sorry for this.

Well, build processes finished now without errors but during the step to cp all builds to seafile-sources/ I noticed that I’ve built libsearpc-1.2.2.tar.gz. This should be libsearpc-3.0.0.tar.gz, shoudn’t it?

I tried to build it again after removing the existing build dir ~/build/seafile_server-rpi/libsearpc:

export PKG_CONFIG_PATH=/home/USER/build/seafile_server-rpi/libsearpc:$PKG_CONFIG_PATH
cd ~/build/seafile_server-rpi/ && git clone https://github.com/haiwen/libsearpc.git && cd libsearpc
git reset --hard v3.0-latest
./autogen.sh && ./configure && make dist

The result is still libsearpc-1.2.2.tar.gz. :confused:

@saljut7 sorry for the delay.

Probably it is necessary to expecify v3.0.7 to obtain this. Try:

git reset --hard v3.0.7

[quote=“jobenvil, post:11, topic:728, full:true”]
@saljut7 sorry for the delay.[/quote]

If everybody would answer as fast as you I would solve all my server problems in a day. :beers:

So libsearpc-3.0.7.tar.gz will be as fine as libsearpc-3.0.0.tar.gz?

1 Like