Compilation ARM64 - DONE

I managed to fix all the issues above, here is how anyone can compile v6.3.0 potentially on every device out there.

Note: the directory I used to build this is /mnt/SU1/apps/seafile/dev/. Change it to yours.
Note 2: I’m building with MySQL support, but using MariaDB hence libmariadbclient-dev-compatand libmariadb-dev

sudo apt-get install build-essential
sudo apt-get install libevent-dev libcurl4-openssl-dev libglib2.0-dev uuid-dev intltool libsqlite3-dev libmariadbclient-dev-compat libarchive-dev libtool libjansson-dev valac libfuse-dev re2c flex python-setuptools cmake libmariadb-dev

mkdir -p /mnt/SU1/apps/seafile/dev
cd /mnt/SU1/apps/seafile/dev

export PKG_CONFIG_PATH=/mnt/SU1/apps/seafile/dev/seafile-server/lib:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/mnt/SU1/apps/seafile/dev/libsearpc:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/mnt/SU1/apps/seafile/dev/ccnet-server:$PKG_CONFIG_PATH

git clone -b v3.1-latest --single-branch https://github.com/haiwen/libsearpc.git
cd libsearpc
./autogen.sh
./configure
make
make dist

cd ..
git clone -b v6.3.0-server --single-branch https://github.com/haiwen/ccnet-server.git
cd ccnet-server
#(the following line applies PR ID=23 that fixes libssl/openssl related issues)
curl https://patch-diff.githubusercontent.com/raw/haiwen/ccnet-server/pull/23.patch | git apply -v --index
./autogen.sh
./configure 
make dist

cd ..
git clone -b v6.3.0-server --single-branch https://github.com/haiwen/seafile-server.git
cd seafile-server
#(the following line applies PR ID=151 that fixes libssl/openssl related issues)
curl https://patch-diff.githubusercontent.com/raw/haiwen/seafile-server/pull/151.patch | git apply -v --index

Now you need to manually edit the file configure.ac and replace 6.0.1 with the proper version 6.0.3:

AC_INIT([seafile], [6.3.0], [freeplant@gmail.com]) // corrigir versão

Now you can continue:

./autogen.sh
./configure
make dist

cd ..
git clone https://github.com/haiwen/seahub.git
cd seahub
git reset --hard v6.3.0-server
./tools/gen-tarball.py --version=6.3.0 --branch=HEAD

cd ..
git clone https://github.com/haiwen/seafobj.git
cd seafobj
git reset --hard v6.3.0-server
make dist

cd ..
git clone https://github.com/haiwen/seafdav.git
cd seafdav
git reset --hard v6.3.0-server
make

cd ..
mkdir seafile-sources
cp libsearpc/libsearpc-*.tar.gz seafile-sources
cp ccnet-server/ccnet-*.tar.gz seafile-sources
cp seafile-server/seafile-*.tar.gz seafile-sources
cp seahub/seahub-*.tar.gz seafile-sources
cp seafobj/seafobj.tar.gz seafile-sources
cp seafdav/seafdav.tar.gz seafile-sources

If everything was okay then:

ls -l seafile-sources
	-rw-r--r-- 1 root root  600808 May 14 02:55 ccnet-6.0.1.tar.gz
	-rw-r--r-- 1 root root  396582 May 14 02:54 libsearpc-3.0.8.tar.gz
	-rw-r--r-- 1 root root  163804 May 14 02:56 seafdav.tar.gz
	-rw-r--r-- 1 root root 1132739 May 14 02:55 seafile-6.0.1.tar.gz
	-rw-r--r-- 1 root root    8498 May 14 02:56 seafobj.tar.gz
	-rw-r--r-- 1 root root 9140398 May 14 02:56 seahub-6.0.3.tar.gz

Now lets take care of python dependencies:

mkdir seahub_thirdpart;
cd seahub_thirdpart

wget https://pypi.python.org/packages/source/p/pytz/pytz-2016.1.tar.gz;
wget https://www.djangoproject.com/m/releases/1.8/Django-1.8.18.tar.gz;
wget https://pypi.python.org/packages/source/d/django-statici18n/django-statici18n-1.1.3.tar.gz;
wget https://pypi.python.org/packages/source/d/djangorestframework/djangorestframework-3.3.2.tar.gz;
wget https://pypi.python.org/packages/source/d/django_compressor/django_compressor-1.4.tar.gz;
wget https://pypi.python.org/packages/source/j/jsonfield/jsonfield-1.0.3.tar.gz;
wget https://pypi.python.org/packages/source/d/django-post_office/django-post_office-2.0.6.tar.gz;
wget http://pypi.python.org/packages/source/g/gunicorn/gunicorn-19.4.5.tar.gz;
wget http://pypi.python.org/packages/source/f/flup/flup-1.0.2.tar.gz;
wget https://pypi.python.org/packages/source/c/chardet/chardet-2.3.0.tar.gz;
wget https://labix.org/download/python-dateutil/python-dateutil-1.5.tar.gz;
wget https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz;
wget https://pypi.python.org/packages/source/d/django-picklefield/django-picklefield-0.3.2.tar.gz;
wget https://github.com/haiwen/django-constance/archive/bde7f7c.zip;
wget https://pypi.python.org/packages/source/j/jdcal/jdcal-1.2.tar.gz;
wget https://pypi.python.org/packages/source/e/et_xmlfile/et_xmlfile-1.0.1.tar.gz;
wget https://pypi.python.org/packages/source/o/openpyxl/openpyxl-2.3.0.tar.gz;
wget https://pypi.python.org/packages/cc/26/b61e3a4eb50653e8a7339d84eeaa46d1e93b92951978873c220ae64d0733/futures-3.1.1.tar.gz;
wget https://pypi.python.org/packages/a8/07/947dfe63dff1f2be5f84eb7f0ff5f712bb1dc730a6499b0aa0be5c8f194e/django-formtools-2.0.tar.gz;
wget https://pypi.python.org/packages/87/16/99038537dc58c87b136779c0e06d46887ff5104eb8c64989aac1ec8cba81/qrcode-5.3.tar.gz;

mv bde7f7c.zip django_constance.zip

export PYTHONPATH=.
easy_install -d . pytz-2016.1.tar.gz
easy_install -d . Django-1.8.18.tar.gz
easy_install -d . django-statici18n-1.1.3.tar.gz
easy_install -d . djangorestframework-3.3.2.tar.gz
easy_install -d . django_compressor-1.4.tar.gz
easy_install -d . jsonfield-1.0.3.tar.gz
easy_install -d . django-post_office-2.0.6.tar.gz
easy_install -d . gunicorn-19.4.5.tar.gz
easy_install -d . flup-1.0.2.tar.gz
easy_install -d . chardet-2.3.0.tar.gz
easy_install -d . python-dateutil-1.5.tar.gz
easy_install -d . six-1.9.0.tar.gz
easy_install -d . django-picklefield-0.3.2.tar.gz
easy_install -d . django_constance.zip
easy_install -d . jdcal-1.2.tar.gz
easy_install -d . et_xmlfile-1.0.1.tar.gz
easy_install -d . openpyxl-2.3.0.tar.gz

Almost done, now you’ve to fix the LDAP issue. Open the file seafile-server/scripts/build/build-server.py and look for --enable-ldap, remove it and save the file.

Now its time to build everything:

seafile-server/scripts/build/build-server.py \
--version=6.3.0 \
--libsearpc_version=3.0.8 \
--ccnet_version=6.0.1 \
--seafile_version=6.3.0  \
--thirdpartdir=/mnt/SU1/apps/seafile/dev/seahub_thirdpart \
--srcdir=/mnt/SU1/apps/seafile/dev/seafile-sources \
--outputdir=/mnt/SU1/apps/seafile/dev/seafile-server-pkgs \
--mysql_config=/usr/bin/mariadb_config

Now you’re ready to go, just follow https://manual.seafile.com/deploy/using_mysql.html on how to deploy using MySQL and your Seafile will be up and running!

Closing Note: Seafile maintainers should fix their s* and update the manual. I don’t really understand why everything is messed on this software.

4 Likes