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

Collapse All | Expand All

(-)Makefile (-2 / +18 lines)
Lines 2-7 Link Here
2
2
3
PORTNAME=	seafile
3
PORTNAME=	seafile
4
PORTVERSION=	3.1.4
4
PORTVERSION=	3.1.4
5
PORTREVISION=	1
5
CATEGORIES=	net-mgmt devel
6
CATEGORIES=	net-mgmt devel
6
7
7
MAINTAINER=	yan_jingfeng@yahoo.com
8
MAINTAINER=	yan_jingfeng@yahoo.com
Lines 15-21 Link Here
15
		libzdb.so:${PORTSDIR}/databases/libzdb \
16
		libzdb.so:${PORTSDIR}/databases/libzdb \
16
		libcrypto.so:${PORTSDIR}/security/openssl \
17
		libcrypto.so:${PORTSDIR}/security/openssl \
17
		libarchive.so.13:${PORTSDIR}/archivers/libarchive \
18
		libarchive.so.13:${PORTSDIR}/archivers/libarchive \
18
		libfuse.so:${PORTSDIR}/sysutils/fusefs-libs \
19
		libinotify.so:${PORTSDIR}/devel/libinotify \
19
		libinotify.so:${PORTSDIR}/devel/libinotify \
20
		libccnet.so:${PORTSDIR}/net-mgmt/ccnet
20
		libccnet.so:${PORTSDIR}/net-mgmt/ccnet
21
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}eggtestinfo>0:${PORTSDIR}/devel/py-eggtestinfo \
21
RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}eggtestinfo>0:${PORTSDIR}/devel/py-eggtestinfo \
Lines 45-50 Link Here
45
45
46
MAKE_JOBS_UNSAFE=	yes
46
MAKE_JOBS_UNSAFE=	yes
47
47
48
OPTIONS_DEFINE=	FUSE RIAK
49
OPTIONS_SUB=	yes
50
FUSE_DESC=	Use file system in userspace
51
FUSE_CONFIGURE_ENABLE= fuse
52
FUSE_LIB_DEPENDS=libfuse.so:${PORTSDIR}/sysutils/fusefs-libs
53
RIAK_DESC=	Use distributed noSQL database
54
RIAK_CONFIGURE_ENABLE=	riak
55
RIAK_RUN_DEPENDS=riak:${PORTSDIR}/databases/riak
56
57
OPTIONS_DEFAULT=FUSE
58
.if defined(DFLYVERSION)
59
OPTIONS_DEFAULT=
60
.endif
61
48
post-install:
62
post-install:
49
	@${MKDIR} ${SEABIN} \
63
	@${MKDIR} ${SEABIN} \
50
		${STAGEDIR}${WWWDIR}/seafile/share/doc/seafile \
64
		${STAGEDIR}${WWWDIR}/seafile/share/doc/seafile \
Lines 51-57 Link Here
51
		${STAGEDIR}${WWWDIR}/upgrade
65
		${STAGEDIR}${WWWDIR}/upgrade
52
.for SERVPROG in fileserver seaf-fsck seafserv-gc seaf-fuse seaf-migrate \
66
.for SERVPROG in fileserver seaf-fsck seafserv-gc seaf-fuse seaf-migrate \
53
	seaf-server seaf-server-init seafile-controller seafserv-tool
67
	seaf-server seaf-server-init seafile-controller seafserv-tool
54
	${LN} ${STAGEDIR}${PREFIX}/bin/${SERVPROG} ${SEABIN}
68
	if [ -e "${STAGEDIR}${PREFIX}/bin/${SERVPROG}" ]; then \
69
		${LN} ${STAGEDIR}${PREFIX}/bin/${SERVPROG} ${SEABIN}; \
70
	fi
55
.endfor
71
.endfor
56
	${INSTALL_SCRIPT} ${WRKSRC}/scripts/*.[ps][yh] ${STAGEDIR}${WWWDIR}
72
	${INSTALL_SCRIPT} ${WRKSRC}/scripts/*.[ps][yh] ${STAGEDIR}${WWWDIR}
57
	${INSTALL_SCRIPT} ${WRKSRC}/scripts/upgrade/*.[ps][yh] \
73
	${INSTALL_SCRIPT} ${WRKSRC}/scripts/upgrade/*.[ps][yh] \
(-)files/patch-configure.ac (-4 / +13 lines)
Lines 1-5 Link Here
1
--- configure.ac.orig	2014-06-05 02:25:50.000000000 -0400
1
--- configure.ac.orig	2014-08-05 01:28:35.000000000 -0400
2
+++ configure.ac	2014-07-21 12:43:12.000000000 -0400
2
+++ configure.ac	2014-11-22 13:34:26.927863521 -0500
3
@@ -88,7 +88,7 @@
4
       [compile_riak=$enableval],[compile_riak="no"])
5
 
6
    AC_ARG_ENABLE(fuse, AC_HELP_STRING([--enable-fuse], [enable fuse virtual file system]),
7
-      [compile_fuse=$enableval],[compile_fuse="yes"])
8
+      [compile_fuse=$enableval],[compile_fuse="no"])
9
 fi
10
 
11
 AC_ARG_ENABLE(client, AC_HELP_STRING([--enable-client], [enable client]),
3
@@ -199,25 +199,28 @@
12
@@ -199,25 +199,28 @@
4
   LIB_GDI32=
13
   LIB_GDI32=
5
   LIB_RT=
14
   LIB_RT=
Lines 40-46 Link Here
40
 AC_SUBST(MSVC_CFLAGS)
49
 AC_SUBST(MSVC_CFLAGS)
41
 
50
 
42
 
51
 
43
@@ -241,7 +246,6 @@
52
@@ -242,7 +247,6 @@
44
 #LIBNAUTILUS_EXTENSION_REQUIRED=2.30.1
53
 #LIBNAUTILUS_EXTENSION_REQUIRED=2.30.1
45
 CURL_REQUIRED=7.17
54
 CURL_REQUIRED=7.17
46
 FUSE_REQUIRED=2.8.6
55
 FUSE_REQUIRED=2.8.6
Lines 48-54 Link Here
48
 
57
 
49
 PKG_CHECK_MODULES(GLIB2, [glib-2.0 >= $GLIB_REQUIRED])
58
 PKG_CHECK_MODULES(GLIB2, [glib-2.0 >= $GLIB_REQUIRED])
50
 AC_SUBST(GLIB2_CFLAGS)
59
 AC_SUBST(GLIB2_CFLAGS)
51
@@ -263,10 +267,6 @@
60
@@ -268,10 +272,6 @@
52
 AC_SUBST(LIBEVENT_CFLAGS)
61
 AC_SUBST(LIBEVENT_CFLAGS)
53
 AC_SUBST(LIBEVENT_LIBS)
62
 AC_SUBST(LIBEVENT_LIBS)
54
 
63
 
(-)files/patch-controller_seafile-controller.c (-4 / +87 lines)
Lines 1-17 Link Here
1
--- controller/seafile-controller.c.orig	2014-08-05 01:28:35.000000000 -0400
1
--- controller/seafile-controller.c.orig	2014-08-05 01:28:35.000000000 -0400
2
+++ controller/seafile-controller.c	2014-08-30 09:11:34.868400091 -0400
2
+++ controller/seafile-controller.c	2014-11-22 22:00:58.614945337 -0500
3
@@ -18,6 +18,10 @@
3
@@ -18,10 +18,23 @@
4
 #include "log.h"
4
 #include "log.h"
5
 #include "seafile-controller.h"
5
 #include "seafile-controller.h"
6
 
6
 
7
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
7
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
8
+#include <sys/sysctl.h>
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)
9
+#endif
15
+#endif
10
+
16
+
17
+#endif
18
+
11
 #define CHECK_PROCESS_INTERVAL 10        /* every 10 seconds */
19
 #define CHECK_PROCESS_INTERVAL 10        /* every 10 seconds */
12
 
20
 
13
 SeafileController *ctl;
21
 SeafileController *ctl;
14
@@ -273,7 +277,11 @@
22
 
23
+static char *command_name = NULL;
24
 static char *controller_pidfile = NULL;
25
 
26
 char *bin_dir = NULL;
27
@@ -273,7 +286,20 @@
15
 init_seafile_path ()
28
 init_seafile_path ()
16
 {
29
 {
17
     GError *error = NULL;
30
     GError *error = NULL;
Lines 18-25 Link Here
18
+#if defined(__linux__)
31
+#if defined(__linux__)
19
     char *executable = g_file_read_link ("/proc/self/exe", &error);
32
     char *executable = g_file_read_link ("/proc/self/exe", &error);
20
+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
33
+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
21
+    char *executable = g_file_read_link ("/proc/curproc/file", &error);
34
+    /*
35
+     * seafile.sh starts the process using abs path
36
+     */ 
37
+    char executable[_POSIX_PATH_MAX];
38
+    memset(executable, 0, _POSIX_PATH_MAX);
39
+    char * rc = realpath(command_name, executable);
40
+    if (!rc) {
41
+        seaf_warning ("failed to readpath: %s\n", executable);
42
+	return;
43
+    }
22
+#endif
44
+#endif
23
     char *tmp = NULL;
45
     char *tmp = NULL;
24
     if (error != NULL) {
46
     if (error != NULL) {
25
         seaf_warning ("failed to readlink: %s\n", error->message);
47
         seaf_warning ("failed to readlink: %s\n", error->message);
48
@@ -287,7 +313,9 @@
49
 
50
     topdir = g_path_get_dirname (installpath);
51
 
52
+#if defined(__linux__)
53
     g_free (executable);
54
+#endif
55
     g_free (tmp);
56
 }
57
 
58
@@ -427,12 +455,41 @@
59
         return FALSE;
60
     } else {
61
         char buf[256];
62
+	gboolean with_procfs;
63
+#if defined(__linux__)
64
+	with_procfs = g_file_test("/proc/self", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR);
65
+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
66
+	with_procfs = g_file_test("/proc/curproc", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR);
67
+#else
68
+	with_procfs = FALSE;
69
+#endif
70
+	if (with_procfs) {
71
         snprintf (buf, sizeof(buf), "/proc/%d", pid);
72
         if (g_file_test (buf, G_FILE_TEST_IS_DIR)) {
73
             return FALSE;
74
         } else {
75
             return TRUE;
76
-        }
77
+	}
78
+
79
+	} else {
80
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
81
+#ifdef __OpenBSD__
82
+            int min[6] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), 1};
83
+#else
84
+            int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid};
85
+#endif
86
+            size_t len = sizeof(struct kinfo_proc);
87
+            struct kinfo_proc kp;
88
+            if (sysctl(mib, sizeof(mib)/sizeof(mib[0]), &kp, &len, NULL, 0) != -1 && 
89
+	        len == sizeof(struct kinfo_proc)) {
90
+                return FALSE;        
91
+            } else {
92
+                return TRUE;
93
+            }
94
+#else
95
+	return FALSE;
96
+#endif
97
+	}
98
     }
99
 }
100
 
101
@@ -892,6 +949,7 @@
102
         exit (1);
103
     }
104
 
105
+    command_name = argv[0];
106
     char *config_dir = DEFAULT_CONFIG_DIR;
107
     char *seafile_dir = NULL;
108
     char *logdir = NULL;
(-)files/patch-lib_Makfile.am (-2 / +11 lines)
Lines 1-5 Link Here
1
--- lib/Makefile.am.orig	2014-08-30 02:00:00.097346044 -0400
1
--- lib/Makefile.am.orig	2014-11-11 10:47:33.631976054 -0500
2
+++ lib/Makefile.am	2014-08-30 02:00:10.951213463 -0400
2
+++ lib/Makefile.am	2014-11-11 11:40:14.030311321 -0500
3
@@ -55,7 +55,7 @@
4
 libseafile_common_la_LDFLAGS = -no-undefined
5
 libseafile_common_la_LIBADD = @GLIB2_LIBS@  @GOBJECT_LIBS@ -lssl -lcrypto @LIB_GDI32@ \
6
 				     @LIB_UUID@ @LIB_WS32@ @LIB_PSAPI@ -lsqlite3 \
7
-					 -levent @SEARPC_LIBS@ @LIB_SHELL32@ \
8
+					 -levent -lkvm @SEARPC_LIBS@ @LIB_SHELL32@ \
9
 	@ZLIB_LIBS@
10
 
11
 searpc_gen = searpc-signature.h searpc-marshal.h
3
@@ -72,8 +72,4 @@
12
@@ -72,8 +72,4 @@
4
 	rm -f $(top_srcdir)/lib/rpc_table.pyc
13
 	rm -f $(top_srcdir)/lib/rpc_table.pyc
5
 
14
 
(-)files/patch-lib_utils.c (-6 / +178 lines)
Lines 1-11 Link Here
1
--- lib/utils.c.orig	2014-06-05 02:25:50.000000000 -0400
1
--- lib/utils.c.orig	2014-08-05 01:28:35.000000000 -0400
2
+++ lib/utils.c	2014-07-30 22:56:37.000000000 -0400
2
+++ lib/utils.c	2014-11-22 20:17:13.543784891 -0500
3
@@ -1756,14 +1756,19 @@
3
@@ -46,6 +46,15 @@
4
 
4
 
5
 #include <zlib.h>
6
 
7
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
8
+#include <stdlib.h>
9
+#include <kvm.h>
10
+#include <paths.h>
11
+#include <sys/param.h>
12
+#include <sys/sysctl.h>
13
+#include <sys/user.h>
14
+#endif
15
+
16
 extern int inet_pton(int af, const char *src, void *dst);
17
 
18
 
19
@@ -1756,14 +1765,19 @@
20
 
5
 #endif  /* ifdef WIN32 */
21
 #endif  /* ifdef WIN32 */
6
 
22
 
7
-#ifdef __linux__
23
-#ifdef __linux__
8
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
9
 /* read the link of /proc/123/exe and compare with `process_name' */
24
 /* read the link of /proc/123/exe and compare with `process_name' */
10
 static int
25
 static int
11
 find_process_in_dirent(struct dirent *dir, const char *process_name)
26
 find_process_in_dirent(struct dirent *dir, const char *process_name)
Lines 14-23 Link Here
14
     /* fisrst construct a path like /proc/123/exe */
29
     /* fisrst construct a path like /proc/123/exe */
15
+#ifdef __linux__
30
+#ifdef __linux__
16
     if (sprintf (path, "/proc/%s/exe", dir->d_name) < 0) {
31
     if (sprintf (path, "/proc/%s/exe", dir->d_name) < 0) {
17
+#endif
32
+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
18
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
19
+    if (sprintf (path, "/proc/%s/file", dir->d_name) < 0) {
33
+    if (sprintf (path, "/proc/%s/file", dir->d_name) < 0) {
34
+#else
35
+    if (TRUE) {
20
+#endif
36
+#endif
21
         return -1;
37
         return -1;
22
     }
38
     }
23
 
39
 
40
@@ -1787,7 +1801,8 @@
41
 }
42
 
43
 /* read the /proc fs to determine whether some process is running */
44
-gboolean process_is_running (const char *process_name)
45
+static gboolean 
46
+process_is_running_procfs (const char *process_name)
47
 {
48
     DIR *proc_dir = opendir("/proc");
49
     if (!proc_dir) {
50
@@ -1812,7 +1827,8 @@
51
     return FALSE;
52
 }
53
 
54
-int count_process(const char *process_name)
55
+static int 
56
+count_process_procfs(const char *process_name)
57
 {
58
     int count = 0;
59
     DIR *proc_dir = opendir("/proc");
60
@@ -1836,6 +1852,14 @@
61
     return count;
62
 }
63
 
64
+#ifdef __linux__
65
+gboolean process_is_running (const char *process_name) {
66
+    return process_is_running_procfs(process_name);
67
+}
68
+
69
+int count_process(const char *process_name) {
70
+    return count_process_procfs(process_name);
71
+}
72
 #endif
73
 
74
 #ifdef __APPLE__
75
@@ -1846,6 +1870,120 @@
76
 }
77
 #endif
78
 
79
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__)
80
+#if defined(__FreeBSD__)
81
+#define PSKIP(kp) ((kp)->ki_pid == mypid ||               \
82
+                   (!kthreads && ((kp)->ki_flag & P_KTHREAD) != 0))
83
+#define KVM_OPENFILES(exec, coref, buf) \
84
+		kvm_openfiles(exec, coref, NULL, O_RDONLY, buf)
85
+#define KVM_GETPROCS(kd, plist, nproc) \
86
+       		kvm_getprocs(kd, KERN_PROC_PROC, 0, &nproc)
87
+
88
+#elif defined(__DragonFly__)
89
+#define	PSKIP(kp) ((kp)->kp_pid == mypid ||			\
90
+		   (!kthreads && ((kp)->kp_flags & P_KTHREADP) != 0))
91
+#define KVM_OPENFILES(exec, coref, buf) \
92
+		kvm_openfiles(exec, coref, NULL, O_RDONLY, buf)
93
+#define KVM_GETPROCS(kd, plist, nproc) \
94
+		kvm_getprocs(kd, KERN_PROC_ALL, 0, &nproc)
95
+
96
+#elif defined(__NetBSD__)
97
+#define	PSKIP(kp) ((kp)->kp_pid == mypid ||			\
98
+		   ((kp)->p_flag & P_SYSTEM) != 0)
99
+#define KVM_OPENFILES(exec, coref, buf) \
100
+		kvm_openfiles(exec, coref, NULL, KVM_NO_FILES, buf)
101
+#define KVM_GETPROCS(kd, plist, nproc) \
102
+		kvm_getprocs(kd, KERN_PROC_ALL, 0, sizeof(*plist), &nproc)
103
+
104
+#elif defined(__OpenBSD__)
105
+#define	PSKIP(kp) ((kp)->kp_pid == mypid ||			\
106
+		   ((kp)->p_flag & (P_SYSTEM | P_THREAD)) != 0)
107
+#define KVM_OPENFILES(exec, coref, buf) \
108
+		kvm_openfiles(exec, coref, NULL, KVM_NO_FILES, buf)
109
+#define KVM_GETPROCS(kd, plist, nproc) \
110
+		kvm_getprocs(kd, KERN_PROC_ALL, 0, sizeof(*plist), &nproc)
111
+
112
+#else
113
+#define PSKIP(kp) 0
114
+#define KVM_OPENFILES(exec, coref, buf) 0
115
+#define KVM_GETPROCS(kd, plist, nproc) 0
116
+#endif
117
+
118
+#ifndef WITH_PROC_FS
119
+#define WITH_PROC_FS g_file_test("/proc/curproc", G_FILE_TEST_EXISTS)
120
+#endif
121
+
122
+static int 
123
+count_running_process_kvm(const char *process_name) {
124
+    
125
+    
126
+    static kvm_t    *kd;
127
+    static struct    kinfo_proc *plist;
128
+    static int    nproc;
129
+    static pid_t    mypid;
130
+    static int      kthreads;
131
+
132
+    char buf[_POSIX2_LINE_MAX]; 
133
+    const char * execf, *coref;
134
+    char **pargv;
135
+    int i, selected_nproc;
136
+    struct kinfo_proc *kp;
137
+
138
+    selected_nproc = 0;
139
+    execf = NULL;
140
+    coref = _PATH_DEVNULL;
141
+    
142
+    mypid = getpid();
143
+    kd = KVM_OPENFILES(execf, coref, buf);
144
+    if (kd == NULL) {
145
+        fprintf(stderr, "Error: Cannot open kernel files (%s)", buf);
146
+        exit(1);
147
+    }
148
+
149
+    plist = KVM_GETPROCS(kd, plist, nproc);
150
+    if (plist == NULL) {
151
+        fprintf(stderr, "Error: Cannot get process list (%s)", kvm_geterr(kd));
152
+        exit(1);
153
+    }
154
+
155
+    for(i = 0, kp = plist; i < nproc; i++, kp++) {
156
+        if (PSKIP(kp)) {
157
+            continue;
158
+        }
159
+        if ((pargv = kvm_getargv(kd, kp, 0)) != NULL) {
160
+            if (strstr(pargv[0], process_name) != NULL) {
161
+                selected_nproc += 1;
162
+            }
163
+        }
164
+    }
165
+    kvm_close(kd);
166
+    kvm_close(kd);
167
+
168
+    return selected_nproc;
169
+}
170
+
171
+gboolean
172
+process_is_running(const char * process_name) {
173
+    if (WITH_PROC_FS) { 
174
+        return process_is_running_procfs(process_name);
175
+    }
176
+    if (count_running_process_kvm(process_name) > 0) {
177
+        return TRUE;
178
+    } else {
179
+        return FALSE;
180
+    }
181
+}
182
+
183
+int
184
+count_process(const char * process_name) {
185
+   if (WITH_PROC_FS) {
186
+       return count_process_procfs(process_name);
187
+   }
188
+   return count_running_process_kvm(process_name);
189
+}
190
+#endif
191
+
192
+
193
 char*
194
 ccnet_object_type_from_id (const char *object_id)
195
 {
(-)files/patch-lib_utils.h (-2 / +13 lines)
Lines 1-5 Link Here
1
--- lib/utils.h.orig	2014-06-05 02:25:50.000000000 -0400
1
--- lib/utils.h.orig	2014-08-05 01:28:35.000000000 -0400
2
+++ lib/utils.h	2014-07-27 01:48:52.000000000 -0400
2
+++ lib/utils.h	2014-11-11 11:30:51.843637061 -0500
3
@@ -3,6 +3,9 @@
3
@@ -3,6 +3,9 @@
4
 #ifndef CCNET_UTILS_H
4
 #ifndef CCNET_UTILS_H
5
 #define CCNET_UTILS_H
5
 #define CCNET_UTILS_H
Lines 10-12 Link Here
10
 #include <sys/time.h>
10
 #include <sys/time.h>
11
 #include <time.h>
11
 #include <time.h>
12
 #include <stdint.h>
12
 #include <stdint.h>
13
@@ -13,7 +16,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 (__NetBSD__) || defined(__OpenBSD__)
21
 #include <event2/util.h>
22
 #else
23
 #include <evutil.h>
(-)pkg-plist (-2 / +2 lines)
Lines 2-8 Link Here
2
bin/seaf-cli
2
bin/seaf-cli
3
bin/seaf-daemon
3
bin/seaf-daemon
4
bin/seaf-fsck
4
bin/seaf-fsck
5
bin/seaf-fuse
5
%%FUSE%%bin/seaf-fuse
6
bin/seaf-migrate
6
bin/seaf-migrate
7
bin/seaf-server
7
bin/seaf-server
8
bin/seaf-server-init
8
bin/seaf-server-init
Lines 47-53 Link Here
47
%%WWWDIR%%/seafile.sh
47
%%WWWDIR%%/seafile.sh
48
%%WWWDIR%%/seafile/bin/fileserver
48
%%WWWDIR%%/seafile/bin/fileserver
49
%%WWWDIR%%/seafile/bin/seaf-fsck
49
%%WWWDIR%%/seafile/bin/seaf-fsck
50
%%WWWDIR%%/seafile/bin/seaf-fuse
50
%%FUSE%%%%WWWDIR%%/seafile/bin/seaf-fuse
51
%%WWWDIR%%/seafile/bin/seaf-migrate
51
%%WWWDIR%%/seafile/bin/seaf-migrate
52
%%WWWDIR%%/seafile/bin/seaf-server
52
%%WWWDIR%%/seafile/bin/seaf-server
53
%%WWWDIR%%/seafile/bin/seaf-server-init
53
%%WWWDIR%%/seafile/bin/seaf-server-init

Return to bug 195024