View | Details | Raw Unified | Return to bug 215293 | Differences between
and this patch

Collapse All | Expand All

(-)net-mgmt/seafile-server/Makefile (+125 lines)
Line 0 Link Here
1
# $FreeBSD$
2
3
PORTNAME=	seafile-server
4
PORTVERSION=	6.0.6
5
DISTVERSIONPREFIX=	v
6
DISTVERSIONSUFFIX=	-server
7
CATEGORIES=	net-mgmt
8
9
MAINTAINER=	ultima1252@gmail.com
10
COMMENT=	Open Source Cloud Storage (Server)
11
12
LICENSE=	GPLv3
13
LICENSE_FILE=	${WRKSRC}/LICENSE.txt
14
15
BUILD_DEPENDS=	valac:lang/vala
16
LIB_DEPENDS=	libsearpc.so:devel/libsearpc \
17
		libevhtp.so:www/libevhtp \
18
		libzdb.so:databases/libzdb \
19
		libcurl.so:ftp/curl \
20
		libinotify.so:devel/libinotify \
21
		libccnet.so:net-mgmt/ccnet-server \
22
		libevent.so:devel/libevent2 \
23
		libuuid.so:misc/e2fsprogs-libuuid \
24
		libjansson.so:devel/jansson
25
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
26
		${PYTHON_PKGNAMEPREFIX}urllib3>0:net/py-urllib3 \
27
		bash:shells/bash
28
29
CONFLICTS=	seafile-[0-9]*
30
31
USE_GITHUB=	yes
32
GH_ACCOUNT=	haiwen
33
34
USES=		autoreconf gettext iconv libarchive libtool mysql pathfix \
35
		pgsql pkgconfig python:-2.7 shebangfix sqlite ssl
36
USE_GNOME=	glib20
37
SHEBANG_FILES=	scripts/*.sh scripts/upgrade/*.sh *.sh scripts/build/*.py \
38
		scripts/*.py scripts/upgrade/*.py tools/seafile-admin
39
GNU_CONFIGURE=	yes
40
USE_LDCONFIG=	yes
41
CONFIGURE_ENV=	SSL_CFLAGS="${OPENSSLINC}" SSL_LIBS="-L${OPENSSLLIB} -lssl -lcrypto"
42
43
PATHFIX_MAKEFILEIN=	Makefile.am
44
45
INSTALL_TARGET=	install-strip
46
CPPFLAGS+=	-I${LOCALBASE}/include -I${LOCALBASE}/include/evhtp
47
LDFLAGS+=	-L${LOCALBASE}/lib
48
49
HAIWENDIR=	www/haiwen
50
SEAFILE_SERVER=	${HAIWENDIR}/seafile-server
51
SEABIN=		${SEAFILE_SERVER}/seafile/bin
52
SEALIB=		${SEAFILE_SERVER}/seafile/lib
53
54
USERS=		seafile
55
GROUPS=		${USERS}
56
57
USE_RC_SUBR=	seafile
58
PLIST_SUB=	USERS=${USERS} \
59
		GROUPS=${GROUPS} \
60
		SEAFILE_SERVER=${SEAFILE_SERVER} \
61
		HAIWENDIR=${HAIWENDIR}
62
63
SUB_FILES=	pkg-message
64
65
SUB_LIST+=	USERS=${USERS} \
66
		GROUPS=${GROUPS} \
67
		SEAFILE_SERVER=${SEAFILE_SERVER} \
68
		HAIWENDIR=${HAIWENDIR}
69
70
MAKE_JOBS_UNSAFE=	yes
71
72
OPTIONS_DEFINE=		FUSE
73
OPTIONS_SUB=		yes
74
75
FUSE_DESC=		Use file system in userspace
76
77
FUSE_CONFIGURE_ENABLE=	fuse
78
FUSE_LIB_DEPENDS=	libfuse.so:sysutils/fusefs-libs
79
80
OPTIONS_DEFAULT=	FUSE
81
OPTIONS_EXCLUDE_DragonFly=	FUSE
82
83
.include <bsd.port.options.mk>
84
85
post-patch:
86
# Fix P_KTHREAD r295435
87
.if ${OSVERSION} >= 1100097
88
	${REINPLACE_CMD} 's/P_KTHREAD/P_KPROC/' ${WRKSRC}/lib/utils.c
89
.endif
90
	${REINPLACE_CMD} 's/python/${PYTHON_VERSION}/' \
91
		${WRKSRC}/scripts/upgrade/regenerate_secret_key.sh
92
	${REINPLACE_CMD} -e 's|^INSTALL.*|INSTALLPATH="${PREFIX}/${SEAFILE_SERVER}/seafile"|' \
93
			${WRKSRC}/scripts/seaf-cli-wrapper.sh
94
	${REINPLACE_CMD} 's/<evhtp.h>/<evhtp\/evhtp.h>/' ${WRKSRC}/server/upload-file.c \
95
			${WRKSRC}/server/access-file.c ${WRKSRC}/server/http-server.c
96
post-install:
97
	@${MKDIR} ${STAGEDIR}${PREFIX}/${SEABIN} ${STAGEDIR}${PREFIX}/${SEALIB} \
98
		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/seafile/share/doc/seafile \
99
		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/upgrade
100
.for SERVPROG in seaf-fsck seafserv-gc seaf-fuse seaf-migrate \
101
		seaf-server seaf-server-init seafile-controller
102
	if [ -e "${STAGEDIR}${PREFIX}/bin/${SERVPROG}" ]; then \
103
		${INSTALL_PROGRAM} ${STAGEDIR}${PREFIX}/bin/${SERVPROG} ${STAGEDIR}${PREFIX}/${SEABIN}; \
104
		${RM} ${STAGEDIR}${PREFIX}/bin/${SERVPROG}; \
105
	fi
106
.endfor
107
.for SERVPROG in seafile-controller seaf-server
108
	${LN} -s ${PREFIX}/${SEABIN}/${SERVPROG} ${STAGEDIR}${PREFIX}/bin/
109
.endfor
110
111
	(cd ${STAGEDIR}${PREFIX}/lib && \
112
		${COPYTREE_SHARE} ${PYTHON_VERSION} ${STAGEDIR}${PREFIX}/${SEALIB})
113
	@${RM} -rf ${STAGEDIR}${PREFIX}/lib/${PYTHON_VERSION} \
114
		${WRKSRC}/scripts/sqlite2mysql.[ps][yh] \
115
		${WRKSRC}/scripts/setup-seafile.sh \
116
		${STAGEDIR}${PREFIX}/bin/seafile-admin
117
	${INSTALL_SCRIPT} ${WRKSRC}/scripts/*.[ps][yh] ${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}
118
	${INSTALL_SCRIPT} ${WRKSRC}/scripts/upgrade/*.[ps][yh] \
119
		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/upgrade
120
	${INSTALL_DATA} ${WRKSRC}/doc/seafile-tutorial.doc \
121
		${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/seafile/share/doc/seafile/
122
	(cd ${WRKSRC}/scripts/upgrade && \
123
		${COPYTREE_SHARE} sql ${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}/upgrade)
124
125
.include <bsd.port.mk>
(-)net-mgmt/seafile-server/distinfo (+3 lines)
Line 0 Link Here
1
TIMESTAMP = 1481476699
2
SHA256 (haiwen-seafile-server-v6.0.6-server_GH0.tar.gz) = 3fa98cb16a7ada6468bffff87dba855501365d0be9c2c10201e8d31412538e3e
3
SIZE (haiwen-seafile-server-v6.0.6-server_GH0.tar.gz) = 695521
(-)net-mgmt/seafile-server/files/patch-common_obj-backend-fs.c (+20 lines)
Line 0 Link Here
1
--- common/obj-backend-fs.c.orig	2016-10-09 09:30:49 UTC
2
+++ common/obj-backend-fs.c
3
@@ -101,7 +101,7 @@ obj_backend_fs_read (ObjBackend *bend,
4
 static int
5
 fsync_obj_contents (int fd)
6
 {
7
-#ifdef __linux__
8
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
9
     /* Some file systems may not support fsync().
10
      * In this case, just skip the error.
11
      */
12
@@ -153,7 +153,7 @@ fsync_obj_contents (int fd)
13
 static int
14
 rename_and_sync (const char *tmp_path, const char *obj_path)
15
 {
16
-#ifdef __linux__
17
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
18
     char *parent_dir;
19
     int ret = 0;
20
 
(-)net-mgmt/seafile-server/files/patch-configure.ac (+119 lines)
Line 0 Link Here
1
--- configure.ac.orig	2016-10-09 09:30:49 UTC
2
+++ configure.ac
3
@@ -51,8 +51,16 @@ else
4
   AC_MSG_RESULT(no)
5
 fi
6
 
7
+AC_MSG_CHECKING(for BSD)
8
+if test `uname | grep -e BSD -e DragonFly | wc -l` = "1"; then
9
+  bbsd=true
10
+  AC_MSG_RESULT(compile in BSD)
11
+else
12
+  AC_MSG_RESULT(no)
13
+fi
14
+
15
 AC_MSG_CHECKING(for Linux)
16
-if test "$bmac" != "true" -a "$bwin32" != "true"; then
17
+if test "$bmac" != "true" -a "$bwin32" != "true" -a "$bbsd" != "true"; then
18
   blinux=true
19
   AC_MSG_RESULT(compile in linux)
20
 else
21
@@ -78,6 +86,11 @@ if test "$bwin32" != true; then
22
       [compile_fuse=$enableval],[compile_fuse="yes"])
23
 fi
24
 
25
+if test "$bbsd" = true; then
26
+   AC_ARG_ENABLE(fuse, AC_HELP_STRING([--enable-fuse], [enable fuse virtual file system]),
27
+      [compile_fuse=$enableval],[compile_fuse="no"])
28
+fi
29
+
30
 AC_ARG_ENABLE(python,
31
               AC_HELP_STRING([--enable-python],[build ccnet python binding]),
32
               [compile_python=$enableval],
33
@@ -89,6 +102,7 @@ AM_CONDITIONAL([COMPILE_FUSE], [test "${
34
 
35
 AM_CONDITIONAL([WIN32], [test "$bwin32" = "true"])
36
 AM_CONDITIONAL([MACOS], [test "$bmac" = "true"])
37
+AM_CONDITIONAL([BSD], [test "$bbsd" = "true"])
38
 AM_CONDITIONAL([LINUX], [test "$blinux" = "true"])
39
 
40
 
41
@@ -134,6 +148,9 @@ if test "$bwin32" = true; then
42
   LIB_MAC=
43
   MSVC_CFLAGS="-D__MSVCRT__ -D__MSVCRT_VERSION__=0x0601"
44
   LIB_CRYPT32=-lcrypt32
45
+  ZLIB_LIBS=
46
+  LIB_INOTIFY=
47
+  LIB_KVM=
48
 elif test "$bmac" = true ; then
49
   LIB_WS32=
50
   LIB_GDI32=
51
@@ -148,6 +165,26 @@ elif test "$bmac" = true ; then
52
   LIB_MAC="-framework CoreServices"
53
   LIB_CRYPT32=
54
   LIB_ICONV=-liconv
55
+  ZLIB_LIBS=
56
+  LIB_INOTIFY=
57
+  LIB_KVM=
58
+elif test "$bbsd" = true ; then
59
+  LIB_WS32=
60
+  LIB_GDI32=
61
+  LIB_RT=
62
+  LIB_INTL=
63
+  LIB_RESOLV=
64
+  LIB_UUID=-luuid
65
+  LIB_IPHLPAPI=
66
+  LIB_SHELL32=
67
+  LIB_PSAPI=
68
+  LIB_MAC=
69
+  MSVC_CFLAGS=
70
+  LIB_CRYPT32=
71
+  LIB_ICONV=-liconv
72
+  ZLIB_LIBS=-lz
73
+  LIB_INOTIFY=-linotify
74
+  LIB_KVM=-lkvm
75
 else
76
   LIB_WS32=
77
   LIB_GDI32=
78
@@ -161,6 +198,9 @@ else
79
   LIB_MAC=
80
   MSVC_CFLAGS=
81
   LIB_CRYPT32=
82
+  ZLIB_LIBS=-lz
83
+  LIB_INOTIFY=-linotify
84
+  LIB_KVM=
85
 fi
86
 
87
 AC_SUBST(LIB_WS32)
88
@@ -173,6 +213,9 @@ AC_SUBST(LIB_IPHLPAPI)
89
 AC_SUBST(LIB_SHELL32)
90
 AC_SUBST(LIB_PSAPI)
91
 AC_SUBST(LIB_MAC)
92
+AC_SUBST(ZLIB_LIBS)
93
+AC_SUBST(LIB_INOTIFY)
94
+AC_SUBST(LIB_KVM)
95
 AC_SUBST(MSVC_CFLAGS)
96
 AC_SUBST(LIB_CRYPT32)
97
 AC_SUBST(LIB_ICONV)
98
@@ -187,7 +230,9 @@ ZDB_REQUIRED=2.10
99
 #LIBNAUTILUS_EXTENSION_REQUIRED=2.30.1
100
 CURL_REQUIRED=7.17
101
 FUSE_REQUIRED=2.7.3
102
+if test "$blinux" = true ; then
103
 ZLIB_REQUIRED=1.2.0
104
+fi
105
 
106
 PKG_CHECK_MODULES(SSL, [openssl])
107
 AC_SUBST(SSL_CFLAGS)
108
@@ -217,9 +262,11 @@ PKG_CHECK_MODULES(LIBEVENT, [libevent >=
109
 AC_SUBST(LIBEVENT_CFLAGS)
110
 AC_SUBST(LIBEVENT_LIBS)
111
 
112
+if test "$blinux" = true ; then
113
 PKG_CHECK_MODULES(ZLIB, [zlib >= $ZLIB_REQUIRED])
114
 AC_SUBST(ZLIB_CFLAGS)
115
 AC_SUBST(ZLIB_LIBS)
116
+fi
117
 
118
 if test x${compile_python} = xyes; then
119
    AM_PATH_PYTHON([2.6])
(-)net-mgmt/seafile-server/files/patch-controller_seafile-controller.c (+113 lines)
Line 0 Link Here
1
--- controller/seafile-controller.c.orig	2016-11-12 03:30:44 UTC
2
+++ controller/seafile-controller.c
3
@@ -17,6 +17,19 @@
4
 #include "log.h"
5
 #include "seafile-controller.h"
6
 
7
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
8
+#include <sys/sysctl.h>
9
+#include <sys/types.h>
10
+#include <sys/user.h>
11
+#include <limits.h>
12
+
13
+#ifndef WITH_PROC_FS
14
+#define WITH_PROC_FS g_file_test("/proc/curproc", G_FILE_TEST_EXISTS)
15
+#endif
16
+
17
+static char *command_name = NULL;
18
+#endif
19
+
20
 #define CHECK_PROCESS_INTERVAL 10        /* every 10 seconds */
21
 
22
 SeafileController *ctl;
23
@@ -244,7 +257,20 @@ static void
24
 init_seafile_path ()
25
 {
26
     GError *error = NULL;
27
+#if defined(__linux__)
28
     char *binary = g_file_read_link ("/proc/self/exe", &error);
29
+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
30
+    /*
31
+     * seafile.sh starts the process using abs path
32
+     */
33
+    char binary[_POSIX_PATH_MAX];
34
+    memset(binary, 0, _POSIX_PATH_MAX);
35
+    char * rc = realpath(command_name, binary);
36
+    if (!rc) {
37
+        seaf_warning ("failed to readpath: %s\n", binary);
38
+        return;
39
+    }
40
+#endif
41
     char *tmp = NULL;
42
     if (error != NULL) {
43
         seaf_warning ("failed to readlink: %s\n", error->message);
44
@@ -258,7 +284,9 @@ init_seafile_path ()
45
 
46
     topdir = g_path_get_dirname (installpath);
47
 
48
+#if defined(__linux__)
49
     g_free (binary);
50
+#endif
51
     g_free (tmp);
52
 }
53
 
54
@@ -400,11 +428,40 @@ need_restart (int which)
55
         return FALSE;
56
     } else {
57
         char buf[256];
58
+	gboolean with_procfs;
59
+#if defined(__linux__)
60
+	with_procfs = g_file_test("/proc/self", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR);
61
+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
62
+	with_procfs = g_file_test("/proc/curproc", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR);
63
+#else
64
+	with_procfs = FALSE;
65
+#endif
66
+	if (with_procfs) {
67
         snprintf (buf, sizeof(buf), "/proc/%d", pid);
68
         if (g_file_test (buf, G_FILE_TEST_IS_DIR)) {
69
             return FALSE;
70
         } else {
71
             return TRUE;
72
+	}
73
+
74
+	} else {
75
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
76
+#ifdef __OpenBSD__
77
+            int min[6] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), 1};
78
+#else
79
+            int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
80
+#endif
81
+            size_t len = sizeof(struct kinfo_proc);
82
+            struct kinfo_proc kp;
83
+            if (sysctl(mib, sizeof(mib)/sizeof(mib[0]), &kp, &len, NULL, 0) != -1 && 
84
+	        len == sizeof(struct kinfo_proc)) {
85
+                return FALSE;        
86
+            } else {
87
+                return TRUE;
88
+            }
89
+#else
90
+	return FALSE;
91
+#endif
92
         }
93
     }
94
 }
95
@@ -890,6 +947,9 @@ int main (int argc, char **argv)
96
         exit (1);
97
     }
98
 
99
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
100
+    command_name = argv[0];
101
+#endif
102
     char *config_dir = DEFAULT_CONFIG_DIR;
103
     char *central_config_dir = NULL;
104
     char *seafile_dir = NULL;
105
@@ -926,7 +986,7 @@ int main (int argc, char **argv)
106
         case 'f':
107
             daemon_mode = 0;
108
             break;
109
-        case 'L':
110
+        case 'l':
111
             logdir = g_strdup(optarg);
112
             break;
113
         case 'g':
(-)net-mgmt/seafile-server/files/patch-lib_Makefile.am (+29 lines)
Line 0 Link Here
1
--- lib/Makefile.am.orig	2016-10-21 22:12:15 UTC
2
+++ lib/Makefile.am
3
@@ -53,6 +53,7 @@ libseafile_common_la_SOURCES = ${seafile
4
 libseafile_common_la_LDFLAGS = -no-undefined
5
 libseafile_common_la_LIBADD = @GLIB2_LIBS@  @GOBJECT_LIBS@ @SSL_LIBS@ -lcrypto @LIB_GDI32@ \
6
 				     @LIB_UUID@ @LIB_WS32@ @LIB_PSAPI@ -lsqlite3 \
7
+				@LIB_KVM@ \
8
 					 @LIBEVENT_LIBS@ @SEARPC_LIBS@ @LIB_SHELL32@ \
9
 	@ZLIB_LIBS@
10
 
11
@@ -74,7 +75,7 @@ vala.stamp: ${seafile_object_define}
12
 	rm -f ${seafile_object_gen}
13
 	@rm -f vala.tmp
14
 	@touch vala.tmp
15
-	valac -C --pkg posix $^
16
+	valac -C --pkg posix ${seafile_object_define}
17
 	@mv -f vala.tmp $@
18
 
19
 ${seafile_object_gen}: vala.stamp
20
@@ -90,5 +91,9 @@ install-data-local:
21
 if MACOS
22
 	sed -i '' -e "s|(DESTDIR)|${DESTDIR}|g" $(pcfiles)
23
 else
24
+if BSD
25
+	sed -i '' "s|(DESTDIR)|${PREFIX}|g" $(pcfiles)
26
+else
27
 	${SED} -i "s|(DESTDIR)|${DESTDIR}|g" $(pcfiles)
28
 endif
29
+endif
(-)net-mgmt/seafile-server/files/patch-lib_net.c (+14 lines)
Line 0 Link Here
1
--- lib/net.c.orig	2016-10-09 09:30:49 UTC
2
+++ lib/net.c
3
@@ -157,7 +157,11 @@ ccnet_net_bind_tcp (int port, int nonblo
4
 
5
     snprintf (buf, sizeof(buf), "%d", port);
6
 
7
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
8
+    if ( (n = getaddrinfo("0.0.0.0", buf, &hints, &res) ) != 0) {
9
+#else
10
     if ( (n = getaddrinfo(NULL, buf, &hints, &res) ) != 0) {
11
+#endif
12
         ccnet_warning ("getaddrinfo fails: %s\n", gai_strerror(n));
13
         return -1;
14
     }
(-)net-mgmt/seafile-server/files/patch-lib_utils.c (+195 lines)
Line 0 Link Here
1
--- lib/utils.c.orig	2016-10-09 09:30:49 UTC
2
+++ lib/utils.c
3
@@ -56,6 +56,16 @@
4
 
5
 #include <zlib.h>
6
 
7
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
8
+#include <netinet/in.h>
9
+#include <stdlib.h>
10
+#include <kvm.h>
11
+#include <paths.h>
12
+#include <sys/param.h>
13
+#include <sys/sysctl.h>
14
+#include <sys/user.h>
15
+#endif
16
+
17
 extern int inet_pton(int af, const char *src, void *dst);
18
 
19
 
20
@@ -2069,14 +2079,19 @@ wchar_from_utf8 (const char *utf8)
21
 
22
 #endif  /* ifdef WIN32 */
23
 
24
-#ifdef __linux__
25
 /* read the link of /proc/123/exe and compare with `process_name' */
26
 static int
27
 find_process_in_dirent(struct dirent *dir, const char *process_name)
28
 {
29
     char path[512];
30
     /* fisrst construct a path like /proc/123/exe */
31
+#if defined(__linux__)
32
     if (sprintf (path, "/proc/%s/exe", dir->d_name) < 0) {
33
+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
34
+    if (sprintf (path, "/proc/%s/file", dir->d_name) < 0) {
35
+#else
36
+    if (1) {
37
+#endif
38
         return -1;
39
     }
40
 
41
@@ -2100,7 +2115,8 @@ find_process_in_dirent(struct dirent *di
42
 }
43
 
44
 /* read the /proc fs to determine whether some process is running */
45
-gboolean process_is_running (const char *process_name)
46
+static gboolean 
47
+process_is_running_procfs (const char *process_name)
48
 {
49
     DIR *proc_dir = opendir("/proc");
50
     if (!proc_dir) {
51
@@ -2125,7 +2141,8 @@ gboolean process_is_running (const char 
52
     return FALSE;
53
 }
54
 
55
-int count_process(const char *process_name)
56
+static int 
57
+count_process_procfs(const char *process_name)
58
 {
59
     int count = 0;
60
     DIR *proc_dir = opendir("/proc");
61
@@ -2149,6 +2166,14 @@ int count_process(const char *process_na
62
     return count;
63
 }
64
 
65
+#ifdef __linux__
66
+gboolean process_is_running(const char *process_name) {
67
+    return process_is_running_procfs(process_name);
68
+}
69
+
70
+int count_process(const char *process_name) {
71
+    return count_process_procfs(process_name);
72
+}
73
 #endif
74
 
75
 #ifdef __APPLE__
76
@@ -2159,6 +2184,119 @@ gboolean process_is_running (const char 
77
 }
78
 #endif
79
 
80
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
81
+#if defined(__FreeBSD__)
82
+#define PSKIP(kp) ((kp)->ki_pid == mypid ||               \
83
+                   (!kthreads && ((kp)->ki_flag & P_KTHREAD) != 0))
84
+#define KVM_OPENFILES(exec, coref, buf) \
85
+		kvm_openfiles(exec, coref, NULL, O_RDONLY, buf)
86
+#define KVM_GETPROCS(kd, plist, nproc) \
87
+       		kvm_getprocs(kd, KERN_PROC_PROC, 0, &nproc)
88
+
89
+#elif defined(__DragonFly__)
90
+#define	PSKIP(kp) ((kp)->kp_pid == mypid ||			\
91
+		   (!kthreads && ((kp)->kp_flags & P_SYSTEM) != 0))
92
+#define KVM_OPENFILES(exec, coref, buf) \
93
+		kvm_openfiles(exec, coref, NULL, O_RDONLY, buf)
94
+#define KVM_GETPROCS(kd, plist, nproc) \
95
+		kvm_getprocs(kd, KERN_PROC_ALL, 0, &nproc)
96
+
97
+#elif defined(__NetBSD__)
98
+#define	PSKIP(kp) ((kp)->kp_pid == mypid ||			\
99
+		   ((kp)->p_flag & P_SYSTEM) != 0)
100
+#define KVM_OPENFILES(exec, coref, buf) \
101
+		kvm_openfiles(exec, coref, NULL, KVM_NO_FILES, buf)
102
+#define KVM_GETPROCS(kd, plist, nproc) \
103
+		kvm_getprocs(kd, KERN_PROC_ALL, 0, sizeof(*plist), &nproc)
104
+
105
+#elif defined(__OpenBSD__)
106
+#define	PSKIP(kp) ((kp)->kp_pid == mypid ||			\
107
+		   ((kp)->p_flag & (P_SYSTEM | P_THREAD)) != 0)
108
+#define KVM_OPENFILES(exec, coref, buf) \
109
+		kvm_openfiles(exec, coref, NULL, KVM_NO_FILES, buf)
110
+#define KVM_GETPROCS(kd, plist, nproc) \
111
+		kvm_getprocs(kd, KERN_PROC_ALL, 0, sizeof(*plist), &nproc)
112
+
113
+#else
114
+#define PSKIP(kp) 0
115
+#define KVM_OPENFILES(exec, coref, buf) 0
116
+#define KVM_GETPROCS(kd, plist, nproc) 0
117
+#endif
118
+
119
+#ifndef WITH_PROC_FS
120
+#define WITH_PROC_FS g_file_test("/proc/curproc", G_FILE_TEST_EXISTS)
121
+#endif
122
+
123
+static int 
124
+count_running_process_kvm(const char *process_name) {
125
+    
126
+    
127
+    static kvm_t    *kd;
128
+    static struct    kinfo_proc *plist;
129
+    static int    nproc;
130
+    static pid_t    mypid;
131
+    static int      kthreads;
132
+
133
+    char buf[_POSIX2_LINE_MAX]; 
134
+    const char * execf, *coref;
135
+    char **pargv;
136
+    int i, selected_nproc;
137
+    struct kinfo_proc *kp;
138
+
139
+    selected_nproc = 0;
140
+    execf = NULL;
141
+    coref = _PATH_DEVNULL;
142
+    
143
+    mypid = getpid();
144
+    kd = KVM_OPENFILES(execf, coref, buf);
145
+    if (kd == NULL) {
146
+        fprintf(stderr, "Error: Cannot open kernel files (%s)", buf);
147
+        exit(1);
148
+    }
149
+
150
+    plist = KVM_GETPROCS(kd, plist, nproc);
151
+    if (plist == NULL) {
152
+        fprintf(stderr, "Error: Cannot get process list (%s)", kvm_geterr(kd));
153
+        exit(1);
154
+    }
155
+
156
+    for(i = 0, kp = plist; i < nproc; i++, kp++) {
157
+        if (PSKIP(kp)) {
158
+            continue;
159
+        }
160
+        if ((pargv = kvm_getargv(kd, kp, 0)) != NULL) {
161
+            if (strstr(pargv[0], process_name) != NULL) {
162
+                selected_nproc += 1;
163
+            }
164
+        }
165
+    }
166
+    kvm_close(kd);
167
+    kvm_close(kd);
168
+
169
+    return selected_nproc;
170
+}
171
+
172
+gboolean
173
+process_is_running(const char * process_name) {
174
+    if (WITH_PROC_FS) { 
175
+        return process_is_running_procfs(process_name);
176
+    }
177
+    if (count_running_process_kvm(process_name) > 0) {
178
+        return TRUE;
179
+    } else {
180
+        return FALSE;
181
+    }
182
+}
183
+
184
+int
185
+count_process(const char * process_name) {
186
+   if (WITH_PROC_FS) {
187
+       return count_process_procfs(process_name);
188
+   }
189
+   return count_running_process_kvm(process_name);
190
+}
191
+#endif
192
+
193
 char*
194
 ccnet_object_type_from_id (const char *object_id)
195
 {
(-)net-mgmt/seafile-server/files/patch-lib_utils.h (+23 lines)
Line 0 Link Here
1
--- lib/utils.h.orig	2016-10-09 09:30:49 UTC
2
+++ lib/utils.h
3
@@ -10,6 +10,9 @@
4
 #include <windows.h>
5
 #endif
6
 
7
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
8
+#include <netinet/in.h>
9
+#endif
10
 #include <sys/time.h>
11
 #include <time.h>
12
 #include <stdint.h>
13
@@ -20,7 +23,9 @@
14
 #include <stdlib.h>
15
 #include <sys/stat.h>
16
 
17
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
18
+#if defined(__FreeBSD__) || defined(__DragonFly__)
19
+#include <evutil.h>
20
+#elif defined(__NetBSD__) || defined(__OpenBSD__)
21
 #include <event2/util.h>
22
 #else
23
 #include <evutil.h>
(-)net-mgmt/seafile-server/files/patch-scripts_setup-seafile.sh (+15 lines)
Line 0 Link Here
1
--- scripts/setup-seafile.sh.orig	2016-10-21 22:12:15 UTC
2
+++ scripts/setup-seafile.sh
3
@@ -318,7 +318,11 @@ fi
4
 }
5
 
6
 function copy_user_manuals() {
7
-    src_docs_dir=${INSTALLPATH}/seafile/docs/
8
+    if [ $(uname | grep -e BSD -e DragonFly | wc -l) == "1" ]; then
9
+        src_docs_dir=${INSTALLPATH}/seafile/share/doc/seafile/
10
+    else
11
+    	src_docs_dir=${INSTALLPATH}/seafile/docs/
12
+    fi
13
     library_template_dir=${seafile_data_dir}/library-template
14
     mkdir -p ${library_template_dir}
15
     cp -f ${src_docs_dir}/*.doc ${library_template_dir}
(-)net-mgmt/seafile-server/files/patch-scripts_upgrade_regenerate__secret__key.sh (+10 lines)
Line 0 Link Here
1
--- scripts/upgrade/regenerate_secret_key.sh.orig	2016-10-21 22:12:15 UTC
2
+++ scripts/upgrade/regenerate_secret_key.sh
3
@@ -10,4 +10,6 @@ seahub_settings_py=${TOPDIR}/seahub_sett
4
 
5
 line="SECRET_KEY = \"$(python $seahub_secret_keygen)\""
6
 
7
-sed -i -e "/SECRET_KEY/c\\$line" $seahub_settings_py
8
+sed -i.bak -e "/SECRET_KEY/c\\
9
+$line
10
+" $seahub_settings_py
(-)net-mgmt/seafile-server/files/patch-server_access-file.c (+54 lines)
Line 0 Link Here
1
--- server/access-file.c.orig	2016-10-09 09:30:49 UTC
2
+++ server/access-file.c
3
@@ -224,10 +224,10 @@ write_block_data_cb (struct bufferevent 
4
         bev->cbarg = data->saved_cb_arg;
5
 
6
         /* Resume reading incomming requests. */
7
-        evhtp_request_resume (data->req);
8
-
9
         evhtp_send_reply_end (data->req);
10
 
11
+	evhtp_request_resume (data->req);
12
+
13
         free_sendblock_data (data);
14
         return;
15
     }
16
@@ -309,10 +309,10 @@ next:
17
             bev->cbarg = data->saved_cb_arg;
18
 
19
             /* Resume reading incomming requests. */
20
-            evhtp_request_resume (data->req);
21
-
22
             evhtp_send_reply_end (data->req);
23
 
24
+	    evhtp_request_resume (data->req);
25
+
26
             free_sendfile_data (data);
27
             return;
28
         }
29
@@ -406,10 +406,10 @@ write_dir_data_cb (struct bufferevent *b
30
             bev->cbarg = data->saved_cb_arg;
31
 
32
             /* Resume reading incomming requests. */
33
-            evhtp_request_resume (data->req);
34
-
35
             evhtp_send_reply_end (data->req);
36
 
37
+	    evhtp_request_resume (data->req);
38
+
39
             free_senddir_data (data);
40
             return;
41
         }
42
@@ -697,10 +697,10 @@ finish_file_range_request (struct buffer
43
     bev->cbarg = data->saved_cb_arg;
44
 
45
     /* Resume reading incomming requests. */
46
-    evhtp_request_resume (data->req);
47
-
48
     evhtp_send_reply_end (data->req);
49
 
50
+    evhtp_request_resume (data->req);
51
+
52
     free_send_file_range_data (data);
53
 }
54
 
(-)net-mgmt/seafile-server/files/pkg-message.in (+12 lines)
Line 0 Link Here
1
For an existing config, or creating a new one, fix the UID/GID.
2
Do not change %%PREFIX%%/%%SEAFILE_SERVER%% unless your front
3
end is using the seafile UID/GID as well.
4
5
chown -R seafile:seafile %%PREFIX%%/%%HAIWENDIR%%/conf \
6
	%%PREFIX%%/%%HAIWENDIR%%/ccnet %%PREFIX%%/%%HAIWENDIR%%/seafile-data \
7
	%%PREFIX%%/%%HAIWENDIR%%/pids %%PREFIX%%/%%HAIWENDIR%%/logs
8
9
Don't forget to run update scripts after every minor and major update located in
10
	%%PREFIX%%/%%SEAFILE_SERVER%%/upgrade
11
12
Patch updates (5.1.x) don't require these scripts, however do required a restarted.
(-)net-mgmt/seafile-server/files/seafile.in (+148 lines)
Line 0 Link Here
1
#!/bin/sh
2
#
3
# $FreeBSD: head/net-mgmt/seafile/files/seafile.in 416100 2016-05-29 13:03:49Z amdmi3 $
4
#
5
6
# PROVIDE: seafile
7
# REQUIRE: LOGIN cleanvar mysql
8
# KEYWORD: shutdown
9
#
10
11
#
12
# Add the following lines to /etc/rc.conf to enable seafile:
13
#
14
# seafile_enable (bool):	Set to "NO" by default.
15
#				Set it to "YES" to enable seafile.
16
# seafile_user (str):		User to run seafile as
17
#				Default to "%%USERS%%" created by the port
18
# seafile_group (str):		Group to run seafile as
19
#				Default to "%%GROUPS%%" created by the port
20
# seafile_path (str):		Set to "" by default will use the path
21
#				%%PREFIX%%/%%SEAFILE_SERVER%%.
22
#				Set it to a different path.
23
# seafile_ccnet (str):		Set to "" by default will use the path
24
#				%%PREFIX%%/%%HAIWENDIR%%/ccnet.
25
#				Set it to a different path.
26
# seafile_conf (str):		Set to "" by default will use the path
27
#				%%PREFIX%%/%%HAIWENDIR%%/conf.
28
#				Set it to a different path.
29
# seafile_datadir (str):	Set to "" by default will use the path
30
#				in file %%PREFIX%%/%%HAIWENDIR%%/ccnet/seafile.ini.
31
#				Set it to a different path.
32
# seafile_logdir (str):		Set to "" by default will use the path
33
#				%%PREFIX%%/%%HAIWENDIR%%/logs
34
#				Set it to a different path.
35
# seafile_loglevel (str):	Set to "info" by default.
36
#				Possible values are debug, warning, info.
37
38
. /etc/rc.subr
39
40
name="seafile"
41
rcvar="seafile_enable"
42
43
load_rc_config $name
44
45
start_cmd="seafile_start"
46
restart_cmd="seafile_restart"
47
stop_cmd="seafile_stop"
48
49
: ${seafile_enable="NO"}
50
: ${seafile_user:="%%USERS%%"}
51
: ${seafile_group:="%%GROUPS%%"}
52
: ${seafile_path:="%%PREFIX%%/%%SEAFILE_SERVER%%"}
53
: ${seafile_ccnet:="%%PREFIX%%/%%HAIWENDIR%%/ccnet"}
54
: ${seafile_conf:="%%PREFIX%%/%%HAIWENDIR%%/conf"}
55
: ${seafile_datadir:="`cat ${seafile_ccnet}/seafile.ini 2>/dev/null`"}
56
: ${seafile_logdir:="%%PREFIX%%/%%HAIWENDIR%%/logs"}
57
: ${seafile_loglevel:="info"}
58
59
command="%%PREFIX%%/%%SEAFILE_SERVER%%/seafile/bin/seafile-controller"
60
command_args="-c \"${seafile_ccnet}\" -d \"${seafile_datadir}\" -F \"${seafile_conf}\" -l \"${seafile_logdir}\" -g \"${seafile_loglevel}\" -G \"${seafile_loglevel}\""
61
62
required_dirs="${seafile_ccnet} ${seafile_conf} ${seafile_datadir}"
63
required_files="${seafile_ccnet}/seafile.ini"
64
65
test_config() {
66
	if ! su -m ${seafile_user} -c "${command} -t ${command_args}" ; then
67
		exit 1;
68
	fi
69
}
70
71
check_component_running() {
72
	name=$1
73
	cmd=$2
74
	if pid=$(pgrep -f "$cmd" 2>/dev/null); then
75
		echo "{$name} is running, pid $pid. You can stop it by: "
76
		echo
77
		echo "        kill $pid"
78
		echo
79
		echo "Stop it and try again."
80
		echo
81
		exit
82
	fi
83
}
84
85
validate_already_running() {
86
	if pid=$(pgrep -f "seafile-controller -c ${seafile_ccnet}" 2>/dev/null); then
87
		echo "Seafile controller is already running, pid $pid"
88
		echo
89
		exit 1;
90
	fi
91
92
	check_component_running "ccnet-server" "ccnet-server -c ${seafile_ccnet}"
93
	check_component_running "seaf-server" "seaf-server -c ${seafile_ccnet}"
94
	check_component_running "fileserver" "fileserver -c ${seafile_ccnet}"
95
	check_component_running "seafdav" "wsgidav.server.run_server"
96
}
97
98
prepare_env() {
99
export PATH=${seafile_path}/seafile/bin:$PATH
100
export LD_LIBRARY_PATH=${seafile_path}/seafile/lib/:${seafile_path}/seafile/lib64:${LD_LIBRARY_PATH}
101
}
102
103
seafile_start() {
104
	check_required_before;
105
	validate_already_running;
106
	prepare_env;
107
	test_config;
108
109
	echo "Starting seafile server, please wait ..."
110
111
	su -m "${seafile_user}" -c "mkdir -p $seafile_logdir"
112
	su -m "${seafile_user}" -c "$command $command_args"
113
114
	sleep 3
115
116
	# check if seafile server started successfully
117
	if ! pgrep -f "seafile-controller -c ${seafile_ccnet}" 2>/dev/null 1>&2; then
118
	echo "Failed to start seafile server"
119
	exit 1;
120
	fi
121
122
	echo "Seafile server started"
123
	echo
124
}
125
126
seafile_stop() {
127
	if ! pgrep -f "seafile-controller -c ${seafile_ccnet}" 2>/dev/null 1>&2; then
128
		echo "Seafile is not running"
129
	return 1;
130
	fi
131
132
	echo "Stopping ${name}."
133
	pkill -SIGTERM -f "seafile-controller -c ${seafile_ccnet}"
134
	pkill -f "ccnet-server -c ${seafile_ccnet}"
135
	pkill -f "seaf-server -c ${seafile_ccnet}"
136
	pkill -f "fileserver -c ${seafile_ccnet}"
137
	pkill -f "soffice.*--invisible --nocrashreport"
138
	pkill -f  "wsgidav.server.run_server"
139
	return 0
140
}
141
142
seafile_restart() {
143
	seafile_stop;
144
	sleep 2
145
	seafile_start;
146
}
147
148
run_rc_command "$1"
(-)net-mgmt/seafile-server/pkg-descr (+11 lines)
Line 0 Link Here
1
Seafile is an open source cloud storage system with features on privacy
2
protection and teamwork. Collections of files are called libraries, and
3
each library can be synced separately. A library can also be encrypted
4
with a user chosen password. Seafile also allows users to create groups
5
and easily sharing files into groups.
6
7
This is the core component of Seafile server. It provides RPC to the web
8
front-end (Seahub) to access files, and provides HTTP APIs to the desktop
9
clients for syncing files.
10
11
WWW: https://github.com/haiwen/seafile-server
(-)net-mgmt/seafile-server/pkg-plist (+110 lines)
Line 0 Link Here
1
bin/seafile-controller
2
bin/seaf-server
3
include/seafile/seafile-error.h
4
include/seafile/seafile-object.h
5
include/seafile/seafile-rpc.h
6
lib/libseafile.a
7
lib/libseafile.so
8
lib/libseafile.so.0
9
lib/libseafile.so.0.0.0
10
libdata/pkgconfig/libseafile.pc
11
%%SEAFILE_SERVER%%/seaf-cli-wrapper.sh
12
%%SEAFILE_SERVER%%/check_init_admin.py
13
%%SEAFILE_SERVER%%/migrate-to-ceph.sh
14
%%SEAFILE_SERVER%%/reset-admin.sh
15
%%SEAFILE_SERVER%%/seaf-fuse.sh
16
%%SEAFILE_SERVER%%/seaf-gc.sh
17
%%SEAFILE_SERVER%%/seafile.sh
18
%%SEAFILE_SERVER%%/seafile/bin/seaf-fsck
19
%%FUSE%%%%SEAFILE_SERVER%%/seafile/bin/seaf-fuse
20
%%SEAFILE_SERVER%%/seafile/bin/seaf-migrate
21
%%SEAFILE_SERVER%%/seafile/bin/seaf-server
22
%%SEAFILE_SERVER%%/seafile/bin/seaf-server-init
23
%%SEAFILE_SERVER%%/seafile/bin/seafile-controller
24
%%SEAFILE_SERVER%%/seafile/bin/seafserv-gc
25
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/__init__.py
26
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/__init__.pyc
27
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/__init__.pyo
28
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/rpcclient.py
29
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/rpcclient.pyc
30
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/rpcclient.pyo
31
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/__init__.py
32
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/__init__.pyc
33
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/__init__.pyo
34
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/api.py
35
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/api.pyc
36
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/api.pyo
37
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/service.py
38
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/service.pyc
39
%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/service.pyo
40
%%SEAFILE_SERVER%%/seafile/share/doc/seafile/seafile-tutorial.doc
41
%%SEAFILE_SERVER%%/breakpad.py
42
%%SEAFILE_SERVER%%/seafobj_migrate.py
43
%%SEAFILE_SERVER%%/seahub.sh
44
%%SEAFILE_SERVER%%/setup-seafile-mysql.py
45
%%SEAFILE_SERVER%%/setup-seafile-mysql.sh
46
%%SEAFILE_SERVER%%/upgrade/add_collate.sh
47
%%SEAFILE_SERVER%%/upgrade/db_update_1.3_1.4.py
48
%%SEAFILE_SERVER%%/upgrade/db_update_helper.py
49
%%SEAFILE_SERVER%%/upgrade/minor-upgrade.sh
50
%%SEAFILE_SERVER%%/seaf-fsck.sh
51
%%SEAFILE_SERVER%%/upgrade/fix_mysql_user.py
52
%%SEAFILE_SERVER%%/upgrade/regenerate_secret_key.sh
53
%%SEAFILE_SERVER%%/upgrade/sql/1.6.0/mysql/seahub.sql
54
%%SEAFILE_SERVER%%/upgrade/sql/1.6.0/sqlite3/seahub.sql
55
%%SEAFILE_SERVER%%/upgrade/sql/1.7.0/mysql/seafile.sql
56
%%SEAFILE_SERVER%%/upgrade/sql/1.7.0/mysql/seahub.sql
57
%%SEAFILE_SERVER%%/upgrade/sql/1.7.0/sqlite3/seafile.sql
58
%%SEAFILE_SERVER%%/upgrade/sql/1.7.0/sqlite3/seahub.sql
59
%%SEAFILE_SERVER%%/upgrade/sql/1.8.0/mysql/ccnet.sql
60
%%SEAFILE_SERVER%%/upgrade/sql/1.8.0/mysql/seahub.sql
61
%%SEAFILE_SERVER%%/upgrade/sql/1.8.0/sqlite3/seahub.sql
62
%%SEAFILE_SERVER%%/upgrade/sql/2.0.0/mysql/seahub.sql
63
%%SEAFILE_SERVER%%/upgrade/sql/2.0.0/sqlite3/seahub.sql
64
%%SEAFILE_SERVER%%/upgrade/sql/2.1.0/mysql/seahub.sql
65
%%SEAFILE_SERVER%%/upgrade/sql/2.1.0/sqlite3/seahub.sql
66
%%SEAFILE_SERVER%%/upgrade/sql/2.2.0/mysql/ccnet.sql
67
%%SEAFILE_SERVER%%/upgrade/sql/3.0.0/mysql/seahub.sql
68
%%SEAFILE_SERVER%%/upgrade/sql/3.0.0/sqlite3/seahub.sql
69
%%SEAFILE_SERVER%%/upgrade/sql/3.1.0/mysql/seahub.sql
70
%%SEAFILE_SERVER%%/upgrade/sql/3.1.0/sqlite3/seahub.sql
71
%%SEAFILE_SERVER%%/upgrade/sql/4.1.0/mysql/ccnet.sql
72
%%SEAFILE_SERVER%%/upgrade/sql/4.1.0/mysql/seafile.sql
73
%%SEAFILE_SERVER%%/upgrade/sql/4.1.0/sqlite3/ccnet/groupmgr.sql
74
%%SEAFILE_SERVER%%/upgrade/sql/4.1.0/sqlite3/seafile.sql
75
%%SEAFILE_SERVER%%/upgrade/sql/4.2.0/mysql/seafile.sql
76
%%SEAFILE_SERVER%%/upgrade/sql/4.2.0/mysql/seahub.sql
77
%%SEAFILE_SERVER%%/upgrade/sql/4.2.0/sqlite3/seafile.sql
78
%%SEAFILE_SERVER%%/upgrade/sql/4.2.0/sqlite3/seahub.sql
79
%%SEAFILE_SERVER%%/upgrade/sql/4.3.0/mysql/.gitkeep
80
%%SEAFILE_SERVER%%/upgrade/sql/4.3.0/sqlite3/.gitkeep
81
%%SEAFILE_SERVER%%/upgrade/sql/4.4.0/mysql/.gitkeep
82
%%SEAFILE_SERVER%%/upgrade/sql/4.4.0/sqlite3/.gitkeep
83
%%SEAFILE_SERVER%%/upgrade/upgrade_1.2_1.3.sh
84
%%SEAFILE_SERVER%%/upgrade/upgrade_1.3_1.4.sh
85
%%SEAFILE_SERVER%%/upgrade/upgrade_1.4_1.5.sh
86
%%SEAFILE_SERVER%%/upgrade/upgrade_1.5_1.6.sh
87
%%SEAFILE_SERVER%%/upgrade/upgrade_1.6_1.7.sh
88
%%SEAFILE_SERVER%%/upgrade/upgrade_1.7_1.8.sh
89
%%SEAFILE_SERVER%%/upgrade/upgrade_1.8_2.0.sh
90
%%SEAFILE_SERVER%%/upgrade/upgrade_2.0_2.1.sh
91
%%SEAFILE_SERVER%%/upgrade/upgrade_2.1_2.2.sh
92
%%SEAFILE_SERVER%%/upgrade/upgrade_2.2_3.0.sh
93
%%SEAFILE_SERVER%%/upgrade/upgrade_3.0_3.1.sh
94
%%SEAFILE_SERVER%%/upgrade/upgrade_3.1_4.0.sh
95
%%SEAFILE_SERVER%%/upgrade/upgrade_4.0_4.1.sh
96
%%SEAFILE_SERVER%%/upgrade/upgrade_4.1_4.2.sh
97
%%SEAFILE_SERVER%%/upgrade/upgrade_4.2_4.3.sh
98
%%SEAFILE_SERVER%%/upgrade/upgrade_4.3_4.4.sh
99
%%SEAFILE_SERVER%%/upgrade/sql/5.0.0/mysql/seahub.sql
100
%%SEAFILE_SERVER%%/upgrade/sql/5.0.0/sqlite3/seahub.sql
101
%%SEAFILE_SERVER%%/upgrade/sql/5.1.0/mysql/seafile.sql
102
%%SEAFILE_SERVER%%/upgrade/sql/5.1.0/mysql/seahub.sql
103
%%SEAFILE_SERVER%%/upgrade/sql/5.1.0/sqlite3/seafile.sql
104
%%SEAFILE_SERVER%%/upgrade/sql/5.1.0/sqlite3/seahub.sql
105
%%SEAFILE_SERVER%%/upgrade/sql/6.0.0/mysql/seahub.sql
106
%%SEAFILE_SERVER%%/upgrade/sql/6.0.0/sqlite3/seahub.sql
107
%%SEAFILE_SERVER%%/upgrade/upgrade_5.1_6.0.sh
108
%%SEAFILE_SERVER%%/upgrade/upgrade_5.0_5.1.sh
109
%%SEAFILE_SERVER%%/upgrade/upgrade_4.4_5.0.sh
110
@dir(%%USERS%%,%%GROUPS%%,755) %%HAIWENDIR%%
(-)net-mgmt/seafile/Makefile (+2 lines)
Lines 26-31 Link Here
26
		${PYTHON_PKGNAMEPREFIX}urllib3>0:net/py-urllib3 \
26
		${PYTHON_PKGNAMEPREFIX}urllib3>0:net/py-urllib3 \
27
		bash:shells/bash
27
		bash:shells/bash
28
28
29
CONFLICTS=	seafile-server-[0-9]*
30
29
USE_GITHUB=	yes
31
USE_GITHUB=	yes
30
GH_ACCOUNT=	haiwen
32
GH_ACCOUNT=	haiwen
31
33
(-)net-mgmt/Makefile (+1 lines)
Lines 306-311 Link Here
306
    SUBDIR += sdig
306
    SUBDIR += sdig
307
    SUBDIR += seafile
307
    SUBDIR += seafile
308
    SUBDIR += seafile-gui
308
    SUBDIR += seafile-gui
309
    SUBDIR += seafile-server
309
    SUBDIR += send
310
    SUBDIR += send
310
    SUBDIR += sendip
311
    SUBDIR += sendip
311
    SUBDIR += sipcalc
312
    SUBDIR += sipcalc

Return to bug 215293