diff options
| author | Rene Ladan <rene@FreeBSD.org> | 2026-08-31 10:39:41 +0000 |
|---|---|---|
| committer | Rene Ladan <rene@FreeBSD.org> | 2026-08-31 10:39:55 +0000 |
| commit | 48dd2315c283b1912298a06aa59eee93ea74417f (patch) | |
| tree | 2def545fbe47fdf8ab76c1599ca39c3f6131c6d7 | |
| parent | 8b24f549cc1ee108baddb1825c9d5861728a8c7b (diff) | |
net-mgmt/seafile-server: Remove expired port
2026-08-31 net-mgmt/seafile-server: The update to a newer version is more difficult than expected, and the current version of the web backend, www/seahub, only runs on Django 4.2
21 files changed, 1 insertions, 988 deletions
@@ -5579,3 +5579,4 @@ textproc/logseq||2026-08-31|Has expired: Depends on expired devel/electron38 science/py-mdp||2026-08-31|Has expired: No upstream activity since 2020 devel/electron38||2026-08-31|Has expired: EOLed upstream, switch to newer version www/seahub||2026-08-31|Has expired: The update of net-mgmt/seafile-server to a newer version is more difficult than expected, and the current version of www/seahub only runs on Django 4.2 +net-mgmt/seafile-server||2026-08-31|Has expired: The update to a newer version is more difficult than expected, and the current version of the web backend, www/seahub, only runs on Django 4.2 diff --git a/net-mgmt/Makefile b/net-mgmt/Makefile index 6b266870d7e9..9bcd6fb8b1da 100644 --- a/net-mgmt/Makefile +++ b/net-mgmt/Makefile @@ -387,7 +387,6 @@ SUBDIR += sdig SUBDIR += seafile-client SUBDIR += seafile-gui - SUBDIR += seafile-server SUBDIR += semaphore SUBDIR += sendip SUBDIR += simplomon diff --git a/net-mgmt/seafile-server/Makefile b/net-mgmt/seafile-server/Makefile deleted file mode 100644 index 024af5876976..000000000000 --- a/net-mgmt/seafile-server/Makefile +++ /dev/null @@ -1,124 +0,0 @@ -PORTNAME= seafile-server -DISTVERSIONPREFIX= v -DISTVERSION= ${SEAFILE_VER} -DISTVERSIONSUFFIX= -server -PORTREVISION= 3 -CATEGORIES= net-mgmt - -MAINTAINER= ports@FreeBSD.org -COMMENT= Open Source Cloud Storage (Server) -WWW= https://github.com/haiwen/seafile-server - -LICENSE= GPLv3 -LICENSE_FILE= ${WRKSRC}/LICENSE.txt - -DEPRECATED= The update to a newer version is more difficult than expected, and the current version of the web backend, www/seahub, only runs on Django 4.2 -EXPIRATION_DATE=2026-08-31 - -LIB_DEPENDS= libsearpc.so:devel/libsearpc \ - libevhtp.so:www/libevhtp \ - libzdb.so:databases/libzdb \ - libcurl.so:ftp/curl \ - libinotify.so:devel/libinotify \ - libevent.so:devel/libevent \ - libuuid.so:misc/libuuid \ - libjansson.so:devel/jansson \ - libjwt.so:www/libjwt \ - libonig.so:devel/oniguruma -RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ - ${PYTHON_PKGNAMEPREFIX}urllib3>0:net/py-urllib3@${PY_FLAVOR} \ - bash:shells/bash - -CONFLICTS= seafile - -USES= autoreconf compiler:c11 gnome iconv libarchive libtool localbase mysql \ - pathfix pgsql pkgconfig python shebangfix sqlite ssl vala:build -USE_GITHUB= yes -GH_ACCOUNT= haiwen -USE_GNOME= glib20 -USE_RC_SUBR= seafile - -SHEBANG_FILES= tools/seafile-admin -GNU_CONFIGURE= yes -CONFIGURE_ENV= SSL_CFLAGS="${OPENSSLINC}" SSL_LIBS="-L${OPENSSLLIB} -lssl \ - -lcrypto" PKG_CONFIG_PATH="${WRKDIR}/pkgconfig" -CFLAGS+= -Wno-error=incompatible-function-pointer-types - -PATHFIX_MAKEFILEIN= Makefile.am - -INSTALL_TARGET= install-strip -CPPFLAGS+= -I${LOCALBASE}/include/evhtp - -SUB_FILES= pkg-message - -MAKE_JOBS_UNSAFE= yes - -OPTIONS_DEFINE= FUSE LDAP NLS -OPTIONS_DEFAULT= FUSE LDAP -OPTIONS_EXCLUDE_DragonFly= FUSE -OPTIONS_SUB= yes - -FUSE_DESC= Use file system in userspace - -FUSE_CONFIGURE_ENABLE= fuse -FUSE_LIB_DEPENDS= libfuse.so:filesystems/fusefs-libs - -LDAP_CONFIGURE_ENABLE= ldap -LDAP_USES= ldap - -NLS_USES= gettext - -.include <bsd.port.pre.mk> - -_PKGCONFIGDIR= ${WRKDIR}/pkgconfig - -post-patch: -# Fix P_KTHREAD r295435 - ${REINPLACE_CMD} 's/P_KTHREAD/P_KPROC/' ${WRKSRC}/lib/utils.c - -# Fix python hardcodings - ${REINPLACE_CMD} 's/python3\.[0-9]/${PYTHON_VERSION}/g; s/python3 /${PYTHON_VERSION} / ; \ - s/PYTHON=python3/PYTHON=${PYTHON_VERSION}/ ; s|/python3/|/${PYTHON_VERSION}/|g' \ - ${WRKSRC}/controller/seafile-controller.c - - @${MKDIR} ${_PKGCONFIGDIR} -.if ${MYSQL_FLAVOUR} == mariadb -# If mariadb is the selected flavor, link the pc file as -# mysqlclient so PKG_CHECK_MODULES can find it. Mariadb -# doesn't supply this file in the same way other flavours do. - @${LN} -sf ${LOCALBASE}/libdata/pkgconfig/libmariadb.pc \ - ${_PKGCONFIGDIR}/mysqlclient.pc -.elif ${SSL_DEFAULT} == base -# Add bogus pc file to satisfy mysqlclient depend for ssl=base - @${PRINTF} 'Name:\nDescription:\nVersion:' \ - >${_PKGCONFIGDIR}/openssl.pc -.endif - -post-install: - @${MKDIR} ${STAGEDIR}${PREFIX}/${SEABIN} ${STAGEDIR}${PREFIX}/${SEALIB} -.for SERVPROG in seaf-fsck seafserv-gc seaf-fuse seaf-migrate \ - seaf-server seaf-server-init seafile-controller - if [ -e "${STAGEDIR}${PREFIX}/bin/${SERVPROG}" ]; then \ - ${INSTALL_PROGRAM} ${STAGEDIR}${PREFIX}/bin/${SERVPROG} ${STAGEDIR}${PREFIX}/${SEABIN}; \ - ${RM} ${STAGEDIR}${PREFIX}/bin/${SERVPROG}; \ - fi -.endfor -.for SERVPROG in seafile-controller seaf-server - ${LN} -s "../${SEABIN}/${SERVPROG}" ${STAGEDIR}${PREFIX}/bin/${SERVPROG} -.endfor - - (cd ${STAGEDIR}${PREFIX}/lib && \ - ${COPYTREE_SHARE} ${PYTHON_VERSION} ${STAGEDIR}${PREFIX}/${SEALIB}) - @${RM} -rf ${STAGEDIR}${PREFIX}/lib/${PYTHON_VERSION} \ - ${STAGEDIR}${PREFIX}/bin/seafile-admin - (cd ${WRKSRC}/scripts && \ - ${COPYTREE_SHARE} "sql" ${STAGEDIR}${PREFIX}/${SEAFILE_SERVER}) - -makesum-all: -.for PORT in net-mgmt/seafile-server www/py-seafdav www/py-seafobj www/seahub - ${MAKE} -C "${PORTSDIR}/${PORT}" makesum -.endfor - -.include "${.CURDIR}/Makefile.include" - -.include <bsd.port.post.mk> diff --git a/net-mgmt/seafile-server/Makefile.include b/net-mgmt/seafile-server/Makefile.include deleted file mode 100644 index f15da3808cf1..000000000000 --- a/net-mgmt/seafile-server/Makefile.include +++ /dev/null @@ -1,29 +0,0 @@ -SEAFILE_VER= 11.0.12 -SEAHUB_VER= 11.0.12 - - -# Various vars used in most/all the Makefiles -HAIWENDIR= www/haiwen -SEAFILE_SERVER= ${HAIWENDIR}/seafile-server -SEAHUBDIR= ${SEAFILE_SERVER}/seahub -SEABIN= ${SEAFILE_SERVER}/seafile/bin -SEALIB= ${SEAFILE_SERVER}/seafile/lib -SITEPACKAGEDIR= ${SEAHUBDIR}/thirdpart -SEAHUB_DATA_DIR= ${HAIWENDIR}/seahub-data - -USERS= seafile -GROUPS= ${USERS} - -PLIST_SUB+= USERS=${USERS} \ - GROUPS=${GROUPS} \ - SEAFILE_SERVER=${SEAFILE_SERVER} \ - SEAHUBDIR=${SEAHUBDIR} \ - HAIWENDIR=${HAIWENDIR} \ - SITEPACKAGEDIR=${SITEPACKAGEDIR} - -SUB_LIST+= USERS=${USERS} \ - GROUPS=${GROUPS} \ - SEAFILE_SERVER=${SEAFILE_SERVER} \ - HAIWENDIR=${HAIWENDIR} \ - PYTHON=${PYTHON_VERSION} \ - PYTHON_VER=${PYTHON_VER} diff --git a/net-mgmt/seafile-server/distinfo b/net-mgmt/seafile-server/distinfo deleted file mode 100644 index 3b88fca8e864..000000000000 --- a/net-mgmt/seafile-server/distinfo +++ /dev/null @@ -1,3 +0,0 @@ -TIMESTAMP = 1723996812 -SHA256 (haiwen-seafile-server-v11.0.12-server_GH0.tar.gz) = d6bdab0990ed7e63d8f06fcff081a346cf22099c78107460863e19bb98fe9507 -SIZE (haiwen-seafile-server-v11.0.12-server_GH0.tar.gz) = 480372 diff --git a/net-mgmt/seafile-server/files/patch-common_obj-backend-fs.c b/net-mgmt/seafile-server/files/patch-common_obj-backend-fs.c deleted file mode 100644 index 790b0e8f08b9..000000000000 --- a/net-mgmt/seafile-server/files/patch-common_obj-backend-fs.c +++ /dev/null @@ -1,20 +0,0 @@ ---- common/obj-backend-fs.c.orig 2019-12-23 10:30:49 UTC -+++ common/obj-backend-fs.c -@@ -95,7 +95,7 @@ obj_backend_fs_read (ObjBackend *bend, - static int - fsync_obj_contents (int fd) - { --#ifdef __linux__ -+#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) - /* Some file systems may not support fsync(). - * In this case, just skip the error. - */ -@@ -147,7 +147,7 @@ fsync_obj_contents (int fd) - static int - rename_and_sync (const char *tmp_path, const char *obj_path) - { --#ifdef __linux__ -+#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) - char *parent_dir; - int ret = 0; - diff --git a/net-mgmt/seafile-server/files/patch-configure.ac b/net-mgmt/seafile-server/files/patch-configure.ac deleted file mode 100644 index b22fbaeeba58..000000000000 --- a/net-mgmt/seafile-server/files/patch-configure.ac +++ /dev/null @@ -1,116 +0,0 @@ ---- configure.ac.orig 2019-12-23 10:30:49 UTC -+++ configure.ac -@@ -51,8 +51,16 @@ else - AC_MSG_RESULT(no) - fi - -+AC_MSG_CHECKING(for BSD) -+if test `uname | grep -e BSD -e DragonFly | wc -l` = "1"; then -+ bbsd=true -+ AC_MSG_RESULT(compile in BSD) -+else -+ AC_MSG_RESULT(no) -+fi -+ - AC_MSG_CHECKING(for Linux) --if test "$bmac" != "true" -a "$bwin32" != "true"; then -+if test "$bmac" != "true" -a "$bwin32" != "true" -a "$bbsd" != "true"; then - blinux=true - AC_MSG_RESULT(compile in linux) - else -@@ -78,6 +86,11 @@ if test "$bwin32" != true; then - [compile_fuse=$enableval],[compile_fuse="yes"]) - fi - -+if test "$bbsd" = true; then -+ AC_ARG_ENABLE(fuse, AC_HELP_STRING([--enable-fuse], [enable fuse virtual file system]), -+ [compile_fuse=$enableval],[compile_fuse="no"]) -+fi -+ - AC_ARG_ENABLE(python, - AC_HELP_STRING([--enable-python],[build seafile python binding]), - [compile_python=$enableval], -@@ -94,6 +107,7 @@ AM_CONDITIONAL([COMPILE_FUSE], [test "${compile_fuse}" - - AM_CONDITIONAL([WIN32], [test "$bwin32" = "true"]) - AM_CONDITIONAL([MACOS], [test "$bmac" = "true"]) -+AM_CONDITIONAL([BSD], [test "$bbsd" = "true"]) - AM_CONDITIONAL([LINUX], [test "$blinux" = "true"]) - - -@@ -139,6 +153,8 @@ if test "$bwin32" = true; then - LIB_MAC= - MSVC_CFLAGS="-D__MSVCRT__ -D__MSVCRT_VERSION__=0x0601" - LIB_CRYPT32=-lcrypt32 -+ LIB_INOTIFY= -+ LIB_KVM= - LIB_ICONV=-liconv - elif test "$bmac" = true ; then - LIB_WS32= -@@ -154,6 +170,24 @@ elif test "$bmac" = true ; then - LIB_MAC="-framework CoreServices" - LIB_CRYPT32= - LIB_ICONV=-liconv -+ LIB_INOTIFY= -+ LIB_KVM= -+elif test "$bbsd" = true ; then -+ LIB_WS32= -+ LIB_GDI32= -+ LIB_RT= -+ LIB_INTL= -+ LIB_RESOLV= -+ LIB_UUID=-luuid -+ LIB_IPHLPAPI= -+ LIB_SHELL32= -+ LIB_PSAPI= -+ LIB_MAC= -+ MSVC_CFLAGS= -+ LIB_CRYPT32= -+ LIB_ICONV=-liconv -+ LIB_INOTIFY=-linotify -+ LIB_KVM=-lkvm - else - LIB_WS32= - LIB_GDI32= -@@ -167,6 +201,8 @@ else - LIB_MAC= - MSVC_CFLAGS= - LIB_CRYPT32= -+ LIB_INOTIFY=-linotify -+ LIB_KVM= - fi - - AC_SUBST(LIB_WS32) -@@ -179,6 +215,8 @@ AC_SUBST(LIB_IPHLPAPI) - AC_SUBST(LIB_SHELL32) - AC_SUBST(LIB_PSAPI) - AC_SUBST(LIB_MAC) -+AC_SUBST(LIB_INOTIFY) -+AC_SUBST(LIB_KVM) - AC_SUBST(MSVC_CFLAGS) - AC_SUBST(LIB_CRYPT32) - AC_SUBST(LIB_ICONV) -@@ -194,6 +232,8 @@ ZDB_REQUIRED=2.10 - CURL_REQUIRED=7.17 - FUSE_REQUIRED=2.7.3 - ZLIB_REQUIRED=1.2.0 -+LIBEVHTP_REQUIRED=1.2.10 -+ONIGURUMA_REQUIRED=5.9.2 - - PKG_CHECK_MODULES(SSL, [openssl]) - AC_SUBST(SSL_CFLAGS) -@@ -226,6 +266,14 @@ AC_SUBST(LIBEVENT_LIBS) - PKG_CHECK_MODULES(ZLIB, [zlib >= $ZLIB_REQUIRED]) - AC_SUBST(ZLIB_CFLAGS) - AC_SUBST(ZLIB_LIBS) -+ -+PKG_CHECK_MODULES(LIBEVHTP, [evhtp >= $LIBEVHTP_REQUIRED]) -+AC_SUBST(LIBEVHTP_CFLAGS) -+AC_SUBST(LIBEVHTP_LIBS) -+ -+PKG_CHECK_MODULES(ONIGURUMA, [oniguruma >= $ONIGURUMA_REQUIRED]) -+AC_SUBST(ONIGURUMA_CFLAGS) -+AC_SUBST(ONIGURUMA_LIBS) - - if test "x${MYSQL_CONFIG}" = "xdefault_mysql_config"; then - PKG_CHECK_MODULES(MYSQL, [mysqlclient], [have_mysql="yes"], [have_mysql="no"]) diff --git a/net-mgmt/seafile-server/files/patch-controller_seafile-controller.c b/net-mgmt/seafile-server/files/patch-controller_seafile-controller.c deleted file mode 100644 index ba353e180402..000000000000 --- a/net-mgmt/seafile-server/files/patch-controller_seafile-controller.c +++ /dev/null @@ -1,114 +0,0 @@ ---- controller/seafile-controller.c.orig 2019-12-23 10:30:49 UTC -+++ controller/seafile-controller.c -@@ -17,6 +17,19 @@ - #include "log.h" - #include "seafile-controller.h" - -+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#include <sys/sysctl.h> -+#include <sys/types.h> -+#include <sys/user.h> -+#include <limits.h> -+ -+#ifndef WITH_PROC_FS -+#define WITH_PROC_FS g_file_test("/proc/curproc", G_FILE_TEST_EXISTS) -+#endif -+ -+static char *command_name = NULL; -+#endif -+ - #define CHECK_PROCESS_INTERVAL 10 /* every 10 seconds */ - - #if defined(__sun) -@@ -246,7 +259,20 @@ static void - init_seafile_path () - { - GError *error = NULL; -+#if defined(__linux__) - char *binary = g_file_read_link (PROC_SELF_PATH, &error); -+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+ /* -+ * seafile.sh starts the process using abs path -+ */ -+ char binary[_POSIX_PATH_MAX]; -+ memset(binary, 0, _POSIX_PATH_MAX); -+ char * rc = realpath(command_name, binary); -+ if (!rc) { -+ seaf_warning ("failed to readpath: %s\n", binary); -+ return; -+ } -+#endif - char *tmp = NULL; - if (error != NULL) { - seaf_warning ("failed to readlink: %s\n", error->message); -@@ -260,7 +286,9 @@ init_seafile_path () - - topdir = g_path_get_dirname (installpath); - -+#if defined(__linux__) - g_free (binary); -+#endif - g_free (tmp); - } - -@@ -416,12 +444,41 @@ need_restart (int which) - return FALSE; - } else { - char buf[256]; -+ gboolean with_procfs; -+#if defined(__linux__) -+ with_procfs = g_file_test("/proc/self", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR); -+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) -+ with_procfs = g_file_test("/proc/curproc", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR); -+#else -+ with_procfs = FALSE; -+#endif -+ if (with_procfs) { - snprintf (buf, sizeof(buf), "/proc/%d", pid); - if (g_file_test (buf, G_FILE_TEST_IS_DIR)) { - return FALSE; - } else { - seaf_warning ("path /proc/%d doesn't exist, restart progress [%d]\n", pid, which); - return TRUE; -+ } -+ -+ } else { -+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#ifdef __OpenBSD__ -+ int min[6] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), 1}; -+#else -+ int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, pid}; -+#endif -+ size_t len = sizeof(struct kinfo_proc); -+ struct kinfo_proc kp; -+ if (sysctl(mib, sizeof(mib)/sizeof(mib[0]), &kp, &len, NULL, 0) != -1 && -+ len == sizeof(struct kinfo_proc)) { -+ return FALSE; -+ } else { -+ return TRUE; -+ } -+#else -+ return FALSE; -+#endif - } - } - } -@@ -794,6 +851,9 @@ int main (int argc, char **argv) - exit (1); - } - -+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+ command_name = argv[0]; -+#endif - char *config_dir = DEFAULT_CONFIG_DIR; - char *central_config_dir = NULL; - char *seafile_dir = NULL; -@@ -830,7 +890,7 @@ int main (int argc, char **argv) - case 'f': - daemon_mode = 0; - break; -- case 'L': -+ case 'l': - logdir = g_strdup(optarg); - break; - case 'g': diff --git a/net-mgmt/seafile-server/files/patch-lib_Makefile.am b/net-mgmt/seafile-server/files/patch-lib_Makefile.am deleted file mode 100644 index 630184056bc9..000000000000 --- a/net-mgmt/seafile-server/files/patch-lib_Makefile.am +++ /dev/null @@ -1,29 +0,0 @@ ---- lib/Makefile.am.orig 2020-01-19 18:47:28 UTC -+++ lib/Makefile.am -@@ -45,6 +45,7 @@ libseafile_common_la_SOURCES = ${seafile_object_gen} $ - libseafile_common_la_LDFLAGS = -no-undefined - libseafile_common_la_LIBADD = @GLIB2_LIBS@ @GOBJECT_LIBS@ @SSL_LIBS@ -lcrypto @LIB_GDI32@ \ - @LIB_UUID@ @LIB_WS32@ @LIB_PSAPI@ -lsqlite3 \ -+ @LIB_KVM@ \ - @LIBEVENT_LIBS@ @SEARPC_LIBS@ @LIB_SHELL32@ \ - @ZLIB_LIBS@ - -@@ -66,7 +67,7 @@ vala.stamp: ${seafile_object_define} - rm -f ${seafile_object_gen} - @rm -f vala.tmp - @touch vala.tmp -- valac -C --pkg posix $^ -+ valac -C --pkg posix ${seafile_object_define} - @mv -f vala.tmp $@ - - ${seafile_object_gen}: vala.stamp -@@ -82,5 +83,9 @@ install-data-local: - if MACOS - sed -i '' -e "s|(DESTDIR)|${DESTDIR}|g" $(pcfiles) - else -+if BSD -+ sed -i '' "s|(DESTDIR)|${PREFIX}|g" $(pcfiles) -+else - ${SED} -i "s|(DESTDIR)|${DESTDIR}|g" $(pcfiles) -+endif - endif diff --git a/net-mgmt/seafile-server/files/patch-lib_net.c b/net-mgmt/seafile-server/files/patch-lib_net.c deleted file mode 100644 index 6150a57cd073..000000000000 --- a/net-mgmt/seafile-server/files/patch-lib_net.c +++ /dev/null @@ -1,14 +0,0 @@ ---- lib/net.c.orig 2019-12-23 10:30:49 UTC -+++ lib/net.c -@@ -157,7 +157,11 @@ ccnet_net_bind_tcp (int port, int nonblock) - - snprintf (buf, sizeof(buf), "%d", port); - -+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+ if ( (n = getaddrinfo("0.0.0.0", buf, &hints, &res) ) != 0) { -+#else - if ( (n = getaddrinfo(NULL, buf, &hints, &res) ) != 0) { -+#endif - ccnet_warning ("getaddrinfo fails: %s\n", gai_strerror(n)); - return -1; - } diff --git a/net-mgmt/seafile-server/files/patch-lib_utils.c b/net-mgmt/seafile-server/files/patch-lib_utils.c deleted file mode 100644 index 701d23a0fc3d..000000000000 --- a/net-mgmt/seafile-server/files/patch-lib_utils.c +++ /dev/null @@ -1,195 +0,0 @@ ---- lib/utils.c.orig 2019-12-23 10:30:49 UTC -+++ lib/utils.c -@@ -56,6 +56,16 @@ - - #include <zlib.h> - -+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#include <netinet/in.h> -+#include <stdlib.h> -+#include <kvm.h> -+#include <paths.h> -+#include <sys/param.h> -+#include <sys/sysctl.h> -+#include <sys/user.h> -+#endif -+ - extern int inet_pton(int af, const char *src, void *dst); - - -@@ -2047,14 +2057,19 @@ wchar_from_utf8 (const char *utf8) - - #endif /* ifdef WIN32 */ - --#ifdef __linux__ - /* read the link of /proc/123/exe and compare with `process_name' */ - static int - find_process_in_dirent(struct dirent *dir, const char *process_name) - { - char path[512]; - /* fisrst construct a path like /proc/123/exe */ -+#if defined(__linux__) - if (sprintf (path, "/proc/%s/exe", dir->d_name) < 0) { -+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) -+ if (sprintf (path, "/proc/%s/file", dir->d_name) < 0) { -+#else -+ if (1) { -+#endif - return -1; - } - -@@ -2078,7 +2093,8 @@ find_process_in_dirent(struct dirent *dir, const char - } - - /* read the /proc fs to determine whether some process is running */ --gboolean process_is_running (const char *process_name) -+static gboolean -+process_is_running_procfs (const char *process_name) - { - DIR *proc_dir = opendir("/proc"); - if (!proc_dir) { -@@ -2103,7 +2119,8 @@ gboolean process_is_running (const char *process_name) - return FALSE; - } - --int count_process(const char *process_name) -+static int -+count_process_procfs(const char *process_name) - { - int count = 0; - DIR *proc_dir = opendir("/proc"); -@@ -2127,6 +2144,14 @@ int count_process(const char *process_name) - return count; - } - -+#ifdef __linux__ -+gboolean process_is_running(const char *process_name) { -+ return process_is_running_procfs(process_name); -+} -+ -+int count_process(const char *process_name) { -+ return count_process_procfs(process_name); -+} - #endif - - #ifdef __APPLE__ -@@ -2134,6 +2159,119 @@ gboolean process_is_running (const char *process_name) - { - //TODO - return FALSE; -+} -+#endif -+ -+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#if defined(__FreeBSD__) -+#define PSKIP(kp) ((kp)->ki_pid == mypid || \ -+ (!kthreads && ((kp)->ki_flag & P_KTHREAD) != 0)) -+#define KVM_OPENFILES(exec, coref, buf) \ -+ kvm_openfiles(exec, coref, NULL, O_RDONLY, buf) -+#define KVM_GETPROCS(kd, plist, nproc) \ -+ kvm_getprocs(kd, KERN_PROC_PROC, 0, &nproc) -+ -+#elif defined(__DragonFly__) -+#define PSKIP(kp) ((kp)->kp_pid == mypid || \ -+ (!kthreads && ((kp)->kp_flags & P_SYSTEM) != 0)) -+#define KVM_OPENFILES(exec, coref, buf) \ -+ kvm_openfiles(exec, coref, NULL, O_RDONLY, buf) -+#define KVM_GETPROCS(kd, plist, nproc) \ -+ kvm_getprocs(kd, KERN_PROC_ALL, 0, &nproc) -+ -+#elif defined(__NetBSD__) -+#define PSKIP(kp) ((kp)->kp_pid == mypid || \ -+ ((kp)->p_flag & P_SYSTEM) != 0) -+#define KVM_OPENFILES(exec, coref, buf) \ -+ kvm_openfiles(exec, coref, NULL, KVM_NO_FILES, buf) -+#define KVM_GETPROCS(kd, plist, nproc) \ -+ kvm_getprocs(kd, KERN_PROC_ALL, 0, sizeof(*plist), &nproc) -+ -+#elif defined(__OpenBSD__) -+#define PSKIP(kp) ((kp)->kp_pid == mypid || \ -+ ((kp)->p_flag & (P_SYSTEM | P_THREAD)) != 0) -+#define KVM_OPENFILES(exec, coref, buf) \ -+ kvm_openfiles(exec, coref, NULL, KVM_NO_FILES, buf) -+#define KVM_GETPROCS(kd, plist, nproc) \ -+ kvm_getprocs(kd, KERN_PROC_ALL, 0, sizeof(*plist), &nproc) -+ -+#else -+#define PSKIP(kp) 0 -+#define KVM_OPENFILES(exec, coref, buf) 0 -+#define KVM_GETPROCS(kd, plist, nproc) 0 -+#endif -+ -+#ifndef WITH_PROC_FS -+#define WITH_PROC_FS g_file_test("/proc/curproc", G_FILE_TEST_EXISTS) -+#endif -+ -+static int -+count_running_process_kvm(const char *process_name) { -+ -+ -+ static kvm_t *kd; -+ static struct kinfo_proc *plist; -+ static int nproc; -+ static pid_t mypid; -+ static int kthreads; -+ -+ char buf[_POSIX2_LINE_MAX]; -+ const char * execf, *coref; -+ char **pargv; -+ int i, selected_nproc; -+ struct kinfo_proc *kp; -+ -+ selected_nproc = 0; -+ execf = NULL; -+ coref = _PATH_DEVNULL; -+ -+ mypid = getpid(); -+ kd = KVM_OPENFILES(execf, coref, buf); -+ if (kd == NULL) { -+ fprintf(stderr, "Error: Cannot open kernel files (%s)", buf); -+ exit(1); -+ } -+ -+ plist = KVM_GETPROCS(kd, plist, nproc); -+ if (plist == NULL) { -+ fprintf(stderr, "Error: Cannot get process list (%s)", kvm_geterr(kd)); -+ exit(1); -+ } -+ -+ for(i = 0, kp = plist; i < nproc; i++, kp++) { -+ if (PSKIP(kp)) { -+ continue; -+ } -+ if ((pargv = kvm_getargv(kd, kp, 0)) != NULL) { -+ if (strstr(pargv[0], process_name) != NULL) { -+ selected_nproc += 1; -+ } -+ } -+ } -+ kvm_close(kd); -+ kvm_close(kd); -+ -+ return selected_nproc; -+} -+ -+gboolean -+process_is_running(const char * process_name) { -+ if (WITH_PROC_FS) { -+ return process_is_running_procfs(process_name); -+ } -+ if (count_running_process_kvm(process_name) > 0) { -+ return TRUE; -+ } else { -+ return FALSE; -+ } -+} -+ -+int -+count_process(const char * process_name) { -+ if (WITH_PROC_FS) { -+ return count_process_procfs(process_name); -+ } -+ return count_running_process_kvm(process_name); - } - #endif - diff --git a/net-mgmt/seafile-server/files/patch-lib_utils.h b/net-mgmt/seafile-server/files/patch-lib_utils.h deleted file mode 100644 index 511b8a15af9e..000000000000 --- a/net-mgmt/seafile-server/files/patch-lib_utils.h +++ /dev/null @@ -1,23 +0,0 @@ ---- lib/utils.h.orig 2019-12-23 10:30:49 UTC -+++ lib/utils.h -@@ -10,6 +10,9 @@ - #include <windows.h> - #endif - -+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#include <netinet/in.h> -+#endif - #include <sys/time.h> - #include <time.h> - #include <stdint.h> -@@ -20,7 +23,9 @@ - #include <stdlib.h> - #include <sys/stat.h> - --#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) -+#if defined(__FreeBSD__) || defined(__DragonFly__) -+#include <evutil.h> -+#elif defined(__NetBSD__) || defined(__OpenBSD__) - #include <event2/util.h> - #else - #include <evutil.h> diff --git a/net-mgmt/seafile-server/files/patch-server_Makefile.am b/net-mgmt/seafile-server/files/patch-server_Makefile.am deleted file mode 100644 index a48370d0613d..000000000000 --- a/net-mgmt/seafile-server/files/patch-server_Makefile.am +++ /dev/null @@ -1,11 +0,0 @@ ---- server/Makefile.am.orig 2021-01-23 07:40:16 UTC -+++ server/Makefile.am -@@ -77,7 +77,7 @@ seaf_server_SOURCES = \ - ../common/block-tx-utils.c - - seaf_server_LDADD = $(top_builddir)/lib/libseafile_common.la \ -- @GLIB2_LIBS@ @GOBJECT_LIBS@ @SSL_LIBS@ @LIB_RT@ @LIB_UUID@ -lsqlite3 @LIBEVENT_LIBS@ -levhtp \ -+ @ONIGURUMA_LIBS@ @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@ \ diff --git a/net-mgmt/seafile-server/files/patch-server_http-server.c b/net-mgmt/seafile-server/files/patch-server_http-server.c deleted file mode 100644 index 71ad20eaaf83..000000000000 --- a/net-mgmt/seafile-server/files/patch-server_http-server.c +++ /dev/null @@ -1,11 +0,0 @@ ---- server/http-server.c.orig 2018-01-03 02:47:07 UTC -+++ server/http-server.c -@@ -2122,7 +2122,7 @@ http_server_run (void *arg) - - http_request_init (server); - -- evhtp_use_threads (priv->evhtp, NULL, server->worker_threads, NULL); -+ evhtp_use_threads_wexit (priv->evhtp, NULL, NULL, server->worker_threads, NULL); - - struct timeval tv; - tv.tv_sec = CLEANING_INTERVAL_SEC; diff --git a/net-mgmt/seafile-server/files/patch-server_http-tx-mgr.c b/net-mgmt/seafile-server/files/patch-server_http-tx-mgr.c deleted file mode 100644 index 207eb1134d9d..000000000000 --- a/net-mgmt/seafile-server/files/patch-server_http-tx-mgr.c +++ /dev/null @@ -1,11 +0,0 @@ ---- server/http-tx-mgr.c.orig 2023-11-29 21:44:30 UTC -+++ server/http-tx-mgr.c -@@ -28,7 +28,7 @@ - #define USER_AGENT_OS "Apple OS X" - #endif - --#ifdef __linux__ -+#if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(__OpenBSD__) - #define USER_AGENT_OS "Linux" - #endif - diff --git a/net-mgmt/seafile-server/files/patch-server_seaf-server.c b/net-mgmt/seafile-server/files/patch-server_seaf-server.c deleted file mode 100644 index b86e02ea5a72..000000000000 --- a/net-mgmt/seafile-server/files/patch-server_seaf-server.c +++ /dev/null @@ -1,11 +0,0 @@ ---- server/seaf-server.c.orig 2021-01-31 19:59:11 UTC -+++ server/seaf-server.c -@@ -4,6 +4,8 @@ - - #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) - #include <event2/event.h> -+#include <event2/event_compat.h> -+#include <event2/event_struct.h> - #else - #include <event.h> - #endif diff --git a/net-mgmt/seafile-server/files/patch-server_upload-file.c b/net-mgmt/seafile-server/files/patch-server_upload-file.c deleted file mode 100644 index 4b2e40dd49b1..000000000000 --- a/net-mgmt/seafile-server/files/patch-server_upload-file.c +++ /dev/null @@ -1,71 +0,0 @@ ---- server/upload-file.c.orig 2021-12-09 05:24:45 UTC -+++ server/upload-file.c -@@ -2234,7 +2234,7 @@ out: - /* Set keepalive to 0. This will cause evhtp to close the - * connection after sending the reply. - */ -- req->keepalive = 0; -+ evhtp_request_set_keepalive(req, 0); - - fsm->state = RECV_ERROR; - } -@@ -2545,8 +2545,8 @@ upload_headers_cb (evhtp_request_t *req, evhtp_headers - } - - /* 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; - -@@ -2561,7 +2561,7 @@ err: - /* Set keepalive to 0. This will cause evhtp to close the - * connection after sending the reply. - */ -- req->keepalive = 0; -+ evhtp_request_set_keepalive(req, 0); - send_error_reply (req, error_code, err_msg); - - g_free (repo_id); -@@ -2662,32 +2662,32 @@ upload_file_init (evhtp_t *htp, const char *http_temp_ - 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); - diff --git a/net-mgmt/seafile-server/files/pkg-message.in b/net-mgmt/seafile-server/files/pkg-message.in deleted file mode 100644 index 59d5a74f90e7..000000000000 --- a/net-mgmt/seafile-server/files/pkg-message.in +++ /dev/null @@ -1,8 +0,0 @@ -[ -{ type: install - message: <<EOM -net-mgmt/seafile-server is a dependency of Seafile. To install the -full application, www/seahub must be installed. -EOM -} -] diff --git a/net-mgmt/seafile-server/files/seafile.in b/net-mgmt/seafile-server/files/seafile.in deleted file mode 100644 index a95cc6c3a382..000000000000 --- a/net-mgmt/seafile-server/files/seafile.in +++ /dev/null @@ -1,152 +0,0 @@ -#!/bin/sh - -# PROVIDE: seafile -# REQUIRE: LOGIN cleanvar mysql -# KEYWORD: shutdown -# - -# -# Add the following lines to /etc/rc.conf to enable seafile: -# -# seafile_enable (bool): Set to "NO" by default. -# Set it to "YES" to enable seafile. -# seafile_user (str): User to run seafile as -# Default to "%%USERS%%" created by the port -# seafile_group (str): Group to run seafile as -# Default to "%%GROUPS%%" created by the port -# seafile_path (str): Set to "" by default will use the path -# %%PREFIX%%/%%SEAFILE_SERVER%%. -# Set it to a different path. -# seafile_ccnet (str): Set to "" by default will use the path -# %%PREFIX%%/%%HAIWENDIR%%/ccnet. -# Set it to a different path. -# seafile_conf (str): Set to "" by default will use the path -# %%PREFIX%%/%%HAIWENDIR%%/conf. -# Set it to a different path. -# seafile_datadir (str): Set to "" by default will use the path -# in file %%PREFIX%%/%%HAIWENDIR%%/ccnet/seafile.ini. -# Set it to a different path. -# seafile_logdir (str): Set to "" by default will use the path -# %%PREFIX%%/%%HAIWENDIR%%/logs -# Set it to a different path. -# seafile_loglevel (str): Set to "info" by default. -# Possible values are debug, warning, info. - -. /etc/rc.subr - -name="seafile" -rcvar="seafile_enable" - -load_rc_config $name - -start_cmd="seafile_start" -restart_cmd="seafile_restart" -stop_cmd="seafile_stop" - -: ${seafile_enable="NO"} -: ${seafile_user:="%%USERS%%"} -: ${seafile_group:="%%GROUPS%%"} -: ${seafile_path:="%%PREFIX%%/%%SEAFILE_SERVER%%"} -: ${seafile_ccnet:="%%PREFIX%%/%%HAIWENDIR%%/ccnet"} -: ${seafile_conf:="%%PREFIX%%/%%HAIWENDIR%%/conf"} -: ${seafile_datadir:="%%PREFIX%%/%%HAIWENDIR%%/seafile-data"} -: ${seafile_logdir:="%%PREFIX%%/%%HAIWENDIR%%/logs"} -: ${seafile_loglevel:="info"} - -command="%%PREFIX%%/%%SEAFILE_SERVER%%/seafile/bin/seafile-controller" -command_args="-c \"${seafile_ccnet}\" -d \"${seafile_datadir}\" -F \"${seafile_conf}\" -l \"${seafile_logdir}\" -g \"${seafile_loglevel}\" -G \"${seafile_loglevel}\"" - -required_dirs="${seafile_ccnet} ${seafile_conf} ${seafile_datadir}" - -test_config() { - if ! su -m ${seafile_user} -c "${command} -t ${command_args}" ; then - exit 1; - fi -} - -check_component_running() { - name=$1 - cmd=$2 - if pid=$(pgrep -f "$cmd" 2>/dev/null); then - echo "{$name} is running, pid $pid. You can stop it by: " - echo - echo " kill $pid" - echo - echo "Stop it and try again." - echo - exit - fi -} - -validate_already_running() { - if pid=$(pgrep -f "seafile-controller -c ${seafile_ccnet}" 2>/dev/null); then - echo "Seafile controller is already running, pid $pid" - echo - exit 1; - fi - - check_component_running "ccnet-server" "ccnet-server -c ${seafile_ccnet}" - check_component_running "seaf-server" "seaf-server -c ${seafile_ccnet}" - check_component_running "fileserver" "fileserver -c ${seafile_ccnet}" - check_component_running "seafdav" "wsgidav.server.run_server" -} - -prepare_env() { -export PATH=${seafile_path}/seafile/bin:$PATH -export LD_LIBRARY_PATH=${seafile_path}/seafile/lib/:${seafile_path}/seafile/lib64:${LD_LIBRARY_PATH} -export CCNET_CONF_DIR=${seafile_ccnet} -export SEAFILE_CONF_DIR=${seafile_datadir} -export SEAFILE_CENTRAL_CONF_DIR=${seafile_conf} -export PYTHON=%%PREFIX%%/bin/%%PYTHON%% -export PYTHONPATH=${seafile_path}/seafile/lib/%%PYTHON%%/site-packages:${seafile_path}/seafile/lib64/%%PYTHON%%/site-packages:${seafile_path}/seahub/thirdpart:$PYTHONPATH -export SEAFILE_RPC_PIPE_PATH=${seafile_path}/runtime -} - -seafile_start() { - check_required_before; - validate_already_running; - prepare_env; -# test_config broke in 8.0.x, commenting until this is fixed. -# https://forum.seafile.com/t/seafile-controller-t-functionality-broken-on-8-x/13738 -# test_config; - - echo "Starting seafile server, please wait ..." - - su -m "${seafile_user}" -c "mkdir -p $seafile_logdir" - su -m "${seafile_user}" -c "$command $command_args" - - sleep 3 - - # check if seafile server started successfully - if ! pgrep -f "seafile-controller -c ${seafile_ccnet}" 2>/dev/null 1>&2; then - echo "Failed to start seafile server" - exit 1; - fi - - echo "Seafile server started" - echo -} - -seafile_stop() { - if ! pgrep -f "seafile-controller -c ${seafile_ccnet}" 2>/dev/null 1>&2; then - echo "Seafile is not running" - return 1; - fi - - echo "Stopping ${name}." - pkill -SIGTERM -f "seafile-controller -c ${seafile_ccnet}" - pkill -f "ccnet-server -c ${seafile_ccnet}" - pkill -f "seaf-server -c ${seafile_ccnet}" - pkill -f "fileserver -c ${seafile_ccnet}" - pkill -f "soffice.*--invisible --nocrashreport" - pkill -f "wsgidav.server.run_server" - return 0 -} - -seafile_restart() { - seafile_stop; - sleep 2 - seafile_start; -} - -run_rc_command "$1" diff --git a/net-mgmt/seafile-server/pkg-descr b/net-mgmt/seafile-server/pkg-descr deleted file mode 100644 index 9bdcd01c3302..000000000000 --- a/net-mgmt/seafile-server/pkg-descr +++ /dev/null @@ -1,9 +0,0 @@ -Seafile is an open source cloud storage system with features on privacy -protection and teamwork. Collections of files are called libraries, and -each library can be synced separately. A library can also be encrypted -with a user chosen password. Seafile also allows users to create groups -and easily sharing files into groups. - -This is the core component of Seafile server. It provides RPC to the web -front-end (Seahub) to access files, and provides HTTP APIs to the desktop -clients for syncing files. diff --git a/net-mgmt/seafile-server/pkg-plist b/net-mgmt/seafile-server/pkg-plist deleted file mode 100644 index c33da995b16a..000000000000 --- a/net-mgmt/seafile-server/pkg-plist +++ /dev/null @@ -1,36 +0,0 @@ -bin/seaf-server -bin/seafile-controller -include/seafile/seafile-object.h -libdata/pkgconfig/libseafile.pc -%%SEAFILE_SERVER%%/seafile/bin/seaf-fsck -%%FUSE%%%%SEAFILE_SERVER%%/seafile/bin/seaf-fuse -%%SEAFILE_SERVER%%/seafile/bin/seaf-server -%%SEAFILE_SERVER%%/seafile/bin/seafile-controller -%%SEAFILE_SERVER%%/seafile/bin/seafserv-gc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/__init__.py -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/__pycache__/rpcclient.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/__pycache__/rpcclient.cpython-%%PYTHON_SUFFIX%%.pyc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seafile/rpcclient.py -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/__init__.py -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/__pycache__/api.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/__pycache__/api.cpython-%%PYTHON_SUFFIX%%.pyc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/__pycache__/service.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/__pycache__/service.cpython-%%PYTHON_SUFFIX%%.pyc -%%SEAFILE_SERVER%%/%%USERS%%/%%PYTHON_SITELIBDIR%%/%%USERS%%/__pycache__/__init__%%PYTHON_TAG%%.opt-2.pyc -%%SEAFILE_SERVER%%/%%USERS%%/%%PYTHON_SITELIBDIR%%/%%USERS%%/__pycache__/rpcclient%%PYTHON_TAG%%.opt-2.pyc -%%SEAFILE_SERVER%%/%%USERS%%/%%PYTHON_SITELIBDIR%%/seaserv/__pycache__/__init__%%PYTHON_TAG%%.opt-2.pyc -%%SEAFILE_SERVER%%/%%USERS%%/%%PYTHON_SITELIBDIR%%/seaserv/__pycache__/api%%PYTHON_TAG%%.opt-2.pyc -%%SEAFILE_SERVER%%/%%USERS%%/%%PYTHON_SITELIBDIR%%/seaserv/__pycache__/service%%PYTHON_TAG%%.opt-2.pyc -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/api.py -%%SEAFILE_SERVER%%/seafile/%%PYTHON_SITELIBDIR%%/seaserv/service.py -%%SEAFILE_SERVER%%/sql/mysql/ccnet.sql -%%SEAFILE_SERVER%%/sql/mysql/seafile.sql -%%SEAFILE_SERVER%%/sql/sqlite/config.sql -%%SEAFILE_SERVER%%/sql/sqlite/groupmgr.sql -%%SEAFILE_SERVER%%/sql/sqlite/org.sql -%%SEAFILE_SERVER%%/sql/sqlite/seafile.sql -%%SEAFILE_SERVER%%/sql/sqlite/user.sql |
