seafile: Remove packages
I believe these packages should be removed (and imported into the abandoned packages repo[1]) as Seafile Server and Seahub have been marked as broken for some time, and I do not believe I will have time to fix or update these packages in the foreseeable future. [1]: https://github.com/openwrt/packages-abandoned/pull/22 Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This commit is contained in:
parent
d86ca89e49
commit
c05460c9ad
45 changed files with 0 additions and 2713 deletions
|
@ -1,89 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2007-2017 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libsearpc
|
||||
PKG_VERSION:=3.2.0
|
||||
PKG_RELEASE:=5
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/haiwen/libsearpc.git
|
||||
PKG_SOURCE_VERSION:=d1fd7518a20b25766ff98d6fde6e40c63626ca0d
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(call version_abbrev,$(PKG_SOURCE_VERSION))
|
||||
PKG_MIRROR_HASH:=ee8b8b50b480afbcb71bd73cd9c2a96cfa72e9dafaf5773574adbf348e49a0d4
|
||||
|
||||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_LICENSE_FILES:=LICENSE.txt
|
||||
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_INSTALL:=1
|
||||
PYTHON3_PKG_BUILD:=0
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/nls.mk
|
||||
include ../../lang/python/python3-package.mk
|
||||
|
||||
define Package/libsearpc
|
||||
SECTION:=libs
|
||||
CATEGORY:=Libraries
|
||||
TITLE:=Seafile RPC Library
|
||||
URL:=https://seafile.com
|
||||
DEPENDS:=+glib2 +jansson $(ICONV_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/libsearpc/description
|
||||
Searpc is a simple C language RPC framework based on GObject system.
|
||||
Searpc handles the serialization/deserialization part of RPC, the
|
||||
transport part is left to users.
|
||||
endef
|
||||
|
||||
define Package/python3-searpc
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Python bindings for Searpc
|
||||
DEPENDS:=+libsearpc +python3-light +python3-logging
|
||||
endef
|
||||
|
||||
define Package/python3-searpc/description
|
||||
$(call Package/libsearpc/description)
|
||||
|
||||
This package contains Python bindings for Searpc.
|
||||
endef
|
||||
|
||||
CONFIGURE_ARGS += \
|
||||
--disable-compile-demo \
|
||||
--disable-server-pkg
|
||||
|
||||
CONFIGURE_VARS += \
|
||||
PYTHON="$(HOST_PYTHON3_BIN)"
|
||||
|
||||
define Build/InstallDev
|
||||
$(INSTALL_DIR) $(1)/usr/{bin,include}
|
||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsearpc.so* $(1)/usr/lib/
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsearpc.pc $(1)/usr/lib/pkgconfig/
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/searpc-codegen.py $(1)/usr/bin/
|
||||
endef
|
||||
|
||||
define Package/libsearpc/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsearpc.so* $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
Py3Package/python3-searpc/install:=:
|
||||
|
||||
$(eval $(call BuildPackage,libsearpc))
|
||||
|
||||
$(eval $(call Py3Package,python3-searpc))
|
||||
$(eval $(call BuildPackage,python3-searpc))
|
||||
$(eval $(call BuildPackage,python3-searpc-src))
|
|
@ -1,8 +0,0 @@
|
|||
--- a/pysearpc/Makefile.am
|
||||
+++ b/pysearpc/Makefile.am
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
pysearpcdir=${pyexecdir}/pysearpc
|
||||
|
||||
-pysearpc_PYTHON = __init__.py client.py common.py errors.py named_pipe.py server.py transport.py utils.py
|
||||
+pysearpc_DATA = __init__.py client.py common.py errors.py named_pipe.py server.py transport.py utils.py
|
|
@ -1,11 +0,0 @@
|
|||
--- a/pysearpc/named_pipe.py
|
||||
+++ b/pysearpc/named_pipe.py
|
||||
@@ -2,8 +2,6 @@
|
||||
RPC client/server implementation based on named pipe transport.
|
||||
"""
|
||||
|
||||
-from future import standard_library
|
||||
-standard_library.install_aliases()
|
||||
from builtins import object
|
||||
import json
|
||||
import logging
|
|
@ -1,100 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2007-2017 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=seafile-ccnet
|
||||
PKG_VERSION:=7.1.5
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/haiwen/ccnet-server/tar.gz/v$(PKG_VERSION)-server?
|
||||
PKG_HASH:=11e5281c239474756ed606bffe8f24c1089a3a9eb2502cfac7815d25ebc4585a
|
||||
|
||||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||
PKG_LICENSE:=AGPL-3.0-only
|
||||
PKG_LICENSE_FILES:=LICENSE.txt
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/ccnet-server-$(PKG_VERSION)-server
|
||||
PKG_BUILD_DEPENDS:=vala/host
|
||||
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_INSTALL:=1
|
||||
PYTHON3_PKG_BUILD:=0
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/nls.mk
|
||||
include ../../lang/python/python3-package.mk
|
||||
|
||||
define Package/seafile-ccnet
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Seafile server - ccnet component
|
||||
URL:=http://seafile.com/
|
||||
DEPENDS:= \
|
||||
+glib2 \
|
||||
+jansson \
|
||||
+libevent2 \
|
||||
+libmariadb \
|
||||
+libopenssl \
|
||||
+libpthread \
|
||||
+libsearpc \
|
||||
+libsqlite3 \
|
||||
+libuuid \
|
||||
$(ICONV_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/seafile-ccnet/description
|
||||
Ccnet is a framework for writing networked applications in C.
|
||||
endef
|
||||
|
||||
define Package/python3-seafile-ccnet
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Python bindings for Seafile Ccnet
|
||||
DEPENDS:=+seafile-ccnet +python3-light +python3-searpc
|
||||
endef
|
||||
|
||||
define Package/python3-seafile-ccnet/description
|
||||
$(call Package/seafile-ccnet/description)
|
||||
|
||||
This package contains Python bindings for Ccnet.
|
||||
endef
|
||||
|
||||
CONFIGURE_ARGS += \
|
||||
--disable-console \
|
||||
--disable-ldap \
|
||||
--enable-python \
|
||||
--with-mysql="$(STAGING_DIR)/usr/bin/mysql_config"
|
||||
|
||||
CONFIGURE_VARS += \
|
||||
PYTHON="$(HOST_PYTHON3_BIN)"
|
||||
|
||||
define Package/seafile-ccnet/install
|
||||
$(INSTALL_DIR) $(1)/usr/{lib,libexec}
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/libexec/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libccnet.so* $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
define Build/InstallDev
|
||||
$(INSTALL_DIR) $(1)/usr/include/ccnet
|
||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/ccnet/*.h $(1)/usr/include/ccnet/
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libccnet.pc $(1)/usr/lib/pkgconfig/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libccnet.{a,la,so*} $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
Py3Package/python3-seafile-ccnet/install:=:
|
||||
|
||||
$(eval $(call BuildPackage,seafile-ccnet))
|
||||
|
||||
$(eval $(call Py3Package,python3-seafile-ccnet))
|
||||
$(eval $(call BuildPackage,python3-seafile-ccnet))
|
||||
$(eval $(call BuildPackage,python3-seafile-ccnet-src))
|
|
@ -1,16 +0,0 @@
|
|||
--- a/lib/Makefile.am
|
||||
+++ b/lib/Makefile.am
|
||||
@@ -1,3 +1,4 @@
|
||||
+include $(TOPDIR)/rules.mk
|
||||
|
||||
AM_CPPFLAGS = @GLIB2_CFLAGS@ -I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/include/ccnet \
|
||||
@@ -85,7 +86,7 @@ rpc_table.stamp: ${top_srcdir}/lib/rpc_t
|
||||
@rm -f rpc_table.tmp
|
||||
@touch rpc_table.tmp
|
||||
@echo "[libsearpc]: generating rpc header files"
|
||||
- @PYTHON@ `which searpc-codegen.py` ${top_srcdir}/lib/rpc_table.py
|
||||
+ @PYTHON@ "$(STAGING_DIR)/usr/bin/searpc-codegen.py" ${top_srcdir}/lib/rpc_table.py
|
||||
@echo "[libsearpc]: done"
|
||||
@mv -f rpc_table.tmp $@
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
--- a/python/ccnet/Makefile.am
|
||||
+++ b/python/ccnet/Makefile.am
|
||||
@@ -1,2 +1,2 @@
|
||||
ccnetdir=${pyexecdir}/ccnet
|
||||
-ccnet_PYTHON = __init__.py rpc.py
|
||||
+ccnet_DATA = __init__.py rpc.py
|
|
@ -1,133 +0,0 @@
|
|||
From 6c825349e1994a991f287e398cf0ead5f790a01b Mon Sep 17 00:00:00 2001
|
||||
From: Eneas U de Queiroz <cote2004-github@yahoo.com>
|
||||
Date: Wed, 6 Jun 2018 18:05:33 -0300
|
||||
Subject: [PATCH] Remove API deprecated in openssl 1.1
|
||||
|
||||
With openssl 1.1, we do not call OpenSSL_add_all_algorithms(), as
|
||||
library initialization is done automatically.
|
||||
Functions RAND_pseudo_bytes and RSA_generate_key were deprecated as
|
||||
well.
|
||||
Also, we need to #include <openssl/bn.h> for BN_num_bytes().
|
||||
|
||||
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
|
||||
---
|
||||
lib/rsa.c | 15 ++++++++++++---
|
||||
net/common/processors/keepalive-proc.c | 4 ++--
|
||||
net/common/processors/keepalive2-proc.c | 2 +-
|
||||
net/common/processors/sendsessionkey-proc.c | 2 +-
|
||||
net/common/processors/sendsessionkey-v2-proc.c | 2 +-
|
||||
net/server/user-mgr.c | 4 ++++
|
||||
tools/ccnet-init.c | 2 ++
|
||||
7 files changed, 23 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/lib/rsa.c
|
||||
+++ b/lib/rsa.c
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/err.h>
|
||||
+#include <openssl/bn.h>
|
||||
|
||||
#include <string.h>
|
||||
#include <glib.h>
|
||||
@@ -207,9 +208,17 @@ RSA *
|
||||
generate_private_key(u_int bits)
|
||||
{
|
||||
RSA *private = NULL;
|
||||
+ BIGNUM *e = NULL;
|
||||
|
||||
- private = RSA_generate_key(bits, 35, NULL, NULL);
|
||||
- if (private == NULL)
|
||||
+ private = RSA_new();
|
||||
+ e = BN_new();
|
||||
+ if (private == NULL || e == NULL || !BN_set_word(e, 35) ||
|
||||
+ !RSA_generate_key_ex(private, bits, e, NULL)) {
|
||||
+ RSA_free(private);
|
||||
+ BN_free(e);
|
||||
g_error ("rsa_generate_private_key: key generation failed.");
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ BN_free(e);
|
||||
return private;
|
||||
}
|
||||
--- a/net/common/processors/keepalive-proc.c
|
||||
+++ b/net/common/processors/keepalive-proc.c
|
||||
@@ -401,7 +401,7 @@ static void send_challenge(CcnetProcesso
|
||||
unsigned char *buf;
|
||||
int len;
|
||||
|
||||
- RAND_pseudo_bytes (priv->random_buf, 40);
|
||||
+ RAND_bytes (priv->random_buf, 40);
|
||||
buf = public_key_encrypt (peer->pubkey, priv->random_buf, 40, &len);
|
||||
ccnet_processor_send_update (processor, "311", NULL, (char *)buf, len);
|
||||
|
||||
@@ -434,7 +434,7 @@ static void send_challenge_user(CcnetPro
|
||||
|
||||
ccnet_debug ("[Keepalive] Send user challenge to %.8s\n",
|
||||
processor->peer->id);
|
||||
- RAND_pseudo_bytes (priv->random_buf, 40);
|
||||
+ RAND_bytes (priv->random_buf, 40);
|
||||
buf = public_key_encrypt (user->pubkey, priv->random_buf, 40, &len);
|
||||
ccnet_processor_send_update (processor, "321", NULL, (char *)buf, len);
|
||||
|
||||
--- a/net/common/processors/keepalive2-proc.c
|
||||
+++ b/net/common/processors/keepalive2-proc.c
|
||||
@@ -306,7 +306,7 @@ static void send_challenge(CcnetProcesso
|
||||
unsigned char *buf;
|
||||
int len;
|
||||
|
||||
- RAND_pseudo_bytes (priv->random_buf, 40);
|
||||
+ RAND_bytes (priv->random_buf, 40);
|
||||
buf = public_key_encrypt (peer->pubkey, priv->random_buf, 40, &len);
|
||||
if (len < 0) {
|
||||
ccnet_debug ("[Keepalive] Failed to encrypt challenge "
|
||||
--- a/net/common/processors/sendsessionkey-proc.c
|
||||
+++ b/net/common/processors/sendsessionkey-proc.c
|
||||
@@ -124,7 +124,7 @@ generate_session_key (CcnetProcessor *pr
|
||||
unsigned char random_buf[40];
|
||||
SHA_CTX s;
|
||||
|
||||
- RAND_pseudo_bytes (random_buf, sizeof(random_buf));
|
||||
+ RAND_bytes (random_buf, sizeof(random_buf));
|
||||
|
||||
SHA1_Init (&s);
|
||||
SHA1_Update (&s, random_buf, sizeof(random_buf));
|
||||
--- a/net/common/processors/sendsessionkey-v2-proc.c
|
||||
+++ b/net/common/processors/sendsessionkey-v2-proc.c
|
||||
@@ -125,7 +125,7 @@ generate_session_key (CcnetProcessor *pr
|
||||
unsigned char random_buf[40];
|
||||
SHA_CTX s;
|
||||
|
||||
- RAND_pseudo_bytes (random_buf, sizeof(random_buf));
|
||||
+ RAND_bytes (random_buf, sizeof(random_buf));
|
||||
|
||||
SHA1_Init (&s);
|
||||
SHA1_Update (&s, random_buf, sizeof(random_buf));
|
||||
--- a/net/server/user-mgr.c
|
||||
+++ b/net/server/user-mgr.c
|
||||
@@ -816,9 +816,13 @@ hash_password_pbkdf2_sha256 (const char
|
||||
char salt_str[SHA256_DIGEST_LENGTH*2+1];
|
||||
|
||||
if (!RAND_bytes (salt, sizeof(salt))) {
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || OPENSSL_API_COMPAT < 0x10100000L
|
||||
ccnet_warning ("Failed to generate salt "
|
||||
"with RAND_bytes(), use RAND_pseudo_bytes().\n");
|
||||
RAND_pseudo_bytes (salt, sizeof(salt));
|
||||
+#else
|
||||
+ ccnet_warning ("Failed to generate salt with RAND_bytes().\n");
|
||||
+#endif
|
||||
}
|
||||
|
||||
PKCS5_PBKDF2_HMAC (passwd, strlen(passwd),
|
||||
--- a/tools/ccnet-init.c
|
||||
+++ b/tools/ccnet-init.c
|
||||
@@ -108,7 +108,9 @@ main(int argc, char **argv)
|
||||
|
||||
config_dir = ccnet_expand_path (config_dir);
|
||||
/* printf("[conf_dir=%s\n]", config_dir); */
|
||||
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||
OpenSSL_add_all_algorithms();
|
||||
+#endif
|
||||
|
||||
if (RAND_status() != 1) { /* it should be seeded automatically */
|
||||
fprintf(stderr, "PRNG is not seeded\n");
|
|
@ -1,33 +0,0 @@
|
|||
--- a/net/common/rpc-service.c
|
||||
+++ b/net/common/rpc-service.c
|
||||
@@ -314,7 +314,11 @@ ccnet_start_rpc(CcnetSession *session)
|
||||
|
||||
#endif /* CCNET_SERVER */
|
||||
|
||||
- char *path = g_build_filename (session->config_dir, CCNET_SOCKET_NAME, NULL);
|
||||
+ const char *socket_dir = g_getenv ("SEAFILE_UCI_SOCKET_DIR");
|
||||
+ if (!socket_dir) {
|
||||
+ socket_dir = session->config_dir;
|
||||
+ }
|
||||
+ char *path = g_build_filename (socket_dir, CCNET_SOCKET_NAME, NULL);
|
||||
SearpcNamedPipeServer *server = searpc_create_named_pipe_server_with_threadpool (path, NAMED_PIPE_SERVER_THREAD_POOL_SIZE);
|
||||
if (!server) {
|
||||
ccnet_warning ("Failed to create named pipe server.\n");
|
||||
--- a/net/server/ccnet-server.c
|
||||
+++ b/net/server/ccnet-server.c
|
||||
@@ -292,10 +292,13 @@ main (int argc, char **argv)
|
||||
config_dir = ccnet_expand_path (config_dir);
|
||||
|
||||
if (!log_file) {
|
||||
- char *logdir = g_build_filename (config_dir, "logs", NULL);
|
||||
+ char *logdir = g_strdup (g_getenv ("SEAFILE_UCI_LOG_DIR"));
|
||||
+ if (!logdir) {
|
||||
+ logdir = g_build_filename (config_dir, "logs", NULL);
|
||||
+ }
|
||||
checkdir_with_mkdir (logdir);
|
||||
+ log_file = g_build_filename (logdir, "ccnet.log", NULL);
|
||||
g_free (logdir);
|
||||
- log_file = g_build_filename (config_dir, "logs", "ccnet.log", NULL);
|
||||
}
|
||||
if (ccnet_log_init (log_file, log_level_str) < 0) {
|
||||
fprintf (stderr, "ccnet_log_init error: %s, %s\n", strerror(errno),
|
|
@ -1,2 +0,0 @@
|
|||
Django==1.11.29 --hash=sha256:4200aefb6678019a0acf0005cd14cfce3a5e6b9b90d06145fcdd2e474ad4329c
|
||||
pytz==2021.3 --hash=sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326
|
|
@ -1,97 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2007-2017 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=seafile-seahub
|
||||
PKG_VERSION:=7.1.5
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/haiwen/seahub/tar.gz/v$(PKG_VERSION)-server?
|
||||
PKG_HASH:=cc7f5a1642d203b2390ae3c30c8a5546d1e829d9d1a5ddf686e558292746ce5c
|
||||
|
||||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_LICENSE_FILES:=LICENSE.txt
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/seahub-$(PKG_VERSION)-server
|
||||
|
||||
HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=./Django-1.11.txt
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PYTHON3_PKG_BUILD:=0
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../../lang/python/python3-package.mk
|
||||
|
||||
define Package/seafile-seahub
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Seafile server - seahub component
|
||||
URL:=https://seafile.com/
|
||||
DEPENDS:= \
|
||||
@BROKEN \
|
||||
+gunicorn3 \
|
||||
+python3 \
|
||||
+python3-chardet \
|
||||
+python3-cryptodome \
|
||||
+python3-dateutil \
|
||||
+python3-django1 \
|
||||
+python3-django-formtools \
|
||||
+python3-django-picklefield \
|
||||
+python3-django-postoffice \
|
||||
+python3-django-restframework39 \
|
||||
+python3-django-simple-captcha \
|
||||
+python3-django-statici18n \
|
||||
+python3-django-webpack-loader \
|
||||
+python3-openpyxl \
|
||||
+python3-pillow \
|
||||
+python3-pyjwt \
|
||||
+python3-pymysql \
|
||||
+python3-pytz \
|
||||
+python3-qrcode \
|
||||
+python3-requests \
|
||||
+python3-requests-oauthlib \
|
||||
+python3-seafile-ccnet \
|
||||
+python3-searpc
|
||||
endef
|
||||
|
||||
define Package/seafile-seahub/description
|
||||
The web end of seafile server.
|
||||
|
||||
Note: Localization support is turned off by default for performance
|
||||
reasons. Set 'USE_I18N = True' in /etc/seafile/conf/seahub_settings.py
|
||||
to use languages other than English.
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
endef
|
||||
|
||||
MAKE_VARS += \
|
||||
PYTHON="$(HOST_PYTHON3_BIN)" \
|
||||
DJANGO_ADMIN_PY="$(STAGING_DIR_HOSTPKG)/bin/django-admin"
|
||||
|
||||
define Build/Compile
|
||||
$(call HostPython3/PipInstall,$(PYTHON3_PKG_HOST_PIP_INSTALL_ARGS))
|
||||
$(call Build/Compile/Default,locale)
|
||||
endef
|
||||
|
||||
define Py3Package/seafile-seahub/install
|
||||
$(INSTALL_DIR) $(1)/usr/share/seafile/seafile-server/seahub/tools
|
||||
$(CP) $(PKG_BUILD_DIR)/{frontend,locale,media,seahub,sql,static,thirdpart} $(1)/usr/share/seafile/seafile-server/seahub/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/manage.py $(1)/usr/share/seafile/seafile-server/seahub/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/tools/secret_key_generator.py $(1)/usr/share/seafile/seafile-server/seahub/tools/
|
||||
$(SED) "s/\(SEAFILE_VERSION\s*=\s*\)'\([0-9]\.[0-9]\.[0-9]\)'/\1'$(PKG_VERSION)'/g" $(1)/usr/share/seafile/seafile-server/seahub/seahub/settings.py
|
||||
mv $(1)/usr/share/seafile/seafile-server/seahub/media/avatars $(1)/usr/share/seafile/seafile-server/seahub/media/avatars_default
|
||||
endef
|
||||
|
||||
Py3Package/seafile-seahub/filespec:=
|
||||
|
||||
$(eval $(call Py3Package,seafile-seahub))
|
||||
$(eval $(call BuildPackage,seafile-seahub))
|
||||
$(eval $(call BuildPackage,seafile-seahub-src))
|
|
@ -1,36 +0,0 @@
|
|||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,3 +1,6 @@
|
||||
+PYTHON ?= python
|
||||
+DJANGO_ADMIN_PY ?= django-admin.py
|
||||
+
|
||||
PROJECT=seahub
|
||||
|
||||
develop: setup-git
|
||||
@@ -9,22 +12,22 @@ dist: locale statici18n collectstatic
|
||||
|
||||
locale:
|
||||
@echo "--> Compile locales"
|
||||
- django-admin.py compilemessages
|
||||
+ $(DJANGO_ADMIN_PY) compilemessages
|
||||
@echo ""
|
||||
|
||||
statici18n:
|
||||
@echo "--> Generate JS locale files in static/scripts/i18n"
|
||||
- python manage.py compilejsi18n
|
||||
+ $(PYTHON) manage.py compilejsi18n
|
||||
|
||||
collectstatic:
|
||||
@echo "--> Collect django static files to media/assets"
|
||||
rm -rf media/assets 2> /dev/null
|
||||
- python manage.py collectstatic --noinput -i admin -i termsandconditions
|
||||
+ $(PYTHON) manage.py collectstatic --noinput -i admin -i termsandconditions
|
||||
|
||||
compressstatic:
|
||||
@echo "--> Compress static files(css) to media/CACHE"
|
||||
rm -rf media/CACHE 2> /dev/null
|
||||
- python manage.py compress
|
||||
+ $(PYTHON) manage.py compress
|
||||
|
||||
clean:
|
||||
@echo '--> Cleaning media/static cache & dist'
|
|
@ -1,29 +0,0 @@
|
|||
--- a/seahub/settings.py
|
||||
+++ b/seahub/settings.py
|
||||
@@ -140,7 +140,7 @@ TEMPLATES = [
|
||||
{
|
||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||
'DIRS': [
|
||||
- os.path.join(PROJECT_ROOT, '../../seahub-data/custom/templates'),
|
||||
+ os.path.join(os.environ.get('SEAFILE_UCI_DATA_DIR', os.path.join(PROJECT_ROOT, '../..')), 'seahub-data/custom/templates'),
|
||||
os.path.join(PROJECT_ROOT, 'seahub/templates'),
|
||||
],
|
||||
'APP_DIRS': True,
|
||||
@@ -646,7 +646,7 @@ CAPTCHA_IMAGE_SIZE = (90, 42)
|
||||
ENABLE_THUMBNAIL = True
|
||||
|
||||
# Absolute filesystem path to the directory that will hold thumbnail files.
|
||||
-SEAHUB_DATA_ROOT = os.path.join(PROJECT_ROOT, '../../seahub-data')
|
||||
+SEAHUB_DATA_ROOT = os.path.join(os.environ.get('SEAFILE_UCI_DATA_DIR', os.path.join(PROJECT_ROOT, '../..')), 'seahub-data')
|
||||
if os.path.exists(SEAHUB_DATA_ROOT):
|
||||
THUMBNAIL_ROOT = os.path.join(SEAHUB_DATA_ROOT, 'thumbnail')
|
||||
else:
|
||||
@@ -842,7 +842,7 @@ except ImportError:
|
||||
pass
|
||||
else:
|
||||
# In server release, sqlite3 db file is <topdir>/seahub.db
|
||||
- DATABASES['default']['NAME'] = os.path.join(install_topdir, 'seahub.db')
|
||||
+ DATABASES['default']['NAME'] = os.path.join(os.environ.get('SEAFILE_UCI_DATA_DIR', install_topdir), 'seahub.db')
|
||||
|
||||
# In server release, gunicorn is used to deploy seahub
|
||||
INSTALLED_APPS += ('gunicorn', )
|
|
@ -1,8 +0,0 @@
|
|||
--- a/manage.py
|
||||
+++ b/manage.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
import os
|
||||
import sys
|
||||
|
|
@ -1,241 +0,0 @@
|
|||
#
|
||||
# Copyright (C) 2007-2017 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=seafile-server
|
||||
PKG_VERSION:=7.1.5
|
||||
PKG_RELEASE:=3
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/haiwen/seafile-server/tar.gz/v$(PKG_VERSION)-server?
|
||||
PKG_HASH:=407a6243f754e366ce6754a2aa643574aa7742d4e81b7cc350dea348f3063707
|
||||
|
||||
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
|
||||
PKG_LICENSE:=AGPL-3.0-only
|
||||
PKG_LICENSE_FILES:=LICENSE.txt
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-server
|
||||
PKG_BUILD_DEPENDS:=vala/host libevhtp
|
||||
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_INSTALL:=1
|
||||
PYTHON3_PKG_BUILD:=0
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/nls.mk
|
||||
include ../../lang/python/python3-package.mk
|
||||
|
||||
# Check that the actual Makefile version-relase match the above.
|
||||
$(eval $(shell awk '/^PKG_VERSION.*=/ { print "SEAHUB_" $$$$0 }' ../seafile-seahub/Makefile))
|
||||
ifneq ($(PKG_VERSION),$(SEAHUB_PKG_VERSION))
|
||||
$(error $(if $(SEAHUB_PKG_VERSION), \
|
||||
Version mismatch between seafile-seahub ($(SEAHUB_PKG_VERSION)) and \
|
||||
seafile-server ($(PKG_VERSION)), \
|
||||
Could not get PKG_VERSION from seafile-seahub Makefile))
|
||||
endif
|
||||
|
||||
define Package/seafile-server
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Seafile server
|
||||
URL:=https://seafile.com/
|
||||
DEPENDS:= \
|
||||
@BROKEN \
|
||||
+bash \
|
||||
+glib2 \
|
||||
+jansson \
|
||||
+libarchive \
|
||||
+libevent2 \
|
||||
+libevent2-openssl \
|
||||
+libmariadb \
|
||||
+libopenssl \
|
||||
+libpthread \
|
||||
+libsearpc \
|
||||
+libsqlite3 \
|
||||
+libuuid \
|
||||
+oniguruma \
|
||||
+procps-ng \
|
||||
+procps-ng-pkill \
|
||||
+python3-pymysql \
|
||||
+python3-seafile-server \
|
||||
+seafile-ccnet \
|
||||
+seafile-seahub \
|
||||
+sqlite3-cli \
|
||||
+zlib \
|
||||
$(ICONV_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/seafile-server/description
|
||||
Open source cloud storage with advanced features on privacy
|
||||
protection and teamwork.
|
||||
endef
|
||||
|
||||
define Package/seafile-server/config
|
||||
select LIBEVHTP_BUILD_DEPENDS
|
||||
endef
|
||||
|
||||
define Package/seafile-server-fuse
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
TITLE:=Seafile server - FUSE extension
|
||||
URL:=https://seafile.com/
|
||||
DEPENDS:= \
|
||||
@BROKEN \
|
||||
+bash \
|
||||
+glib2 \
|
||||
+jansson \
|
||||
+libevent2 \
|
||||
+libevent2-openssl \
|
||||
+libfuse \
|
||||
+libmariadb \
|
||||
+libopenssl \
|
||||
+libpthread \
|
||||
+libsearpc \
|
||||
+libsqlite3 \
|
||||
+libuuid \
|
||||
+procps-ng \
|
||||
+procps-ng-pkill \
|
||||
+seafile-ccnet \
|
||||
+seafile-server \
|
||||
+zlib \
|
||||
$(ICONV_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/seafile-server-fuse/description
|
||||
$(call Package/seafile-server/description)
|
||||
|
||||
This package contains the FUSE extension (seaf-fuse) for Seafile
|
||||
server.
|
||||
endef
|
||||
|
||||
define Package/python3-seafile-server
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Python bindings for Seafile server
|
||||
DEPENDS:=@BROKEN +python3-light +python3-logging +python3-searpc +python3-seafile-ccnet
|
||||
endef
|
||||
|
||||
define Package/python3-seafile-server/description
|
||||
$(call Package/seafile-server/description)
|
||||
|
||||
This package contains Python bindings for Seafile server.
|
||||
endef
|
||||
|
||||
CONFIGURE_ARGS += \
|
||||
--disable-console \
|
||||
--enable-fuse \
|
||||
--enable-python \
|
||||
--with-mysql="$(STAGING_DIR)/usr/bin/mysql_config"
|
||||
|
||||
CONFIGURE_VARS += \
|
||||
PYTHON="$(HOST_PYTHON3_BIN)"
|
||||
|
||||
define Package/seafile-server/conffiles
|
||||
/etc/config/seafile-server
|
||||
endef
|
||||
|
||||
SEAFILE_SERVER_BINARIES:= \
|
||||
seaf-fsck \
|
||||
seafile-controller \
|
||||
seaf-server \
|
||||
seaf-server-init \
|
||||
seafserv-gc
|
||||
|
||||
SEAFILE_SERVER_SHELL_SCRIPTS:= \
|
||||
reset-admin.sh \
|
||||
seaf-fsck.sh \
|
||||
seaf-gc.sh \
|
||||
seafile.sh \
|
||||
seahub.sh \
|
||||
setup-seafile-mysql.sh \
|
||||
setup-seafile.sh
|
||||
# sqlite2mysql.sh handled differently
|
||||
|
||||
SEAFILE_SERVER_PYTHON_SCRIPTS:= \
|
||||
check_init_admin.py \
|
||||
setup-seafile-mysql.py \
|
||||
sqlite2mysql.py
|
||||
|
||||
define Package/seafile-server/install
|
||||
$(INSTALL_DIR) $(1)/usr/{bin,libexec}
|
||||
$(INSTALL_DIR) $(1)/usr/share/seafile/seafile-server
|
||||
$(INSTALL_DIR) $(1)/etc/{config,init.d,seafile}
|
||||
$(INSTALL_DIR) $(1)/lib/upgrade/keep.d
|
||||
|
||||
for bin in $(SEAFILE_SERVER_BINARIES) ; do \
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$$$$bin $(1)/usr/libexec/ ; \
|
||||
done
|
||||
|
||||
for sh in $(SEAFILE_SERVER_SHELL_SCRIPTS) ; do \
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/$$$$sh $(1)/usr/bin/$$$${sh%.sh} ; \
|
||||
done
|
||||
mv $(1)/usr/bin/reset-admin $(1)/usr/bin/reset-seafile-admin
|
||||
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/sqlite2mysql.sh $(1)/usr/share/seafile/seafile-server/
|
||||
|
||||
for py in $(SEAFILE_SERVER_PYTHON_SCRIPTS) ; do \
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/scripts/$$$$py $(1)/usr/share/seafile/seafile-server/ ; \
|
||||
done
|
||||
|
||||
$(CP) $(PKG_BUILD_DIR)/scripts/{sql,upgrade} $(1)/usr/share/seafile/seafile-server/
|
||||
rm -rf $(1)/usr/share/seafile/seafile-server/upgrade/win32
|
||||
|
||||
$(INSTALL_BIN) ./files/create-seafile-admin.sh $(1)/usr/bin/create-seafile-admin
|
||||
|
||||
$(INSTALL_CONF) ./files/seafile-server.config $(1)/etc/config/seafile-server
|
||||
$(INSTALL_BIN) ./files/seafile-server.init $(1)/etc/init.d/seafile-server
|
||||
$(INSTALL_DATA) ./files/seafile-server.upgrade $(1)/lib/upgrade/keep.d/seafile-server
|
||||
endef
|
||||
|
||||
define Build/InstallDev
|
||||
$(INSTALL_DIR) $(1)/usr/include/seafile
|
||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/seafile/*.h $(1)/usr/include/seafile/
|
||||
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libseafile.pc $(1)/usr/lib/pkgconfig/
|
||||
endef
|
||||
|
||||
define Package/seafile-server-fuse/install
|
||||
$(INSTALL_DIR) $(1)/usr/{bin,libexec}
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/seaf-fuse $(1)/usr/libexec/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/scripts/seaf-fuse.sh $(1)/usr/bin/seaf-fuse
|
||||
endef
|
||||
|
||||
Py3Package/python3-seafile-server/install:=:
|
||||
|
||||
define Package/seafile-server/postinst
|
||||
#!/bin/sh
|
||||
cat << EOF
|
||||
|
||||
Please see:
|
||||
|
||||
https://github.com/openwrt/packages/blob/master/net/seafile-server/README.md
|
||||
|
||||
for OpenWrt-specific installation notes (in particular, if you are
|
||||
upgrading from a version before 7.1).
|
||||
|
||||
EOF
|
||||
|
||||
[ -z "$$IPKG_INSTROOT" ] || exit 0
|
||||
|
||||
cat << EOF
|
||||
|
||||
opkg will attempt to start Seafile server now. This may fail if you have
|
||||
not set up Seafile server before or if you are upgrading and have not
|
||||
run the upgrade scripts.
|
||||
|
||||
EOF
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,seafile-server))
|
||||
$(eval $(call BuildPackage,seafile-server-fuse))
|
||||
|
||||
$(eval $(call Py3Package,python3-seafile-server))
|
||||
$(eval $(call BuildPackage,python3-seafile-server))
|
||||
$(eval $(call BuildPackage,python3-seafile-server-src))
|
|
@ -1,114 +0,0 @@
|
|||
# Seafile Server on OpenWrt
|
||||
|
||||
## Installation Notes
|
||||
|
||||
### First-time Installation
|
||||
|
||||
1. Consider where you would like the Seafile data directory
|
||||
(`seafile-data`), Seahub data directory (`seahub-data`), and the
|
||||
Seahub database (`seahub.db`, if you will be using SQLite) to be
|
||||
stored.
|
||||
|
||||
This location can be configured in `/etc/config/seafile-server`
|
||||
(using the _data_dir_ option); the default is `/usr/share/seafile`.
|
||||
|
||||
If you are certain you will use a custom location, set this location
|
||||
in `/etc/config/seafile-server` before continuing with the other
|
||||
installation steps.
|
||||
|
||||
2. Run one of the two setup scripts:
|
||||
|
||||
* To use SQLite:
|
||||
|
||||
# setup-seafile
|
||||
|
||||
* To use MySQL:
|
||||
|
||||
# setup-seafile-mysql
|
||||
|
||||
3. Create a Seafile admin account:
|
||||
|
||||
# create-seafile-admin
|
||||
|
||||
4. Start Seafile server:
|
||||
|
||||
# service seafile-server start
|
||||
|
||||
|
||||
### Upgrading
|
||||
|
||||
Please run the appropriate upgrade scripts in
|
||||
`/usr/share/seafile/seafile-server/upgrade` before using the new
|
||||
version.
|
||||
|
||||
For more information, see
|
||||
https://download.seafile.com/published/seafile-manual/upgrade/upgrade.md.
|
||||
|
||||
Note that since version 7.1, configuration files are stored in
|
||||
`/etc/seafile` instead of `/usr/share/seafile`.
|
||||
|
||||
If you are upgrading from a version before 7.1:
|
||||
|
||||
1. Run the upgrade scripts in
|
||||
`/usr/share/seafile/seafile-server/upgrade` up to 7.1.
|
||||
|
||||
2. Move the `conf` and `ccnet` directories from `/usr/share/seafile` to
|
||||
`/etc/seafile`.
|
||||
|
||||
3. If you are using a custom Seafile data directory location and have
|
||||
set this in `ccnet/seafile.ini`:
|
||||
|
||||
Starting with 7.1, the Seafile data directory location will be taken
|
||||
from `/etc/config/seafile-server`, and any setting in
|
||||
`ccnet/seafile.ini` will be ignored.
|
||||
|
||||
It is strongly recommended to migrate the custom location setting to
|
||||
`/etc/config/seafile-server` and rename/remove the `seafile.ini`
|
||||
file.
|
||||
|
||||
Note that the _data_dir_ option in /etc/config/seafile-server
|
||||
determines the *parent* path to the Seafile data directory (along
|
||||
with the Seahub data directory and the Seahub database, if you are
|
||||
using SQLite). The actual Seafile data directory must be named
|
||||
`seafile-data`.
|
||||
|
||||
For example, if your Seafile data directory is
|
||||
`/srv/seafile/my-seafile-data`:
|
||||
|
||||
1. Rename the directory to `seafile-data`, so now the Seafile data
|
||||
directory is `/srv/seafile/seafile-data`.
|
||||
|
||||
2. Move the Seahub data directory (`seahub-data`) from
|
||||
`/usr/share/seafile` into `/srv/seafile`.
|
||||
|
||||
3. If you are using SQLite, move the Seahub database (`seahub.db`)
|
||||
from `/usr/share/seafile` into `/srv/seafile`.
|
||||
|
||||
4. Set the _data_dir_ option in `/etc/config/seafile-server` to the
|
||||
parent path, `/srv/seafile`.
|
||||
|
||||
5. Rename or delete `ccnet/seafile.ini`.
|
||||
|
||||
4. Review/update your Seahub settings. In previous versions of the
|
||||
Seahub OpenWrt package, some of Seahub's default settings (in
|
||||
`/usr/share/seafile/seafile-server/seahub/seahub/settings.py`) were
|
||||
modified from the defaults shipped by upstream.
|
||||
|
||||
Starting with 7.1, Seahub's default settings are the same as
|
||||
[upstream][seahub_settings], with custom settings added to
|
||||
`/etc/seafile/conf/seahub_settings.py` during setup for new
|
||||
installations.
|
||||
|
||||
To use the same custom settings in your upgraded installation, add
|
||||
these lines to `/etc/seafile/conf/seahub_settings.py`:
|
||||
|
||||
# Custom settings for OpenWrt
|
||||
USE_I18N = False
|
||||
USER_PASSWORD_MIN_LENGTH = 8
|
||||
USER_STRONG_PASSWORD_REQUIRED = True
|
||||
|
||||
[seahub_settings]: https://github.com/haiwen/seahub/blob/v7.1.2-server/seahub/settings.py
|
||||
|
||||
5. Continue running the upgrade scripts up to the new version.
|
||||
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
TOPDIR=/usr/share/seafile
|
||||
INSTALLPATH=$TOPDIR/seafile-server
|
||||
|
||||
seafile start || exit 1
|
||||
|
||||
seahub python-env python3 "$INSTALLPATH/check_init_admin.py"
|
||||
|
||||
seafile stop
|
|
@ -1,11 +0,0 @@
|
|||
config seafile-server
|
||||
#
|
||||
# Directory that holds:
|
||||
#
|
||||
# * Seafile data directory (seafile-data)
|
||||
# * Seahub data directory (seahub-data)
|
||||
# * Seahub database (seahub.db), if using SQLite
|
||||
#
|
||||
# Default: /usr/share/seafile
|
||||
#
|
||||
option data_dir /usr/share/seafile
|
|
@ -1,75 +0,0 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=99
|
||||
STOP=01
|
||||
|
||||
extra_command "generate_uci_conf" "Generate uci config"
|
||||
|
||||
TOPDIR=/usr/share/seafile
|
||||
INSTALLPATH=$TOPDIR/seafile-server
|
||||
|
||||
uci_conf=/var/run/seafile/uci.conf
|
||||
default_data_dir=$TOPDIR
|
||||
|
||||
seafile_server_latest_symlink=$TOPDIR/seafile-server-latest
|
||||
seafile_data_dir_symlink=$TOPDIR/seafile-data
|
||||
seahub_avatars_symlink=$INSTALLPATH/seahub/media/avatars
|
||||
seahub_custom_media_symlink=$INSTALLPATH/seahub/media/custom
|
||||
|
||||
read_uci_section() {
|
||||
local cfg="$1"
|
||||
local data_dir
|
||||
config_get data_dir "$cfg" data_dir "$default_data_dir"
|
||||
uci_data_dir="$data_dir"
|
||||
}
|
||||
|
||||
generate_uci_conf() {
|
||||
local uci_data_dir="$default_data_dir"
|
||||
|
||||
config_load seafile-server
|
||||
config_foreach read_uci_section seafile-server
|
||||
|
||||
mkdir -p "$uci_data_dir"
|
||||
|
||||
mkdir -p "${uci_conf%/*}"
|
||||
cat <<- EOF > "$uci_conf"
|
||||
export SEAFILE_UCI_CONF_DIR=/etc/seafile
|
||||
export SEAFILE_UCI_DATA_DIR="$uci_data_dir"
|
||||
export SEAFILE_UCI_LOG_DIR=/var/log/seafile
|
||||
export SEAFILE_UCI_PID_DIR=/var/run/seafile
|
||||
export SEAFILE_UCI_SOCKET_DIR=/var/run/seafile
|
||||
EOF
|
||||
|
||||
[ ! -L "$seafile_server_latest_symlink" ] || rm -f "$seafile_server_latest_symlink"
|
||||
[ ! -L "$seafile_data_dir_symlink" ] || rm -f "$seafile_data_dir_symlink"
|
||||
|
||||
[ ! -L "$seahub_avatars_symlink" ] || \
|
||||
[ "$(readlink -f "$seahub_avatars_symlink")" = "$uci_data_dir/seahub-data/avatars" ] || \
|
||||
ln -snf "$uci_data_dir/seahub-data/avatars" "$seahub_avatars_symlink"
|
||||
|
||||
[ ! -L "$seahub_custom_media_symlink" ] || \
|
||||
[ "$(readlink -f "$seahub_custom_media_symlink")" = "$uci_data_dir/seahub-data/custom" ] || \
|
||||
ln -snf "$uci_data_dir/seahub-data/custom" "$seahub_custom_media_symlink"
|
||||
}
|
||||
|
||||
start() {
|
||||
seafile start || return
|
||||
if ! seahub start; then
|
||||
seafile stop
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
stop() {
|
||||
seahub stop
|
||||
seahub_ret=$?
|
||||
seafile stop
|
||||
seafile_ret=$?
|
||||
[ "$seahub_ret" -eq 0 ] && [ "$seafile_ret" -eq 0 ]
|
||||
}
|
||||
|
||||
restart() {
|
||||
stop
|
||||
sleep 2
|
||||
start
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
/etc/seafile/
|
|
@ -1,11 +0,0 @@
|
|||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -219,7 +219,7 @@ PKG_CHECK_MODULES(JANSSON, [jansson >= $
|
||||
AC_SUBST(JANSSON_CFLAGS)
|
||||
AC_SUBST(JANSSON_LIBS)
|
||||
|
||||
-PKG_CHECK_MODULES(LIBEVENT, [libevent >= $LIBEVENT_REQUIRED])
|
||||
+PKG_CHECK_MODULES(LIBEVENT, [libevent_openssl >= $LIBEVENT_REQUIRED])
|
||||
AC_SUBST(LIBEVENT_CFLAGS)
|
||||
AC_SUBST(LIBEVENT_LIBS)
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -167,6 +167,7 @@ else
|
||||
LIB_MAC=
|
||||
MSVC_CFLAGS=
|
||||
LIB_CRYPT32=
|
||||
+ LIB_ICONV=-liconv
|
||||
fi
|
||||
|
||||
AC_SUBST(LIB_WS32)
|
|
@ -1,14 +0,0 @@
|
|||
--- a/python/seafile/Makefile.am
|
||||
+++ b/python/seafile/Makefile.am
|
||||
@@ -1,3 +1,3 @@
|
||||
seafiledir=${pyexecdir}/seafile
|
||||
|
||||
-seafile_PYTHON = __init__.py rpcclient.py
|
||||
+seafile_DATA = __init__.py rpcclient.py
|
||||
--- a/python/seaserv/Makefile.am
|
||||
+++ b/python/seaserv/Makefile.am
|
||||
@@ -1,3 +1,3 @@
|
||||
seaservdir=${pyexecdir}/seaserv
|
||||
|
||||
-seaserv_PYTHON = __init__.py service.py api.py
|
||||
+seaserv_DATA = __init__.py service.py api.py
|
|
@ -1,99 +0,0 @@
|
|||
--- a/controller/seafile-controller.c
|
||||
+++ b/controller/seafile-controller.c
|
||||
@@ -288,7 +288,7 @@ init_seafile_path ()
|
||||
bin_dir = g_path_get_dirname (binary);
|
||||
|
||||
tmp = g_path_get_dirname (bin_dir);
|
||||
- installpath = g_path_get_dirname (tmp);
|
||||
+ installpath = "/usr/share/seafile/seafile-server";
|
||||
|
||||
topdir = g_path_get_dirname (installpath);
|
||||
|
||||
--- a/scripts/reset-admin.sh
|
||||
+++ b/scripts/reset-admin.sh
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
-INSTALLPATH=$(dirname "${SCRIPT}")
|
||||
+INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
--- a/scripts/seaf-fsck.sh
|
||||
+++ b/scripts/seaf-fsck.sh
|
||||
@@ -3,7 +3,7 @@
|
||||
echo ""
|
||||
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
-INSTALLPATH=$(dirname "${SCRIPT}")
|
||||
+INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
--- a/scripts/seaf-fuse.sh
|
||||
+++ b/scripts/seaf-fuse.sh
|
||||
@@ -3,7 +3,7 @@
|
||||
echo ""
|
||||
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
-INSTALLPATH=$(dirname "${SCRIPT}")
|
||||
+INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
--- a/scripts/seaf-gc.sh
|
||||
+++ b/scripts/seaf-gc.sh
|
||||
@@ -3,7 +3,7 @@
|
||||
echo ""
|
||||
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
-INSTALLPATH=$(dirname "${SCRIPT}")
|
||||
+INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
--- a/scripts/seafile.sh
|
||||
+++ b/scripts/seafile.sh
|
||||
@@ -13,7 +13,7 @@
|
||||
echo ""
|
||||
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
-INSTALLPATH=$(dirname "${SCRIPT}")
|
||||
+INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
--- a/scripts/seahub.sh
|
||||
+++ b/scripts/seahub.sh
|
||||
@@ -13,7 +13,7 @@
|
||||
echo ""
|
||||
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
-INSTALLPATH=$(dirname "${SCRIPT}")
|
||||
+INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
--- a/scripts/setup-seafile-mysql.sh
|
||||
+++ b/scripts/setup-seafile-mysql.sh
|
||||
@@ -7,7 +7,7 @@
|
||||
set -e
|
||||
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
-INSTALLPATH=$(dirname "${SCRIPT}")
|
||||
+INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
|
||||
cd "$INSTALLPATH"
|
||||
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
-INSTALLPATH=$(dirname "${SCRIPT}")
|
||||
+INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
|
@ -1,104 +0,0 @@
|
|||
--- a/scripts/seaf-fsck.sh
|
||||
+++ b/scripts/seaf-fsck.sh
|
||||
@@ -8,9 +8,9 @@ TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
default_conf_dir=${TOPDIR}/conf
|
||||
-seaf_fsck=${INSTALLPATH}/seafile/bin/seaf-fsck
|
||||
+seaf_fsck=/usr/libexec/seaf-fsck
|
||||
|
||||
-export PATH=${INSTALLPATH}/seafile/bin:$PATH
|
||||
+export PATH=/usr/libexec:$PATH
|
||||
export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
|
||||
|
||||
script_name=$0
|
||||
--- a/scripts/seaf-fuse.sh
|
||||
+++ b/scripts/seaf-fuse.sh
|
||||
@@ -8,9 +8,9 @@ TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
default_conf_dir=${TOPDIR}/conf
|
||||
-seaf_fuse=${INSTALLPATH}/seafile/bin/seaf-fuse
|
||||
+seaf_fuse=/usr/libexec/seaf-fuse
|
||||
|
||||
-export PATH=${INSTALLPATH}/seafile/bin:$PATH
|
||||
+export PATH=/usr/libexec:$PATH
|
||||
export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
|
||||
|
||||
script_name=$0
|
||||
--- a/scripts/seaf-gc.sh
|
||||
+++ b/scripts/seaf-gc.sh
|
||||
@@ -8,10 +8,10 @@ TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
default_conf_dir=${TOPDIR}/conf
|
||||
-seaf_gc=${INSTALLPATH}/seafile/bin/seafserv-gc
|
||||
+seaf_gc=/usr/libexec/seafserv-gc
|
||||
seaf_gc_opts=""
|
||||
|
||||
-export PATH=${INSTALLPATH}/seafile/bin:$PATH
|
||||
+export PATH=/usr/libexec:$PATH
|
||||
export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
|
||||
|
||||
script_name=$0
|
||||
--- a/scripts/seafile.sh
|
||||
+++ b/scripts/seafile.sh
|
||||
@@ -18,9 +18,9 @@ TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
central_config_dir=${TOPDIR}/conf
|
||||
-seaf_controller="${INSTALLPATH}/seafile/bin/seafile-controller"
|
||||
+seaf_controller="/usr/libexec/seafile-controller"
|
||||
|
||||
-export PATH=${INSTALLPATH}/seafile/bin:$PATH
|
||||
+export PATH=/usr/libexec:$PATH
|
||||
export ORIG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
|
||||
export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
|
||||
|
||||
--- a/scripts/seahub.sh
|
||||
+++ b/scripts/seahub.sh
|
||||
@@ -25,7 +25,7 @@ gunicorn_conf=${TOPDIR}/conf/gunicorn.co
|
||||
pidfile=${TOPDIR}/pids/seahub.pid
|
||||
errorlog=${TOPDIR}/logs/gunicorn_error.log
|
||||
accesslog=${TOPDIR}/logs/gunicorn_access.log
|
||||
-gunicorn_exe=${INSTALLPATH}/seahub/thirdpart/bin/gunicorn
|
||||
+gunicorn_exe=/usr/bin/gunicorn3
|
||||
|
||||
script_name=$0
|
||||
function usage () {
|
||||
@@ -233,9 +233,9 @@ function clear_sessions () {
|
||||
function stop_seahub () {
|
||||
if [[ -f ${pidfile} ]]; then
|
||||
echo "Stopping seahub ..."
|
||||
- pkill -9 -f "thirdpart/bin/gunicorn"
|
||||
+ pkill -9 -f "/usr/bin/gunicorn3"
|
||||
sleep 1
|
||||
- if pgrep -f "thirdpart/bin/gunicorn" 2>/dev/null 1>&2 ; then
|
||||
+ if pgrep -f "/usr/bin/gunicorn3" 2>/dev/null 1>&2 ; then
|
||||
echo 'Failed to stop seahub.'
|
||||
exit 1
|
||||
fi
|
||||
--- a/scripts/setup-seafile-mysql.py
|
||||
+++ b/scripts/setup-seafile-mysql.py
|
||||
@@ -299,7 +299,7 @@ class EnvManager(object):
|
||||
def __init__(self):
|
||||
self.install_path = os.path.dirname(os.path.abspath(__file__))
|
||||
self.top_dir = os.path.dirname(self.install_path)
|
||||
- self.bin_dir = os.path.join(self.install_path, 'seafile', 'bin')
|
||||
+ self.bin_dir = '/usr/libexec'
|
||||
self.central_config_dir = os.path.join(self.top_dir, 'conf')
|
||||
self.central_pids_dir = os.path.join(self.top_dir, 'pids')
|
||||
self.central_logs_dir = os.path.join(self.top_dir, 'logs')
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -455,8 +455,8 @@ if [[ "${need_pause}" == "1" ]]; then
|
||||
read dummy
|
||||
fi
|
||||
|
||||
-ccnet_init=${INSTALLPATH}/seafile/bin/ccnet-init
|
||||
-seaf_server_init=${INSTALLPATH}/seafile/bin/seaf-server-init
|
||||
+ccnet_init=/usr/libexec/ccnet-init
|
||||
+seaf_server_init=/usr/libexec/seaf-server-init
|
||||
|
||||
# -------------------------------------------
|
||||
# Create ccnet conf
|
|
@ -1,583 +0,0 @@
|
|||
--- a/common/seaf-utils.c
|
||||
+++ b/common/seaf-utils.c
|
||||
@@ -238,7 +238,12 @@ create_ccnet_rpc_client ()
|
||||
SearpcNamedPipeClient *transport = NULL;
|
||||
char *pipe_path = NULL;
|
||||
|
||||
- pipe_path = g_build_path ("/", seaf->ccnet_dir, CCNET_RPC_PIPE_NAME, NULL);
|
||||
+ char *socket_dir = g_strdup (g_getenv ("SEAFILE_UCI_SOCKET_DIR"));
|
||||
+ if (!socket_dir) {
|
||||
+ socket_dir = g_strdup (seaf->ccnet_dir);
|
||||
+ }
|
||||
+ pipe_path = g_build_path ("/", socket_dir, CCNET_RPC_PIPE_NAME, NULL);
|
||||
+ g_free (socket_dir);
|
||||
transport = searpc_create_named_pipe_client(pipe_path);
|
||||
g_free(pipe_path);
|
||||
if (!transport)
|
||||
--- a/controller/seafile-controller.c
|
||||
+++ b/controller/seafile-controller.c
|
||||
@@ -511,7 +511,10 @@ stop_services ()
|
||||
static void
|
||||
init_pidfile_path (SeafileController *ctl)
|
||||
{
|
||||
- char *pid_dir = g_build_filename (topdir, "pids", NULL);
|
||||
+ char *pid_dir = g_strdup (g_getenv ("SEAFILE_UCI_PID_DIR"));
|
||||
+ if (!pid_dir) {
|
||||
+ pid_dir = g_build_filename (topdir, "pids", NULL);
|
||||
+ }
|
||||
if (!g_file_test(pid_dir, G_FILE_TEST_EXISTS)) {
|
||||
if (g_mkdir(pid_dir, 0777) < 0) {
|
||||
seaf_warning("failed to create pid dir %s: %s", pid_dir, strerror(errno));
|
||||
@@ -523,6 +526,8 @@ init_pidfile_path (SeafileController *ct
|
||||
ctl->pidfile[PID_SERVER] = g_build_filename (pid_dir, "seaf-server.pid", NULL);
|
||||
ctl->pidfile[PID_SEAFDAV] = g_build_filename (pid_dir, "seafdav.pid", NULL);
|
||||
ctl->pidfile[PID_SEAFEVENTS] = g_build_filename (pid_dir, "seafevents.pid", NULL);
|
||||
+
|
||||
+ g_free (pid_dir);
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -545,7 +550,10 @@ seaf_controller_init (SeafileController
|
||||
|
||||
if (logdir == NULL) {
|
||||
char *topdir = g_path_get_dirname(config_dir);
|
||||
- logdir = g_build_filename (topdir, "logs", NULL);
|
||||
+ logdir = g_strdup (g_getenv ("SEAFILE_UCI_LOG_DIR"));
|
||||
+ if (!logdir) {
|
||||
+ 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));
|
||||
@@ -554,10 +562,15 @@ seaf_controller_init (SeafileController
|
||||
g_free (topdir);
|
||||
}
|
||||
|
||||
+ char *socket_dir = g_strdup (g_getenv ("SEAFILE_UCI_SOCKET_DIR"));
|
||||
+ if (!socket_dir) {
|
||||
+ socket_dir = g_build_filename (installpath, "runtime", NULL);
|
||||
+ }
|
||||
+
|
||||
ctl->central_config_dir = central_config_dir;
|
||||
ctl->config_dir = config_dir;
|
||||
ctl->seafile_dir = seafile_dir;
|
||||
- ctl->rpc_pipe_path = g_build_filename (installpath, "runtime", NULL);
|
||||
+ ctl->rpc_pipe_path = socket_dir;
|
||||
ctl->logdir = logdir;
|
||||
|
||||
if (read_seafdav_config() < 0) {
|
||||
--- a/python/seaserv/service.py
|
||||
+++ b/python/seaserv/service.py
|
||||
@@ -32,11 +32,17 @@ CCNET_CONF_PATH = _load_path_from_env('C
|
||||
SEAFILE_CONF_DIR = _load_path_from_env('SEAFILE_CONF_DIR')
|
||||
SEAFILE_CENTRAL_CONF_DIR = _load_path_from_env('SEAFILE_CENTRAL_CONF_DIR', check=False)
|
||||
SEAFILE_RPC_PIPE_PATH = _load_path_from_env ("SEAFILE_RPC_PIPE_PATH", check=False)
|
||||
+SEAFILE_UCI_SOCKET_DIR = _load_path_from_env('SEAFILE_UCI_SOCKET_DIR', check=False)
|
||||
|
||||
-ccnet_pipe_path = os.path.join (CCNET_CONF_PATH, 'ccnet-rpc.sock')
|
||||
+ccnet_pipe_path = os.path.join (SEAFILE_UCI_SOCKET_DIR if SEAFILE_UCI_SOCKET_DIR else CCNET_CONF_PATH, 'ccnet-rpc.sock')
|
||||
ccnet_threaded_rpc = ccnet.CcnetThreadedRpcClient(ccnet_pipe_path)
|
||||
|
||||
-seafile_pipe_path = os.path.join(SEAFILE_RPC_PIPE_PATH if SEAFILE_RPC_PIPE_PATH else SEAFILE_CONF_DIR,
|
||||
+socket_dir = SEAFILE_CONF_DIR
|
||||
+if SEAFILE_RPC_PIPE_PATH:
|
||||
+ socket_dir = SEAFILE_RPC_PIPE_PATH
|
||||
+elif SEAFILE_UCI_SOCKET_DIR:
|
||||
+ socket_dir = SEAFILE_UCI_SOCKET_DIR
|
||||
+seafile_pipe_path = os.path.join(socket_dir,
|
||||
'seafile.sock')
|
||||
seafserv_threaded_rpc = seafile.ServerThreadedRpcClient(seafile_pipe_path)
|
||||
|
||||
--- a/scripts/check_init_admin.py
|
||||
+++ b/scripts/check_init_admin.py
|
||||
@@ -284,7 +284,7 @@ class RPC(object):
|
||||
import ccnet
|
||||
ccnet_dir = os.environ['CCNET_CONF_DIR']
|
||||
central_config_dir = os.environ['SEAFILE_CENTRAL_CONF_DIR']
|
||||
- ccnet_named_pipe_path = ccnet_dir + '/' + 'ccnet-rpc.sock'
|
||||
+ ccnet_named_pipe_path = os.environ.get('SEAFILE_UCI_SOCKET_DIR', ccnet_dir) + '/' + 'ccnet-rpc.sock'
|
||||
self.rpc_client = ccnet.CcnetThreadedRpcClient(ccnet_named_pipe_path)
|
||||
|
||||
def get_db_email_users(self):
|
||||
--- a/scripts/reset-admin.sh
|
||||
+++ b/scripts/reset-admin.sh
|
||||
@@ -1,11 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
+/etc/init.d/seafile-server generate_uci_conf && . /var/run/seafile/uci.conf
|
||||
+
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
-default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
-default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
-central_config_dir=${TOPDIR}/conf
|
||||
+default_ccnet_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet
|
||||
+default_seafile_data_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seafile-data
|
||||
+central_config_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf
|
||||
|
||||
function check_python_executable() {
|
||||
if [[ "$PYTHON" != "" && -x $PYTHON ]]; then
|
||||
--- a/scripts/seaf-fsck.sh
|
||||
+++ b/scripts/seaf-fsck.sh
|
||||
@@ -2,12 +2,14 @@
|
||||
|
||||
echo ""
|
||||
|
||||
+/etc/init.d/seafile-server generate_uci_conf && . /var/run/seafile/uci.conf
|
||||
+
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
-default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
-default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
-default_conf_dir=${TOPDIR}/conf
|
||||
+default_ccnet_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet
|
||||
+default_seafile_data_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seafile-data
|
||||
+default_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf
|
||||
seaf_fsck=/usr/libexec/seaf-fsck
|
||||
|
||||
export PATH=/usr/libexec:$PATH
|
||||
--- a/scripts/seaf-fuse.sh
|
||||
+++ b/scripts/seaf-fuse.sh
|
||||
@@ -2,12 +2,14 @@
|
||||
|
||||
echo ""
|
||||
|
||||
+/etc/init.d/seafile-server generate_uci_conf && . /var/run/seafile/uci.conf
|
||||
+
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
-default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
-default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
-default_conf_dir=${TOPDIR}/conf
|
||||
+default_ccnet_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet
|
||||
+default_seafile_data_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seafile-data
|
||||
+default_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf
|
||||
seaf_fuse=/usr/libexec/seaf-fuse
|
||||
|
||||
export PATH=/usr/libexec:$PATH
|
||||
@@ -78,7 +80,7 @@ function start_seaf_fuse () {
|
||||
|
||||
echo "Starting seaf-fuse, please wait ..."
|
||||
|
||||
- logfile=${TOPDIR}/logs/seaf-fuse.log
|
||||
+ logfile=${SEAFILE_UCI_LOG_DIR-$TOPDIR/logs}/seaf-fuse.log
|
||||
|
||||
LD_LIBRARY_PATH=$SEAFILE_LD_LIBRARY_PATH ${seaf_fuse} \
|
||||
-c "${default_ccnet_conf_dir}" \
|
||||
--- a/scripts/seaf-gc.sh
|
||||
+++ b/scripts/seaf-gc.sh
|
||||
@@ -2,12 +2,14 @@
|
||||
|
||||
echo ""
|
||||
|
||||
+/etc/init.d/seafile-server generate_uci_conf && . /var/run/seafile/uci.conf
|
||||
+
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
-default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
-default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
-default_conf_dir=${TOPDIR}/conf
|
||||
+default_ccnet_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet
|
||||
+default_seafile_data_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seafile-data
|
||||
+default_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf
|
||||
seaf_gc=/usr/libexec/seafserv-gc
|
||||
seaf_gc_opts=""
|
||||
|
||||
--- a/scripts/seafile.sh
|
||||
+++ b/scripts/seafile.sh
|
||||
@@ -12,12 +12,14 @@
|
||||
|
||||
echo ""
|
||||
|
||||
+/etc/init.d/seafile-server generate_uci_conf && . /var/run/seafile/uci.conf
|
||||
+
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
-default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
-default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
-central_config_dir=${TOPDIR}/conf
|
||||
+default_ccnet_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet
|
||||
+default_seafile_data_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seafile-data
|
||||
+central_config_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf
|
||||
seaf_controller="/usr/libexec/seafile-controller"
|
||||
|
||||
export PATH=/usr/libexec:$PATH
|
||||
@@ -121,7 +123,7 @@ function start_seafile_server () {
|
||||
|
||||
echo "Starting seafile server, please wait ..."
|
||||
|
||||
- mkdir -p $TOPDIR/logs
|
||||
+ mkdir -p ${SEAFILE_UCI_LOG_DIR-$TOPDIR/logs}
|
||||
LD_LIBRARY_PATH=$SEAFILE_LD_LIBRARY_PATH ${seaf_controller} \
|
||||
-c "${default_ccnet_conf_dir}" \
|
||||
-d "${default_seafile_data_dir}" \
|
||||
--- a/scripts/seahub.sh
|
||||
+++ b/scripts/seahub.sh
|
||||
@@ -12,19 +12,21 @@
|
||||
|
||||
echo ""
|
||||
|
||||
+/etc/init.d/seafile-server generate_uci_conf && . /var/run/seafile/uci.conf
|
||||
+
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
-default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
-default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
-central_config_dir=${TOPDIR}/conf
|
||||
-seafile_rpc_pipe_path=${INSTALLPATH}/runtime
|
||||
+default_ccnet_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet
|
||||
+default_seafile_data_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seafile-data
|
||||
+central_config_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf
|
||||
+seafile_rpc_pipe_path=${SEAFILE_UCI_SOCKET_DIR-$INSTALLPATH/runtime}
|
||||
|
||||
manage_py=${INSTALLPATH}/seahub/manage.py
|
||||
-gunicorn_conf=${TOPDIR}/conf/gunicorn.conf.py
|
||||
-pidfile=${TOPDIR}/pids/seahub.pid
|
||||
-errorlog=${TOPDIR}/logs/gunicorn_error.log
|
||||
-accesslog=${TOPDIR}/logs/gunicorn_access.log
|
||||
+gunicorn_conf=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf/gunicorn.conf.py
|
||||
+pidfile=${SEAFILE_UCI_PID_DIR-$TOPDIR/pids}/seahub.pid
|
||||
+errorlog=${SEAFILE_UCI_LOG_DIR-$TOPDIR/logs}/gunicorn_error.log
|
||||
+accesslog=${SEAFILE_UCI_LOG_DIR-$TOPDIR/logs}/gunicorn_access.log
|
||||
gunicorn_exe=/usr/bin/gunicorn3
|
||||
|
||||
script_name=$0
|
||||
@@ -138,7 +140,7 @@ function warning_if_seafile_not_running
|
||||
}
|
||||
|
||||
function prepare_seahub_log_dir() {
|
||||
- logdir=${TOPDIR}/logs
|
||||
+ logdir=${SEAFILE_UCI_LOG_DIR-$TOPDIR/logs}
|
||||
if ! [[ -d ${logsdir} ]]; then
|
||||
if ! mkdir -p "${logdir}"; then
|
||||
echo "ERROR: failed to create logs dir \"${logdir}\""
|
||||
--- a/scripts/setup-seafile-mysql.py
|
||||
+++ b/scripts/setup-seafile-mysql.py
|
||||
@@ -300,9 +300,9 @@ class EnvManager(object):
|
||||
self.install_path = os.path.dirname(os.path.abspath(__file__))
|
||||
self.top_dir = os.path.dirname(self.install_path)
|
||||
self.bin_dir = '/usr/libexec'
|
||||
- self.central_config_dir = os.path.join(self.top_dir, 'conf')
|
||||
- self.central_pids_dir = os.path.join(self.top_dir, 'pids')
|
||||
- self.central_logs_dir = os.path.join(self.top_dir, 'logs')
|
||||
+ self.central_config_dir = os.path.join(os.environ.get('SEAFILE_UCI_CONF_DIR', self.top_dir), 'conf')
|
||||
+ self.central_pids_dir = os.environ.get('SEAFILE_UCI_PID_DIR', os.path.join(self.top_dir, 'pids'))
|
||||
+ self.central_logs_dir = os.environ.get('SEAFILE_UCI_LOG_DIR', os.path.join(self.top_dir, 'logs'))
|
||||
Utils.must_mkdir(self.central_config_dir)
|
||||
|
||||
def check_pre_condiction(self):
|
||||
@@ -790,7 +790,7 @@ class CcnetConfigurator(AbstractConfigur
|
||||
def __init__(self):
|
||||
'''Initialize default values of ccnet configuration'''
|
||||
AbstractConfigurator.__init__(self)
|
||||
- self.ccnet_dir = os.path.join(env_mgr.top_dir, 'ccnet')
|
||||
+ self.ccnet_dir = os.path.join(os.environ.get('SEAFILE_UCI_CONF_DIR', env_mgr.top_dir), 'ccnet')
|
||||
self.port = 10001
|
||||
self.server_name = None
|
||||
self.ip_or_domain = None
|
||||
@@ -919,7 +919,7 @@ class CcnetConfigurator(AbstractConfigur
|
||||
class SeafileConfigurator(AbstractConfigurator):
|
||||
def __init__(self):
|
||||
AbstractConfigurator.__init__(self)
|
||||
- self.seafile_dir = os.path.join(env_mgr.top_dir, 'seafile-data')
|
||||
+ self.seafile_dir = os.path.join(os.environ.get('SEAFILE_UCI_DATA_DIR', env_mgr.top_dir), 'seafile-data')
|
||||
self.port = 12001
|
||||
self.fileserver_port = None
|
||||
self.seafile_conf = os.path.join(env_mgr.central_config_dir, 'seafile.conf')
|
||||
@@ -983,7 +983,7 @@ class SeafileConfigurator(AbstractConfig
|
||||
question = 'Where do you want to put your seafile data?'
|
||||
key = 'seafile-data'
|
||||
note = 'Please use a volume with enough free space'
|
||||
- default = os.path.join(env_mgr.top_dir, 'seafile-data')
|
||||
+ default = os.path.join(os.environ.get('SEAFILE_UCI_DATA_DIR', env_mgr.top_dir), 'seafile-data')
|
||||
self.seafile_dir = Utils.ask_question(question,
|
||||
key=key,
|
||||
note=note,
|
||||
@@ -1204,7 +1204,7 @@ class SeahubConfigurator(AbstractConfigu
|
||||
media_dir = os.path.join(env_mgr.install_path, 'seahub', 'media')
|
||||
orig_avatar_dir = os.path.join(media_dir, 'avatars')
|
||||
|
||||
- seahub_data_dir = os.path.join(env_mgr.top_dir, 'seahub-data')
|
||||
+ seahub_data_dir = os.path.join(os.environ.get('SEAFILE_UCI_DATA_DIR', env_mgr.top_dir), 'seahub-data')
|
||||
dest_avatar_dir = os.path.join(seahub_data_dir, 'avatars')
|
||||
|
||||
if os.path.exists(dest_avatar_dir):
|
||||
@@ -1214,7 +1214,7 @@ class SeahubConfigurator(AbstractConfigu
|
||||
os.mkdir(seahub_data_dir)
|
||||
|
||||
shutil.move(orig_avatar_dir, dest_avatar_dir)
|
||||
- os.symlink('../../../seahub-data/avatars', orig_avatar_dir)
|
||||
+ os.symlink(dest_avatar_dir, orig_avatar_dir)
|
||||
except Exception as e:
|
||||
Utils.error('Failed to prepare seahub avatars dir: %s' % e)
|
||||
|
||||
@@ -1390,7 +1390,7 @@ def check_params(args):
|
||||
seafile_config.fileserver_port = Utils.validate_port(fileserver_port)
|
||||
|
||||
seafile_dir = get_param_val(args.seafile_dir, 'SEAFILE_DIR',
|
||||
- os.path.join(env_mgr.top_dir, 'seafile-data'))
|
||||
+ os.path.join(os.environ.get('SEAFILE_UCI_DATA_DIR', env_mgr.top_dir), 'seafile-data'))
|
||||
seafile_config.seafile_dir = seafile_config.validate_seafile_dir(seafile_dir)
|
||||
|
||||
global db_config
|
||||
--- a/scripts/setup-seafile-mysql.sh
|
||||
+++ b/scripts/setup-seafile-mysql.sh
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
set -e
|
||||
|
||||
+/etc/init.d/seafile-server generate_uci_conf && . /var/run/seafile/uci.conf
|
||||
+
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -1,14 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
+/etc/init.d/seafile-server generate_uci_conf && . /var/run/seafile/uci.conf
|
||||
+
|
||||
SCRIPT=$(readlink -f "$0")
|
||||
INSTALLPATH=/usr/share/seafile/seafile-server
|
||||
TOPDIR=$(dirname "${INSTALLPATH}")
|
||||
-default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
-default_seafile_data_dir=${TOPDIR}/seafile-data
|
||||
-default_seahub_db=${TOPDIR}/seahub.db
|
||||
-default_conf_dir=${TOPDIR}/conf
|
||||
-default_pids_dir=${TOPDIR}/pids
|
||||
-default_logs_dir=${TOPDIR}/logs
|
||||
+default_ccnet_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet
|
||||
+default_seafile_data_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seafile-data
|
||||
+default_seahub_db=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub.db
|
||||
+default_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf
|
||||
+default_pids_dir=${SEAFILE_UCI_PID_DIR-$TOPDIR/pids}
|
||||
+default_logs_dir=${SEAFILE_UCI_LOG_DIR-$TOPDIR/logs}
|
||||
|
||||
export SEAFILE_LD_LIBRARY_PATH=${INSTALLPATH}/seafile/lib/:${INSTALLPATH}/seafile/lib64:${LD_LIBRARY_PATH}
|
||||
|
||||
@@ -516,7 +518,7 @@ gen_seafdav_conf;
|
||||
# -------------------------------------------
|
||||
# generate seahub/settings.py
|
||||
# -------------------------------------------
|
||||
-dest_settings_py=${TOPDIR}/conf/seahub_settings.py
|
||||
+dest_settings_py=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf/seahub_settings.py
|
||||
seahub_secret_keygen=${INSTALLPATH}/seahub/tools/secret_key_generator.py
|
||||
|
||||
if [[ ! -f ${dest_settings_py} ]]; then
|
||||
@@ -621,44 +623,44 @@ function get_seahub_admin_passwd () {
|
||||
echo "Creating database now, it may take one minute, please wait... "
|
||||
echo
|
||||
|
||||
-cd ${TOPDIR}/ccnet && mkdir -m 0755 GroupMgr misc OrgMgr PeerMgr && cd -
|
||||
+cd ${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet && mkdir -m 0755 GroupMgr misc OrgMgr PeerMgr && cd -
|
||||
|
||||
-ccnet_group_db=${TOPDIR}/ccnet/GroupMgr/groupmgr.db
|
||||
+ccnet_group_db=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet/GroupMgr/groupmgr.db
|
||||
ccnet_group_sql=${INSTALLPATH}/sql/sqlite/groupmgr.sql
|
||||
if ! sqlite3 ${ccnet_group_db} ".read ${ccnet_group_sql}" 2>/dev/null 1>&2; then
|
||||
echo "Failed to sync ccnet groupmgr database."
|
||||
err_and_quit;
|
||||
fi
|
||||
|
||||
-ccnet_config_db=${TOPDIR}/ccnet/misc/config.db
|
||||
+ccnet_config_db=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet/misc/config.db
|
||||
ccnet_config_sql=${INSTALLPATH}/sql/sqlite/config.sql
|
||||
if ! sqlite3 ${ccnet_config_db} ".read ${ccnet_config_sql}" 2>/dev/null 1>&2; then
|
||||
echo "Failed to sync ccnet config database."
|
||||
err_and_quit;
|
||||
fi
|
||||
|
||||
-ccnet_org_db=${TOPDIR}/ccnet/OrgMgr/orgmgr.db
|
||||
+ccnet_org_db=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet/OrgMgr/orgmgr.db
|
||||
ccnet_org_sql=${INSTALLPATH}/sql/sqlite/org.sql
|
||||
if ! sqlite3 ${ccnet_org_db} ".read ${ccnet_org_sql}" 2>/dev/null 1>&2; then
|
||||
echo "Failed to sync ccnet org database."
|
||||
err_and_quit;
|
||||
fi
|
||||
|
||||
-ccnet_user_db=${TOPDIR}/ccnet/PeerMgr/usermgr.db
|
||||
+ccnet_user_db=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet/PeerMgr/usermgr.db
|
||||
ccnet_user_sql=${INSTALLPATH}/sql/sqlite/user.sql
|
||||
if ! sqlite3 ${ccnet_user_db} ".read ${ccnet_user_sql}" 2>/dev/null 1>&2; then
|
||||
echo "Failed to sync ccnet user database."
|
||||
err_and_quit;
|
||||
fi
|
||||
|
||||
-seafile_db=${TOPDIR}/seafile-data/seafile.db
|
||||
+seafile_db=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seafile-data/seafile.db
|
||||
seafile_sql=${INSTALLPATH}/sql/sqlite/seafile.sql
|
||||
if ! sqlite3 ${seafile_db} ".read ${seafile_sql}" 2>/dev/null 1>&2; then
|
||||
echo "Failed to sync seafile database."
|
||||
err_and_quit;
|
||||
fi
|
||||
|
||||
-seahub_db=${TOPDIR}/seahub.db
|
||||
+seahub_db=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub.db
|
||||
seahub_sqls=${INSTALLPATH}/seahub/sql/sqlite3.sql
|
||||
if ! sqlite3 ${seahub_db} ".read ${seahub_sqls}" 2>/dev/null 1>&2; then
|
||||
echo "Failed to sync seahub database."
|
||||
@@ -671,12 +673,12 @@ echo "Done."
|
||||
|
||||
media_dir=${INSTALLPATH}/seahub/media
|
||||
orig_avatar_dir=${INSTALLPATH}/seahub/media/avatars
|
||||
-dest_avatar_dir=${TOPDIR}/seahub-data/avatars
|
||||
+dest_avatar_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data/avatars
|
||||
|
||||
if [[ ! -d ${dest_avatar_dir} ]]; then
|
||||
- mkdir -p "${TOPDIR}/seahub-data"
|
||||
+ mkdir -p "${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data"
|
||||
mv "${orig_avatar_dir}" "${dest_avatar_dir}"
|
||||
- ln -s ../../../seahub-data/avatars ${media_dir}
|
||||
+ ln -s ${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data/avatars ${media_dir}
|
||||
fi
|
||||
|
||||
# Make a seafile-server symlink, like this:
|
||||
--- a/scripts/sqlite2mysql.sh
|
||||
+++ b/scripts/sqlite2mysql.sh
|
||||
@@ -13,17 +13,19 @@
|
||||
# (mysql> source ccnet-db.sql)
|
||||
#
|
||||
|
||||
+/etc/init.d/seafile-server generate_uci_conf && . /var/run/seafile/uci.conf
|
||||
+
|
||||
CCNET_DB='ccnet-db.sql'
|
||||
SEAFILE_DB='seafile-db.sql'
|
||||
SEAHUB_DB='seahub-db.sql'
|
||||
|
||||
########## ccnet
|
||||
seafile_path=$(pwd)
|
||||
-if [ -f "${seafile_path}/conf/ccnet.conf" ]; then
|
||||
- USER_MGR_DB=${seafile_path}/ccnet/PeerMgr/usermgr.db
|
||||
- GRP_MGR_DB=${seafile_path}/ccnet/GroupMgr/groupmgr.db
|
||||
+if [ -f "${SEAFILE_UCI_CONF_DIR-$seafile_path}/conf/ccnet.conf" ]; then
|
||||
+ USER_MGR_DB=${SEAFILE_UCI_CONF_DIR-$seafile_path}/ccnet/PeerMgr/usermgr.db
|
||||
+ GRP_MGR_DB=${SEAFILE_UCI_CONF_DIR-$seafile_path}/ccnet/GroupMgr/groupmgr.db
|
||||
else
|
||||
- echo "${seafile_path}/conf/ccnet.conf does not exists."
|
||||
+ echo "${SEAFILE_UCI_CONF_DIR-$seafile_path}/conf/ccnet.conf does not exists."
|
||||
read -p "Please provide your ccnet.conf path(e.g. /data/haiwen/conf/ccnet.conf): " ccnet_conf_path
|
||||
if [ -f ${ccnet_conf_path} ]; then
|
||||
USER_MGR_DB=$(dirname $(dirname "${ccnet_conf_path}"))/ccnet/PeerMgr/usermgr.db
|
||||
@@ -50,11 +52,11 @@ sed 's/email TEXT, role TEXT/email VARCH
|
||||
########## seafile
|
||||
rm -rf ${SEAFILE_DB}
|
||||
|
||||
-if [ -f "${seafile_path}/seafile-data/seafile.db" ]; then
|
||||
- echo "sqlite3 ${seafile_path}/seafile-data/seafile.db .dump | python sqlite2mysql.py > ${SEAFILE_DB}"
|
||||
- sqlite3 ${seafile_path}/seafile-data/seafile.db .dump | python sqlite2mysql.py > ${SEAFILE_DB}
|
||||
+if [ -f "${SEAFILE_UCI_DATA_DIR-$seafile_path}/seafile-data/seafile.db" ]; then
|
||||
+ echo "sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seafile-data/seafile.db .dump | python sqlite2mysql.py > ${SEAFILE_DB}"
|
||||
+ sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seafile-data/seafile.db .dump | python sqlite2mysql.py > ${SEAFILE_DB}
|
||||
else
|
||||
- echo "${seafile_path}/seafile-data/seafile.db does not exists."
|
||||
+ echo "${SEAFILE_UCI_DATA_DIR-$seafile_path}/seafile-data/seafile.db does not exists."
|
||||
read -p "Please provide your seafile.db path(e.g. /data/haiwen/seafile-data/seafile.db): " seafile_db_path
|
||||
if [ -f ${seafile_db_path} ];then
|
||||
echo "sqlite3 ${seafile_db_path} .dump | python sqlite2mysql.py > ${SEAFILE_DB}"
|
||||
@@ -74,11 +76,11 @@ sed 's/user_name TEXT/user_name VARCHAR(
|
||||
########## seahub
|
||||
rm -rf ${SEAHUB_DB}
|
||||
|
||||
-if [ -f "${seafile_path}/seahub.db" ]; then
|
||||
- echo "sqlite3 ${seafile_path}/seahub.db .dump | tr -d '\n' | sed 's/;/;\n/g' | python sqlite2mysql.py > ${SEAHUB_DB}"
|
||||
- sqlite3 ${seafile_path}/seahub.db .dump | tr -d '\n' | sed 's/;/;\n/g' | python sqlite2mysql.py > ${SEAHUB_DB}
|
||||
+if [ -f "${SEAFILE_UCI_DATA_DIR-$seafile_path}/seahub.db" ]; then
|
||||
+ echo "sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seahub.db .dump | tr -d '\n' | sed 's/;/;\n/g' | python sqlite2mysql.py > ${SEAHUB_DB}"
|
||||
+ sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seahub.db .dump | tr -d '\n' | sed 's/;/;\n/g' | python sqlite2mysql.py > ${SEAHUB_DB}
|
||||
else
|
||||
- echo "${seafile_path}/seahub.db does not exists."
|
||||
+ echo "${SEAFILE_UCI_DATA_DIR-$seafile_path}/seahub.db does not exists."
|
||||
read -p "Please prove your seahub.db path(e.g. /data/haiwen/seahub.db): " seahub_db_path
|
||||
if [ -f ${seahub_db_path} ]; then
|
||||
echo "sqlite3 ${seahub_db_path} .dump | tr -d '\n' | sed 's/;/;\n/g' | python sqlite2mysql.py > ${SEAHUB_DB}"
|
||||
--- a/scripts/upgrade/minor-upgrade.sh
|
||||
+++ b/scripts/upgrade/minor-upgrade.sh
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
+/etc/init.d/seafile-server generate_uci_conf && . /var/run/seafile/uci.conf
|
||||
+
|
||||
SCRIPT=$(readlink -f "$0") # haiwen/seafile-server-1.3.0/upgrade/upgrade_xx_xx.sh
|
||||
UPGRADE_DIR=$(dirname "$SCRIPT") # haiwen/seafile-server-1.3.0/upgrade/
|
||||
INSTALLPATH=$(dirname "$UPGRADE_DIR") # haiwen/seafile-server-1.3.0/
|
||||
@@ -15,11 +17,11 @@ read dummy
|
||||
|
||||
media_dir=${INSTALLPATH}/seahub/media
|
||||
orig_avatar_dir=${INSTALLPATH}/seahub/media/avatars
|
||||
-dest_avatar_dir=${TOPDIR}/seahub-data/avatars
|
||||
+dest_avatar_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data/avatars
|
||||
seafile_server_symlink=${TOPDIR}/seafile-server-latest
|
||||
-default_conf_dir=${TOPDIR}/conf
|
||||
-default_ccnet_conf_dir=${TOPDIR}/ccnet
|
||||
-seahub_data_dir=${TOPDIR}/seahub-data
|
||||
+default_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf
|
||||
+default_ccnet_conf_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/ccnet
|
||||
+seahub_data_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data
|
||||
elasticsearch_config_file=${seafile_server_symlink}/pro/elasticsearch/config/jvm.options
|
||||
|
||||
function migrate_avatars() {
|
||||
@@ -37,7 +39,7 @@ function migrate_avatars() {
|
||||
elif [[ ! -L ${orig_avatar_dir} ]]; then
|
||||
mv "${orig_avatar_dir}"/* "${dest_avatar_dir}" 2>/dev/null 1>&2
|
||||
rm -rf "${orig_avatar_dir}"
|
||||
- ln -s ../../../seahub-data/avatars "${media_dir}"
|
||||
+ ln -s ${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data/avatars "${media_dir}"
|
||||
fi
|
||||
echo
|
||||
echo "DONE"
|
||||
@@ -51,14 +53,14 @@ function make_media_custom_symlink() {
|
||||
return
|
||||
|
||||
elif [[ ! -e "${media_symlink}" ]]; then
|
||||
- ln -s ../../../seahub-data/custom "${media_symlink}"
|
||||
+ ln -s ${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data/custom "${media_symlink}"
|
||||
return
|
||||
|
||||
|
||||
elif [[ -d "${media_symlink}" ]]; then
|
||||
cp -rf "${media_symlink}" "${seahub_data_dir}/"
|
||||
rm -rf "${media_symlink}"
|
||||
- ln -s ../../../seahub-data/custom "${media_symlink}"
|
||||
+ ln -s ${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data/custom "${media_symlink}"
|
||||
fi
|
||||
|
||||
}
|
||||
--- a/server/seaf-server.c
|
||||
+++ b/server/seaf-server.c
|
||||
@@ -767,8 +767,12 @@ static void start_rpc_service (const cha
|
||||
"set_server_config_boolean",
|
||||
searpc_signature_int__string_string_int());
|
||||
|
||||
+ const char *socket_dir = g_getenv ("SEAFILE_UCI_SOCKET_DIR");
|
||||
+
|
||||
if (rpc_pipe_path) {
|
||||
pipe_path = g_build_path ("/", rpc_pipe_path, SEAFILE_RPC_PIPE_NAME, NULL);
|
||||
+ } else if (socket_dir) {
|
||||
+ pipe_path = g_build_path ("/", socket_dir, SEAFILE_RPC_PIPE_NAME, NULL);
|
||||
} else {
|
||||
pipe_path = g_build_path ("/", seafile_dir, SEAFILE_RPC_PIPE_NAME, NULL);
|
||||
}
|
||||
@@ -973,8 +977,14 @@ main (int argc, char **argv)
|
||||
|
||||
if (seafile_dir == NULL)
|
||||
seafile_dir = g_build_filename (ccnet_dir, "seafile", NULL);
|
||||
- if (logfile == NULL)
|
||||
- logfile = g_build_filename (seafile_dir, "seafile.log", NULL);
|
||||
+ if (logfile == NULL) {
|
||||
+ char *log_dir = g_strdup (g_getenv("SEAFILE_UCI_LOG_DIR"));
|
||||
+ if (!log_dir) {
|
||||
+ log_dir = g_strdup (seafile_dir);
|
||||
+ }
|
||||
+ logfile = g_build_filename (log_dir, "seafile.log", NULL);
|
||||
+ g_free (log_dir);
|
||||
+ }
|
||||
|
||||
if (seafile_log_init (logfile, "info", "debug") < 0) {
|
||||
seaf_warning ("Failed to init log.\n");
|
|
@ -1,73 +0,0 @@
|
|||
--- a/scripts/seaf-gc.sh
|
||||
+++ b/scripts/seaf-gc.sh
|
||||
@@ -63,8 +63,8 @@ function validate_already_running () {
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
- check_component_running "ccnet-server" "ccnet-server -c ${default_ccnet_conf_dir}"
|
||||
- check_component_running "seaf-server" "seaf-server -c ${default_ccnet_conf_dir}"
|
||||
+ check_component_running "ccnet-server" "ccnet-server -F ${default_conf_dir} -c ${default_ccnet_conf_dir}"
|
||||
+ check_component_running "seaf-server" "seaf-server -F ${default_conf_dir} -c ${default_ccnet_conf_dir}"
|
||||
check_component_running "fileserver" "fileserver -c ${default_ccnet_conf_dir}"
|
||||
check_component_running "seafdav" "wsgidav.server.server_cli"
|
||||
}
|
||||
--- a/scripts/seafile.sh
|
||||
+++ b/scripts/seafile.sh
|
||||
@@ -107,8 +107,8 @@ function validate_already_running () {
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
- check_component_running "ccnet-server" "ccnet-server -c ${default_ccnet_conf_dir}"
|
||||
- check_component_running "seaf-server" "seaf-server -c ${default_ccnet_conf_dir}"
|
||||
+ check_component_running "ccnet-server" "ccnet-server -F ${central_config_dir} -c ${default_ccnet_conf_dir}"
|
||||
+ check_component_running "seaf-server" "seaf-server -F ${central_config_dir} -c ${default_ccnet_conf_dir}"
|
||||
check_component_running "fileserver" "fileserver -c ${default_ccnet_conf_dir}"
|
||||
check_component_running "seafdav" "wsgidav.server.server_cli"
|
||||
}
|
||||
@@ -149,8 +149,8 @@ function stop_seafile_server () {
|
||||
|
||||
echo "Stopping seafile server ..."
|
||||
pkill -SIGTERM -f "seafile-controller -c ${default_ccnet_conf_dir}"
|
||||
- pkill -f "ccnet-server -c ${default_ccnet_conf_dir}"
|
||||
- pkill -f "seaf-server -c ${default_ccnet_conf_dir}"
|
||||
+ pkill -f "ccnet-server -F ${central_config_dir} -c ${default_ccnet_conf_dir}"
|
||||
+ pkill -f "seaf-server -F ${central_config_dir} -c ${default_ccnet_conf_dir}"
|
||||
pkill -f "fileserver -c ${default_ccnet_conf_dir}"
|
||||
pkill -f "soffice.*--invisible --nocrashreport"
|
||||
pkill -f "wsgidav.server.server_cli"
|
||||
--- a/scripts/seahub.sh
|
||||
+++ b/scripts/seahub.sh
|
||||
@@ -94,10 +94,10 @@ function validate_seafile_data_dir () {
|
||||
}
|
||||
|
||||
function validate_seahub_running () {
|
||||
- if pgrep -f "${manage_py}" 2>/dev/null 1>&2; then
|
||||
+ if pgrep -f "${manage_py} runfcgi" 2>/dev/null 1>&2; then
|
||||
echo "Seahub is already running."
|
||||
exit 1;
|
||||
- elif pgrep -f "seahub.wsgi:application" 2>/dev/null 1>&2; then
|
||||
+ elif pgrep -f "$gunicorn_exe seahub.wsgi:application -c ${gunicorn_conf}" 2>/dev/null 1>&2; then
|
||||
echo "Seahub is already running."
|
||||
exit 1;
|
||||
fi
|
||||
@@ -165,7 +165,7 @@ function start_seahub () {
|
||||
|
||||
# Ensure seahub is started successfully
|
||||
sleep 5
|
||||
- if ! pgrep -f "seahub.wsgi:application" 2>/dev/null 1>&2; then
|
||||
+ if ! pgrep -f "$gunicorn_exe seahub.wsgi:application -c ${gunicorn_conf}" 2>/dev/null 1>&2; then
|
||||
printf "\033[33mError:Seahub failed to start.\033[m\n"
|
||||
echo "Please try to run \"./seahub.sh start\" again"
|
||||
exit 1;
|
||||
@@ -235,9 +235,9 @@ function clear_sessions () {
|
||||
function stop_seahub () {
|
||||
if [[ -f ${pidfile} ]]; then
|
||||
echo "Stopping seahub ..."
|
||||
- pkill -9 -f "/usr/bin/gunicorn3"
|
||||
+ pkill -9 -f "$gunicorn_exe seahub.wsgi:application -c ${gunicorn_conf}"
|
||||
sleep 1
|
||||
- if pgrep -f "/usr/bin/gunicorn3" 2>/dev/null 1>&2 ; then
|
||||
+ if pgrep -f "$gunicorn_exe seahub.wsgi:application -c ${gunicorn_conf}" 2>/dev/null 1>&2 ; then
|
||||
echo 'Failed to stop seahub.'
|
||||
exit 1
|
||||
fi
|
|
@ -1,42 +0,0 @@
|
|||
--- a/scripts/reset-admin.sh
|
||||
+++ b/scripts/reset-admin.sh
|
||||
@@ -51,5 +51,5 @@ export SEAFILE_CONF_DIR=${default_seafil
|
||||
export SEAFILE_CENTRAL_CONF_DIR=${central_config_dir}
|
||||
export PYTHONPATH=${INSTALLPATH}/seafile/lib/python3.6/site-packages:${INSTALLPATH}/seafile/lib64/python3.6/site-packages:${INSTALLPATH}/seahub/thirdpart:$PYTHONPATH
|
||||
|
||||
-manage_py=${INSTALLPATH}/seahub/manage.py
|
||||
+manage_py=${INSTALLPATH}/seahub/manage.pyc
|
||||
exec "$PYTHON" "$manage_py" createsuperuser
|
||||
--- a/scripts/seahub.sh
|
||||
+++ b/scripts/seahub.sh
|
||||
@@ -22,7 +22,7 @@ default_seafile_data_dir=${SEAFILE_UCI_D
|
||||
central_config_dir=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf
|
||||
seafile_rpc_pipe_path=${SEAFILE_UCI_SOCKET_DIR-$INSTALLPATH/runtime}
|
||||
|
||||
-manage_py=${INSTALLPATH}/seahub/manage.py
|
||||
+manage_py=${INSTALLPATH}/seahub/manage.pyc
|
||||
gunicorn_conf=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf/gunicorn.conf.py
|
||||
pidfile=${SEAFILE_UCI_PID_DIR-$TOPDIR/pids}/seahub.pid
|
||||
errorlog=${SEAFILE_UCI_LOG_DIR-$TOPDIR/logs}/gunicorn_error.log
|
||||
--- a/scripts/setup-seafile-mysql.py
|
||||
+++ b/scripts/setup-seafile-mysql.py
|
||||
@@ -1083,7 +1083,7 @@ class SeahubConfigurator(AbstractConfigu
|
||||
fp.write('# -*- coding: utf-8 -*-')
|
||||
|
||||
def write_secret_key(self, fp):
|
||||
- script = os.path.join(env_mgr.install_path, 'seahub/tools/secret_key_generator.py')
|
||||
+ script = os.path.join(env_mgr.install_path, 'seahub/tools/secret_key_generator.pyc')
|
||||
cmd = [
|
||||
Utils.get_python_executable(),
|
||||
script,
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -519,7 +519,7 @@ gen_seafdav_conf;
|
||||
# generate seahub/settings.py
|
||||
# -------------------------------------------
|
||||
dest_settings_py=${SEAFILE_UCI_CONF_DIR-$TOPDIR}/conf/seahub_settings.py
|
||||
-seahub_secret_keygen=${INSTALLPATH}/seahub/tools/secret_key_generator.py
|
||||
+seahub_secret_keygen=${INSTALLPATH}/seahub/tools/secret_key_generator.pyc
|
||||
|
||||
if [[ ! -f ${dest_settings_py} ]]; then
|
||||
key=$($PYTHON "${seahub_secret_keygen}")
|
|
@ -1,180 +0,0 @@
|
|||
--- a/scripts/reset-admin.sh
|
||||
+++ b/scripts/reset-admin.sh
|
||||
@@ -37,7 +37,7 @@ function check_python_executable() {
|
||||
function validate_seafile_data_dir () {
|
||||
if [[ ! -d ${default_seafile_data_dir} ]]; then
|
||||
echo "Error: there is no seafile server data directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit 1;
|
||||
fi
|
||||
--- a/scripts/seaf-fsck.sh
|
||||
+++ b/scripts/seaf-fsck.sh
|
||||
@@ -25,7 +25,7 @@ function usage () {
|
||||
function validate_ccnet_conf_dir () {
|
||||
if [[ ! -d ${default_ccnet_conf_dir} ]]; then
|
||||
echo "Error: there is no ccnet config directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit -1;
|
||||
fi
|
||||
@@ -34,7 +34,7 @@ function validate_ccnet_conf_dir () {
|
||||
function validate_seafile_data_dir () {
|
||||
if [[ ! -d ${default_seafile_data_dir} ]]; then
|
||||
echo "Error: there is no seafile server data directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit 1;
|
||||
fi
|
||||
--- a/scripts/seaf-fuse.sh
|
||||
+++ b/scripts/seaf-fuse.sh
|
||||
@@ -41,7 +41,7 @@ fi
|
||||
function validate_ccnet_conf_dir () {
|
||||
if [[ ! -d ${default_ccnet_conf_dir} ]]; then
|
||||
echo "Error: there is no ccnet config directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit -1;
|
||||
fi
|
||||
@@ -50,7 +50,7 @@ function validate_ccnet_conf_dir () {
|
||||
function validate_seafile_data_dir () {
|
||||
if [[ ! -d ${default_seafile_data_dir} ]]; then
|
||||
echo "Error: there is no seafile server data directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit 1;
|
||||
fi
|
||||
@@ -67,7 +67,7 @@ function validate_already_running () {
|
||||
function warning_if_seafile_not_running () {
|
||||
if ! pgrep -f "seafile-controller -c ${default_ccnet_conf_dir}" 2>/dev/null 1>&2; then
|
||||
echo
|
||||
- echo "Warning: seafile-controller not running. Have you run \"./seafile.sh start\" ?"
|
||||
+ echo "Warning: seafile-controller not running. Have you run \"service seafile-server start\" ?"
|
||||
echo
|
||||
fi
|
||||
}
|
||||
--- a/scripts/seaf-gc.sh
|
||||
+++ b/scripts/seaf-gc.sh
|
||||
@@ -27,7 +27,7 @@ function usage () {
|
||||
function validate_ccnet_conf_dir () {
|
||||
if [[ ! -d ${default_ccnet_conf_dir} ]]; then
|
||||
echo "Error: there is no ccnet config directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit -1;
|
||||
fi
|
||||
@@ -36,7 +36,7 @@ function validate_ccnet_conf_dir () {
|
||||
function validate_seafile_data_dir () {
|
||||
if [[ ! -d ${default_seafile_data_dir} ]]; then
|
||||
echo "Error: there is no seafile server data directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit 1;
|
||||
fi
|
||||
@@ -58,7 +58,7 @@ function check_component_running() {
|
||||
|
||||
function validate_already_running () {
|
||||
if pid=$(pgrep -f "seafile-controller -c ${default_ccnet_conf_dir}" 2>/dev/null); then
|
||||
- echo "seafile server is still running, stop it by \"seafile.sh stop\""
|
||||
+ echo "seafile server is still running, stop it by \"service seafile-server stop\""
|
||||
echo
|
||||
exit 1;
|
||||
fi
|
||||
--- a/scripts/seafile.sh
|
||||
+++ b/scripts/seafile.sh
|
||||
@@ -53,7 +53,7 @@ function validate_running_user () {
|
||||
function validate_ccnet_conf_dir () {
|
||||
if [[ ! -d ${default_ccnet_conf_dir} ]]; then
|
||||
echo "Error: there is no ccnet config directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit -1;
|
||||
fi
|
||||
@@ -62,7 +62,7 @@ function validate_ccnet_conf_dir () {
|
||||
function validate_central_conf_dir () {
|
||||
if [[ ! -d ${central_config_dir} ]]; then
|
||||
echo "Error: there is no conf/ directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit -1;
|
||||
fi
|
||||
@@ -71,7 +71,7 @@ function validate_central_conf_dir () {
|
||||
function validate_seafile_data_dir () {
|
||||
if [[ ! -d ${default_seafile_data_dir} ]]; then
|
||||
echo "Error: there is no seafile server data directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit 1;
|
||||
fi
|
||||
--- a/scripts/seahub.sh
|
||||
+++ b/scripts/seahub.sh
|
||||
@@ -78,7 +78,7 @@ function check_python_executable() {
|
||||
function validate_ccnet_conf_dir () {
|
||||
if [[ ! -d ${default_ccnet_conf_dir} ]]; then
|
||||
echo "Error: there is no ccnet config directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit -1;
|
||||
fi
|
||||
@@ -87,7 +87,7 @@ function validate_ccnet_conf_dir () {
|
||||
function validate_seafile_data_dir () {
|
||||
if [[ ! -d ${default_seafile_data_dir} ]]; then
|
||||
echo "Error: there is no seafile server data directory."
|
||||
- echo "Have you run setup-seafile.sh before this?"
|
||||
+ echo "Have you run setup-seafile before this?"
|
||||
echo ""
|
||||
exit 1;
|
||||
fi
|
||||
@@ -133,7 +133,7 @@ fi
|
||||
function warning_if_seafile_not_running () {
|
||||
if ! pgrep -f "seafile-controller -c ${default_ccnet_conf_dir}" 2>/dev/null 1>&2; then
|
||||
echo
|
||||
- echo "Warning: seafile-controller not running. Have you run \"./seafile.sh start\" ?"
|
||||
+ echo "Warning: seafile-controller not running. Have you run \"service seafile-server start\" ?"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
@@ -167,7 +167,7 @@ function start_seahub () {
|
||||
sleep 5
|
||||
if ! pgrep -f "$gunicorn_exe seahub.wsgi:application -c ${gunicorn_conf}" 2>/dev/null 1>&2; then
|
||||
printf "\033[33mError:Seahub failed to start.\033[m\n"
|
||||
- echo "Please try to run \"./seahub.sh start\" again"
|
||||
+ echo "Please try to run \"service seafile-server start\" again"
|
||||
exit 1;
|
||||
fi
|
||||
echo
|
||||
--- a/scripts/setup-seafile-mysql.py
|
||||
+++ b/scripts/setup-seafile-mysql.py
|
||||
@@ -1557,8 +1557,7 @@ def report_success():
|
||||
Your seafile server configuration has been finished successfully.
|
||||
-----------------------------------------------------------------
|
||||
|
||||
-run seafile server: ./seafile.sh { start | stop | restart }
|
||||
-run seahub server: ./seahub.sh { start <port> | stop | restart <port> }
|
||||
+run seafile server: service seafile-server { start | stop | restart }
|
||||
|
||||
-----------------------------------------------------------------
|
||||
If you are behind a firewall, remember to allow input/output of these tcp ports:
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -718,8 +718,7 @@ echo "----------------------------------
|
||||
echo "Your seafile server configuration has been completed successfully."
|
||||
echo "-----------------------------------------------------------------"
|
||||
echo
|
||||
-echo "run seafile server: ./seafile.sh { start | stop | restart }"
|
||||
-echo "run seahub server: ./seahub.sh { start <port> | stop | restart <port> }"
|
||||
+echo "run seafile server: service seafile-server { start | stop | restart }"
|
||||
echo
|
||||
echo "-----------------------------------------------------------------"
|
||||
echo "If the server is behind a firewall, remember to open these tcp ports:"
|
|
@ -1,11 +0,0 @@
|
|||
--- a/controller/seafile-controller.c
|
||||
+++ b/controller/seafile-controller.c
|
||||
@@ -516,7 +516,7 @@ init_pidfile_path (SeafileController *ct
|
||||
pid_dir = g_build_filename (topdir, "pids", NULL);
|
||||
}
|
||||
if (!g_file_test(pid_dir, G_FILE_TEST_EXISTS)) {
|
||||
- if (g_mkdir(pid_dir, 0777) < 0) {
|
||||
+ if (g_mkdir(pid_dir, 0755) < 0) {
|
||||
seaf_warning("failed to create pid dir %s: %s", pid_dir, strerror(errno));
|
||||
controller_exit(1);
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
--- a/scripts/sqlite2mysql.sh
|
||||
+++ b/scripts/sqlite2mysql.sh
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/bin/sh
|
||||
+#!/bin/bash
|
||||
#
|
||||
# This shell script and corresponding sqlite2mysql.py are used to
|
||||
# migrate Seafile data from SQLite to MySQL.
|
||||
@@ -38,10 +38,10 @@ fi
|
||||
|
||||
rm -rf ${CCNET_DB}
|
||||
|
||||
-echo "sqlite3 ${USER_MGR_DB} .dump | python sqlite2mysql.py > ${CCNET_DB}"
|
||||
-sqlite3 ${USER_MGR_DB} .dump | python sqlite2mysql.py > ${CCNET_DB}
|
||||
-echo "sqlite3 ${GRP_MGR_DB} .dump | python sqlite2mysql.py >> ${CCNET_DB}"
|
||||
-sqlite3 ${GRP_MGR_DB} .dump | python sqlite2mysql.py >> ${CCNET_DB}
|
||||
+echo "sqlite3 ${USER_MGR_DB} .dump | python3 sqlite2mysql.py > ${CCNET_DB}"
|
||||
+sqlite3 ${USER_MGR_DB} .dump | python3 sqlite2mysql.py > ${CCNET_DB}
|
||||
+echo "sqlite3 ${GRP_MGR_DB} .dump | python3 sqlite2mysql.py >> ${CCNET_DB}"
|
||||
+sqlite3 ${GRP_MGR_DB} .dump | python3 sqlite2mysql.py >> ${CCNET_DB}
|
||||
|
||||
# change ctime from INTEGER to BIGINT in EmailUser table
|
||||
sed 's/ctime INTEGER/ctime BIGINT/g' ${CCNET_DB} > ${CCNET_DB}.tmp && mv ${CCNET_DB}.tmp ${CCNET_DB}
|
||||
@@ -53,14 +53,14 @@ sed 's/email TEXT, role TEXT/email VARCH
|
||||
rm -rf ${SEAFILE_DB}
|
||||
|
||||
if [ -f "${SEAFILE_UCI_DATA_DIR-$seafile_path}/seafile-data/seafile.db" ]; then
|
||||
- echo "sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seafile-data/seafile.db .dump | python sqlite2mysql.py > ${SEAFILE_DB}"
|
||||
- sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seafile-data/seafile.db .dump | python sqlite2mysql.py > ${SEAFILE_DB}
|
||||
+ echo "sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seafile-data/seafile.db .dump | python3 sqlite2mysql.py > ${SEAFILE_DB}"
|
||||
+ sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seafile-data/seafile.db .dump | python3 sqlite2mysql.py > ${SEAFILE_DB}
|
||||
else
|
||||
echo "${SEAFILE_UCI_DATA_DIR-$seafile_path}/seafile-data/seafile.db does not exists."
|
||||
read -p "Please provide your seafile.db path(e.g. /data/haiwen/seafile-data/seafile.db): " seafile_db_path
|
||||
if [ -f ${seafile_db_path} ];then
|
||||
- echo "sqlite3 ${seafile_db_path} .dump | python sqlite2mysql.py > ${SEAFILE_DB}"
|
||||
- sqlite3 ${seafile_db_path} .dump | python sqlite2mysql.py > ${SEAFILE_DB}
|
||||
+ echo "sqlite3 ${seafile_db_path} .dump | python3 sqlite2mysql.py > ${SEAFILE_DB}"
|
||||
+ sqlite3 ${seafile_db_path} .dump | python3 sqlite2mysql.py > ${SEAFILE_DB}
|
||||
else
|
||||
echo "${seafile_db_path} does not exists, quit."
|
||||
exit 1
|
||||
@@ -77,14 +77,14 @@ sed 's/user_name TEXT/user_name VARCHAR(
|
||||
rm -rf ${SEAHUB_DB}
|
||||
|
||||
if [ -f "${SEAFILE_UCI_DATA_DIR-$seafile_path}/seahub.db" ]; then
|
||||
- echo "sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seahub.db .dump | tr -d '\n' | sed 's/;/;\n/g' | python sqlite2mysql.py > ${SEAHUB_DB}"
|
||||
- sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seahub.db .dump | tr -d '\n' | sed 's/;/;\n/g' | python sqlite2mysql.py > ${SEAHUB_DB}
|
||||
+ echo "sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seahub.db .dump | tr -d '\n' | sed 's/;/;\n/g' | python3 sqlite2mysql.py > ${SEAHUB_DB}"
|
||||
+ sqlite3 ${SEAFILE_UCI_DATA_DIR-$seafile_path}/seahub.db .dump | tr -d '\n' | sed 's/;/;\n/g' | python3 sqlite2mysql.py > ${SEAHUB_DB}
|
||||
else
|
||||
echo "${SEAFILE_UCI_DATA_DIR-$seafile_path}/seahub.db does not exists."
|
||||
read -p "Please prove your seahub.db path(e.g. /data/haiwen/seahub.db): " seahub_db_path
|
||||
if [ -f ${seahub_db_path} ]; then
|
||||
- echo "sqlite3 ${seahub_db_path} .dump | tr -d '\n' | sed 's/;/;\n/g' | python sqlite2mysql.py > ${SEAHUB_DB}"
|
||||
- sqlite3 ${seahub_db_path} .dump | tr -d '\n' | sed 's/;/;\n/g' | python sqlite2mysql.py > ${SEAHUB_DB}
|
||||
+ echo "sqlite3 ${seahub_db_path} .dump | tr -d '\n' | sed 's/;/;\n/g' | python3 sqlite2mysql.py > ${SEAHUB_DB}"
|
||||
+ sqlite3 ${seahub_db_path} .dump | tr -d '\n' | sed 's/;/;\n/g' | python3 sqlite2mysql.py > ${SEAHUB_DB}
|
||||
else
|
||||
echo "${seahub_db_path} does not exists, quit."
|
||||
exit 1
|
|
@ -1,15 +0,0 @@
|
|||
--- a/scripts/seafile.sh
|
||||
+++ b/scripts/seafile.sh
|
||||
@@ -42,10 +42,9 @@ fi
|
||||
function validate_running_user () {
|
||||
real_data_dir=`readlink -f ${default_seafile_data_dir}`
|
||||
running_user=`id -un`
|
||||
- data_dir_owner=`stat -c %U ${real_data_dir}`
|
||||
|
||||
- if [[ "${running_user}" != "${data_dir_owner}" ]]; then
|
||||
- echo "Error: the user running the script (\"${running_user}\") is not the owner of \"${real_data_dir}\" folder, you should use the user \"${data_dir_owner}\" to run the script."
|
||||
+ if [[ -z "$(find "${real_data_dir}" -user "${running_user}" -maxdepth 0)" ]]; then
|
||||
+ echo "Error: the user running the script (\"${running_user}\") is not the owner of \"${real_data_dir}\" folder, you should use the owner of \"${real_data_dir}\" to run the script."
|
||||
exit -1;
|
||||
fi
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
--- a/scripts/check_init_admin.py
|
||||
+++ b/scripts/check_init_admin.py
|
||||
@@ -310,7 +310,7 @@ def create_admin(email, passwd):
|
||||
def ask_admin_email():
|
||||
print()
|
||||
print('----------------------------------------')
|
||||
- print('It\'s the first time you start the seafile server. Now let\'s create the admin account')
|
||||
+ print('Let\'s create the admin account')
|
||||
print('----------------------------------------')
|
||||
def validate(email):
|
||||
# whitespace is not allowed
|
||||
@@ -350,8 +350,15 @@ def ask_admin_password():
|
||||
|
||||
rpc = RPC()
|
||||
|
||||
-def main():
|
||||
+def main(argv):
|
||||
+ if len(argv) > 1 and argv[1] == 'has-admin':
|
||||
+ sys.exit(1 if need_create_admin() else 0)
|
||||
+
|
||||
if not need_create_admin():
|
||||
+ print('')
|
||||
+ print('A seafile admin account already exists.')
|
||||
+ print('Log into seahub to add additional accounts.')
|
||||
+ print('If you cannot log in, run reset-seafile-admin to add a new admin account.')
|
||||
return
|
||||
|
||||
password_file = os.path.join(os.environ['SEAFILE_CENTRAL_CONF_DIR'], 'admin.txt')
|
||||
@@ -369,7 +376,7 @@ def main():
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
- main()
|
||||
+ main(sys.argv)
|
||||
except KeyboardInterrupt:
|
||||
print('\n\n\n')
|
||||
print(Utils.highlight('Aborted.'))
|
||||
@@ -379,3 +386,4 @@ if __name__ == '__main__':
|
||||
print()
|
||||
print(Utils.highlight('Error happened during creating seafile admin.'))
|
||||
print()
|
||||
+ sys.exit(1)
|
||||
--- a/scripts/seahub.sh
|
||||
+++ b/scripts/seahub.sh
|
||||
@@ -250,7 +250,10 @@ function stop_seahub () {
|
||||
|
||||
function check_init_admin() {
|
||||
check_init_admin_script=${INSTALLPATH}/check_init_admin.py
|
||||
- if ! $PYTHON $check_init_admin_script; then
|
||||
+ if ! $PYTHON $check_init_admin_script has-admin; then
|
||||
+ echo "Error: there is no seafile admin account."
|
||||
+ echo "Have you run create-seafile-admin before this?"
|
||||
+ echo ""
|
||||
exit 1
|
||||
fi
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
--- a/fuse/seaf-fuse.c
|
||||
+++ b/fuse/seaf-fuse.c
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
#define FUSE_USE_VERSION 26
|
||||
#include <fuse.h>
|
||||
-#include <fuse_opt.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
|
@ -1,22 +0,0 @@
|
|||
--- a/scripts/setup-seafile-mysql.py
|
||||
+++ b/scripts/setup-seafile-mysql.py
|
||||
@@ -316,9 +316,6 @@ class EnvManager(object):
|
||||
os.path.join(self.install_path, 'runtime'),
|
||||
]
|
||||
|
||||
- for path in paths:
|
||||
- error_if_not_exists(path)
|
||||
-
|
||||
if os.path.exists(ccnet_config.ccnet_dir):
|
||||
Utils.error('Ccnet config dir \"%s\" already exists.' % ccnet_config.ccnet_dir)
|
||||
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -415,7 +415,6 @@ if [[ $# -ge 1 && "$1" == "auto" ]]; the
|
||||
need_pause=0
|
||||
fi
|
||||
|
||||
-check_sanity;
|
||||
if [[ "${need_pause}" == "1" ]]; then
|
||||
welcome;
|
||||
fi
|
|
@ -1,27 +0,0 @@
|
|||
--- a/scripts/setup-seafile-mysql.py
|
||||
+++ b/scripts/setup-seafile-mysql.py
|
||||
@@ -1101,6 +1101,10 @@ class SeahubConfigurator(AbstractConfigu
|
||||
}
|
||||
}
|
||||
|
||||
+# Custom settings for OpenWrt
|
||||
+USE_I18N = False
|
||||
+USER_PASSWORD_MIN_LENGTH = 8
|
||||
+USER_STRONG_PASSWORD_REQUIRED = True
|
||||
'''
|
||||
text = template % dict(name=db_config.seahub_db_name,
|
||||
username=db_config.seafile_mysql_user,
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -525,6 +525,11 @@ if [[ ! -f ${dest_settings_py} ]]; then
|
||||
cat > ${dest_settings_py} <<EOF
|
||||
# -*- coding: utf-8 -*-
|
||||
SECRET_KEY = "$key"
|
||||
+
|
||||
+# Custom settings for OpenWrt
|
||||
+USE_I18N = False
|
||||
+USER_PASSWORD_MIN_LENGTH = 8
|
||||
+USER_STRONG_PASSWORD_REQUIRED = True
|
||||
EOF
|
||||
fi
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
--- a/scripts/setup-seafile-mysql.py
|
||||
+++ b/scripts/setup-seafile-mysql.py
|
||||
@@ -1543,7 +1543,6 @@ def main():
|
||||
seahub_config.do_syncdb()
|
||||
seahub_config.prepare_avatar_dir()
|
||||
# db_config.create_seahub_admin()
|
||||
- user_manuals_handler.copy_user_manuals()
|
||||
create_seafile_server_symlink()
|
||||
|
||||
set_file_perm()
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -709,7 +709,6 @@ chmod 0700 "$default_conf_dir"
|
||||
# -------------------------------------------
|
||||
# copy user manuals to library template
|
||||
# -------------------------------------------
|
||||
-copy_user_manuals;
|
||||
|
||||
# -------------------------------------------
|
||||
# final message
|
|
@ -1,40 +0,0 @@
|
|||
--- a/scripts/setup-seafile-mysql.py
|
||||
+++ b/scripts/setup-seafile-mysql.py
|
||||
@@ -1543,7 +1543,6 @@ def main():
|
||||
seahub_config.do_syncdb()
|
||||
seahub_config.prepare_avatar_dir()
|
||||
# db_config.create_seahub_admin()
|
||||
- create_seafile_server_symlink()
|
||||
|
||||
set_file_perm()
|
||||
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -689,17 +689,6 @@ fi
|
||||
# /data/haiwen/
|
||||
# -- seafile-server-2.0.4
|
||||
# -- seafile-server-latest # symlink to 2.0.4
|
||||
-seafile_server_symlink=${TOPDIR}/seafile-server-latest
|
||||
-echo
|
||||
-echo -n "creating seafile-server-latest symbolic link ... "
|
||||
-if ! ln -s $(basename ${INSTALLPATH}) ${seafile_server_symlink}; then
|
||||
- echo
|
||||
- echo
|
||||
- echo "Failed to create symbolic link ${seafile_server_symlink}"
|
||||
- err_and_quit;
|
||||
-fi
|
||||
-echo "done"
|
||||
-echo
|
||||
|
||||
chmod 0600 "$dest_settings_py"
|
||||
chmod 0700 "$default_ccnet_conf_dir"
|
||||
--- a/scripts/upgrade/minor-upgrade.sh
|
||||
+++ b/scripts/upgrade/minor-upgrade.sh
|
||||
@@ -162,7 +162,6 @@ make_media_custom_symlink;
|
||||
|
||||
move_old_elasticsearch_config_to_latest;
|
||||
|
||||
-update_latest_symlink;
|
||||
|
||||
|
||||
echo "DONE"
|
|
@ -1,32 +0,0 @@
|
|||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -418,9 +418,9 @@ fi
|
||||
if [[ "${need_pause}" == "1" ]]; then
|
||||
welcome;
|
||||
fi
|
||||
-sleep .5
|
||||
+sleep 1
|
||||
check_system_dependency;
|
||||
-sleep .5
|
||||
+sleep 1
|
||||
|
||||
check_existing_ccnet;
|
||||
check_existing_seafile;
|
||||
@@ -438,7 +438,7 @@ if [[ "$fileserver_port" == "" ]]; then
|
||||
fi
|
||||
|
||||
|
||||
-sleep .5
|
||||
+sleep 1
|
||||
|
||||
printf "\nThis is your config information:\n\n"
|
||||
|
||||
@@ -475,7 +475,7 @@ fi
|
||||
echo
|
||||
|
||||
|
||||
-sleep 0.5
|
||||
+sleep 1
|
||||
|
||||
# -------------------------------------------
|
||||
# Create seafile conf
|
|
@ -1,39 +0,0 @@
|
|||
--- a/scripts/setup-seafile-mysql.py
|
||||
+++ b/scripts/setup-seafile-mysql.py
|
||||
@@ -1203,7 +1203,7 @@ USER_STRONG_PASSWORD_REQUIRED = True
|
||||
|
||||
try:
|
||||
media_dir = os.path.join(env_mgr.install_path, 'seahub', 'media')
|
||||
- orig_avatar_dir = os.path.join(media_dir, 'avatars')
|
||||
+ orig_avatar_dir = os.path.join(media_dir, 'avatars_default')
|
||||
|
||||
seahub_data_dir = os.path.join(os.environ.get('SEAFILE_UCI_DATA_DIR', env_mgr.top_dir), 'seahub-data')
|
||||
dest_avatar_dir = os.path.join(seahub_data_dir, 'avatars')
|
||||
@@ -1214,8 +1214,8 @@ USER_STRONG_PASSWORD_REQUIRED = True
|
||||
if not os.path.exists(seahub_data_dir):
|
||||
os.mkdir(seahub_data_dir)
|
||||
|
||||
- shutil.move(orig_avatar_dir, dest_avatar_dir)
|
||||
- os.symlink(dest_avatar_dir, orig_avatar_dir)
|
||||
+ shutil.copytree(orig_avatar_dir, dest_avatar_dir)
|
||||
+ os.symlink(dest_avatar_dir, os.path.join(media_dir, 'avatars'))
|
||||
except Exception as e:
|
||||
Utils.error('Failed to prepare seahub avatars dir: %s' % e)
|
||||
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -676,12 +676,12 @@ echo "Done."
|
||||
# prepare avatar folder
|
||||
|
||||
media_dir=${INSTALLPATH}/seahub/media
|
||||
-orig_avatar_dir=${INSTALLPATH}/seahub/media/avatars
|
||||
+orig_avatar_dir=${INSTALLPATH}/seahub/media/avatars_default
|
||||
dest_avatar_dir=${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data/avatars
|
||||
|
||||
if [[ ! -d ${dest_avatar_dir} ]]; then
|
||||
mkdir -p "${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data"
|
||||
- mv "${orig_avatar_dir}" "${dest_avatar_dir}"
|
||||
+ cp -pr "${orig_avatar_dir}" "${dest_avatar_dir}"
|
||||
ln -s ${SEAFILE_UCI_DATA_DIR-$TOPDIR}/seahub-data/avatars ${media_dir}
|
||||
fi
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
--- a/scripts/setup-seafile-mysql.py
|
||||
+++ b/scripts/setup-seafile-mysql.py
|
||||
@@ -1556,6 +1556,9 @@ def report_success():
|
||||
Your seafile server configuration has been finished successfully.
|
||||
-----------------------------------------------------------------
|
||||
|
||||
+You will need to create an admin account before starting seafile server.
|
||||
+
|
||||
+create admin account: create-seafile-admin
|
||||
run seafile server: service seafile-server { start | stop | restart }
|
||||
|
||||
-----------------------------------------------------------------
|
||||
--- a/scripts/setup-seafile.sh
|
||||
+++ b/scripts/setup-seafile.sh
|
||||
@@ -710,6 +710,9 @@ echo "----------------------------------
|
||||
echo "Your seafile server configuration has been completed successfully."
|
||||
echo "-----------------------------------------------------------------"
|
||||
echo
|
||||
+echo "You will need to create an admin account before starting seafile server."
|
||||
+echo
|
||||
+echo "create admin account: create-seafile-admin"
|
||||
echo "run seafile server: service seafile-server { start | stop | restart }"
|
||||
echo
|
||||
echo "-----------------------------------------------------------------"
|
|
@ -1,24 +0,0 @@
|
|||
--- a/lib/Makefile.am
|
||||
+++ b/lib/Makefile.am
|
||||
@@ -1,3 +1,5 @@
|
||||
+include $(TOPDIR)/rules.mk
|
||||
+
|
||||
pcfiles = libseafile.pc
|
||||
pkgconfig_DATA = $(pcfiles)
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
@@ -56,7 +58,7 @@ rpc_table.stamp: ${top_srcdir}/lib/rpc_t
|
||||
@rm -f rpc_table.tmp
|
||||
@touch rpc_table.tmp
|
||||
@echo "[libsearpc]: generating rpc header files"
|
||||
- @PYTHON@ `which searpc-codegen.py` ${top_srcdir}/lib/rpc_table.py
|
||||
+ @PYTHON@ "$(STAGING_DIR)/usr/bin/searpc-codegen.py" ${top_srcdir}/lib/rpc_table.py
|
||||
@echo "[libsearpc]: done"
|
||||
@mv -f rpc_table.tmp $@
|
||||
|
||||
@@ -82,5 +84,5 @@ install-data-local:
|
||||
if MACOS
|
||||
sed -i '' -e "s|(DESTDIR)|${DESTDIR}|g" $(pcfiles)
|
||||
else
|
||||
- ${SED} -i "s|(DESTDIR)|${DESTDIR}|g" $(pcfiles)
|
||||
+ ${SED} "s|(DESTDIR)|${DESTDIR}|g" $(pcfiles)
|
||||
endif
|
|
@ -1,20 +0,0 @@
|
|||
--- a/lib/repo.vala
|
||||
+++ b/lib/repo.vala
|
||||
@@ -70,7 +70,7 @@ public class Repo : Object {
|
||||
get { return _relay_id; }
|
||||
set { _relay_id = value; }
|
||||
}
|
||||
- public int last_sync_time { get; set; }
|
||||
+ public int64 last_sync_time { get; set; }
|
||||
public bool auto_sync { get; set; }
|
||||
public bool worktree_invalid { get; set; }
|
||||
|
||||
@@ -164,7 +164,7 @@ public class DeletedEntry : Object {
|
||||
public string obj_name { get; set; }
|
||||
public string basedir { get; set; }
|
||||
public int mode { get; set; }
|
||||
- public int delete_time { get; set; }
|
||||
+ public int64 delete_time { get; set; }
|
||||
public int64 file_size { get; set; }
|
||||
public string scan_stat { get; set; }
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
Author: David Barbion <davidb@230ruedubac.fr>
|
||||
Description: Use shared object for libevhtp
|
||||
Forwarded: https://github.com/haiwen/seafile-server/pull/12
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -224,6 +224,10 @@ PKG_CHECK_MODULES(LIBEVENT, [libevent_op
|
||||
AC_SUBST(LIBEVENT_CFLAGS)
|
||||
AC_SUBST(LIBEVENT_LIBS)
|
||||
|
||||
+PKG_CHECK_MODULES(LIBEVHTP, [evhtp])
|
||||
+AC_SUBST(LIBEVHTP_CFLAGS)
|
||||
+AC_SUBST(LIBEVHTP_LIBS)
|
||||
+
|
||||
PKG_CHECK_MODULES(ZLIB, [zlib >= $ZLIB_REQUIRED])
|
||||
AC_SUBST(ZLIB_CFLAGS)
|
||||
AC_SUBST(ZLIB_LIBS)
|
||||
--- a/server/Makefile.am
|
||||
+++ b/server/Makefile.am
|
||||
@@ -13,6 +13,7 @@ AM_CFLAGS = -DPKGDATADIR=\"$(pkgdatadir)
|
||||
@GLIB2_CFLAGS@ \
|
||||
@MSVC_CFLAGS@ \
|
||||
@LIBARCHIVE_CFLAGS@ \
|
||||
+ @LIBEVHTP_CFLAGS@ \
|
||||
@MYSQL_CFLAGS@ \
|
||||
-Wall
|
||||
|
||||
@@ -73,7 +74,7 @@ seaf_server_SOURCES = \
|
||||
|
||||
seaf_server_LDADD = @CCNET_LIBS@ \
|
||||
$(top_builddir)/lib/libseafile_common.la \
|
||||
- @GLIB2_LIBS@ @GOBJECT_LIBS@ @SSL_LIBS@ @LIB_RT@ @LIB_UUID@ -lsqlite3 @LIBEVENT_LIBS@ -levhtp \
|
||||
+ -lonig @GLIB2_LIBS@ @GOBJECT_LIBS@ @SSL_LIBS@ @LIB_RT@ @LIB_UUID@ -lsqlite3 @LIBEVENT_LIBS@ @LIBEVHTP_LIBS@ \
|
||||
$(top_builddir)/common/cdc/libcdc.la \
|
||||
@SEARPC_LIBS@ @JANSSON_LIBS@ ${LIB_WS32} @ZLIB_LIBS@ \
|
||||
@LIBARCHIVE_LIBS@ @LIB_ICONV@ \
|
|
@ -1,65 +0,0 @@
|
|||
Author: Alexandre Rossi <alexandre.rossi@gmail.com>
|
||||
Description: Fix download stalling on recent libevhtp
|
||||
A while ago[1], evhtp_request_pause() behavior changed: it now disables
|
||||
both read and write events. seafile-server would then stall.
|
||||
.
|
||||
[1] https://github.com/criticalstack/libevhtp/commit/6cd89466fd6bd76c5b8624be65af5893afe3e40c
|
||||
[2] https://github.com/haiwen/seafile/issues/1119
|
||||
Forwarded: no
|
||||
|
||||
--- a/server/access-file.c
|
||||
+++ b/server/access-file.c
|
||||
@@ -665,7 +665,7 @@ do_file(evhtp_request_t *req, SeafRepo *
|
||||
/* Block any new request from this connection before finish
|
||||
* handling this request.
|
||||
*/
|
||||
- evhtp_request_pause (req);
|
||||
+ bufferevent_disable(bev, EV_READ);
|
||||
|
||||
/* Kick start data transfer by sending out http headers. */
|
||||
evhtp_send_reply_start(req, EVHTP_RES_OK);
|
||||
@@ -1030,7 +1030,7 @@ do_file_range (evhtp_request_t *req, Sea
|
||||
/* Block any new request from this connection before finish
|
||||
* handling this request.
|
||||
*/
|
||||
- evhtp_request_pause (req);
|
||||
+ bufferevent_disable(bev, EV_READ);
|
||||
|
||||
/* Kick start data transfer by sending out http headers. */
|
||||
evhtp_send_reply_start(req, EVHTP_RES_PARTIAL);
|
||||
@@ -1100,7 +1100,7 @@ start_download_zip_file (evhtp_request_t
|
||||
/* Block any new request from this connection before finish
|
||||
* handling this request.
|
||||
*/
|
||||
- evhtp_request_pause (req);
|
||||
+ bufferevent_disable(bev, EV_READ);
|
||||
|
||||
/* Kick start data transfer by sending out http headers. */
|
||||
evhtp_send_reply_start(req, EVHTP_RES_OK);
|
||||
@@ -1444,7 +1444,7 @@ do_block(evhtp_request_t *req, SeafRepo
|
||||
/* Block any new request from this connection before finish
|
||||
* handling this request.
|
||||
*/
|
||||
- evhtp_request_pause (req);
|
||||
+ bufferevent_disable(bev, EV_READ);
|
||||
|
||||
/* Kick start data transfer by sending out http headers. */
|
||||
evhtp_send_reply_start(req, EVHTP_RES_OK);
|
||||
--- a/server/upload-file.c
|
||||
+++ b/server/upload-file.c
|
||||
@@ -2196,6 +2196,7 @@ out:
|
||||
if (res != EVHTP_RES_OK) {
|
||||
/* Don't receive any data before the connection is closed. */
|
||||
//evhtp_request_pause (req);
|
||||
+ // or for later evhtp bufferevent_disable(evhtp_request_get_bev(req), EV_READ);
|
||||
|
||||
/* Set keepalive to 0. This will cause evhtp to close the
|
||||
* connection after sending the reply.
|
||||
@@ -2513,6 +2514,7 @@ upload_headers_cb (evhtp_request_t *req,
|
||||
err:
|
||||
/* Don't receive any data before the connection is closed. */
|
||||
//evhtp_request_pause (req);
|
||||
+ // or for later evhtp bufferevent_disable(evhtp_request_get_bev(req), EV_READ);
|
||||
|
||||
/* Set keepalive to 0. This will cause evhtp to close the
|
||||
* connection after sending the reply.
|
|
@ -1,75 +0,0 @@
|
|||
Author: Alexandre Rossi <alexandre.rossi@gmail.com>
|
||||
Description: Take into account libevhtp API changes
|
||||
Forwarded: no
|
||||
|
||||
--- a/server/upload-file.c
|
||||
+++ b/server/upload-file.c
|
||||
@@ -2201,7 +2201,7 @@ out:
|
||||
/* Set keepalive to 0. This will cause evhtp to close the
|
||||
* connection after sending the reply.
|
||||
*/
|
||||
- req->keepalive = 0;
|
||||
+ req->flags &= ~EVHTP_REQ_FLAG_KEEPALIVE;
|
||||
|
||||
fsm->state = RECV_ERROR;
|
||||
}
|
||||
@@ -2502,8 +2502,8 @@ upload_headers_cb (evhtp_request_t *req,
|
||||
}
|
||||
|
||||
/* Set up per-request hooks, so that we can read file data piece by piece. */
|
||||
- evhtp_set_hook (&req->hooks, evhtp_hook_on_read, upload_read_cb, fsm);
|
||||
- evhtp_set_hook (&req->hooks, evhtp_hook_on_request_fini, upload_finish_cb, fsm);
|
||||
+ evhtp_request_set_hook (req, evhtp_hook_on_read, upload_read_cb, fsm);
|
||||
+ evhtp_request_set_hook (req, evhtp_hook_on_request_fini, upload_finish_cb, fsm);
|
||||
/* Set arg for upload_cb or update_cb. */
|
||||
req->cbarg = fsm;
|
||||
|
||||
@@ -2519,7 +2519,7 @@ err:
|
||||
/* Set keepalive to 0. This will cause evhtp to close the
|
||||
* connection after sending the reply.
|
||||
*/
|
||||
- req->keepalive = 0;
|
||||
+ req->flags &= ~EVHTP_REQ_FLAG_KEEPALIVE;
|
||||
send_error_reply (req, EVHTP_RES_BADREQ, err_msg);
|
||||
|
||||
g_free (repo_id);
|
||||
@@ -2620,32 +2620,32 @@ upload_file_init (evhtp_t *htp, const ch
|
||||
g_free (cluster_shared_dir);
|
||||
|
||||
cb = evhtp_set_regex_cb (htp, "^/upload-api/.*", upload_api_cb, NULL);
|
||||
- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
+ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
|
||||
cb = evhtp_set_regex_cb (htp, "^/upload-raw-blks-api/.*",
|
||||
upload_raw_blks_api_cb, NULL);
|
||||
- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
+ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
|
||||
cb = evhtp_set_regex_cb (htp, "^/upload-blks-api/.*", upload_blks_api_cb, NULL);
|
||||
- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
+ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
|
||||
/* cb = evhtp_set_regex_cb (htp, "^/upload-blks-aj/.*", upload_blks_ajax_cb, NULL); */
|
||||
/* evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); */
|
||||
|
||||
cb = evhtp_set_regex_cb (htp, "^/upload-aj/.*", upload_ajax_cb, NULL);
|
||||
- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
+ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
|
||||
cb = evhtp_set_regex_cb (htp, "^/update-api/.*", update_api_cb, NULL);
|
||||
- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
+ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
|
||||
cb = evhtp_set_regex_cb (htp, "^/update-blks-api/.*", update_blks_api_cb, NULL);
|
||||
- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
+ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
|
||||
/* cb = evhtp_set_regex_cb (htp, "^/update-blks-aj/.*", update_blks_ajax_cb, NULL); */
|
||||
/* evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL); */
|
||||
|
||||
cb = evhtp_set_regex_cb (htp, "^/update-aj/.*", update_ajax_cb, NULL);
|
||||
- evhtp_set_hook(&cb->hooks, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
+ evhtp_callback_set_hook(cb, evhtp_hook_on_headers, upload_headers_cb, NULL);
|
||||
|
||||
evhtp_set_regex_cb (htp, "^/upload_progress.*", upload_progress_cb, NULL);
|
||||
|
Loading…
Reference in a new issue