aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxming <xmingske@gmail.com>2014-10-28 12:04:35 +0000
committerCarlo Landmeter <clandmeter@gmail.com>2014-10-28 16:07:22 +0100
commit14d4216c926ef89f1c4ae5f50d17f2350f451035 (patch)
treedcbfde6241286ccec9f3a6eedfa2d2f47daffe49
parent0f6a83529742564e73ffc8cac13d5b159805a2e0 (diff)
downloadaports-14d4216c926ef89f1c4ae5f50d17f2350f451035.tar.bz2
aports-14d4216c926ef89f1c4ae5f50d17f2350f451035.tar.xz
testing/seafile: new aport
Cloud storage system with advanced support for file syncing, privacy protection and teamwork https://github.com/haiwen/seafile/
-rw-r--r--testing/seafile/APKBUILD106
-rw-r--r--testing/seafile/seafile-controller.patch37
-rw-r--r--testing/seafile/seafile-scripts.patch103
-rw-r--r--testing/seafile/seafile-server.post-install9
-rw-r--r--testing/seafile/seafile-server.pre-install7
-rw-r--r--testing/seafile/seafile.confd4
-rw-r--r--testing/seafile/seafile.initd16
7 files changed, 282 insertions, 0 deletions
diff --git a/testing/seafile/APKBUILD b/testing/seafile/APKBUILD
new file mode 100644
index 0000000000..2b48214936
--- /dev/null
+++ b/testing/seafile/APKBUILD
@@ -0,0 +1,106 @@
+# Contributor: <xmingske@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=seafile
+pkgver=3.1.7
+pkgrel=0
+pkgdesc="Cloud storage system with advanced support for file syncing, privacy protection and teamwork"
+url="https://github.com/haiwen/seafile/"
+arch="all"
+license="GPL3"
+makedepends="autoconf automake bash ccnet-dev curl-dev fuse-dev glib-dev intltool jansson-dev libarchive-dev
+ libevent-dev libevhtp libsearpc-dev libtool libzdb-dev openssl-dev sqlite-dev util-linux-dev vala"
+depends="bash ${pkgname}-common"
+#depends="bash py-dateutil py-mako py-simplejson py-pillow py-pip py-virtualenv py-six py-$pkgname
+# py-django1.5 py-gunicorn py-chardet py-django-djblets py-ccnet py-libsearpc $pkgname-common"
+source="$pkgname-$pkgver.tar.gz::https://github.com/haiwen/seafile/archive/v${pkgver}-testing.tar.gz
+ seafile-controller.patch seafile-scripts.patch seafile.initd seafile.confd"
+subpackages="$pkgname-dev py-$pkgname:py $pkgname-server $pkgname-common"
+install="seafile-server.pre-install seafile-server.post-install"
+
+_builddir="${srcdir}/${pkgname}-${pkgver}-testing"
+
+prepare() {
+ local pf
+ cd "${_builddir}"
+ for pf in $source; do
+ case $pf in
+ *.patch) msg $pf; patch -p1 -i "$srcdir"/${pf} || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "${_builddir}"
+ ./autogen.sh
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --enable-server \
+ --enable-python \
+ --enable-fuse \
+ --enable-client \
+ --enable-console
+ make || return 1
+}
+
+package() {
+ cd "${_builddir}"
+ make DESTDIR="${pkgdir}" install || return 1
+ rm "${pkgdir}"/usr/lib/libseafile.la || return 1
+}
+
+py() {
+ arch="noarch"
+ cd "$_builddir"
+ pkgdesc="$pkgname python bindings"
+ install -d "$subpkgdir"/usr/lib || return 1
+ mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/ || return 1
+}
+
+common() {
+ mkdir -p "${subpkgdir}"/usr/bin || return 1
+ mkdir -p "${subpkgdir}"/usr/lib || return 1
+ mv "${pkgdir}"/usr/bin/seafile "${subpkgdir}"/usr/bin
+ mv "${pkgdir}"/usr/lib/libseafile.so.0* "${subpkgdir}"/usr/lib
+}
+
+server() {
+ mkdir -p "${subpkgdir}"/usr/bin
+ for b in "${pkgdir}"/usr/bin/*; do
+ if [[ "$b" != "${pkgdir}/usr/bin/seaf-cli" ]] && \
+ [[ "$b" != "${pkgdir}/usr/bin/seaf-daemon" ]] && \
+ [[ "$b" != "${pkgdir}/usr/bin/seafile" ]]; then
+ mv "$b" "${subpkgdir}/usr/bin" || return 1
+ fi
+ done
+ mkdir -m 755 -p "${subpkgdir}"/usr/share/seafile || return 1
+ cp -ar "${_builddir}"/scripts "${subpkgdir}"/usr/share/seafile || return 1
+ install -D -m0644 "${srcdir}"/seafile.confd "${subpkgdir}"/etc/conf.d/seafile \
+ || return 1
+ install -D -m0755 "${srcdir}"/seafile.initd "${subpkgdir}"/etc/init.d/seafile \
+ || return 1
+
+ #make dirs for default instance
+ SEAFILE_HOME="${subpkgdir}"/var/lib/seafile
+ SEAFILE_DEFAULT=$SEAFILE_HOME/default
+ mkdir -m 755 -p $SEAFILE_DEFAULT 2>/dev/null
+ chown seafile:seafile $SEAFILE_DEFAULT
+
+}
+md5sums="eebc7b0c9d1d769ad154096d333a3ee8 seafile-3.1.7.tar.gz
+3f2b5457441871a4922d873e2b386711 seafile-controller.patch
+5d5217a4616ba9d57b56f0b61797b419 seafile-scripts.patch
+f645c6008de431ab968a9ba5ff68b519 seafile.initd
+cc33cc3ef3b04415a7b1d160e6b64e2b seafile.confd"
+sha256sums="f2557c7541d7674fa2e884f8906d19b3fc1d99acac03d7549e1e09db282aed77 seafile-3.1.7.tar.gz
+03fa3d43bcaed4bf720e7cbec5ea0fe9e1d8d90987bc8b69a045dafe10e1c27a seafile-controller.patch
+42fc1ed64c0a3cac0c5f74f2c269d96eba80e8b7a9dbff6332726342b576edf6 seafile-scripts.patch
+6383b7ed42a0be8edcb7b19ab02c28ee6a2fb1a35c34c36f88cacf0c398f603e seafile.initd
+a78183173ce054a245878d309dda9bff7981193d2b0594d299030e403e857952 seafile.confd"
+sha512sums="d9aa4522658bb65328e05f96ca944327b4991a4a1a7468d0c27de721813dba758292dece04ac06682041850491b30d1cab2fb79db0c12df5f7020b996bd810e5 seafile-3.1.7.tar.gz
+6b70df847d2d3f1fbd856f220dd5686d04c1ee4810c60d3bb28c80e85f508d3b448a0e6cfb9a83a43876285968ec917867838ef31c00cfb431a8e1e953241246 seafile-controller.patch
+9af26dbbc62c2e135d1ecb29243de658524d3cdbcfdfbaafcb30e137d0230792a7466b7b01a449a113ddf87f89acdceaf8c06192dd2ee28b3bbd18e9973a7b0d seafile-scripts.patch
+5af7a3fa5d26ade0a12ae3997a84d591d0daa08f84d0e36029f1a887e15202f758e3dcb82a284ea62cce9989a1b5b02a43371e0f9dc9a7e3c1947ec84304590a seafile.initd
+051ccc065a3b7abc7c802e00e364da1c3f689e133c4ba37385dbff97cfe8ad4b490cf53778344d129213fb0238258690a47f5e737387bce1368db59d22ee8504 seafile.confd"
diff --git a/testing/seafile/seafile-controller.patch b/testing/seafile/seafile-controller.patch
new file mode 100644
index 0000000000..438064d5f3
--- /dev/null
+++ b/testing/seafile/seafile-controller.patch
@@ -0,0 +1,37 @@
+--- a/controller/seafile-controller.c 2014-01-16 19:56:24.183523103 +0100
++++ b/controller/seafile-controller.c 2014-01-16 19:55:57.123523652 +0100
+@@ -281,7 +281,7 @@
+ tmp = g_path_get_dirname (bin_dir);
+ installpath = g_path_get_dirname (tmp);
+
+- topdir = g_path_get_dirname (installpath);
++ // topdir = g_path_get_dirname (installpath);
+
+ g_free (exectuble);
+ g_free (tmp);
+@@ -643,6 +643,7 @@
+ return -1;
+ }
+
++ topdir = g_path_get_dirname(config_dir);
+ ctl->client = ccnet_client_new ();
+ ctl->sync_client = ccnet_client_new ();
+
+@@ -657,14 +658,14 @@
+ }
+
+ if (logdir == NULL) {
+- char *topdir = g_path_get_dirname(config_dir);
++ //char *topdir = g_path_get_dirname(config_dir);
+ logdir = g_build_filename (topdir, "logs", NULL);
+ if (checkdir_with_mkdir(logdir) < 0) {
+ fprintf (stderr, "failed to create log folder \"%s\": %s\n",
+ logdir, strerror(errno));
+ return -1;
+ }
+- g_free (topdir);
++ //g_free (topdir);
+ }
+
+ ctl->config_dir = config_dir;
+
diff --git a/testing/seafile/seafile-scripts.patch b/testing/seafile/seafile-scripts.patch
new file mode 100644
index 0000000000..f6e8978bb5
--- /dev/null
+++ b/testing/seafile/seafile-scripts.patch
@@ -0,0 +1,103 @@
+diff --git a/scripts/seaf-fuse.sh b/scripts/seaf-fuse.sh
+index 463002e..92ef285 100755
+--- a/scripts/seaf-fuse.sh
++++ b/scripts/seaf-fuse.sh
+@@ -6,10 +6,7 @@ SCRIPT=$(readlink -f "$0")
+ INSTALLPATH=$(dirname "${SCRIPT}")
+ TOPDIR=$(dirname "${INSTALLPATH}")
+ default_ccnet_conf_dir=${TOPDIR}/ccnet
+-seaf_fuse=${INSTALLPATH}/seafile/bin/seaf-fuse
+-
+-export PATH=${INSTALLPATH}/seafile/bin:$PATH
+-export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
++seaf_fuse=/usr/bin/seaf-fuse
+
+ script_name=$0
+ function usage () {
+diff --git a/scripts/seaf-gc.sh b/scripts/seaf-gc.sh
+index 489961a..605fabd 100755
+--- a/scripts/seaf-gc.sh
++++ b/scripts/seaf-gc.sh
+@@ -6,12 +6,9 @@ SCRIPT=$(readlink -f "$0")
+ INSTALLPATH=$(dirname "${SCRIPT}")
+ TOPDIR=$(dirname "${INSTALLPATH}")
+ default_ccnet_conf_dir=${TOPDIR}/ccnet
+-seaf_gc=${INSTALLPATH}/seafile/bin/seafserv-gc
++seaf_gc=/usr/bin/seafserv-gc
+ seaf_gc_opts=""
+
+-export PATH=${INSTALLPATH}/seafile/bin:$PATH
+-export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
+-
+ script_name=$0
+ function usage () {
+ echo "usage : "
+diff --git a/scripts/seafile.sh b/scripts/seafile.sh
+index e04d65f..9ca171c 100755
+--- a/scripts/seafile.sh
++++ b/scripts/seafile.sh
+@@ -17,12 +17,7 @@ INSTALLPATH=$(dirname "${SCRIPT}")
+ TOPDIR=$(dirname "${INSTALLPATH}")
+ default_ccnet_conf_dir=${TOPDIR}/ccnet
+ ccnet_pidfile=${INSTALLPATH}/runtime/ccnet.pid
+-seaf_controller="${INSTALLPATH}/seafile/bin/seafile-controller"
+-
+-
+-export PATH=${INSTALLPATH}/seafile/bin:$PATH
+-export ORIG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
+-export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
++seaf_controller="/usr/bin/seafile-controller"
+
+ script_name=$0
+ function usage () {
+@@ -102,7 +97,7 @@ function start_seafile_server () {
+
+ echo "Starting seafile server, please wait ..."
+
+- LD_LIBRARY_PATH=$SEAFILE_LD_LIBRARY_PATH ${seaf_controller} -c "${default_ccnet_conf_dir}" -d "${seafile_data_dir}"
++ ${seaf_controller} -c "${default_ccnet_conf_dir}" -d "${seafile_data_dir}"
+
+ sleep 3
+
+diff --git a/scripts/setup-seafile.sh b/scripts/setup-seafile.sh
+index f7c181c..e88fbce 100755
+--- a/scripts/setup-seafile.sh
++++ b/scripts/setup-seafile.sh
+@@ -8,8 +8,6 @@ default_seafile_data_dir=${TOPDIR}/seafile-data
+ default_seahub_db=${TOPDIR}/seahub.db
+ default_conf_dir=${TOPDIR}/conf
+
+-export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
+-
+ use_existing_ccnet="false"
+ use_existing_seafile="false"
+
+@@ -395,8 +393,8 @@ echo
+ echo "If you are OK with the configuration, press [ENTER] to continue."
+ read dummy
+
+-ccnet_init=${INSTALLPATH}/seafile/bin/ccnet-init
+-seaf_server_init=${INSTALLPATH}/seafile/bin/seaf-server-init
++ccnet_init=/usr/bin/ccnet-init
++seaf_server_init=/usr/bin/seaf-server-init
+
+ # -------------------------------------------
+ # Create ccnet conf
+@@ -404,7 +402,7 @@ seaf_server_init=${INSTALLPATH}/seafile/bin/seaf-server-init
+ if [[ "${use_existing_ccnet}" != "true" ]]; then
+ echo "Generating ccnet configuration in ${default_ccnet_conf_dir}..."
+ echo
+- if ! LD_LIBRARY_PATH=$SEAFILE_LD_LIBRARY_PATH "${ccnet_init}" -c "${default_ccnet_conf_dir}" --name "${server_name}" --port "${server_port}" --host "${ip_or_domain}"; then
++ if ! "${ccnet_init}" -c "${default_ccnet_conf_dir}" --name "${server_name}" --port "${server_port}" --host "${ip_or_domain}"; then
+ err_and_quit;
+ fi
+
+@@ -419,7 +417,7 @@ sleep 0.5
+ if [[ "${use_existing_seafile}" != "true" ]]; then
+ echo "Generating seafile configuration in ${seafile_data_dir} ..."
+ echo
+- if ! LD_LIBRARY_PATH=$SEAFILE_LD_LIBRARY_PATH ${seaf_server_init} --seafile-dir "${seafile_data_dir}" \
++ if ! ${seaf_server_init} --seafile-dir "${seafile_data_dir}" \
+ --port ${seafile_server_port} --fileserver-port ${fileserver_port}; then
+
+ echo "Failed to generate seafile configuration"
diff --git a/testing/seafile/seafile-server.post-install b/testing/seafile/seafile-server.post-install
new file mode 100644
index 0000000000..4e46bd8da5
--- /dev/null
+++ b/testing/seafile/seafile-server.post-install
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+SEAFILE_HOME=/var/lib/seafile
+SEAFILE_DEFAULT=$SEAFILE_HOME/default
+
+if [[ ! -d $SEAFILE_DEFAULT/scripts ]]; then
+ cd $SEAFILE_DEFAULT
+ cp -ar /usr/share/seafile/scripts .
+fi \ No newline at end of file
diff --git a/testing/seafile/seafile-server.pre-install b/testing/seafile/seafile-server.pre-install
new file mode 100644
index 0000000000..173e73a35b
--- /dev/null
+++ b/testing/seafile/seafile-server.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+SEAFILE_HOME=/var/lib/seafile
+
+addgroup -S -g 800 seafile 2>/dev/null
+adduser -h $SEAFILE_HOME -s /bin/sh -G seafile -g seafile -u 800 -D seafile 2>/dev/null
+exit 0
diff --git a/testing/seafile/seafile.confd b/testing/seafile/seafile.confd
new file mode 100644
index 0000000000..b169b0e55f
--- /dev/null
+++ b/testing/seafile/seafile.confd
@@ -0,0 +1,4 @@
+instance="default"
+
+seafile_user="seafile"
+seafile_group="seafile"
diff --git a/testing/seafile/seafile.initd b/testing/seafile/seafile.initd
new file mode 100644
index 0000000000..ba13650233
--- /dev/null
+++ b/testing/seafile/seafile.initd
@@ -0,0 +1,16 @@
+#!/sbin/runscript
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting Seafile $instance instance"
+ start-stop-daemon --chdir /var/lib/seafile/$instance --user $seafile_user \
+ --group $seafile_group /usr/bin/seafile-admin start $seafile_opts
+}
+
+stop() {
+ ebegin "Stopping Seafile $instance instance"
+ start-stop-daemon --chdir /var/lib/seafile/$instance /usr/bin/seafile-admin stop
+}